summaryrefslogtreecommitdiff
path: root/libavformat/matroskadec.c
Commit message (Collapse)AuthorAge
...
* matroska: Fix use after freeDale Curtis2013-01-11
| | | | | Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* matroskadec: do not use avpacket internalsAnton Khirnov2012-11-02
|
* avutil: Make LZO decoder code configure-time selectableDiego Biurrun2012-10-25
|
* rmdec: Move SIPR code shared with Matroska demuxer to a separate fileDiego Biurrun2012-10-15
|
* matroskadec: fix a sanity check.Anton Khirnov2012-09-21
|
* matroskadec: only return corrupt packets that actually contain dataAnton Khirnov2012-09-21
| | | | Fixes bug 372.
* matroskadec: properly support BlockDurationLuca Barbato2012-09-19
|
* matroskadec: split frame parsingLuca Barbato2012-09-19
|
* matroskadec: split laces parsingLuca Barbato2012-09-19
|
* matroska: implement support for ProResLuca Barbato2012-09-19
| | | | | | | | Support Matroska native formatting. On demuxing prepend a Frame container atom (32bit big endian encoded frame size and 'icpf' string). On muxing remove it.
* matroska: implement support for ALACMoritz Bunkus2012-09-19
| | | | | | | | | | | | | | | | | | Support Matroska native formatting. On demuxing reconstruct the 36-bytes QuickTime atom that the ALAC decoder expects by prepending the "atom size", "tag" and "tag version" fields missing from the Matroska's CodecPrivate element. On muxing remove the initial 12 bytes Sample files are available: http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska.mka and the CoreAudio file it was created from with today's mkvmerge: http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska-source.caf Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* matroskadec: validate lace_size when parsedLuca Barbato2012-09-19
| | | | | Stricter validation, explicitly exit on misparsing and some error forwarding from the ebml parsing functions used.
* matroskadec: return meaningful errors in matroska_decode_bufferLuca Barbato2012-09-19
|
* matroskadec: fix incorrect unsigned->signed conversionDale Curtis2012-09-19
|
* matroskadec: refactor matroska_decode_bufferLuca Barbato2012-09-19
| | | | | Make MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP behave like the other encodings and spare few lines of boilerplate code.
* matroskadec: check realloc in lzo encodingLuca Barbato2012-09-19
| | | | Make all the compression encodings behave the same way.
* matroska: honor error_recognition on unknown doctypesLuca Barbato2012-09-19
|
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* avformat: Drop pointless "format" from container long namesDiego Biurrun2012-07-30
|
* lavf: deprecate r_frame_rate.Anton Khirnov2012-07-29
| | | | | | | | | | | | | | | | | | | | According to its description, it is supposed to be the LCM of all the frame durations. The usability of such a thing is vanishingly small, especially since we cannot determine it with any amount of reliability. Therefore get rid of it after the next bump. Replace it with the average framerate where it makes sense. FATE results for the wtv and xmv demux tests change. In the wtv case this is caused by the file being corrupted (or possibly badly cut) and containing invalid timestamps. This results in lavf estimating the framerate wrong and making up wrong frame durations. In the xmv case the file contains pts jumps, so again the estimated framerate is far from anything sane and lavf again makes up different frame durations. In some other tests lavf starts making up frame durations from different frame.
* matroskadec: return more correct error code on read error.Anton Khirnov2012-07-22
|
* matroskadec: honor error_recognition when encountering unknown elements.Anton Khirnov2012-07-09
|
* mkv: mark corrupted packets and return themLuca Barbato2012-04-29
| | | | Do return error if memory allocation or I/O fails.
* mkv: forward EMBL block data errorLuca Barbato2012-04-29
| | | | Do not return 0 on error.
* matroska: Clear prev_pkt between seeks.Dale Curtis2012-04-23
| | | | | | | | | | | The new incremental parser doesn't always clear prev_pkt, however the packet queue is cleared when seeking. Which leads to a use-after-free. Verified using Valgrind. Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* matroska: Add incremental parsing of clusters.Dale Curtis2012-04-22
| | | | | | | | | | | | | | | | | | | | | | Reduces the amount of upfront data required for cluster parsing thus decreasing latency on seek and startup. The change in the seek-lavf_mkv FATE test is due to incremental parsing no longer reading as much data as the old parser and thus not having that additional data to generate index entries based on keyframes. Index entries are added correctly as the file is parsed. All FATE tests pass and Chrome has been using this patch for ~6 months without issue. Currently incremental parsing is not supported for files with SSA tracks since they require merging packets between clusters. In this case the code falls back to non-incremental parsing. Signed-off-by: Aaron Colwell <acolwell@chromium.org> Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* matroska: do not set invalid default duration if frame rate is zeroMans Rullgard2012-04-18
| | | | | | | | | If a video track specifies a zero frame rate (invalid but occurs), this results in a division by zero and subsequent undefined conversion to integer. Setting the default duration from the frame rate only if the latter is greater than zero avoids such problems. Signed-off-by: Mans Rullgard <mans@mansr.com>
* mkv: use av_reduce instead of av_d2q for framerate estimationLuca Barbato2012-04-17
| | | | It avoids some rounding errors.
* mkv: report average framerate as minimal as wellLuca Barbato2012-04-17
| | | | | This is in line with other demuxers and overall seems more correct than assuming codec time base.
* matroska: Fix leaking memory allocated for laces.Dale Curtis2012-04-12
| | | | | | | | | | During error conditions matroska_parse_block may exit without freeing the memory allocated for laces. Found via valgrind: http://pastebin.com/E54k8QFU Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* matroska: check buffer size for RM-style byte reordering.Ronald S. Bultje2012-03-02
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* matroska: don't overwrite string values until read/alloc was succesful.Ronald S. Bultje2012-02-25
| | | | | | | | | | | | This prevents certain tags with a default value assigned to them (as per the EBML syntax elements) from ever being assigned a NULL value. Other parts of the code rely on these being non-NULL (i.e. they don't check for NULL before e.g. using the string in strcmp() or similar), and thus in effect this prevents crashes when reading of such specific tags fails, either because of low memory or because of targeted file corruption. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* Mark mutable static data const where appropriate.Alex Converse2012-02-21
|
* libavformat: Add an ff_ prefix to some lavf internal symbolsMartin Storsjö2012-02-15
| | | | | | | | | | Prefix the functions/tables brktimegm, pcm_read_seek, dv_offset_reset, voc_get_packet, codec_movaudio_tags, codec_movvideo_tags. After this, lavf has no global symbols without the proper prefix. Signed-off-by: Martin Storsjö <martin@martin.st>
* matroskadec: Mark variable as av_unused.Diego Biurrun2012-02-13
| | | | This avoids unused variable warnings when zlib/bzlib are not available.
* lavf: remove AVFormatParameters from AVFormatContext.read_header signatureAnton Khirnov2012-01-27
|
* matroskadec: Pad AAC extradata.Alex Converse2012-01-25
| | | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* matroskadec: Fix a bug where a pointer was cached to an array that might ↵Chris Evans2012-01-05
| | | | | | | | | | later move due to a realloc() Fixes bug #190 Chromium bug #100492 related to CVE-2011-3893 Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* lavu: replace int/float punning functionsMans Rullgard2011-12-11
| | | | | | | | | | | | | | | | | | The existing functions defined in intfloat_readwrite.[ch] are both slow and incorrect (infinities are not handled). This introduces a new header with fast, inline conversion functions using direct union punning assuming an IEEE-754 system, an assumption already made throughout the code. The one use of Intel/Motorola extended 80-bit format is replaced by simpler code sufficient under the present constraints (positive normal values). The old functions are marked deprecated and retained for compatibility. Signed-off-by: Mans Rullgard <mans@mansr.com>
* misc Doxygen markup improvementsDiego Biurrun2011-12-05
|
* lavf: make av_set_pts_info private.Anton Khirnov2011-11-30
| | | | It's supposed to be called only from (de)muxers.
* matroskadec: don't set codec timebase.Anton Khirnov2011-11-30
| | | | It's not supposed to be set outside of lavc.
* matroskadec: empty blocks are in fact valid.Ronald S. Bultje2011-11-05
|
* lavf: make some seeking functions privateAnton Khirnov2011-10-28
| | | | | | | Specifically av_update_cur_dts(), av_seek_frame_binary() and av_gen_search(). They are not supposed to be called outside lavf.
* lavc: use avpriv_ prefix for some mpeg4audio symbols used in lavf.Anton Khirnov2011-10-20
| | | | | Specifically, ff_mpeg4audio_sample_rates, ff_mpeg4audio_get_config and ff_copy_pce_data
* lavf: use avpriv_ prefix for ff_new_chapter().Anton Khirnov2011-10-20
| | | | It's used in libavdevice.
* 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)/'
* matroskadec: fix out of bounds writeRonald S. Bultje2011-10-15
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* Fix memory (re)allocation in matroskadec.c, related to MSVR-11-0080.Michael Niedermayer2011-09-27
| | | | | | | | | | | | | Whitespace of the patch cleaned up by Aurel Some of the issues have been reported by Steve Manzuik / Microsoft Vulnerability Research (MSVR) Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 956c901c68eff78288f40e3c8f41ee2fa081d4a8) Further suggestions from Kostya <kostya.shishkov@gmail.com> have been implemented by Reinhard Tartler <siretart@tauware.de> Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* matroskadec: export mimetype of attachments as metadata.Anton Khirnov2011-09-27
|