ffmpeg | branch: master | Limin Wang <[email protected]> | Wed May 27 12:35:28 2020 +0800| [b01d12bcc0fcebb2b5f06296d7a5c140cb30655b] | committer: Limin Wang
avcodec/h264dec: Add FF_CODEC_CAP_INIT_CLEANUP then ff_h264_free_tables() and h264_decode_end() can be removed in h264_decode_init() if it's failed. The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread, it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have. Reviewed-by: Anton Khirnov <[email protected]> Signed-off-by: Limin Wang <[email protected]> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b01d12bcc0fcebb2b5f06296d7a5c140cb30655b --- libavcodec/h264dec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 47d7cbf158..e463fde2a5 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -228,7 +228,6 @@ int ff_h264_alloc_tables(H264Context *h) return 0; fail: - ff_h264_free_tables(h); return AVERROR(ENOMEM); } @@ -420,7 +419,6 @@ static av_cold int h264_decode_init(AVCodecContext *avctx) av_log(avctx, explode ? AV_LOG_ERROR: AV_LOG_WARNING, "Error decoding the extradata\n"); if (explode) { - h264_decode_end(avctx); return ret; } ret = 0; @@ -1107,7 +1105,7 @@ AVCodec ff_h264_decoder = { NULL }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_EXPORTS_CROPPING | - FF_CODEC_CAP_ALLOCATE_PROGRESS, + FF_CODEC_CAP_ALLOCATE_PROGRESS | FF_CODEC_CAP_INIT_CLEANUP, .flush = h264_decode_flush, .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context), .profiles = NULL_IF_CONFIG_SMALL(ff_h264_profiles), _______________________________________________ ffmpeg-cvslog mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
