summaryrefslogtreecommitdiff
path: root/libavformat/mov_chan.c
Commit message (Collapse)AuthorAge
* lavf: replace AVStream.codec with AVStream.codecparAnton Khirnov2016-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, AVStream contains an embedded AVCodecContext instance, which is used by demuxers to export stream parameters to the caller and by muxers to receive stream parameters from the caller. It is also used internally as the codec context that is passed to parsers. In addition, it is also widely used by the callers as the decoding (when demuxer) or encoding (when muxing) context, though this has been officially discouraged since Libav 11. There are multiple important problems with this approach: - the fields in AVCodecContext are in general one of * stream parameters * codec options * codec state However, it's not clear which ones are which. It is consequently unclear which fields are a demuxer allowed to set or a muxer allowed to read. This leads to erratic behaviour depending on whether decoding or encoding is being performed or not (and whether it uses the AVStream embedded codec context). - various synchronization issues arising from the fact that the same context is used by several different APIs (muxers/demuxers, parsers, bitstream filters and encoders/decoders) simultaneously, with there being no clear rules for who can modify what and the different processes being typically delayed with respect to each other. - avformat_find_stream_info() making it necessary to support opening and closing a single codec context multiple times, thus complicating the semantics of freeing various allocated objects in the codec context. Those problems are resolved by replacing the AVStream embedded codec context with a newly added AVCodecParameters instance, which stores only the stream parameters exported by the demuxers or read by the muxers.
* mov: abort on EOF in ff_mov_read_chanAndreas Cadhalpun2015-05-31
| | | | | | | Otherwise the loop can take a lot of time if num_descr is very large. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Replace av_dlog with normal av_log at trace levelVittorio Giovara2015-04-19
| | | | This applies to every library where performance is not critical.
* Include libavutil/channel_layout.h instead of libavutil/audioconvert.hJustin Ruggles2012-11-11
| | | | Also reorder some other #include when applicable.
* mov_chan: Only set the channel_layout if setting it to a nonzero valueMartin Storsjö2012-09-08
| | | | | | | | If regularly parsing new chan atoms (as in rtpdec_qt), but the chan atoms don't actually contain any channel layout, don't reset the value that the caller has filled in (by guessing). Signed-off-by: Martin Storsjö <martin@martin.st>
* mov_chan: Reindent an incorrectly indented lineMartin Storsjö2012-09-08
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov_chan: Pass a separate AVIOContext for readingSamuel Pitoiset2012-09-07
| | | | | | | This fixes crashes when called from rtpdec_qt, where AVFormatContext->pb is null, a crash present since 3bab7cd128. Signed-off-by: Martin Storsjö <martin@martin.st>
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* avformat: move 'chan' tag parsing to mov_chan.c to share with the CAF demuxerJustin Ruggles2012-07-19
|
* movenc: Add channel layouts for PCM.Alex Converse2012-06-27
|
* mov_chan: Fix operator precedence by adding parenthesesMartin Storsjö2012-06-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Add missing terminator to mov_ch_layout_map_1ch.Alex Converse2012-03-22
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: Libav-stable@libav.org
* mov: Support MOV_CH_LAYOUT_USE_DESCRIPTIONS for labeled descriptions.Alex Converse2012-01-05
|
* mov: add support for reading and writing the 'chan' tagJustin Ruggles2011-12-09
This implements reading the tag in the demuxer and adds support for writing it in the muxer. Some example channel layout tables for muxing are included for ac3, aac, and alac, but they are not utilized yet.