summaryrefslogtreecommitdiff
path: root/libavformat/oggdec.h
Commit message (Collapse)AuthorAge
* avformat/demux: Add new demux.h headerAndreas Rheinhardt2022-05-10
| | | | | | And move those stuff already in demuxer-only files to it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/oggparsevorbis: Avoid tmp bufs when parsing VorbisCommentAndreas Rheinhardt2021-08-28
| | | | | | | | | | | | | | | | | | | | | | | | A single VorbisComment consists of a length field and a non-NUL-terminated string of the form "key=value". Up until now, when parsing such a VorbisComment, zero-terminated duplicates of key and value would be created. This is wasteful if these duplicates are freed shortly afterwards, as happens in particular in case of attached pictures: In this case value is base64 encoded and only needed to decode the actual data. Therefore this commit changes this: The buffer is temporarily modified so that both key and value are zero-terminated. Then the data is used in-place and restored to its original state afterwards. This requires that the buffer has at least one byte of padding. All buffers currently have AV_INPUT_BUFFER_PADDING_SIZE bytes padding, so this is ok. Finally, this also fixes weird behaviour from ogm_chapter(): It sometimes freed given to it, leaving the caller with dangling pointers. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/buffer: Switch AVBuffer API to size_tAndreas Rheinhardt2021-04-27
| | | | | | | Announced in 14040a1d913794d9a3fd6406a6d8c2f0e37e0062. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/packet: Also change av_packet_pack/unpack_dictionary to size_tAndreas Rheinhardt2021-03-19
| | | | | | | | | These are auxiliary side-data functions, so they should have been switched to size_t in d79e0fe65c51491f9bf8a470bbe36fb09f3e1280, but this has been forgotten. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* oggdec: remove the oggparsedaala subdemuxerLynne2020-05-23
| | | | | | The Xiph foundation never standardized either Daala nor its mapping in Ogg, and all files that were created are undecodable without knowledge of the git hash.
* oggdec: add support for proper demuxing of chained Opus files and streamsLynne2020-04-30
| | | | | | Part of this patch is based on Paul B Mahol's patch from last year. This also allows for single-stream parameter/codec changes.
* avformat/oggdec: Fix integer overflow with invalid ptsMichael Niedermayer2016-08-03
| | | | | | | | | If negative pts are possible for some codecs in ogg then the code needs to be changed to use signed values. Found-by: Thomas Guilbert <tguilbert@google.com> Fixes: clusterfuzz_usan-2016-08-02 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf: add oggparsedaala and bump microRostislav Pehlivanov2015-10-21
| | | | | | | | | | | | | | | | | | | This commit introduces a parser for the current bitstream produced by Daala. It currently bears a large similarity with Theora, another codec produced by Xiph. While likely to change in the future, its basic format of packet parsing should remain fairly identical with its current structure. Once the bitstream freezes, there are a few probable simplifications that could be made. Also, the current version (major, minor and micro) is stuck at zero so it's unusable as a way to warn about possible incompatibilities. This will change once the bitstream freezes, however until then this file is strictly targeting the current git master of the reference encoder, libdaala. This file was developed independently at the same time by both myself and Vittorio Giovara, who used libav as a starting point. For fairness, and to prevent confusion and allegations, his name has been added to the copyright in the license header as well, and vice versa.
* Merge commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8'Michael Niedermayer2014-08-14
|\ | | | | | | | | | | | | | | | | | | * commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8': ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes. Conflicts: libavformat/oggparsevorbis.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge commit '23f741f79327e31be7b2a75ebb2e02111e06e52f'Michael Niedermayer2014-05-28
|\| | | | | | | | | | | | | | | | | | | * commit '23f741f79327e31be7b2a75ebb2e02111e06e52f': matroskadec: parse the channel layout mask for FLAC Conflicts: libavformat/oggparsevorbis.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskadec: parse the channel layout mask for FLACAnton Khirnov2014-05-28
| | | | | | | | It is commonly stored in a vorbiscomment block in codec private data.
| * oggdec: add support for Opus in Ogg demuxingNicolas George2013-10-12
| |
* | ogg: allow streams to update metadataBen Boeckel2014-02-05
| | | | | | | | | | Signed-off-by: Ben Boeckel <mathstuf@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | oggdec: add support for VP8 demuxingJames Almer2013-12-30
| | | | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/ogg: Support for end trimming OpusVignesh Venkatasubramanian2013-09-16
| | | | | | | | | | | | | | | | Adding support for end trimming Opus embedded in Ogg container. Signed-Off By: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | oggdec: resync from the last page.Michael Niedermayer2013-01-15
| | | | | | | | | | | | | | Previously we re synced from where we where which cam lead to loosing pages. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-01-07
|\| | | | | | | | | | | | | * qatar/master: oggdec: make sure the private parse data is cleaned up Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * oggdec: make sure the private parse data is cleaned upLuca Barbato2013-01-06
| |
* | oggdec: add missing () for OGG_NOGRANULE_VALUEMichael Niedermayer2012-09-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'd1f05dd18375f2f8e68372edee11436927e43ba8'Michael Niedermayer2012-09-25
|\| | | | | | | | | | | | | | | | | | | | | * commit 'd1f05dd18375f2f8e68372edee11436927e43ba8': ogg: calculate the start position once all the headers are parsed Conflicts: libavformat/oggdec.c libavformat/oggparseskeleton.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ogg: calculate the start position once all the headers are parsedLuca Barbato2012-09-24
| | | | | | | | | | The fisbone packets can be muxed in any order as long the last one comes before the first data packet.
* | Merge commit '7751e4693dd10ec98c20fbd9887233b575034272'Michael Niedermayer2012-09-25
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '7751e4693dd10ec98c20fbd9887233b575034272': ogg: check that the expected number of headers had been parsed libx264: change default to closed gop to match x264cli Use avcodec_free_frame() to free AVFrames. lavf: use a malloced AVFrame in try_decode_frame(). lavc: add avcodec_free_frame(). lavc: ensure extended_data is set properly on decoding lavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults() lavc: use av_mallocz to allocate AVFrames. lavc: rename the argument of avcodec_alloc_frame/get_frame_defaults Conflicts: doc/APIchanges doc/examples/decoding_encoding.c libavcodec/utils.c libavcodec/version.h libavfilter/src_movie.c libavformat/oggdec.c libavformat/oggdec.h libavformat/oggparsetheora.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
| * oggdec: add support for Xiph's CELT codecNicolas George2011-09-26
| | | | | | | | | | | | | | This patch also introduces CODEC_ID_CELT. Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | lavf/oggdec: check for begin-of-stream flag in case of chained streams.Clément Bœsch2012-09-22
| | | | | | | | | | | | | | | | | | | | | | | | Fix Ticket #1617, revealing a regression I introduced in 8f3eebd. We need to make sure no stream is added in between Ogg context save and restore operations (because it would likely lead to a mismatch between ogg->nstreams and AVFormatContext->nb_streams after the restore op). This is the reason the ogg->state check is added in ogg_new_stream(). Before this patch, checking for ogg->headers was preventing this: ogg->headers is always set before any ogg save/restore (though, it was also preventing from creating the stream when necessary).
* | oggdec: add support for Opus codec.Nicolas George2012-07-20
| | | | | | | | This patch also introduces CODEC_ID_OPUS.
* | oggdec: Make sure start time correction is applied once to each streamMichael Niedermayer2011-08-24
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-09
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: crypto: Use av_freep instead of av_free lavf: don't try to free private options if priv_data is NULL. swscale: fix types of assembly arguments. swscale: move two macros that are only used once into caller. swscale: remove unused function. options: Add missing braces around struct initializer. mov: Remove leftover crufty debug statement with references to a local file. dvbsubdec: Fix compilation of debug code. Remove all uses of now deprecated metadata functions. Move metadata API from lavf to lavu. Conflicts: doc/APIchanges libavformat/aiffdec.c libavformat/asfdec.c libavformat/avformat.h libavformat/avidec.c libavformat/cafdec.c libavformat/matroskaenc.c libavformat/mov.c libavformat/mp3enc.c libavformat/wtv.c libavutil/avutil.h libavutil/internal.h libswscale/swscale.c libswscale/x86/swscale_template.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Remove all uses of now deprecated metadata functions.Anton Khirnov2011-06-08
| |
* | Ogg: add support for Xiph's CELT (Opus) codec.Nicolas George2011-04-19
|/ | | | | | This patch also introduces CODEC_ID_CELT. Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
* oggdec: simplify audio chained ogg streams supportClément Bœsch2011-04-15
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* oggdec: fix demuxing chained audio streamsClément Bœsch2011-04-10
| | | | | | | | | Chained ogg served by icecast and mpd should demux properly now. Fixes issue2337 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* oggdec: Remove write-only variableDavid Conrad2010-04-16
| | | | Originally committed as revision 22889 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: Pass packets to header() until the stream is done with themDavid Conrad2010-03-12
| | | | | | | | This fixes some old ogm files that had the 3rd vorbis header after a data packet in another stream. This is invalid in ogg, but this change shouldn't affect the behaviour of any valid file. Originally committed as revision 22478 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: Seek to keyframesDavid Conrad2010-03-11
| | | | Originally committed as revision 22463 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Parse skeleton to determine the start time of each streamDavid Conrad2010-03-11
| | | | Originally committed as revision 22457 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Check that we have a codec in gptopts (needed for skeleton)David Conrad2010-03-11
| | | | Originally committed as revision 22456 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Move ogg_find_stream and ogg_gptopts to oggdec.hDavid Conrad2010-03-11
| | | | | | (skeleton will need them) Originally committed as revision 22455 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Save offset of the page needed to reconstruct the current packetDavid Conrad2010-03-11
| | | | Originally committed as revision 22453 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix playback with invalid files that don't set the continuation flag forDavid Conrad2010-02-08
| | | | | | | pages that continue packets started in prior pages. Fixes issue1248 Originally committed as revision 21688 to svn://svn.ffmpeg.org/ffmpeg/trunk
* oggdec: Set dts when knownDavid Conrad2010-01-11
| | | | Originally committed as revision 21134 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add support for dirac in oggDavid Conrad2010-01-11
| | | | Originally committed as revision 21128 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix PTS for OGM codecs.David Conrad2009-12-12
| | | | | | Fixes issue251 Originally committed as revision 20815 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Calculate correct packet durations when demuxing Ogg/Speex. This involvesJustin Ruggles2009-10-12
| | | | | | | determining if there is any delay in the first packet and/or any truncation in the final packet. Originally committed as revision 20216 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a VorbisComment metadata conversion table and use it in the FLAC andJustin Ruggles2009-06-13
| | | | | | Ogg demuxers. Originally committed as revision 19186 to svn://svn.ffmpeg.org/ffmpeg/trunk