diff options
author | Xidorn Quan <quanxunzhen@gmail.com> | 2014-01-27 20:35:23 +0100 |
---|---|---|
committer | Sebastien Zwickert <dilaroga@gmail.com> | 2014-01-27 20:36:42 +0100 |
commit | 31a0ca9e75e4c91437c8681b9655a67f09b693dd (patch) | |
tree | 0dd52d170076041c7084facf990e37b3231f787e | |
parent | 05e5bb6107b90f1f12348aae4373b17efbba08ff (diff) | |
download | ffmpeg-31a0ca9e75e4c91437c8681b9655a67f09b693dd.tar.gz |
vda: fix crash when a frame is dropped.
Signed-off-by: Sebastien Zwickert <dilaroga@gmail.com>
-rw-r--r-- | libavcodec/vda.h | 6 | ||||
-rw-r--r-- | libavcodec/vda_h264.c | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/vda.h b/libavcodec/vda.h index b3d6399a65..2f68188c9c 100644 --- a/libavcodec/vda.h +++ b/libavcodec/vda.h @@ -41,6 +41,12 @@ #include "libavcodec/version.h" +// extra flags not defined in VDADecoder.h +enum { + kVDADecodeInfo_Asynchronous = 1UL << 0, + kVDADecodeInfo_FrameDropped = 1UL << 1 +}; + /** * @defgroup lavc_codec_hwaccel_vda VDA * @ingroup lavc_codec_hwaccel diff --git a/libavcodec/vda_h264.c b/libavcodec/vda_h264.c index e0561e2914..1eff671f7f 100644 --- a/libavcodec/vda_h264.c +++ b/libavcodec/vda_h264.c @@ -41,6 +41,9 @@ static void vda_decoder_callback(void *vda_hw_ctx, { struct vda_context *vda_ctx = vda_hw_ctx; + if (infoFlags & kVDADecodeInfo_FrameDropped) + vda_ctx->cv_buffer = NULL; + if (!image_buffer) return; |