[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