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)