]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit '54307b35311e9a871b3d8ecb2b2eecfc16de0163'
authorJames Almer <jamrial@gmail.com>
Fri, 13 Apr 2018 23:38:46 +0000 (20:38 -0300)
committerJames Almer <jamrial@gmail.com>
Fri, 13 Apr 2018 23:38:46 +0000 (20:38 -0300)
* commit '54307b35311e9a871b3d8ecb2b2eecfc16de0163':
  lavc/qsvdec: set complete_frame flags for progressive picture

Merged-by: James Almer <jamrial@gmail.com>
libavcodec/qsvdec.c

index 80e1e645ebff890075e64d3b82264a0ba274b640..32f1fe79d79922459d4fcb3ce0dbf120f1f99029 100644 (file)
@@ -323,6 +323,8 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q,
         bs.DataLength = avpkt->size;
         bs.MaxLength  = bs.DataLength;
         bs.TimeStamp  = avpkt->pts;
+        if (avctx->field_order == AV_FIELD_PROGRESSIVE)
+            bs.DataFlag   |= MFX_BITSTREAM_COMPLETE_FRAME;
     }
 
     sync = av_mallocz(sizeof(*sync));
@@ -506,6 +508,7 @@ int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
                      pkt->data, pkt->size, pkt->pts, pkt->dts,
                      pkt->pos);
 
+    avctx->field_order  = q->parser->field_order;
     /* TODO: flush delayed frames on reinit */
     if (q->parser->format       != q->orig_pix_fmt    ||
         FFALIGN(q->parser->coded_width, 16)  != FFALIGN(avctx->coded_width, 16) ||
@@ -530,7 +533,6 @@ int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
         avctx->height       = q->parser->height;
         avctx->coded_width  = FFALIGN(q->parser->coded_width, 16);
         avctx->coded_height = FFALIGN(q->parser->coded_height, 16);
-        avctx->field_order  = q->parser->field_order;
         avctx->level        = q->avctx_internal->level;
         avctx->profile      = q->avctx_internal->profile;