[Mplayer-cvslog] CVS: main/libmpcodecs vd_ffmpeg.c, 1.113, 1.114 mp_image.h, 1.28, 1.29

D Richard Felker III dalias at aerifal.cx
Fri Dec 26 07:11:00 CET 2003


On Wed, Dec 24, 2003 at 12:35:13PM +0100, Michael Niedermayer wrote:
> Hi
> 
> On Wednesday 24 December 2003 08:01, D Richard Felker III wrote:
> > On Mon, Dec 22, 2003 at 06:26:21PM +0100, Michael Niedermayer CVS wrote:
> > > +#if LIBAVCODEC_BUILD >= 4697
> > > +    mpi->fields = MP_IMGFIELD_ORDERED;
> > > +    if(pic->interlaced_frame) mpi->fields |= MP_IMGFIELD_INTERLACED;
> > > +    if(pic->top_field_first ) mpi->fields |= MP_IMGFIELD_TOP_FIRST;
> > > +#endif
> >
> > This is incorrect. MP_IMGFIELD_ORDERED must NOT be set unless field
> yes, ill fix it

Thanks.

> > order is known! There are many codecs in lavc which do not know field
> > order, so it should only be set for the ones that do know field order
> > and export it via pic->top_field_first, i.e. only mpeg2...
> and mpeg4 and dv
> is there any documentation which defines what each MP_IMGFIELD flag means 
> exactly?

No, actually it's not very well-designed in G1. We just needed
something so that softpulldown and pullup filters could process mpeg2
field flags...

We need to decide on a better way of reporting field sequence in G2.
Rather than ugly hacks in the demuxer, G2 will actually use a filter
that processes these flags to invert "soft telecine", i.e. convert
choppy 24 fps with alternating 3:2 delays to smooth 24 fps (where each
frame is 1/24 sec duration). And of course pullup, etc. still need it
too!

> its a bit strange that ordered is needed at all, as top_field_first has no 
> meaning in progressive frames (as progressive frames per definition have the 
> same PTS for both field)
> 
> ...
> 
> hmm maybe ORDERED is supposed to means INTERLACED frame? then my addition of 
> MP_IMGFIELD_INTERLACED should be reversed ...

Hmm, I don't think so. Frames with RFF flag set are clearly
progressive, but they also have a first field -- the "first" one is
the one that gets repeated. The ORDERED flag just means that the
TFF/RFF flags are valid. Nothing more. Your INTERLACED flag seems to
mean something very different: that the frame should be treated as two
independent fields rather than a single picture...

Rich




More information about the MPlayer-cvslog mailing list