[FFmpeg-cvslog] avformat/mux: Remove redundant resetting
Andreas Rheinhardt
git at videolan.org
Sat Apr 18 01:43:15 EEST 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sat Apr 11 13:48:50 2020 +0200| [00aa6dea3f3c1f15e55ba7d0dd99071065b7a3c7] | committer: Andreas Rheinhardt
avformat/mux: Remove redundant resetting
Now that ff_interleave_add_packet() always returns blank packets, the
input packet to ff_interleave_packet_per_dts() will always be blank on
return as well (if supplied) and the same goes for interleave_packet()
in mux.c. Document these facts and remove the redundant resetting that
happened in av_interleaved_write_frame().
The last reference to the (long removed) destruct field that AVPackets
once had has been removed as well when updating the documentation of
ff_interleave_packet_per_dts().
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00aa6dea3f3c1f15e55ba7d0dd99071065b7a3c7
---
libavformat/internal.h | 11 ++++-------
libavformat/mux.c | 9 +++------
2 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/libavformat/internal.h b/libavformat/internal.h
index e9d7d6754a..7e4284b217 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -495,15 +495,12 @@ int ff_framehash_write_header(AVFormatContext *s);
int ff_read_packet(AVFormatContext *s, AVPacket *pkt);
/**
- * Interleave a packet per dts in an output media file.
+ * Interleave an AVPacket per dts so it can be muxed.
*
- * Packets with pkt->destruct == av_destruct_packet will be freed inside this
- * function, so they cannot be used after it. Note that calling av_packet_unref()
- * on them is still safe.
- *
- * @param s media file handle
+ * @param s an AVFormatContext for output. pkt resp. out will be added to
+ * resp. taken from its packet buffer.
* @param out the interleaved packet will be output here
- * @param pkt the input packet
+ * @param pkt the input packet; will be blank on return if not NULL
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 92e5636dbe..5fc42d57b6 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -1158,7 +1158,7 @@ int ff_interleaved_peek(AVFormatContext *s, int stream,
/**
* Interleave an AVPacket correctly so it can be muxed.
* @param out the interleaved packet will be output here
- * @param in the input packet
+ * @param in the input packet; will always be blank on return if not NULL
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
@@ -1213,14 +1213,11 @@ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt)
for (;; ) {
AVPacket opkt;
int ret = interleave_packet(s, &opkt, pkt, flush);
- if (pkt) {
- memset(pkt, 0, sizeof(*pkt));
- av_init_packet(pkt);
- pkt = NULL;
- }
if (ret <= 0)
return ret;
+ pkt = NULL;
+
ret = write_packet(s, &opkt);
av_packet_unref(&opkt);
More information about the ffmpeg-cvslog
mailing list