[FFmpeg-cvslog] fftools/ffmpeg, doc/examples: Remove redundant av_packet_unref

Andreas Rheinhardt git at videolan.org
Sun Oct 3 23:48:22 EEST 2021


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Tue Mar 31 09:23:19 2020 +0200| [8a23159797f8ab60c4e01307e94d2801149617b0] | committer: Andreas Rheinhardt

fftools/ffmpeg, doc/examples: Remove redundant av_packet_unref

av_interleaved_write_frame() already returns blank packets.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8a23159797f8ab60c4e01307e94d2801149617b0
---

 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 fbf6de0cae..8deaca6a06 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 98c2421938..bb29e3cec5 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -871,7 +871,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)



More information about the ffmpeg-cvslog mailing list