[FFmpeg-devel] [PATCH v2 3/3] lavc/libdavs2: correct frame type setting

hwren hwrenx at 126.com
Wed Oct 31 12:23:51 EET 2018


Signed-off-by: hwren <hwrenx at 126.com>
---
 libavcodec/libdavs2.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c
index a1815d2..d7bcaa3 100644
--- a/libavcodec/libdavs2.c
+++ b/libavcodec/libdavs2.c
@@ -94,11 +94,26 @@ static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic,
                    pic->widths[plane] * bytes_per_sample);
     }
 
+    switch (pic->type) {
+        case DAVS2_PIC_I:
+            frame->pict_type = AV_PICTURE_TYPE_I;
+            break;
+        case DAVS2_PIC_P:
+            frame->pict_type = AV_PICTURE_TYPE_P;
+            break;
+        case DAVS2_PIC_B:
+        case DAVS2_PIC_F:
+            frame->pict_type = AV_PICTURE_TYPE_B;
+            break;
+        default:
+            frame->pict_type = AV_PICTURE_TYPE_NONE;
+    }
+
     frame->width     = cad->headerset.width;
     frame->height    = cad->headerset.height;
     frame->pts       = cad->out_frame.pts;
-    frame->pict_type = pic->type;
     frame->format    = avctx->pix_fmt;
+    frame->key_frame = pic->type == DAVS2_PIC_I ? 1 : 0;
 
     return 1;
 }
-- 
2.7.4



More information about the ffmpeg-devel mailing list