[FFmpeg-cvslog] lavf: rewrite the av_interleaved_write_frame() doxy

Anton Khirnov git at videolan.org
Mon Feb 10 13:47:26 CET 2014


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Feb  4 15:46:51 2014 +0100| [ad7f2b69a546ec65ef6b11e1a0fd58e6bb66bc4b] | committer: Anton Khirnov

lavf: rewrite the av_interleaved_write_frame() doxy

Remove some vague / incorrect statements and make the text more specific
and less confusing.

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

 libavformat/avformat.h |   44 ++++++++++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 18 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index ab09efd..02ea6ad 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1457,28 +1457,36 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt);
 /**
  * Write a packet to an output media file ensuring correct interleaving.
  *
- * The packet must contain one audio or video frame.
- * If the packets are already correctly interleaved, the application should
- * call av_write_frame() instead as it is slightly faster. It is also important
- * to keep in mind that completely non-interleaved input will need huge amounts
- * of memory to interleave with this, so it is preferable to interleave at the
- * demuxer level.
+ * This function will buffer the packets internally as needed to make sure the
+ * packets in the output file are properly interleaved in the order of
+ * increasing dts. Callers doing their own interleaving should call
+ * av_write_frame() instead of this function.
  *
  * @param s media file handle
- * @param pkt The packet containing the data to be written. pkt->buf must be set
- * to a valid AVBufferRef describing the packet data. Libavformat takes
- * ownership of this reference and will unref it when it sees fit. The caller
- * must not access the data through this reference after this function returns.
- * This can be NULL (at any time, not just at the end), to flush the
- * interleaving queues.
- * Packet's @ref AVPacket.stream_index "stream_index" field must be set to the
- * index of the corresponding stream in @ref AVFormatContext.streams
- * "s.streams".
- * It is very strongly recommended that timing information (@ref AVPacket.pts
- * "pts", @ref AVPacket.dts "dts" @ref AVPacket.duration "duration") is set to
- * correct values.
+ * @param pkt @parblock
+ *            The packet containing the data to be written.
+ *
+ *            If the packet is reference-counted, this function will take
+ *            ownership of this reference and unreference it later when it sees
+ *            fit.
+ *            The caller must not access the data through this reference after
+ *            this function returns. If the packet is not reference-counted,
+ *            libavformat will make a copy.
+ *
+ *            This parameter can be NULL (at any time, not just at the end), to
+ *            flush the interleaving queues.
+ *
+ *            Packet's @ref AVPacket.stream_index "stream_index" field must be
+ *            set to the index of the corresponding stream in @ref
+ *            AVFormatContext.streams "s->streams". It is very strongly
+ *            recommended that timing information (@ref AVPacket.pts "pts", @ref
+ *            AVPacket.dts "dts", @ref AVPacket.duration "duration") is set to
+ *            correct values.
+ *            @endparblock
  *
  * @return 0 on success, a negative AVERROR on error.
+ *
+ * @see av_write_frame(), AVFormatContext.max_interleave_delta
  */
 int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);
 



More information about the ffmpeg-cvslog mailing list