[FFmpeg-cvslog] hevc: handle a NULL sps in set_sps() properly
Anton Khirnov
git at videolan.org
Mon Jul 13 16:47:50 CEST 2015
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Jul 12 18:57:10 2015 +0200| [077b55943330150db0eafd36bbee614697cabd98] | committer: Anton Khirnov
hevc: handle a NULL sps in set_sps() properly
This can happen in update_thread_context(), when the previous frame was
corrupted.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=077b55943330150db0eafd36bbee614697cabd98
---
libavcodec/hevc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 6efdfcb..dd56d58 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -435,13 +435,19 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps)
enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmt = pix_fmts;
int ret;
- export_stream_params(s->avctx, &s->ps, sps);
-
pic_arrays_free(s);
+ s->ps.sps = NULL;
+ s->ps.vps = NULL;
+
+ if (!sps)
+ return 0;
+
ret = pic_arrays_init(s, sps);
if (ret < 0)
goto fail;
+ export_stream_params(s->avctx, &s->ps, sps);
+
if (sps->pix_fmt == AV_PIX_FMT_YUV420P || sps->pix_fmt == AV_PIX_FMT_YUVJ420P) {
#if CONFIG_HEVC_DXVA2_HWACCEL
*fmt++ = AV_PIX_FMT_DXVA2_VLD;
More information about the ffmpeg-cvslog
mailing list