diff options
author | sfan5 <sfan5@live.de> | 2021-12-13 16:29:41 +0100 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2022-01-10 22:56:52 +0100 |
commit | 39bed5c7fc6c02d3149740bc4b65d50200e6abd6 (patch) | |
tree | fcc7aa698017331ae420324d310092213c4890b4 /common | |
parent | b1bf4393a85f70ae7b54afdeff1af41c6937acf2 (diff) | |
download | mpv-39bed5c7fc6c02d3149740bc4b65d50200e6abd6.tar.bz2 mpv-39bed5c7fc6c02d3149740bc4b65d50200e6abd6.tar.xz |
encode_lavc: replace deprecated av_init_packet()
Diffstat (limited to 'common')
-rw-r--r-- | common/encode_lavc.c | 12 | ||||
-rw-r--r-- | common/encode_lavc.h | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/common/encode_lavc.c b/common/encode_lavc.c index cf033e07d5..bf77f04969 100644 --- a/common/encode_lavc.c +++ b/common/encode_lavc.c @@ -731,6 +731,7 @@ static void encoder_destroy(void *ptr) { struct encoder_context *p = ptr; + av_packet_free(&p->pkt); avcodec_free_context(&p->encoder); free_stream(p->twopass_bytebuffer); } @@ -910,6 +911,9 @@ bool encoder_init_codec_and_muxer(struct encoder_context *p, if (avcodec_parameters_from_context(p->info.codecpar, p->encoder) < 0) goto fail; + p->pkt = av_packet_alloc(); + MP_HANDLE_OOM(p->pkt); + encode_lavc_add_stream(p, p->encode_lavc_ctx, &p->info, on_ready, ctx); if (!p->mux_stream) goto fail; @@ -930,11 +934,9 @@ bool encoder_encode(struct encoder_context *p, AVFrame *frame) goto fail; } + AVPacket *packet = p->pkt; for (;;) { - AVPacket packet = {0}; - av_init_packet(&packet); - - status = avcodec_receive_packet(p->encoder, &packet); + status = avcodec_receive_packet(p->encoder, packet); if (status == AVERROR(EAGAIN)) break; if (status < 0 && status != AVERROR_EOF) @@ -948,7 +950,7 @@ bool encoder_encode(struct encoder_context *p, AVFrame *frame) if (status == AVERROR_EOF) break; - encode_lavc_add_packet(p->mux_stream, &packet); + encode_lavc_add_packet(p->mux_stream, packet); } return true; diff --git a/common/encode_lavc.h b/common/encode_lavc.h index cc4030a292..c60afb6cc5 100644 --- a/common/encode_lavc.h +++ b/common/encode_lavc.h @@ -83,7 +83,9 @@ struct encoder_context { AVCodecContext *encoder; struct mux_stream *mux_stream; + // (essentially private) struct stream *twopass_bytebuffer; + AVPacket *pkt; }; // Free with talloc_free(). (Keep in mind actual deinitialization requires |