[FFmpeg-devel] [PATCH 1 of 3] movenc: enable writing of interlace information back to the 'fiel' atom. (2nd Version)

Tim Nicholson nichot20 at yahoo.com
Fri Oct 26 14:52:41 CEST 2012


On 26/10/12 12:34, Tomas Härdin wrote:
>> +    /* If field_order has set by the coder to indicate interlace coding
>> +     * update value to reflect current coded top_field_first status */
>> +    if ((track->enc->coded_frame) && (track->enc->field_order > AV_FIELD_PROGRESSIVE))
> 
> Useless parentheses

Oops, forgot to clean them out when I changed the test.

> 
>> +            track->enc->field_order = track->enc->coded_frame->top_field_first ? AV_FIELD_TB:AV_FIELD_BT;
> 
> Shouldn't those be AV_FIELD_TT and AV_FIELD_BB? TB/BT are for when the
> fields need to be displayed in reverse order to how they are encoded.
> 

You would think so wouldn't you from a reading of qtff. However I have
run a shed load of different transcodes through QTPro changing things
like tff/bff with different codecs including DV and the only two that
ever pop up are TB and BT.


> This highlights two issues I have with field_order in AVCodecContext: it
> belongs in AVStream. AVCodecContext's field_order should only say what
> field order the essence has.

...and the other issue?

I tend to agree with you since the only use of AVCodecContext's
field_order is related to the 'fiel' atom. The other issue I have with
the whole interlace flagging situation is that we do not differentiate
between progressive, and unknown.

However I am trying to work within the current structure and improve the
synchronizing between AVCodecContext's field_order and the final coded
essence, so that output files are as close as possible to any defined
standard.

> 
> /Tomas
> 
> [..]


-- 
Tim




More information about the ffmpeg-devel mailing list