mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 16:26:39 +00:00
jpegdec: be stricter when detecting interlaced video
There are broken(?) mjpeg videos that are incorrectly detected as interlaced. This happens because 'info.height > height' (e.g. 1088 > 1080). In the interlaced case info.height is approximately 'height * 2' but not exactly because height is a multiple of DCTSIZE. Make the check more restrictive but take the rounding effect into account. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4696>
This commit is contained in:
parent
59290feca4
commit
285811e7a7
1 changed files with 2 additions and 2 deletions
|
@ -1406,8 +1406,8 @@ gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
|
|||
/* is it interlaced MJPEG? (we really don't want to scan the jpeg data
|
||||
* to see if there are two SOF markers in the packet to detect this) */
|
||||
if (gst_video_decoder_get_packetized (bdec) &&
|
||||
dec->input_state &&
|
||||
dec->input_state->info.height > height &&
|
||||
dec->input_state && height > DCTSIZE &&
|
||||
dec->input_state->info.height > (2 * (height - DCTSIZE)) &&
|
||||
dec->input_state->info.height <= (height * 2)
|
||||
&& dec->input_state->info.width == width) {
|
||||
GST_LOG_OBJECT (dec,
|
||||
|
|
Loading…
Reference in a new issue