[FFmpeg-user] ffprobe bug in 'interlaced_frame'?

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Mon Jan 27 02:21:13 EET 2020


On 01/26/2020 05:28 PM, Ted Park wrote:
>> Assumptions:
>> 1, ffprobe's 'interlaced_frame' is the inverse of MPEG2's 'progressive_frame', and
>> 2, ffprobe's 'repeat_pict' is identical to MPEG2's 'repeat_first_field', and
>> 3, ffprobe's quirks are also ffmpeg's quirks, so this problem applies also to ffmpeg.
>>
>> If my assumptions are incorrect,
>> 1, What is the correct meaning of ffmpeg's 'interlaced_frame'?
>> 2, What is the correct meaning of ffmpeg's 'repeat_pict’?
> 
> interlaced_frame is the inverse of progressive_frame if progressive_sequence isn’t 1.

That is not correct, Ted. "progressive_sequence isn’t 1" is true for 
every DVD I've checked (dozens) except for 1 Korean ripoff (noted 
below). When 'progressive_sequence' = '0' and 'progressive_frame' = '1' 
and 'repeat_first_field' = '0' (i.e, during a 3-2 pull-down), ffprobe 
reports 'interlaced_frame' = '1' and that's not correct.

'interlaced_frame' is wrong for all the soft-telecined cases that I've 
checked (dozens), but it's wrong only for frames that have 
'repeat_first_field' = '0'. Now, why would that be? The only thing I can 
think of is 'interlaced_frame' is buggy.

> Otherwise it is 0 for the sequence.

I've found only one DVD with progressive_sequence = '1', and that turned 
out to be a Korean ripoff of "SISTERS" (Brian DePalma), so I can't trust 
that it's correct -- the DVD does not play well -- so I can't comment on 
that. It does have 'interlaced_frame' = '0' though. But that's not at issue.

> repeat_pict isn’t a flag, 

It's metadata, or at least 'repeat_first_field' from the H.262 spec is 
metadata. Shall I copy to here the entire DVD-Video/MPEG2 PEG stream 
format? I've spent several weeks studying it (during which time I've 
found some minor errors in VOBEdit).

> it indicates the number of repeats I think, determined by repeat_first_field, top_field_first, progressive_frame and progressive_sequence

You are referring to this (from the H.262 spec): "If 
progressive_sequence is equal to '1', this [top_field_first] flag, 
combined with repeat_first_field, indicates how many times (one, two or 
three) the reconstructed frame is output by the decoding process.". As I 
previously wrote, 'progressive_sequence' is never equal to '1' (expect 
for the Korean ripoff) and to my knowledge, this 1/2/3 frame repeat has 
never been seen in the wild (nor would it reasonably ever be seen as it 
has zero utility).

So, it appears that 'interlaced_frame' as reported by ffprobe is buggy 
-- wrong in some of the frames that are part of 3-2 pull-down (i.e., 
soft telecine).

This all matters. It matters a lot. It creates confusion in users and I 
can only imagine what it has done to ff libraries (and how they have 
been patched to compensate for this bug).


More information about the ffmpeg-user mailing list