mirror of
https://github.com/opencv/opencv.git
synced 2024-11-24 19:20:28 +08:00
videoio(mjpeg): disable parallel encoder
This commit is contained in:
parent
bf03f5fa3a
commit
b697b3162f
@ -1167,6 +1167,8 @@ public:
|
||||
fdct_qtab(_fdct_qtab),
|
||||
cat_table(_cat_table)
|
||||
{
|
||||
#if 0 // disable parallel processing due to buffer overrun bug: https://github.com/opencv/opencv/issues/19634
|
||||
|
||||
//empirically found value. if number of pixels is less than that value there is no sense to parallelize it.
|
||||
const int min_pixels_count = 96*96;
|
||||
|
||||
@ -1176,6 +1178,7 @@ public:
|
||||
{
|
||||
if(height*width > min_pixels_count)
|
||||
{
|
||||
const int default_stripes_count = 4;
|
||||
stripes_count = default_stripes_count;
|
||||
}
|
||||
}
|
||||
@ -1191,6 +1194,12 @@ public:
|
||||
|
||||
stripes_count = std::min(stripes_count, max_stripes);
|
||||
|
||||
#else
|
||||
if (nstripes > 1)
|
||||
CV_LOG_ONCE_WARNING(NULL, "VIDEOIO/MJPEG: parallel processing is disabled: https://github.com/opencv/opencv/issues/19634");
|
||||
stripes_count = 1;
|
||||
#endif
|
||||
|
||||
m_buffer_list.allocate_buffers(stripes_count, (height*width*2)/stripes_count);
|
||||
}
|
||||
|
||||
@ -1370,11 +1379,8 @@ private:
|
||||
const short (&fdct_qtab)[2][64];
|
||||
const uchar* cat_table;
|
||||
int stripes_count;
|
||||
static const int default_stripes_count;
|
||||
};
|
||||
|
||||
const int MjpegEncoder::default_stripes_count = 4;
|
||||
|
||||
void MotionJpegWriter::writeFrameData( const uchar* data, int step, int colorspace, int input_channels )
|
||||
{
|
||||
//double total_cvt = 0, total_dct = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user