From: Limin Wang <lance.lmw...@gmail.com> 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. Signed-off-by: Limin Wang <lance.lmw...@gmail.com> --- libavcodec/h264dec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 4c355fe..3478b38 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -226,7 +226,6 @@ int ff_h264_alloc_tables(H264Context *h) return 0; fail: - ff_h264_free_tables(h); return AVERROR(ENOMEM); } @@ -418,7 +417,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; @@ -1036,7 +1034,7 @@ AVCodec ff_h264_decoder = { .decode = h264_decode_frame, .capabilities = /*AV_CODEC_CAP_DRAW_HORIZ_BAND |*/ AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS | - AV_CODEC_CAP_FRAME_THREADS, + AV_CODEC_CAP_FRAME_THREADS | FF_CODEC_CAP_INIT_CLEANUP, .hw_configs = (const AVCodecHWConfigInternal*[]) { #if CONFIG_H264_DXVA2_HWACCEL HWACCEL_DXVA2(h264), -- 2.6.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".