[FFmpeg-devel] [PATCH 01/17] Remove unnecessary use of avcodec_close().
Anton Khirnov
anton at khirnov.net
Thu May 28 23:15:43 EEST 2020
Replace it with avcodec_free_context() or drop it completely as
appropriate.
---
libavcodec/avrndec.c | 3 +--
libavcodec/smvjpegdec.c | 3 +--
libavcodec/tests/options.c | 1 -
libavfilter/vf_subtitles.c | 1 -
libavfilter/vf_uspp.c | 6 ++----
tests/api/api-band-test.c | 1 -
tests/api/api-flac-test.c | 18 ++----------------
tests/api/api-h264-test.c | 1 -
tests/api/api-seek-test.c | 1 -
9 files changed, 6 insertions(+), 29 deletions(-)
diff --git a/libavcodec/avrndec.c b/libavcodec/avrndec.c
index 104ff2d904..a7bdab280d 100644
--- a/libavcodec/avrndec.c
+++ b/libavcodec/avrndec.c
@@ -91,8 +91,7 @@ static av_cold int end(AVCodecContext *avctx)
{
AVRnContext *a = avctx->priv_data;
- avcodec_close(a->mjpeg_avctx);
- av_freep(&a->mjpeg_avctx);
+ avcodec_free_context(&a->mjpeg_avctx);
return 0;
}
diff --git a/libavcodec/smvjpegdec.c b/libavcodec/smvjpegdec.c
index 7ea82ebfee..209f3ff334 100644
--- a/libavcodec/smvjpegdec.c
+++ b/libavcodec/smvjpegdec.c
@@ -84,8 +84,7 @@ static av_cold int smvjpeg_decode_end(AVCodecContext *avctx)
jpg->picture_ptr = NULL;
av_frame_free(&s->picture[0]);
av_frame_free(&s->picture[1]);
- ret = avcodec_close(s->avctx);
- av_freep(&s->avctx);
+ avcodec_free_context(&s->avctx);
return ret;
}
diff --git a/libavcodec/tests/options.c b/libavcodec/tests/options.c
index 2e19a6eac2..010e3c0145 100644
--- a/libavcodec/tests/options.c
+++ b/libavcodec/tests/options.c
@@ -167,7 +167,6 @@ static void test_copy(const AVCodec *c1, const AVCodec *c2)
avcodec_copy_context(ctx2, ctx1);
test_copy_print_codec(ctx1);
test_copy_print_codec(ctx2);
- avcodec_close(ctx1);
}
avcodec_free_context(&ctx1);
avcodec_free_context(&ctx2);
diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c
index a3b4029af4..1bd42391e0 100644
--- a/libavfilter/vf_subtitles.c
+++ b/libavfilter/vf_subtitles.c
@@ -478,7 +478,6 @@ static av_cold int init_subtitles(AVFilterContext *ctx)
end:
av_dict_free(&codec_opts);
- avcodec_close(dec_ctx);
avcodec_free_context(&dec_ctx);
avformat_close_input(&fmt);
return ret;
diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c
index da4029f4b2..f6fb193433 100644
--- a/libavfilter/vf_uspp.c
+++ b/libavfilter/vf_uspp.c
@@ -468,10 +468,8 @@ static av_cold void uninit(AVFilterContext *ctx)
av_freep(&uspp->src[i]);
}
- for (i = 0; i < (1 << uspp->log2_count); i++) {
- avcodec_close(uspp->avctx_enc[i]);
- av_freep(&uspp->avctx_enc[i]);
- }
+ for (i = 0; i < (1 << uspp->log2_count); i++)
+ avcodec_free_context(&uspp->avctx_enc[i]);
av_freep(&uspp->non_b_qp_table);
av_freep(&uspp->outbuf);
diff --git a/tests/api/api-band-test.c b/tests/api/api-band-test.c
index a84f6b7e55..257e741694 100644
--- a/tests/api/api-band-test.c
+++ b/tests/api/api-band-test.c
@@ -198,7 +198,6 @@ static int video_decode(const char *input_filename)
av_packet_unref(&pkt);
av_frame_free(&fr);
- avcodec_close(ctx);
avformat_close_input(&fmt_ctx);
avcodec_free_context(&ctx);
av_freep(&byte_buffer);
diff --git a/tests/api/api-flac-test.c b/tests/api/api-flac-test.c
index ae6a9316d8..3fea3258f3 100644
--- a/tests/api/api-flac-test.c
+++ b/tests/api/api-flac-test.c
@@ -223,20 +223,6 @@ static int run_test(AVCodec *enc, AVCodec *dec, AVCodecContext *enc_ctx,
return 0;
}
-static int close_encoder(AVCodecContext **enc_ctx)
-{
- avcodec_close(*enc_ctx);
- av_freep(enc_ctx);
- return 0;
-}
-
-static int close_decoder(AVCodecContext **dec_ctx)
-{
- avcodec_close(*dec_ctx);
- av_freep(dec_ctx);
- return 0;
-}
-
int main(void)
{
AVCodec *enc = NULL, *dec = NULL;
@@ -265,8 +251,8 @@ int main(void)
return 1;
if (run_test(enc, dec, enc_ctx, dec_ctx) != 0)
return 1;
- close_encoder(&enc_ctx);
- close_decoder(&dec_ctx);
+ avcodec_free_context(&enc_ctx);
+ avcodec_free_context(&dec_ctx);
}
}
diff --git a/tests/api/api-h264-test.c b/tests/api/api-h264-test.c
index 60a3ae5ef4..678a1ea166 100644
--- a/tests/api/api-h264-test.c
+++ b/tests/api/api-h264-test.c
@@ -144,7 +144,6 @@ static int video_decode_example(const char *input_filename)
av_packet_unref(&pkt);
av_frame_free(&fr);
- avcodec_close(ctx);
avformat_close_input(&fmt_ctx);
avcodec_free_context(&ctx);
av_freep(&byte_buffer);
diff --git a/tests/api/api-seek-test.c b/tests/api/api-seek-test.c
index d0531a2f73..ae33581244 100644
--- a/tests/api/api-seek-test.c
+++ b/tests/api/api-seek-test.c
@@ -266,7 +266,6 @@ end:
av_freep(&crc_array);
av_freep(&pts_array);
av_frame_free(&fr);
- avcodec_close(ctx);
avformat_close_input(&fmt_ctx);
avcodec_free_context(&ctx);
return result;
--
2.26.2
More information about the ffmpeg-devel
mailing list