Ronald S. Bultje
22c48d399d
adpcm: convert adpcm_ea_xas to bytestream2.
2012-03-18 15:33:16 -07:00
Ronald S. Bultje
edd9555537
adpcm: convert adpcm_ea_r1/2/3 to bytestream2.
2012-03-18 15:33:16 -07:00
Ronald S. Bultje
e60d09918c
adpcm: convert ea_maxis_xa to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
4a876eba8d
adpcm: convert adpcm_ea to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
524af484ed
adpcm convert adpcm_ima_ea_sead to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
8f2ed09289
adpcm: convert adpcm_ima_ea_eacs to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
159831cc09
adpcm: convert adpcm_xa to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
16b7a5e241
adpcm: convert ima_ws to bytestream2.
2012-03-18 15:33:11 -07:00
Ronald S. Bultje
74d7ac95fb
adpcm: convert adpcm_ima_apc to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
9721901440
adpcm: convert adpcm_ima_iss to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
1da9587026
adpcm: convert adpcm_dk3 to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
d570a96808
adpcm: convert adpcm_dk4 to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
5353ee3c30
adpcm: convert adpcm_ms to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
89f3aa8ce2
adpcm: use av_clip() in adpcm_ima_expand_nibble().
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
689be85a9a
adpcm: convert adpcm_4xm to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
39505f4240
adpcm: convert adpcm_ima_wav to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
9604307dd8
adpcm: convert adpcm_ima_qt to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
c346f6304c
adpcm: fix nb_samples rounding for adpcm_ima_dk3, and update reference.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
abe3c697a3
xwd: convert to bytestream2.
2012-03-18 07:45:41 -07:00
Ronald S. Bultje
1e26a48fa2
h264: fix deadlocks on incomplete reference frame decoding.
...
If decoding a second complementary field, and the first was
decoded in our thread, mark decoding of that field as complete.
If decoding fails, mark the decoded field/frame as complete.
Do not allow switching between field modes or field/frame mode
between slices within the same field/frame. Ensure that two
subsequent fields cover top/bottom (rather than top/frame,
bottom/frame or such nonsense situations).
Fixes various deadlocks when decoding samples with errors in
reference frames.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:31:00 -07:00
Ronald S. Bultje
c6ccb96bc9
mpeg4: report frame decoding completion at ff_MPV_frame_end().
...
Prevents hangs on corrupt input.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:53 -07:00
Ronald S. Bultje
80387f0e25
mimic: don't use self as reference, and report completion at end of decode().
...
Fixes hangs on corrupt samples that reference self-frames.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:52 -07:00
Ronald S. Bultje
45fdcc8e2d
swscale: convert hscale() to use named arguments.
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
98b9da2ac7
x86inc: add *mp named argument support to DEFINE_ARGS.
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
aba7a827aa
swscale: convert hscale to cpuflags().
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
e0febda22d
h264: stricter reference limit enforcement.
...
Progressive images can have only 16 references, error out if there are
more, since the data is almost certainly corrupt, and the invalid value
will lead to random crashes or invalid writes later on.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:49 -07:00
Ronald S. Bultje
48cbe4b092
h264: increase reference poc list from 16 to 32.
...
Interlaced images can have 32 references (16 per field), so limiting the
array size to 16 leads to invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:45 -07:00
Ronald S. Bultje
86020073db
xa_adpcm: limit filter to prevent xa_adpcm_table[] array bounds overruns.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:40 -07:00
Ronald S. Bultje
c95fefa042
dsicinvideo: validate buffer offset before copying pixels.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-11 07:28:54 -07:00
Ronald S. Bultje
97e48b2f54
cook: error out on quant_index values outside [-63, 63] range.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 17:51:28 -08:00
Ronald S. Bultje
d7eabd5042
mpc: pad mpc_CC/SCF[] tables to allow for negative indices.
...
MPC8 allows indices of mpc_CC up to -1, and mpc_SCF up to -6, thus pad
the tables by that much on the left end.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 14:28:08 -08:00
Ronald S. Bultje
442c3a8cb1
cook: expand dither_tab[], and make sure indexes into it don't overflow.
...
Fixes overflows in accessing dither_tab[].
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 12:03:53 -08:00
Ronald S. Bultje
71af42bd96
xxan: reindent xan_unpack_luma().
...
It used 3-space indent instead of 4-space indent.
2012-03-10 11:57:56 -08:00
Ronald S. Bultje
f77bfa8376
xxan: protect against chroma LUT overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:57:17 -08:00
Ronald S. Bultje
5518827816
xxan: convert to bytestream2 API.
...
Protects against overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:57 -08:00
Ronald S. Bultje
f1279e286b
xxan: don't read before start of buffer in av_memcpy_backptr().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:39 -08:00
Ronald S. Bultje
a928ed3751
vp8: convert mbedge loopfilter x86 assembly to use named arguments.
2012-03-10 11:36:33 -08:00
Ronald S. Bultje
bee330e300
vp8: convert inner loopfilter x86 assembly to use named arguments.
2012-03-10 11:36:33 -08:00
Ronald S. Bultje
4ffe5e2aa5
huffyuv: add padding to classic (v1) huffman tables.
...
We slightly overread the input buffer, so we require
padding at the end of the buffer, as is documented in the
get_bits API. Without padding, we'll read uninitialized
data or beyond the end of the .rodata, which may crash.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:20:49 -08:00
Ronald S. Bultje
4c25269ced
png: convert to bytestream2 API.
...
Protects against overreads in the input buffer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:17:25 -08:00
Ronald S. Bultje
83f15a1228
avs: fix infinite loop on end-of-stream.
...
The codec would keep returning the last decoded frame if the stream
contains B-frames, since it wouldn't clear that frame from the list of
frames to be returned to the user.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 16:33:35 -08:00
Ronald S. Bultje
b4bccf3e4e
wma: fix off-by-one in array bounds check.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 14:42:39 -08:00
Ronald S. Bultje
3416d0805e
dv: cosmetics.
2012-03-07 13:49:41 -08:00
Ronald S. Bultje
e97efecec8
dv: check buffer size before reading profile.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 13:48:41 -08:00
Ronald S. Bultje
6e2821160b
Revert "AAC SBR: group some writes."
...
This reverts commit ba36f14e5d . It
broke decoding on x86-32 on some systems.
2012-03-07 12:16:36 -08:00
Ronald S. Bultje
37cc8600d0
cook: extend channel uncoupling tables so the full bit range is covered.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:40:46 -08:00
Ronald S. Bultje
84a020efc3
roqvideo: cosmetics.
2012-03-07 11:37:25 -08:00
Ronald S. Bultje
cdf1577162
roqvideo: convert to bytestream2 API.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:37:20 -08:00
Ronald S. Bultje
93b53ffb1a
dca: don't use av_clip_uintp2().
...
The argument is not a literal, thus causing the ARM v6 or later
builds to break.
2012-03-07 11:31:42 -08:00
Ronald S. Bultje
626964a4c4
wmall: fix build with -DDEBUG enabled.
2012-03-07 10:40:15 -08:00
Ronald S. Bultje
8febcb9fc1
smc: port to bytestream2 API.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 10:34:06 -08:00
Ronald S. Bultje
1255eed533
tgq: convert to bytestream2 API.
...
This protects against input buffer overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:53:57 -08:00
Ronald S. Bultje
e6ffd997cb
dca: prevent accessing static arrays with invalid indexes.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:37:29 -08:00
Ronald S. Bultje
cc5dd632ce
raw: move buffer size check up.
...
This way, it protects against overreads for 4bpp/2bpp content also.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:36:32 -08:00
Ronald S. Bultje
f1320dc3be
lpcm: fix sample size calculation for 20bit LCPM.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:36:03 -08:00
Ronald S. Bultje
9487fb4dea
swscale: clip unscaled output intermediates.
...
Fixes bug 240, as well as several integer overflows (visible as glitches)
in other scaling output routines, e.g. YUV422.
2012-03-07 09:35:46 -08:00
Ronald S. Bultje
a93b572ae4
smacker: error out if palette copy-with-offset overruns palette size.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:35:03 -08:00
Ronald S. Bultje
a55d5bdc6e
algmm: convert to bytestream2 API.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:34:52 -08:00
Ronald S. Bultje
a9c5b6f602
cpu: initialize mask to -1, so that by default, optimizations are used.
2012-03-06 12:53:02 -08:00
Ronald S. Bultje
6193ff6854
error_resilience: initialize s->block_index[].
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 11:08:56 -08:00
Ronald S. Bultje
11b940a1a8
svq3: protect against negative quantizers.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:42 -08:00
Ronald S. Bultje
c23acbaed4
Don't use ff_cropTbl[] for IDCT.
...
Results of IDCT can by far outreach the range of ff_cropTbl[], leading
to overreads and potentially crashes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:42 -08:00
Ronald S. Bultje
2254b559cb
swscale: make filterPos 32bit.
...
Fixes overflows for large image sizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-06 10:47:41 -08:00
Ronald S. Bultje
1c97b5c4a3
swscale: remove "cpu flags" from -sws_flags description.
2012-03-04 06:52:06 -08:00
Ronald S. Bultje
dccb2cd3f9
swscale: make %rep unconditional.
...
Fixes pre-processing with latest versions of nasm.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
b4188f0d46
vp8: convert simple loopfilter x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
8476ca3b4e
vp8: convert idct x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
21ffc78fd7
vp8: convert mc x86 assembly to use named arguments.
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
28170f1a39
vp8: convert loopfilter x86 assembly to use cpuflags().
2012-03-03 20:40:00 -08:00
Ronald S. Bultje
e25be47154
vp8: convert idct/mc x86 assembly to use cpuflags().
2012-03-03 20:39:59 -08:00
Ronald S. Bultje
8249a23fc1
swscale: remove now unnecessary hack.
2012-03-03 20:39:59 -08:00
Ronald S. Bultje
9d87374ec0
amrwb: remove duplicate arguments from extrapolate_isf().
...
Prevents warnings because the dst and src overlap (are the same) in the
memcpy() inside the function.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 12:50:00 -08:00
Ronald S. Bultje
154b8bb800
amrwb: error out early if mode is invalid.
...
Prevents using the invalid mode as an index in a static array, which
would generate invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:34:50 -08:00
Ronald S. Bultje
291c9b6285
h264: change underread for 10bit QPEL to overread.
...
This prevents us from reading before the start of the buffer, and thus
prevents crashes resulting from this behaviour. Fixes bug 237.
2012-03-02 10:33:05 -08:00
Ronald S. Bultje
9c239f6026
matroska: check buffer size for RM-style byte reordering.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:32:22 -08:00
Ronald S. Bultje
45549339bc
vp8: disable mmx functions with sse/sse2 counterparts on x86-64.
...
x86-64 is guaranteed to have at least SSE2, therefore the MMX/MMX2
functions will never be used in practice.
2012-03-02 10:32:05 -08:00
Ronald S. Bultje
bd66f073fe
vp8: change int stride to ptrdiff_t stride.
...
On 64bit platforms with 32bit int, this means we won't have to sign-
extend the integer anymore.
2012-03-02 10:31:50 -08:00
Ronald S. Bultje
349b7977e4
wma: fix invalid buffer size assumptions causing random overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:31:28 -08:00
Ronald S. Bultje
0ce4fe482c
h264: error out on invalid bitdepth.
...
Fixes invalid reads while initializing the dequant tables, which uses
the bit depth to determine the QP table size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 12:15:51 -08:00
Ronald S. Bultje
63c9de6469
huffyuv: do not abort on unknown pix_fmt; instead, return an error.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 10:23:36 -08:00
Ronald S. Bultje
bd17a40a7e
lcl: return negative error codes on decode_init() errors.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-01 07:12:29 -08:00
Ronald S. Bultje
8a9faf33f2
cscd: use negative error values to indicate decode_init() failures.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 14:04:23 -08:00
Ronald S. Bultje
d1604b3de9
h264: prevent overreads in intra PCM decoding.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 13:17:34 -08:00
Ronald S. Bultje
07a180972f
vmnc: return error on decode_init() failure.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:58:27 -08:00
Ronald S. Bultje
78e9852a2e
rpza: error out on buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:21:01 -08:00
Ronald S. Bultje
e54ae60e46
qtrle: return error on decode_init() failure.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:20:29 -08:00
Ronald S. Bultje
791de61bbb
swscale: fix another integer overflow.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-29 11:19:03 -08:00
Ronald S. Bultje
8bc396fc0e
vp56: error out on invalid stream dimensions.
...
Prevents crashes when playing corrupt vp5/6 streams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:41:58 -08:00
Ronald S. Bultje
bb6d5411e1
asf: don't seek back on EOF.
...
Seeking back on EOF will reset the EOF flag, causing us to re-enter
the loop to find the next marker in the ASF file, thus potentially
causing an infinite loop.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:25:05 -08:00
Ronald S. Bultje
6e57a02b9f
asf: error out on ridiculously large minpktsize values.
...
They cause various issues further down in demuxing.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 14:32:34 -08:00
Ronald S. Bultje
934cd18a43
oma: don't read beyond end of leaf_table.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 11:58:13 -08:00
Ronald S. Bultje
fc9bc08dca
Indeo3: fix crashes on corrupt bitstreams.
...
Splits at borders of cells are invalid, since it leaves one of the
cells with a width/height of zero. Also, propagate errors on buffer
allocation failures, so we don't continue decoding (which crashes).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 10:34:35 -08:00
Ronald S. Bultje
b0c4f04338
h264: fix mmxext chroma deblock to use correct TC values.
2012-02-27 09:38:44 -08:00
Ronald S. Bultje
6c4c27adb6
kgv1: release reference picture on size change.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-25 07:53:44 -08:00
Ronald S. Bultje
cd40c31ee9
matroska: don't overwrite string values until read/alloc was succesful.
...
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
2012-02-25 07:53:23 -08:00
Ronald S. Bultje
2bb628f870
swscale: fix another integer overflow at large dimensions/rescales.
2012-02-24 15:39:55 -08:00
Ronald S. Bultje
830f70442a
fraps: release reference buffer on pix_fmt change.
...
Prevents crash when trying to copy from a non-existing plane in e.g.
a RGB32 reference image to a YUV420P target image
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
87840eeb71
avcodec: disallow reget_buffer() if pix_fmt changed.
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
33cd32b389
kgv1: use avctx->get/release_buffer().
...
Also fixes crashes on corrupt bitstreams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
be129271ea
lcl: error out if uncompressed input buffer is smaller than framesize.
...
This prevents crashes when trying to read beyond the end of the buffer
while decoding frame data.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:57 -08:00