Andreas Cadhalpun
0ccddbad20
smacker: limit recursion depth of smacker_decode_bigtree
...
This fixes segmentation faults due to stack-overflow caused by too deep
recursion.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Sean McGovern <gseanmcg@gmail.com>
7 years ago
Michael Niedermayer
cd4663dc80
smacker: add sanity check for length in smacker_decode_tree()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Bug-Id: 1098
Cc: libav-stable@libav.org
Signed-off-by: Sean McGovern <gseanmcg@gmail.com>
7 years ago
Diego Biurrun
5edded9df3
smacker: Improve error handling
...
Return sensible error values and forward error codes.
8 years ago
Michael Niedermayer
b98f082d8d
smacker: Check that the data size is a multiple of a sample vector
...
Fixes out of array access
Fixes: ce19e41f0ef1e52a23edc488faecdb58/asan_heap-oob_2504e97_4202_ffa0df1baed14022b9bfd4f8ac23d0cb.smk
Bug-Id: CVE-2015-8365
CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 4a9af07a49
)
Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years ago
Luca Barbato
73fc82f343
vlc: Add header #include when the types are used
...
Do not rely on indirectly including it from bitstream.h.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years ago
Diego Biurrun
a25dac976a
Use bitstream_init8() where appropriate
8 years ago
Alexandra Hájková
6efbc88a5c
smacker: Convert to the new bitstream reader
8 years ago
Diego Biurrun
b668662939
get_bits: Move BITSTREAM_READER_LE definition before all relevant #includes
...
This avoids the danger that get_bits.h might get indirectly #included before
BITSTREAM_READER_LE is defined.
Also sort headers into canonical order where appropriate.
9 years ago
Diego Biurrun
6b96d2dcda
cosmetics: Drop particularly redundant silly comments
9 years ago
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years ago
Anton Khirnov
84099f51f3
smacker: use the AVFrame API properly.
11 years ago
Diego Biurrun
b2bed9325d
cosmetics: Group .name and .long_name together in codec/format declarations
12 years ago
Martin Storsjö
f3d57dc691
smacker: Free memory properly if the init function fails
...
Signed-off-by: Martin Storsjö <martin@martin.st>
12 years ago
Martin Storsjö
0679cec6e8
smacker: Make sure we don't fill in huffman codes out of range
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
12 years ago
Martin Storsjö
d002fce24a
smacker: Check malloc return values
...
Also try to free local allocations on errors.
Signed-off-by: Martin Storsjö <martin@martin.st>
12 years ago
Kostya Shishkov
bbb2945f2d
smacker: check the return value of smacker_decode_tree
...
Also prevent a memory leak.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
12 years ago
Kostya Shishkov
f52edef301
smacker: fix an off by one in huff.length computation
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
12 years ago
Kostya Shishkov
268bb88544
smacker: add a clarification notice about audio decoding
12 years ago
Kostya Shishkov
5f30c6c8ed
Revert "smackaud: clip output samples"
...
Smacker audio uses overflows instead of clipping.
This reverts commit 375ca0aca8
.
12 years ago
Anton Khirnov
3b199d29cd
lavc decoders: properly initialize AVFrame.
12 years ago
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
12 years ago
Justin Ruggles
903b62cc0b
smackaud: decode directly to the user-provided AVFrame
12 years ago
Anton Khirnov
df9b956751
lavc: fix decode_frame() third parameter semantics for video decoders
...
It's got_frame, not data size
12 years ago
Anton Khirnov
594d4d5df3
lavc: add a wrapper for AVCodecContext.get_buffer().
...
It will be useful in the upcoming transition to refcounted AVFrames.
12 years ago
Justin Ruggles
a903f8f087
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
...
Also reorder some other #include when applicable.
12 years ago
Anton Khirnov
716d413c13
Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat
13 years ago
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
13 years ago
Mans Rullgard
779f8bc24e
smacker: remove some unused code
...
This removes some code apparently left over from vlc reader
debugging.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Martin Storsjö
00c3b67b8a
cosmetics: Align codec declarations
...
Also break some long lines, remove codec function placeholder comments
and add spaces in sample/pixel format lists.
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Franz Brauße
12cbbbb4ab
smacker audio: sign-extend the initial 16-bit predicted value
...
Fixes Bug #265
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
13 years ago
Diego Biurrun
a92be9b856
Replace memset(0) by zero initializations.
...
Also remove one pointless zero initialization in rangecoder.c.
13 years ago
Ronald S. Bultje
b2af057a36
smacker: convert palette and header reading to bytestream2.
13 years ago
Martin Storsjö
e96b4a53df
vlc/rl: Add ff_ prefix to the nonstatic symbols
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Alex Converse
7181c4edee
cosmetics: Remove extra newlines at EOF
13 years ago
Alex Converse
9adf25c1cf
smacker: Sanity check huffman tables found in the headers.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
13 years ago
Alex Converse
90c0c83e14
smacker: remove dead store
13 years ago
Diego Biurrun
aaf47bcde7
Drop ALT_ prefix from BITSTREAM_READER_LE name.
...
The prefix is a historic remnant that probably meant "alternative".
Now that the A32 bitstream reader has been dropped it makes no sense anymore.
13 years ago
Justin Ruggles
0eea212943
Add avcodec_decode_audio4().
...
Deprecate avcodec_decode_audio3().
Implement audio support in avcodec_default_get_buffer().
Implement the new audio decoder API in all audio decoders.
13 years ago
Justin Ruggles
818a3bdedf
smackaud: use uint8_t* for 8-bit output buffer type
...
This matches the output sample format and the range of the output values.
14 years ago
Justin Ruggles
375ca0aca8
smackaud: clip output samples
14 years ago
Justin Ruggles
c86c3c8017
smackaud: use sign_extend() for difference value instead of casting
14 years ago
Justin Ruggles
ff1f89de2d
smacker: validate channels and sample format.
14 years ago
Justin Ruggles
cf044f8bff
smacker: check buffer size before reading output size
14 years ago
Justin Ruggles
e190e453bd
smacker: validate number of channels
14 years ago
Michael Niedermayer
5166376f24
smacker: fix a few off by 1 errors
...
stereo & 16bit is untested due to lack of samples
Signed-off-by: Martin Storsjö <martin@martin.st>
14 years ago
Laurent Aimar
6489455495
Check for invalid VLC value in smacker decoder.
...
Signed-off-by: Martin Storsjö <martin@martin.st>
14 years ago
Laurent Aimar
9676ffba83
Check and propagate errors when VLC trees cannot be built in smacker decoder.
...
Signed-off-by: Martin Storsjö <martin@martin.st>
14 years ago
Anton Khirnov
ec6402b7c5
lavc: use designated initialisers for all codecs.
...
It's more readable and less prone to breakage.
14 years ago
Stefano Sabatini
975a1447f7
Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
14 years ago
Stefano Sabatini
4f2954e232
smacker: remove unnecessary call to avctx->release_buffer in decode_frame()
...
The release_buffer was cleaning the provided frame, thus causing the
successive call to avctx->reget_buffer() to allocate a new frame. In
case the returned frame was not the same one previously returned but a
new one with different data, it resulted in artifacts.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
14 years ago