Xiaohan Wang
490a3ebf36
matroskadec: Fix read-after-free in matroska_read_seek()
...
In matroska_read_seek(), |tracks| is assigned at the begining of the
function. However, functions like matroska_parse_cues() could reallocate
the tracks and invalidate |tracks|.
This assigns |tracks| only before using it, so that it will not get
invalidated elsewhere.
Bug-Id: chromium/427266
2014-12-15 15:46:34 +01:00
Vittorio Giovara
e0caa1eb4e
matroskadec: check return values
...
CC: libav-stable@libav.org
Bug-Id: CID 733712
2014-10-24 23:48:51 +01:00
Vittorio Giovara
3c1199c3c4
matroskadec: fix leak on error
...
CC: libav-stable@libav.org
Bug-Id: CID 1026767
2014-10-24 23:43:25 +01:00
Vittorio Giovara
d4ae8ac92f
matroskadec: parse stereo mode on decoding
...
Convert the Matroska stereo format to the Stereo3D format, and add a
Stereo3D side data to the stream.
Bump the doctype version supported.
Bug-Id: 728 / https://bugs.debian.org/757185
2014-08-28 12:33:26 -04:00
Vittorio Giovara
f2583bc86e
matroska: list supported extensions
2014-08-28 12:33:25 -04:00
Gabriel Dume
4b1f5e5090
cosmetics: Write NULL pointer inequality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 05:34:13 -07:00
Gabriel Dume
f929ab0569
cosmetics: Write NULL pointer equality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 03:18:18 -07:00
Luca Barbato
fa38573cd9
matroska: Register mime types
2014-07-29 17:47:32 +02:00
Michael Niedermayer
98569d8963
matroskadec: Fix a double negation typo
...
This typo has existed since this code was added in c16582579
.
Newer versions of clang pointed out that this comparison always
was true (since the result of the negation is either 0 or 1, while
AVDISCARD_ALL has the value 48).
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-02 20:15:42 +03:00
Diego Biurrun
73953df71a
Replace av_malloc() and memset(0) by av_mallocz()
2014-06-22 18:43:11 +02:00
Anton Khirnov
23f741f793
matroskadec: parse the channel layout mask for FLAC
...
It is commonly stored in a vorbiscomment block in codec private data.
2014-05-28 07:50:32 +02:00
Anton Khirnov
4efdadc8ec
matroskadec: export just the STREAMINFO block as FLAC extradata
...
It contains all information that is used by the decoder and the other
FLAC-capable demuxers (flacdec, ogg) export only STREAMINFO as well.
2014-05-28 07:49:15 +02:00
Anton Khirnov
6df478bf89
matroskadec: split parsing tracks into a separate function
2014-05-28 07:48:59 +02:00
Anton Khirnov
eb3b5501e8
matroskadec: read the CodecDelay element
2014-04-30 21:00:01 +02:00
Diego Biurrun
d92024f18f
lavf: more correct printf format specifiers
2014-03-11 13:13:41 +01:00
Diego Biurrun
f69befe5ee
matroskadec: cosmetics: Fix "attachement" vs. "attachment" typo
2014-03-07 13:54:18 +01:00
Keiji Costantini
84cfce9f99
matroskadec: K&R formatting cosmetics
...
Also sort #includes into canonical order.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-07 13:39:07 +01:00
Aurelien Jacobs
8b516f154a
matroskadec: use correct compression parameters for current track CodecPrivate
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-21 20:54:55 +01:00
Anton Khirnov
30be1ea33e
matroskadec: pad EBML_BIN data.
...
It might be passed to code requiring padding, such as lzo decompression.
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:54:30 +01:00
Yusuke Nakamura
959bea13ce
matroskadec: Support HEVC demuxing
2013-10-31 20:20:49 +01:00
Anton Khirnov
668643b923
matroskadec: check av_strdup() when setting defaults
2013-09-24 17:11:50 +02:00
Martin Storsjö
569d18aa9d
matroskadec: Verify realaudio codec parameters
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-17 11:22:30 +03:00
Alexandra Khirnova
f369b9356c
avformat: Use av_reallocp_array() where suitable
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-09-10 12:38:32 +02:00
Martin Storsjö
5bcd3ae5b1
matroskadec: Check that .lang was allocated and set before reading it
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-03 22:57:15 +03:00
Sean McGovern
8835c554ff
matroskadec: introduce resync function.
...
This allows handling matroska files with errors.
Fixes test4.mkv and test7.mkv from the official Matroska test suite,
and by extension Bugzilla #62 .
Based on a patch by Reimar Doffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-06-10 20:51:35 +02:00
Anton Khirnov
9b6f47c448
matroskadec: export full wavpack blocks.
...
This allows us to get rid of demuxer-specific hacks in the decoder and
will allow streamcopy from matroska once we have a wavpack muxer.
2013-05-28 08:14:35 +02:00
Anton Khirnov
564b7e0c00
matroskadec: silently skip CodecState element.
...
mkvmerge apparrently uses it for mpeg1/2 video, but it contains the same
information as CodecPrivate, so it can be ignored.
2013-05-27 21:25:53 +02:00
Diego Biurrun
e0f8be6413
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
2013-05-04 21:43:06 +02:00
Luca Barbato
25a80a931a
matroska: pass the lace size to the matroska_parse_rm_audio
...
Each lace must be independent according to the specification.
Fix heap-buffer-overflow in matroska_parse_block for
corrupted real media in mkv files.
Stricter check than fc43c19a56
CC: libav-stable@libav.org
2013-04-03 12:34:38 +02:00
Luca Barbato
8a96df7b70
matroska: fix a corner case in ebml-lace parsing
...
Make sure we notice when the lace_size[n] is a negative value.
CC: libav-stable@libav.org
2013-04-03 12:33:15 +02:00
Dale Curtis
fc43c19a56
matroska: Update the available size after lace parsing
...
Fix heap-buffer-overflow in matroska_parse_block for
corrupted real media in mkv files.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-04-03 12:33:01 +02:00
Luca Barbato
37cb3b180a
matroskadec: request a read buffer for the wav header
...
Solve an infiniloop.
CC: libav-stable@libav.org
2013-03-12 18:58:06 +01:00
Anton Khirnov
85a5bc054c
lavf: remove disabled FF_API_R_FRAME_RATE cruft
2013-03-11 18:23:50 +01:00
Anton Khirnov
1afddbe59e
avpacket: use AVBuffer to allow refcounting the packets.
...
This will allow us to avoid copying the packets in many cases.
This breaks ABI.
2013-03-08 07:33:45 +01:00
Dale Curtis
ae3d416369
matroska: Fix use after free
...
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 00:12:08 +01:00
Anton Khirnov
34871beb5e
matroskadec: do not use avpacket internals
2012-11-02 18:28:56 +01:00
Diego Biurrun
2a91ada828
avutil: Make LZO decoder code configure-time selectable
2012-10-25 11:49:49 +02:00
Diego Biurrun
7e68c91e24
rmdec: Move SIPR code shared with Matroska demuxer to a separate file
2012-10-15 13:34:07 +02:00
Anton Khirnov
87b017a298
matroskadec: fix a sanity check.
2012-09-21 09:15:07 +02:00
Anton Khirnov
bdb939ad73
matroskadec: only return corrupt packets that actually contain data
...
Fixes bug 372.
2012-09-21 09:15:01 +02:00
Luca Barbato
7d8431004a
matroskadec: properly support BlockDuration
2012-09-19 20:34:14 +02:00
Luca Barbato
c831ebf616
matroskadec: split frame parsing
2012-09-19 20:34:14 +02:00
Luca Barbato
2d0e7713f9
matroskadec: split laces parsing
2012-09-19 20:34:14 +02:00
Luca Barbato
117d8c6d1f
matroska: implement support for ProRes
...
Support Matroska native formatting.
On demuxing prepend a Frame container atom (32bit big endian encoded
frame size and 'icpf' string).
On muxing remove it.
2012-09-19 20:34:14 +02:00
Moritz Bunkus
8071dca3d5
matroska: implement support for ALAC
...
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>
2012-09-19 20:34:14 +02:00
Luca Barbato
870e75524a
matroskadec: validate lace_size when parsed
...
Stricter validation, explicitly exit on misparsing and some error
forwarding from the ebml parsing functions used.
2012-09-19 20:34:14 +02:00
Luca Barbato
c9a39cec70
matroskadec: return meaningful errors in matroska_decode_buffer
2012-09-19 20:34:14 +02:00
Dale Curtis
df1d84121b
matroskadec: fix incorrect unsigned->signed conversion
2012-09-19 20:34:14 +02:00
Luca Barbato
8d4dd55c37
matroskadec: refactor matroska_decode_buffer
...
Make MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP behave like
the other encodings and spare few lines of boilerplate code.
2012-09-19 20:34:14 +02:00
Luca Barbato
581281e242
matroskadec: check realloc in lzo encoding
...
Make all the compression encodings behave the same way.
2012-09-19 20:34:13 +02:00