summaryrefslogtreecommitdiff
path: root/libavformat/rmenc.c
Commit message (Collapse)AuthorAge
* cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* 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.
* rmenc: do not use AVCodecContext.frame_sizeAnton Khirnov2015-12-12
| | | | | | It will not be set if the stream codec context is not the encoding context. Use av_get_audio_frame_duration() instead, it should work for all audio codecs supported by the muxer.
* rmenc: Drop the temporary buffer for ac3 byteswapLuca Barbato2015-04-20
| | | | | | Use direcly avio_w8(). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* rmenc: Check memory allocationFederico Tomassetti2015-03-21
| | | | | | Bug-Id: CID 1257832 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* rmenc: limit packet sizeAndreas Cadhalpun2015-03-05
| | | | | | | | | | | | The chunk size is limited to UINT16_MAX (written by avio_wb16), so make sure that the packet size is not too large. Such large frames need to be split into slices smaller than 64 kB, but that is currently supported neither by the rv10/rv20 encoders nor the rm muxer. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avformat: Don't anonymously typedef structsDiego Biurrun2015-02-14
|
* lavf: switch to AVStream.time_base as the hint for the muxer timebaseAnton Khirnov2014-06-18
| | | | | | | | | | | | Previously, AVStream.codec.time_base was used for that purpose, which was quite confusing for the callers. This change also opens the path for removing AVStream.codec. The change in the lavf-mkv test is due to the native timebase (1/1000) being used instead of the default one (1/90000), so the packets are now sent to the crc muxer in the same order in which they are demuxed (previously some of them got reordered because of inexact timestamp conversion).
* lavf: Don't explicitly flush after each written packet in muxersClément Bœsch2013-09-16
| | | | | | | | Since 596e5d4783, this is not necessary anymore. It also allows to actually disable the flushing, improving write performance (but possibly giving worse latency in real-time streaming). Signed-off-by: Martin Storsjö <martin@martin.st>
* lavf: flush the output AVIOContext in av_write_trailer().Anton Khirnov2012-09-15
| | | | | | | This is consistent with stdio and is what we want to do in all cases. Fixes a bug in the voc muxer which didn't flush in write_trailer() previously. This is the cause of the change in the test results.
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* avformat: Drop pointless "format" from container long namesDiego Biurrun2012-07-30
|
* cosmetics: Align muxer/demuxer declarationsMartin Storsjö2012-04-06
| | | | | | | Also add missing trailing commas, break long codec_tag lines and add spaces in codec_tag declarations. Signed-off-by: Martin Storsjö <martin@martin.st>
* Drop some pointless void* return value casts from av_malloc() invocations.Diego Biurrun2012-01-02
|
* lavf: use designated initialisers for all (de)muxers.Anton Khirnov2011-07-17
| | | | It's more readable and less prone to breakage.
* Remove all uses of now deprecated metadata functions.Anton Khirnov2011-06-08
|
* avio: introduce an AVIOContext.seekable fieldAnton Khirnov2011-04-03
| | | | Use it instead of url_is_streamed and AVIOContext.is_streamed.
* rmenc: replace avio_seek(0) with avio_tell()Anton Khirnov2011-03-20
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* avio: rename put_flush_packet -> avio_flushAnton Khirnov2011-03-16
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: avio_ prefix for url_fseekAnton Khirnov2011-03-01
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavf: replace remaining uses of put_tag with avio_writeAnton Khirnov2011-02-25
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavf: use a new ffio_wfourcc macro instead of put_tag() where possibleAnton Khirnov2011-02-25
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: avio: avio_ prefixes for put_* functionsAnton Khirnov2011-02-21
| | | | | | | | | | | | In the name of consistency: put_byte -> avio_w8 put_<type> -> avio_w<type> put_buffer -> avio_write put_nbyte will be made private put_tag will be merged with avio_put_str Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: rename ByteIOContext to AVIOContext.Anton Khirnov2011-02-20
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.Diego Elio Pettenò2011-01-26
| | | | | This also lists the objects from those two libraries as internal (by adding the ff_ prefix) so that they can then be hidden via linker scripts.
* Reindent after r23361.Francesco Lavra2010-05-28
| | | | | | Patch by Francesco Lavra <francescolavra interfree it>. Originally committed as revision 23362 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use ff_rm_codec_tags[] in RM muxer. This, incidentally, also allows muxingFrancesco Lavra2010-05-28
| | | | | | | | | other audio codecs rather than only AC-3, so add some code that makes word byte-swapping only happen for AC-3, not for all audio codecs. Patch by Francesco Lavra <francescolavra interfree it>. Originally committed as revision 23361 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Replace all occurences of PKT_FLAG_KEY with AV_PKT_FLAG_KEY.Jean-Daniel Dupas2010-03-31
| | | | | | Patch by Jean-Daniel Dupas, devlists shadowlab org Originally committed as revision 22744 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Define AVMediaType enum, and use it instead of enum CodecType, whichStefano Sabatini2010-03-30
| | | | | | is deprecated and will be dropped at the next major bump. Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove index writing in RM muxer, since it is broken (multiple streams perRonald S. Bultje2009-03-21
| | | | | | | single index chunk) and is always empty anyway. See "[PATCH] rmenc.c: remove index writing" thread. Originally committed as revision 18119 to svn://svn.ffmpeg.org/ffmpeg/trunk
* use new metadata API in rm (de)muxerAurelien Jacobs2009-02-17
| | | | Originally committed as revision 17396 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use more descriptive format long_names.Diego Biurrun2009-02-12
| | | | Originally committed as revision 17184 to svn://svn.ffmpeg.org/ffmpeg/trunk
* cosmetics: Remove pointless period after copyright statement non-sentences.Diego Biurrun2009-01-19
| | | | Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Split RMContext into RMDemux/MuxContext and make them private in rmdec/enc.c.Ronald S. Bultje2008-12-13
| | | | | | | | Reason for this is that there are no shared entries in the demuxer/muxer context, making it a mystery as to why it was shared between the two. See "[PATCH] clean rmdemux/muxcontext" patch on mailinglist. Originally committed as revision 16111 to svn://svn.ffmpeg.org/ffmpeg/trunk
* cosmetics: make all references to AC-3 capitalized and hyphenatedJustin Ruggles2008-08-03
| | | | Originally committed as revision 14523 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.Stefano Sabatini2008-06-03
| | | | | | | patch by Stefano Sabatini, stefano.sabatini-lala poste.it along with some spelling/consistency fixes for the long names by me Originally committed as revision 13649 to svn://svn.ffmpeg.org/ffmpeg/trunk
* consistency cosmetics: indices --> indexesDiego Biurrun2008-05-26
| | | | Originally committed as revision 13444 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix muxer so that generated files are playable by realplayer, other openKostya Shishkov2007-12-02
| | | | | | | source players and by fixed ffmpeg rm demuxer (after r11127) Patch by kostya Originally committed as revision 11129 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use dynamically allocated ByteIOContext in AVFormatContextBjörn Axelsson2007-11-21
| | | | | | | patch by: Björn Axelsson, bjorn d axelsson a intinor d se thread: [PATCH] Remove static ByteIOContexts, 06 nov 2007 Originally committed as revision 11071 to svn://svn.ffmpeg.org/ffmpeg/trunk
* split rm muxer and demuxer in their own filesAurelien Jacobs2007-05-30
Originally committed as revision 9156 to svn://svn.ffmpeg.org/ffmpeg/trunk