Signed-off-by: hwren <hwr...@126.com>
---
 libavcodec/libdavs2.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c
index cadf995..e463b2e 100644
--- a/libavcodec/libdavs2.c
+++ b/libavcodec/libdavs2.c
@@ -129,7 +129,16 @@ static int davs2_decode_frame(AVCodecContext *avctx, void 
*data,
     int           ret      = DAVS2_DEFAULT;
 
     if (!buf_size) {
-        return 0;
+        ret = davs2_decoder_flush(cad->decoder, &cad->headerset, 
&cad->out_frame);
+        if (ret == DAVS2_END) {
+            return 0;
+        } else if (ret == DAVS2_GOT_FRAME) {
+            *got_frame = davs2_dump_frames(avctx, &cad->out_frame, 
&cad->headerset, ret, frame);
+            davs2_decoder_frame_unref(cad->decoder, &cad->out_frame);
+            return ret;
+        } else {
+            return AVERROR_EXTERNAL;
+        }
     }
 
     cad->packet.data = buf_ptr;
-- 
2.7.4

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to