Browse Source

yuv4mpegenc: do not access AVCodecContext.coded_frame

Its contents are meaningful only if the stream codec context is the one
actually used for encoding, which is often not the case (and is
discouraged).

Use AVCodecContext.field_order instead.
tags/n2.3
Anton Khirnov 11 years ago
parent
commit
650d384048
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      libavformat/yuv4mpegenc.c

+ 5
- 3
libavformat/yuv4mpegenc.c View File

@@ -48,9 +48,11 @@ static int yuv4_generate_header(AVFormatContext *s, char* buf)
if (aspectn == 0 && aspectd == 1)
aspectd = 0; // 0:0 means unknown

inter = 'p'; /* progressive is the default */
if (st->codec->coded_frame && st->codec->coded_frame->interlaced_frame)
inter = st->codec->coded_frame->top_field_first ? 't' : 'b';
switch (st->codec->field_order) {
case AV_FIELD_TT: inter = 't'; break;
case AV_FIELD_BB: inter = 'b'; break;
default: inter = 'p'; break;
}

switch (st->codec->pix_fmt) {
case AV_PIX_FMT_GRAY8:


Loading…
Cancel
Save