summaryrefslogtreecommitdiff
path: root/libavformat/oggparsevorbis.c
Commit message (Collapse)AuthorAge
* Remove unnecessary get_bits.h #includes and add missing headers where needed.Alexandra Hájková2016-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.
* ogg: Do not try to use the parser if it is not presentLuca Barbato2015-09-10
| | | | | Bug-Id: 886 CC: libav-stable@libav.org
* lavc: Consistently prefix input buffer definesVittorio Giovara2015-07-27
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* lavc,lavf: switch to the new vorbis parse APIAnton Khirnov2014-11-06
|
* lavc: add a public API for parsing vorbis packets.Anton Khirnov2014-11-06
| | | | | | It is required by (at least) the ogg demuxer. Mark the current semi-public apriv API for removal.
* vorbis_parser: add an AV prefix to VorbisParseContextAnton Khirnov2014-11-06
| | | | This is done in preparation for making it public.
* ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.Andrew Stone2014-08-13
| | | | | | | | | | | | | | Originally, AVFormatContext and a metadata dict were provided to ff_vorbis_comment(), but this presented issues if an AVStream was being updated or the metadata on AVFormatContext wasn't actually being updated. To remedy this, ff_vorbis_stream_comment() explicitly updates a stream's metadata and sets any necessary flags. ff_vorbis_comment() does not modify any flags, and any calls to it that update AVFormatContext's metadata (just a single call) must also update AVFormatContext.event_flags after detecting any metadata changes to the provided dictionary, as signaled by a positive return value. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* matroskadec: parse the channel layout mask for FLACAnton Khirnov2014-05-28
| | | | It is commonly stored in a vorbiscomment block in codec private data.
* oggparsevorbis: export replaygain tags from Vorbis commentsAlessandro Ghedini2014-04-04
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* oggparsevorbis: fail on memory allocation errorVittorio Giovara2013-10-12
|
* oggvorbisdec: add support for embedded cover artJames Almer2013-10-12
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* oggparsevorbis: check allocationsVittorio Giovara2013-10-12
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* oggparsevorbis: support official chapter extensionJames Almer2013-10-12
| | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* oggparsevorbis: return meaningful errorsVittorio Giovara2013-10-05
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* oggparsevorbis: K&R formatting cosmeticsVittorio Giovara2013-10-03
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavf: Reset the entry count and allocation size variables on av_reallocp ↵Martin Storsjö2013-09-26
| | | | | | | | | | | | | | failures When av_reallocp fails, the associated variables that keep track of the number of elements in the array (and in some cases, the separate number of allocated elements) need to be reset. Not all of these might technically be needed, but it's better to reset them if in doubt, to make sure variables don't end up conflicting. Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat: Use av_reallocp() where suitableAlexandra Khirnova2013-09-18
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* ogg: Always alloc the private context in vorbis_headerLuca Barbato2013-08-13
| | | | | | | It is possible to have an initial broken header and then valid packets. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* Use the avstring.h locale-independent character type functionsReimar Döffinger2013-03-07
| | | | | | Make sure the behavior does not change with the locale. Signed-off-by: Martin Storsjö <martin@martin.st>
* oggdec: fix faulty cleanup prototypeLuca Barbato2013-01-09
|
* oggdec: make sure the private parse data is cleaned upLuca Barbato2013-01-06
|
* ogg: check that the expected number of headers had been parsedLuca Barbato2012-09-24
| | | | Not having the header for a codec is a tell-tale of a broken file.
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* oggdec: output correct timestamps for VorbisJustin Ruggles2012-03-20
| | | | | | | | | Takes encoder delay into account by comparing first the coded page duration with the calculated page duration. Handles last packet duration if needed, also by comparing coded duration with calculated duration. Also does better handling of timestamp generation for packets in the first page for streamed ogg files where the start time is not necessarily zero.
* avcodec: add a Vorbis parser to get packet durationJustin Ruggles2012-03-03
| | | | This also allows for removing some of the Vorbis-related hacks.
* lavf: make av_set_pts_info private.Anton Khirnov2011-11-30
| | | | It's supposed to be called only from (de)muxers.
* lavf: use avpriv_ prefix for ff_new_chapter().Anton Khirnov2011-10-20
| | | | It's used in libavdevice.
* Remove all uses of now deprecated metadata functions.Anton Khirnov2011-06-08
|
* lavf: move internal functions from avformat.h to internal.hAnton Khirnov2011-02-06
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Always use av_set_pts_info to set the stream time base.Reimar Döffinger2011-02-06
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Ogg: discard non-essential metadata from Vorbis header when creating extradataReimar Döffinger2011-01-31
| | | | | | | | | The first part of the metadata, the "vendor" string, is required by libvorbis, it will refuse to play when it is not available. Also we do not currently parse that part into metadata so it would also be lost if we removed it as well. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Vorbis-in-Ogg: Do not set timebase to invalid valuesReimar Döffinger2011-01-29
| | | | | | | | | | Avoids an assert when the sample rate is invalid and the timebase is thus set to e.g. 1/0. Sample file is http://samples.mplayerhq.hu/ogg/fuzzed-srate-crash.ogg This is a quick fix for a crash, not a final solution. Signed-off-by: Mans Rullgard <mans@mansr.com>
* add ff_ prefix to metadata_conv()Anton Khirnov2010-10-16
| | | | | | patch by Anton Khirnov anton _at_ khirnov _dot_ net Originally committed as revision 25505 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix building, include the header instead of the source fileMartin Storsjö2010-10-16
| | | | | | Builds only seemed to have been broken in some configurations, though. Originally committed as revision 25499 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Export metadata in the generic format. Deprecate old conversion API.Anton Khirnov2010-10-15
| | | | | | patch by Anton Khirnov anton _at_ khirnov _dot_ net Originally committed as revision 25493 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggparsevorbis: Add some sanity checks to header packet ordering/presence.Alex Converse2010-08-07
| | | | Originally committed as revision 24740 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
* Add VorbisComment writing to FLAC files.James Darnley2010-03-20
| | | | | | Patch by James Darnley <james darnley at gmail>. Originally committed as revision 22605 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Parse ogm chaptersDavid Conrad2010-03-12
| | | | Originally committed as revision 22477 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Const correctness for vorbis_commentDavid Conrad2010-03-12
| | | | Originally committed as revision 22474 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Metadata is per-stream; don't merge multiple streams' togetherDavid Conrad2010-03-12
| | | | Originally committed as revision 22473 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add ff_ prefix to vorbis_commentDavid Conrad2010-03-12
| | | | Originally committed as revision 22472 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Fix memory leak in setting up vorbis headersDavid Conrad2010-03-11
| | | | Originally committed as revision 22460 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Don't use ogg_stream's seq for vorbis or speex headersDavid Conrad2010-03-11
| | | | Originally committed as revision 22459 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a list of generic tags and change demuxers to follow it.Anton Khirnov2010-02-01
| | | | | | Patch by Anton Khirnov, wyskas at gmail dot com Originally committed as revision 21587 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use AV_METADATA_DONT_STRDUP* / use av_malloced metadata instead of strdupedMichael Niedermayer2009-12-13
| | | | | | | arrays of fixed length. Code from ffmbc with changes to adapt to our metadata API. Originally committed as revision 20836 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove unnecessary entries in ff_vorbiscomment_metadata_conv. VorbisCommentJustin Ruggles2009-10-17
| | | | | | keys are case-insensitive. Originally committed as revision 20267 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix possible buffer over-read in vorbis_comment, fix it double to be sure.Reimar Döffinger2009-09-24
| | | | | | | | | First, make s signed, so that comparisons against end - p will not be made as unsigned, making the check incorrectly pass if p is beyond end. Also ensure that p will never be > end, so the code is correct also if buf is not padded. Originally committed as revision 20014 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Correctly print number of remaining bytes in oggparsevorbis instead of alwaysReimar Döffinger2009-09-23
| | | | | | with inverted sign. Originally committed as revision 19978 to svn://svn.ffmpeg.org/ffmpeg/trunk