@ -356,29 +356,18 @@ int enc_open(OutputStream *ost, AVFrame *frame)
enc_ctx - > colorspace = frame - > colorspace ;
enc_ctx - > chroma_sample_location = frame - > chroma_location ;
// Field order: autodetection
if ( enc_ctx - > flags & ( AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME ) & &
ost - > top_field_first > = 0 )
if ( ost - > top_field_first )
frame - > flags | = AV_FRAME_FLAG_TOP_FIELD_FIRST ;
else
frame - > flags & = ~ AV_FRAME_FLAG_TOP_FIELD_FIRST ;
if ( enc_ctx - > flags & ( AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME ) | |
( frame - > flags & AV_FRAME_FLAG_INTERLACED ) | | ost - > top_field_first > = 0 ) {
int top_field_first = ost - > top_field_first > = 0 ?
ost - > top_field_first : ! ! ( frame - > flags & AV_FRAME_FLAG_TOP_FIELD_FIRST ) ;
if ( frame - > flags & AV_FRAME_FLAG_INTERLACED ) {
if ( enc - > id = = AV_CODEC_ID_MJPEG )
enc_ctx - > field_order = ( frame - > flags & AV_FRAME_FLAG_TOP_FIELD_FIRST ) ? AV_FIELD_TT : AV_FIELD_BB ;
enc_ctx - > field_order = top_field_first ? AV_FIELD_TT : AV_FIELD_BB ;
else
enc_ctx - > field_order = ( frame - > flags & AV_FRAME_FLAG_TOP_FIELD_FIRST ) ? AV_FIELD_TB : AV_FIELD_BT ;
enc_ctx - > field_order = top_field_first ? AV_FIELD_TB : AV_FIELD_BT ;
} else
enc_ctx - > field_order = AV_FIELD_PROGRESSIVE ;
// Field order: override
if ( ost - > top_field_first = = 0 ) {
enc_ctx - > field_order = AV_FIELD_BB ;
} else if ( ost - > top_field_first = = 1 ) {
enc_ctx - > field_order = AV_FIELD_TT ;
}
break ;
}
case AVMEDIA_TYPE_SUBTITLE :