From 380bd1a5bba5321a8c37e842e72665e23d13b379 Mon Sep 17 00:00:00 2001 From: Podre-Henrique Date: Thu, 24 Apr 2025 17:30:38 -0300 Subject: [PATCH 1/2] Fix deprecated FFmpeg functions and free packet --- examples/ffmpeg-transcode.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/ffmpeg-transcode.cpp b/examples/ffmpeg-transcode.cpp index 82566445428..d54e8135598 100644 --- a/examples/ffmpeg-transcode.cpp +++ b/examples/ffmpeg-transcode.cpp @@ -194,7 +194,7 @@ static int decode_audio(struct audio_buffer *audio_buf, s16 **data, int *size) AVIOContext *avio_ctx; AVStream *stream; AVCodecContext *codec; - AVPacket packet; + AVPacket *packet; AVFrame *frame; struct SwrContext *swr; u8 *avio_ctx_buffer; @@ -279,7 +279,11 @@ static int decode_audio(struct audio_buffer *audio_buf, s16 **data, int *size) return -1; } - av_init_packet(&packet); + packet=av_packet_alloc(); + if (!packet) { + LOG("Error allocating the packet\n"); + return -1; + } frame = av_frame_alloc(); if (!frame) { LOG("Error allocating the frame\n"); @@ -289,8 +293,8 @@ static int decode_audio(struct audio_buffer *audio_buf, s16 **data, int *size) /* iterate through frames */ *data = NULL; *size = 0; - while (av_read_frame(fmt_ctx, &packet) >= 0) { - avcodec_send_packet(codec, &packet); + while (av_read_frame(fmt_ctx, packet) >= 0) { + avcodec_send_packet(codec, packet); err = avcodec_receive_frame(codec, frame); if (err == AVERROR(EAGAIN)) @@ -301,6 +305,7 @@ static int decode_audio(struct audio_buffer *audio_buf, s16 **data, int *size) /* Flush any remaining conversion buffers... */ convert_frame(swr, codec, frame, data, size, true); + av_packet_free(&packet); av_frame_free(&frame); swr_free(&swr); //avio_context_free(); // todo? From 9c2017eeaa752bd58d5f6d2142f4caba3dcb250f Mon Sep 17 00:00:00 2001 From: Podre-Henrique Date: Thu, 24 Apr 2025 18:04:04 -0300 Subject: [PATCH 2/2] avcodec_free_context --- examples/ffmpeg-transcode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ffmpeg-transcode.cpp b/examples/ffmpeg-transcode.cpp index d54e8135598..1fae58a4ffa 100644 --- a/examples/ffmpeg-transcode.cpp +++ b/examples/ffmpeg-transcode.cpp @@ -309,7 +309,7 @@ static int decode_audio(struct audio_buffer *audio_buf, s16 **data, int *size) av_frame_free(&frame); swr_free(&swr); //avio_context_free(); // todo? - avcodec_close(codec); + avcodec_free_context(&codec); avformat_close_input(&fmt_ctx); avformat_free_context(fmt_ctx);