[FFmpeg-devel] [PATCH 03/11] fftools/ffmpeg, doc/examples: Remove redundant av_packet_unref

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Sep 4 02:18:05 EEST 2021


av_interleaved_write_frame() already returns blank packets.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 doc/examples/muxing.c   | 4 +++-
 doc/examples/remuxing.c | 4 +++-
 fftools/ffmpeg.c        | 1 -
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/doc/examples/muxing.c b/doc/examples/muxing.c
index abc14a8910..879fe06299 100644
--- a/doc/examples/muxing.c
+++ b/doc/examples/muxing.c
@@ -110,7 +110,9 @@ static int write_frame(AVFormatContext *fmt_ctx, AVCodecContext *c,
         /* Write the compressed frame to the media file. */
         log_packet(fmt_ctx, &pkt);
         ret = av_interleaved_write_frame(fmt_ctx, &pkt);
-        av_packet_unref(&pkt);
+        /* pkt is now blank (av_interleaved_write_frame() takes ownership of
+         * its contents and resets pkt), so that no unreferencing is necessary.
+         * This would be different if one used av_write_frame(). */
         if (ret < 0) {
             fprintf(stderr, "Error while writing output packet: %s\n", av_err2str(ret));
             exit(1);
diff --git a/doc/examples/remuxing.c b/doc/examples/remuxing.c
index 13313a1748..9835cc4c00 100644
--- a/doc/examples/remuxing.c
+++ b/doc/examples/remuxing.c
@@ -163,11 +163,13 @@ int main(int argc, char **argv)
         log_packet(ofmt_ctx, &pkt, "out");
 
         ret = av_interleaved_write_frame(ofmt_ctx, &pkt);
+        /* pkt is now blank (av_interleaved_write_frame() takes ownership of
+         * its contents and resets pkt), so that no unreferencing is necessary.
+         * This would be different if one used av_write_frame(). */
         if (ret < 0) {
             fprintf(stderr, "Error muxing packet\n");
             break;
         }
-        av_packet_unref(&pkt);
     }
 
     av_write_trailer(ofmt_ctx);
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index c3df955a6a..f681fa2e87 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -869,7 +869,6 @@ static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int u
         main_return_code = 1;
         close_all_output_streams(ost, MUXER_FINISHED | ENCODER_FINISHED, ENCODER_FINISHED);
     }
-    av_packet_unref(pkt);
 }
 
 static void close_output_stream(OutputStream *ost)
-- 
2.30.2



More information about the ffmpeg-devel mailing list