summaryrefslogtreecommitdiff
path: root/libavformat/ape.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.
* avformat: Don't anonymously typedef structsDiego Biurrun2015-02-14
|
* ape: Don't allow the seektable to be omittedMartin Storsjö2013-09-12
| | | | | | | | | The seektable is required for filling in ape->frames[i].pos further down. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* ape demuxer: check for EOF in potentially long loopsAnton Khirnov2013-09-02
| | | | | Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* ape: use correct context for the bit table printed in debugKostya Shishkov2013-03-27
|
* ape: 3.80-3.92 decoding supportKostya Shishkov2013-03-25
|
* add support for Monkey's Audio versions from 3.93Kostya Shishkov2013-03-15
|
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* ape: create audio stream before reading tags.Anton Khirnov2012-06-24
| | | | | | | Tags may contain attached picture, which will be exported as video streams. This ensures that the audio stream is always the first.
* 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>
* ape: do not set AVCodecContext.frame_size.Justin Ruggles2012-03-05
| | | | prevents lavf from setting incorrect packet durations.
* ape: skip packets with invalid sizeJustin Ruggles2012-02-06
|
* ape: calculate final packet size instead of guessingJustin Ruggles2012-02-06
| | | | | | | Calculates based on total file size and wavetaillength from the header. Falls back to multiplying finalframeblocks by 8 instead of 4 so that it will at least be overestimating for 24-bit. Currently it can underestimate the final packet size, leading to decoding errors.
* ape: stop reading after the last frame has been readJustin Ruggles2012-02-06
| | | | This avoids buffer overread when the last packet size estimate is too small.
* ape: return AVERROR_EOF instead of AVERROR(EIO) when demuxing is finishedJustin Ruggles2012-02-06
|
* ape: return error if seeking to the current packet fails in ape_read_packet()Justin Ruggles2012-02-06
|
* ape: fix seekingPaul B Mahol2012-02-04
| | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* lavf: remove AVFormatParameters from AVFormatContext.read_header signatureAnton Khirnov2012-01-27
|
* lavf: make av_set_pts_info private.Anton Khirnov2011-11-30
| | | | It's supposed to be called only from (de)muxers.
* lavf,lavd: replace av_new_stream->avformat_new_stream part I.Anton Khirnov2011-10-19
| | | | | Trivial replacements with sed are done in this commit: sed 's/av_new_stream(\([^)]*\), 0)/avformat_new_stream(\1, NULL)/'
* ape demuxer: fix segfault on memory allocation failure.Laurent Aimar2011-09-12
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* ape: adjust some printf format strings to correctly match argument typesDiego Biurrun2011-07-26
|
* lavf: use designated initialisers for all (de)muxers.Anton Khirnov2011-07-17
| | | | It's more readable and less prone to breakage.
* Replace custom DEBUG preprocessor trickery by the standard one.Diego Biurrun2011-06-03
|
* Employ correct printf format specifiers, mostly in debug output.Diego Biurrun2011-05-31
|
* ape: Allow demuxing of files with metadata tags.Carl Eugen Hoyos2011-05-24
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avio: introduce an AVIOContext.seekable fieldAnton Khirnov2011-04-03
| | | | Use it instead of url_is_streamed and AVIOContext.is_streamed.
* ape: check that number of seektable entries is equal to number of framesKostya Shishkov2011-04-01
| | | | | | fixes issue2480 Signed-off-by: Anton Khirnov <anton@khirnov.net>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* lavf: replace avio_seek(SEEK_CUR) with avio_skip where it makes senseAnton Khirnov2011-03-16
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Do not attempt to decode APE file with no framesKostya2011-03-16
| | | | | This fixes invalid reads/writes with this sample: http://packetstorm.linuxsecurity.com/1103-exploits/vlc105-dos.txt
* avio: deprecate url_feofAnton Khirnov2011-03-07
| | | | | | AVIOContext.eof_reached should be used directly instead. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavf: replace all uses of url_fskip with avio_seekAnton Khirnov2011-03-01
| | | | 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>
* avio: avio_ prefixes for get_* functionsAnton Khirnov2011-02-21
| | | | | | | | | | | | | | In the name of consistency: get_byte -> avio_r8 get_<type> -> avio_r<type> get_buffer -> avio_read get_partial_buffer will be made private later get_strz is left out becase I want to change it later to return something useful. 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.
* Replace all remaining occurrences of AVERROR_NOMEM withStefano Sabatini2010-04-03
| | | | | | | | | AVERROR(ENOMEM). AVERROR_NOMEM is deprecated and will be dropped at the next libavutil major bump. Originally committed as revision 22791 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
* Replace all the occurrences of AVERROR_EIO with AVERROR(EIO), and markStefano Sabatini2010-03-13
| | | | | | AVERROR_EIO for deletion at the next major bump. Originally committed as revision 22513 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Set start_time and duration in AVStream instead of AVFormatContext forDavid Conrad2010-01-21
| | | | | | | formats with only one stream; the AVFormatContext values will be derived from the AVStream and this helps in calculating stream bitrate. Originally committed as revision 21361 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move APE tag parsing into separate module.Kostya Shishkov2009-08-11
| | | | | | Based on patch by Matti Hamalainen (mhamalai<mot>students<punkt>oamk<punkt>) Originally committed as revision 19629 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Do not use internals of ByteIOContext during APE tags parsing.Matti Hamalainen2009-08-11
| | | | | | | Patch by Matti Hamalainen, mail = reverse("if.kmao.stneduts@ialamahm") Thread: [PATCH] 2/6 Fix broken APE tag key handling Originally committed as revision 19628 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove incorrect APE tag size adjustment based on flags.Matti Hamalainen2009-08-11
| | | | | | | Patch by Matti Hamalainen (mhamalai <luona> students <piste> oamk <piste> fi) Thread: [PATCH] 1/6 Remove incorrect APE tag size adjustment based on flags Originally committed as revision 19627 to svn://svn.ffmpeg.org/ffmpeg/trunk
* apedec: display a warning when truncating a metadata tagAurelien Jacobs2009-02-17
| | | | Originally committed as revision 17394 to svn://svn.ffmpeg.org/ffmpeg/trunk
* use new metadata API in ape demuxerAurelien Jacobs2009-02-17
| | | | Originally committed as revision 17388 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a context to av_log() calls and extend ape_dumpinfo prototype to do that.Benoit Fouet2009-02-16
| | | | Originally committed as revision 17372 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix build: Add intreadwrite.h and bswap.h #includes where necessary.Diego Biurrun2009-01-11
| | | | Originally committed as revision 16556 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Bump Major version, this commit is almost just renaming bits_per_sample toLuca Abeni2008-09-08
| | | | | | | | | | | bits_per_coded_sample but that cannot be done seperately. Patch by Luca Abeni Also reset the minor version and fix the forgotton change to libfaad. Note: The API/ABI should not be considered stable yet, there still may be a change done here or there if some developer has some cleanup ideas and patches! Originally committed as revision 15262 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