Ronald S. Bultje and Alex Converse
4bfa67bdad
Add probe fate tests to test for regressions in detecting media types.
...
Signed-off-by: Alex Converse <alex.converse@gmail.com >
2012-05-07 10:14:51 -07:00
Ronald S. Bultje and Justin Ruggles
64953f67f9
qdm2: clip array indices returned by qdm2_get_vlc().
...
Prevents subsequent overreads when these numbers are used as indices
in arrays.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com >
2012-05-07 13:08:36 -04:00
Ronald S. Bultje and Anton Khirnov
08354bf458
avprobe: allow showing only one container/stream property.
...
This is useful for writing unit tests.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2012-05-07 08:08:46 +02:00
Ronald S. Bultje
d2205d6543
png: check bit depth for PAL8/Y400A pixel formats.
...
Wrong bit depth can lead to invalid rowsize values, which crashes the
decoder further down.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-04 16:06:47 -07:00
Ronald S. Bultje
273e6af47b
ea: check chunk_size for validity.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-04 16:06:26 -07:00
Ronald S. Bultje
5eec5a79da
jpeg: handle progressive in second field of interlaced.
...
Progressive data is allocated later in decode_sof(), not allocating
that data leads to NULL dereferences.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:29:51 -07:00
Ronald S. Bultje
2d22d4307d
h263: more strictly forbid frame size changes with frame-mt.
...
Prevents crashes because the old check was incomplete.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:21:34 -07:00
Ronald S. Bultje
732f9fcfe5
h264: additional protection against unsupported size/bitdepth changes.
...
Fixes crashes in codepaths not covered by original checks.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:19:37 -07:00
Ronald S. Bultje
ac80b812cd
tta: prevents overflows for 32bit integers in header.
...
This prevents sample_rate/data_length from going negative, which
caused various crashes and undefined behaviour further down.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-05-02 10:16:57 -07:00
Ronald S. Bultje
77cfb2563c
configure: remove malloc_aligned.
...
It was to signal that allocations are 16-byte aligned, but AVX requires
32-byte alignment, thus the check is no longer useful (and causes
crashes).
2012-05-02 09:57:12 -07:00
Ronald S. Bultje
82a0497cf3
vp8: update frame size changes on thread context switches.
...
This properly synchronizes frame size changes between threads if
subsequent threads abort decoding before frame size is initialized, i.e.
it prevents the thread after that from ping-ponging back to the original
value.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-05-02 09:57:12 -07:00
Ronald S. Bultje
bec207f9f9
snowdsp: explicitily state instruction size.
...
Fixes a compile error with clang at -O0.
2012-05-02 09:57:12 -07:00
Ronald S. Bultje and Derek Buitenhuis
b12bf03275
aac sbr: align struct member by 32 byte.
...
Required because it's used in a call to imdct_half(), which is an AVX
function.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2012-04-29 13:49:39 -04:00
Ronald S. Bultje
774b681b80
rv34: remove inline keyword from rv34_decode_block().
...
Force-inlining increases object size by 8kB and causes a 2% slowdown.
2012-04-28 11:10:57 -07:00
Ronald S. Bultje
87a246341b
h264: use proper PROLOGUE statement for a function using 8 registers.
...
Fixes crashes when using biweight on win64.
2012-04-16 08:07:21 -07:00
Ronald S. Bultje
7f77e9041a
swscale: clip before assigning tables in RGB output functions.
2012-04-14 16:29:24 -07:00
Ronald S. Bultje
4860625236
swscale: fix off-by-one in second coefficient in bilinear filters.
...
If coefficient A is 12-bits xixed-point number "X", then the other
coefficient is (1 << 12) - X, not (1 << 12) - X - 1.
2012-04-14 16:29:10 -07:00
Ronald S. Bultje
9206ac80a5
swscale: handle last pixel if lines have an odd width.
...
Fixes bug 270.
2012-04-13 14:21:58 -07:00
Ronald S. Bultje
b089ca871a
dsputil: fix optimized emu_edge function on Win64.
...
Recent register allocation changes (x86inc.asm update) changed the
register order and thus opcodes for the inner loops. One of them became
>128bytes, which confuses other parts of this function where it jumps
to fixed-offset positions to extend the edge by fixed amounts. A simple
register change fixes this.
2012-04-13 11:28:30 -07:00
Ronald S. Bultje
76538d7a78
h264: fix 10bit biweight functions after recent x86inc.asm fixes.
...
This should have been updated in the x86inc.asm update, but was
accidently forgotten.
2012-04-12 21:13:57 -07:00
Ronald Bultje and Justin Ruggles
992f71e95d
msrle: convert MS RLE decoding function to bytestream2.
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com >
2012-04-11 16:30:41 -04:00
Ronald S. Bultje
7756859a31
fate: add BMP tests.
2012-04-04 11:16:23 -07:00
Ronald S. Bultje
bc0bdda77b
swscale: handle complete dimensions for monoblack/white.
...
Fixes bug 269.
2012-04-04 10:55:50 -07:00
Ronald S. Bultje
4f7c7624c0
mov: don't overwrite existing indexes.
...
Prevents all kind of badness if files contain multiple
indexes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
0399fe0fd2
lzw: fix potential integer overflow.
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
b7b1509d06
truemotion: forbid invalid VLC bitsizes and token values.
...
SHOW_UBITS() is only defined up to n_bits is 25, therefore forbid
values larger than this in get_vlc2() (max_bits). tokens[][] can be
used as an index in deltas[], which has a size of 64, so ensure the
values are smaller than that.
This prevents crashes on corrupt bitstreams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
bf39d3b59d
truemotion2: handle out-of-frame motion vectors through edge extension.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:11 -07:00
Ronald S. Bultje
ddcf67c8a5
lzw: prevent buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 17:38:51 -07:00
Ronald S. Bultje
63a1b481f6
h264: fix cabac-on-stack after safe cabac reader.
2012-03-28 16:35:42 -07:00
Ronald S. Bultje
bd508d435b
truemotion2: convert packet header reading to bytestream2.
...
Also use correct buffer sizes in calls to tm2_read_stream(). Together,
this prevents overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 12:29:26 -07:00
Ronald S. Bultje
44257ef426
asf: only set index_read if the index contained entries.
...
This allows falling back to a binary search if the file contains no
index, thus fixing seeking in such files (e.g. luckynight.wma).
2012-03-28 10:22:25 -07:00
Ronald S. Bultje
a940198130
cabac: add overread protection to BRANCHLESS_GET_CABAC().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
448dc42571
cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
16f6e83f74
cabac: remove unused argument from BRANCHLESS_GET_CABAC_UPDATE().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
951014e5bb
cabac: use struct+offset instead of memory operand in BRANCHLESS_GET_CABAC().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
a0bdcb019e
h264: add overread protection to get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
95bfa4ead7
h264: reindent get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
db025929f2
h264: use struct offsets in get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
7374fac804
h264: fix overreads in cabac reader.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 08:01:28 -07:00
Ronald S. Bultje
d360dd902c
wmall: fix seeking.
2012-03-28 07:14:21 -07:00
Ronald S. Bultje
0a82f5275f
lagarith: fix buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 07:06:47 -07:00
Ronald S. Bultje
e74d6daa29
fate: add kgv1 fate test.
...
Tested to be bit-exact across x86-64, x86-32 and ppc.
2012-03-27 17:54:04 -07:00
Ronald S. Bultje
98df2e2414
raw: forward avpicture_fill() error code in raw_decode().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-27 08:54:07 -07:00
Ronald S. Bultje
2ad405548b
targa: convert to bytestream2.
...
Also remove some write-only variables or write-only variable
assignments, remove internal colorspace conversion to native
endianness (that can be done by swscale much more efficiently),
and some cosmetics.
2012-03-26 17:46:16 -07:00
Ronald S. Bultje
5484170ac7
rv34: set mb_num_left to 0 after finishing a frame
...
Prevents running error resilience on a previous frame which will write
to the pic->mb_type[] array of the previous image. The array might
already be re-used for a new image in a subsequent thread, thus cause
two threads to write to the same pic->mb_type[] array, causing a race
condition which can crash in rv34_decode_cbp(), called by
rv34_decode_inter_mb_header() (which accesses mb_type[] twice,
assuming values are maintained, which the race condition breaks).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-26 16:39:01 -07:00
Ronald S. Bultje
b2af057a36
smacker: convert palette and header reading to bytestream2.
2012-03-25 16:31:16 -07:00
Ronald S. Bultje
c3bbd0b53b
alac: convert extradata reading to bytestream2.
2012-03-25 13:35:05 -07:00
Ronald S. Bultje
3a3f06b05e
dpcm: convert to bytestream2.
2012-03-24 19:02:26 -07:00
Ronald S. Bultje
f31a68e78c
interplayvideo: convert to bytestream2.
2012-03-24 17:09:18 -07:00
Ronald S. Bultje
ec0ed97b04
utvideo: port header reading to bytestream2.
...
Fixes crash during slice size reading if slice_end goes negative.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-24 15:15:56 -07:00
Ronald S. Bultje and Anton Khirnov
2ee01fbded
pthread: free progress if buffer allocation failed.
...
Else we run out of progress variables after a few failed buffer
allocations.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2012-03-24 21:29:35 +01:00
Ronald S. Bultje and Anton Khirnov
bc1ef85520
lavc/avconv: support changing frame sizes in codecs with frame mt.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2012-03-24 21:29:16 +01:00
Ronald S. Bultje
7beec7e29d
fate: add wmalossless test.
2012-03-23 14:03:03 -07:00
Ronald S. Bultje
71ea26811c
aacsbr: handle m_max values smaller than 4.
...
Prevents a signflip in the counter, and a subsequent crash because of
overreads/overwrites.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-23 12:56:08 -07:00
Ronald S. Bultje
e73c6aaabf
asf: reset side data elements on packet copy.
...
Prevents crash (double free) when free()ing the original packet.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
262196445c
wmavoice: fix stack overread.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
3c9267673e
wmalossless: error out if a subframe is not used by any channel.
...
Prevents infinite loop because min_channel_len never increments.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
75d7975268
vqa: check palette chunk size before reading data.
...
Prevents overreads beyond buffer boundaries.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
d462949974
wmalossless: reset sample pointer for each subframe.
...
Prevents overwrites when some subframes only encode some channels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
326f7a68bb
wmalossless: error out on invalid values for order.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje and Kostya Shishkov
68fd077f68
indeo4: fix out-of-bounds function call.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com >
2012-03-21 19:01:08 +01:00
Ronald S. Bultje
1744ab9e46
adpcm: convert adpcm_thp to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
72eda7786d
adpcm: convert adpcm_yamaha to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
f184735a27
adpcm: convert adpcm_swf to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
8afe2f9002
adpcm: convert adpcm_sbpro to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
834c81f4c5
adpcm: convert adpcm_ct to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
b3084e29e6
adpcm: convert adpcm_ima_amv/smjpeg to bytestream2.
2012-03-18 15:33:16 -07:00
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