1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/doc
Martin Storsjö db7968bff4 avio: Allow custom IO users to get labels for the output bytestream
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ö <martin@martin.st>
2016-05-18 10:36:45 +03:00
..
doxy Split global .gitignore file into per-directory files 2016-05-13 14:55:56 +02:00
examples Split global .gitignore file into per-directory files 2016-05-13 14:55:56 +02:00
.gitignore Split global .gitignore file into per-directory files 2016-05-13 14:55:56 +02:00
APIchanges avio: Allow custom IO users to get labels for the output bytestream 2016-05-18 10:36:45 +03:00
avconv.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
avplay.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
avprobe.texi
avtools-common-opts.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
avutil.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
bitstream_filters.texi
build_system.txt doc: Update paths to match new examples location 2016-03-23 09:35:40 +01:00
decoders.texi doc: Use the correct @subsection tag 2014-12-07 21:50:47 +01:00
demuxers.texi
developer.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
doxy-wrapper.sh Move all example programs to doc/examples 2014-02-16 21:37:21 +01:00
Doxyfile doc: Update paths to match new examples location 2016-03-23 09:35:40 +01:00
encoders.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
eval.texi
faq.texi
fate.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
filters.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
general.texi lavc: G.723.1 encoder 2015-11-30 10:58:46 -05:00
git-howto.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
git-howto.txt
indevs.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
libavfilter.texi doc: Libavfilter English cleanup 2014-04-12 14:34:11 +02:00
Makefile Add a QSV decoding example. 2015-02-28 21:51:24 +01:00
metadata.texi
multithreading.txt
muxers.texi hlsenc: Support outputting specific versions 2015-08-25 19:43:58 +02:00
nut.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
optimization.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
outdevs.texi
platform.texi cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
print_options.c
protocols.texi file: Add an option for following a file that is being written 2016-03-24 10:33:59 +02:00
rate_distortion.txt
RELEASE_NOTES Add release notes for 11. 2014-09-04 07:14:27 -07:00
soc.txt
swscale.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
t2h.init
tablegen.txt
texi2pod.pl texi2pod: Make it output a single encoding string 2014-09-03 02:14:17 +02:00
viterbi.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00