[Ffmpeg-devel] Interlaced decoding internals?
Tue Feb 6 14:19:09 CET 2007
On Tue, Feb 06, 2007 at 01:31:04PM +0100, Baptiste Coudurier wrote:
> Michael Niedermayer wrote:
> > On Tue, Feb 06, 2007 at 11:08:20AM +0100, Baptiste Coudurier wrote:
> >> Michael Niedermayer wrote:
> >>> On Mon, Feb 05, 2007 at 08:31:41PM +0200, Kostya wrote:
> >>>> I'm working on adding interlaced frame support for VC-1 and
> >>>> has some question regarding AVCodecContext internals:
> >>>> What do avctx->interlaced_frame, avctx->top_field_first
> >>>> and avctx->repeat_pict affect if set by decoder?
> >>> they are not in AVCodecContext but AVFrame
> >>> they affect display, top_field_first affects the order in which
> >>> fields are shown, interlaced_frame affects if the frame is shown
> >>> as frame or as 2 fields at 2 seperate times (assuming the player
> >>> applictaion cares about the at all of course ...)
> >> You'll laugh, what can I do if the interlaced info is in the container ?
> >> I have some mjpeg a bottom field first, and info is in "fiel" atom.
> >> I'll fix decoder, but I need a way to supply that info.
> >> What do you prefer ? Adding a field to avctx ?
> > avctx is problematic as top-field-first can change between frames in
> > MPEG so with decoder delay and multiple threads its the perfect recipe
> > for troubble
> > adding top-field-first to AVStream seems like the better solution,
> > that way the demuxer can export it without interfering with the codec
> > the same may (or may not ...) be a good idea for width/height, so
> > the width and height for mpeg4/h263 in mov could be dealt with nicer
> > maybe ...
> So, then I need to set picture->top_field_first before passing it to the
> Attached patch is working, but IMHO is ugly.
Maybe this would be a good point to suggest again a flags option for the
decode function, both TOP_FIELD_FIRST, PALETTE and other indications
could be put there.
Though I admit it will probably lead to some entanglement between lavf
and lavc if not done carefully...
Or even if that is not a good solution, there should be at least some
way to pass special data/options to a decoder.
More information about the ffmpeg-devel