From db7968bff4851c2be79b15b2cb2ae747424d2fca Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Wed, 4 May 2016 17:18:35 +0300 Subject: avio: Allow custom IO users to get labels for the output bytestream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows callers with avio write callbacks to get the bytestream positions that correspond to keyframes, suitable for live streaming. In the simplest form, a caller could expect that a header is written to the bytestream during the avformat_write_header, and the data output to the avio context during e.g. av_write_frame corresponds exactly to the current packet passed in. When combined with av_interleaved_write_frame, and with muxers that do buffering (most muxers that do some sort of fragmenting or clustering), the mapping from input data to bytestream positions is nontrivial. This allows callers to get directly information about what part of the bytestream is what, without having to resort to assumptions about the muxer behaviour. One keyframe/fragment/block can still be split into multiple (if they are larger than the aviocontext buffer), which would call the callback with e.g. AVIO_DATA_MARKER_SYNC_POINT, followed by AVIO_DATA_MARKER_UNKNOWN for the second time it is called with the following data. Signed-off-by: Martin Storsjö --- doc/APIchanges | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/APIchanges b/doc/APIchanges index eae92c52ee..8f6cdca467 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,10 @@ libavutil: 2015-08-28 API changes, most recent first: +2016-xx-xx - xxxxxxx - lavf 57.7.0 - avio.h + Add AVIODataMarkerType, write_data_type, ignore_boundary_point and + avio_write_marker. + 2016-xx-xx - xxxxxxx - lavu 55.12.0 - opt.h Add av_stereo3d_type_name() and av_stereo3d_from_name(). -- cgit v1.2.3