mirror of
https://github.com/mpv-player/mpv
synced 2025-02-16 12:17:12 +00:00
Replace remaining avcodec_close() calls
This API isn't deprecated (yet?), but it's still inferior and harder to use than avcodec_free_context(). Leave the call only in 1 case in af_lavcac3enc.c, where we apparently seriously close and reopen the encoder for whatever reason.
This commit is contained in:
parent
8e20ef4292
commit
ddd068491c
@ -137,11 +137,8 @@ static void determine_codec_params(struct dec_audio *da, AVPacket *pkt,
|
|||||||
if (!ctx)
|
if (!ctx)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (avcodec_open2(ctx, codec, NULL) < 0) {
|
if (avcodec_open2(ctx, codec, NULL) < 0)
|
||||||
av_free(ctx); // don't attempt to avcodec_close() an unopened ctx
|
|
||||||
ctx = NULL;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
|
|
||||||
if (avcodec_send_packet(ctx, pkt) < 0)
|
if (avcodec_send_packet(ctx, pkt) < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -192,10 +192,7 @@ static void uninit(struct af_instance* af)
|
|||||||
af_ac3enc_t *s = af->priv;
|
af_ac3enc_t *s = af->priv;
|
||||||
|
|
||||||
if (s) {
|
if (s) {
|
||||||
if(s->lavc_actx) {
|
avcodec_free_context(&s->lavc_actx);
|
||||||
avcodec_close(s->lavc_actx);
|
|
||||||
av_free(s->lavc_actx);
|
|
||||||
}
|
|
||||||
talloc_free(s->pending);
|
talloc_free(s->pending);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,10 +384,7 @@ void encode_lavc_finish(struct encode_lavc_context *ctx)
|
|||||||
stream_write_buffer(ctx->twopass_bytebuffer_v,
|
stream_write_buffer(ctx->twopass_bytebuffer_v,
|
||||||
stats, strlen(stats));
|
stats, strlen(stats));
|
||||||
}
|
}
|
||||||
avcodec_close(ctx->vcc);
|
avcodec_free_context(&ctx->vcc);
|
||||||
talloc_free(ctx->vcc->stats_in);
|
|
||||||
av_free(ctx->vcc);
|
|
||||||
ctx->vcc = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->acc) {
|
if (ctx->acc) {
|
||||||
@ -397,10 +394,7 @@ void encode_lavc_finish(struct encode_lavc_context *ctx)
|
|||||||
stream_write_buffer(ctx->twopass_bytebuffer_a,
|
stream_write_buffer(ctx->twopass_bytebuffer_a,
|
||||||
stats, strlen(stats));
|
stats, strlen(stats));
|
||||||
}
|
}
|
||||||
avcodec_close(ctx->acc);
|
avcodec_free_context(&ctx->acc);
|
||||||
talloc_free(ctx->acc->stats_in);
|
|
||||||
av_free(ctx->acc);
|
|
||||||
ctx->acc = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ctx->avc->nb_streams; i++) {
|
for (i = 0; i < ctx->avc->nb_streams; i++) {
|
||||||
|
@ -2239,11 +2239,7 @@ static void mkv_seek_reset(demuxer_t *demuxer)
|
|||||||
if (track->av_parser)
|
if (track->av_parser)
|
||||||
av_parser_close(track->av_parser);
|
av_parser_close(track->av_parser);
|
||||||
track->av_parser = NULL;
|
track->av_parser = NULL;
|
||||||
if (track->av_parser_codec) {
|
avcodec_free_context(&track->av_parser_codec);
|
||||||
avcodec_close(track->av_parser_codec);
|
|
||||||
av_free(track->av_parser_codec);
|
|
||||||
}
|
|
||||||
track->av_parser_codec = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free_block(&mkv_d->tmp_block);
|
free_block(&mkv_d->tmp_block);
|
||||||
|
@ -500,9 +500,7 @@ static void uninit(struct sd *sd)
|
|||||||
|
|
||||||
for (int n = 0; n < MAX_QUEUE; n++)
|
for (int n = 0; n < MAX_QUEUE; n++)
|
||||||
clear_sub(&priv->subs[n]);
|
clear_sub(&priv->subs[n]);
|
||||||
avcodec_close(priv->avctx);
|
avcodec_free_context(&priv->avctx);
|
||||||
av_free(priv->avctx->extradata);
|
|
||||||
av_free(priv->avctx);
|
|
||||||
talloc_free(priv);
|
talloc_free(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,9 +160,7 @@ static bool write_lavc(struct image_writer_ctx *ctx, mp_image_t *image, FILE *fp
|
|||||||
|
|
||||||
success = !!got_output;
|
success = !!got_output;
|
||||||
error_exit:
|
error_exit:
|
||||||
if (avctx)
|
avcodec_free_context(&avctx);
|
||||||
avcodec_close(avctx);
|
|
||||||
av_free(avctx);
|
|
||||||
av_frame_free(&pic);
|
av_frame_free(&pic);
|
||||||
av_packet_unref(&pkt);
|
av_packet_unref(&pkt);
|
||||||
return success;
|
return success;
|
||||||
|
Loading…
Reference in New Issue
Block a user