• Martin Storsjö's avatar
    avio: Allow custom IO users to get labels for the output bytestream · db7968bf
    Martin Storsjö authored
    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: 's avatarMartin Storsjö <martin@martin.st>
    db7968bf
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
avconv.c Loading commit data...
avconv.h Loading commit data...
avconv_dxva2.c Loading commit data...
avconv_filter.c Loading commit data...
avconv_opt.c Loading commit data...
avconv_qsv.c Loading commit data...
avconv_vaapi.c Loading commit data...
avconv_vda.c Loading commit data...
avconv_vdpau.c Loading commit data...
avplay.c Loading commit data...
avprobe.c Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...