- 02 May, 2012 13 commits
-
-
Ronald S. Bultje authored
Prevents crashes because the old check was incomplete. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
-
Ronald S. Bultje authored
Fixes crashes in codepaths not covered by original checks. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
-
Ronald S. Bultje authored
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
-
Ronald S. Bultje authored
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).
-
Ronald S. Bultje authored
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
-
Ronald S. Bultje authored
Fixes a compile error with clang at -O0.
-
Kostya Shishkov authored
-
Mashiat Sarker Shakkhar authored
Signed-off-by:
Kostya Shishkov <kostya.shishkov@gmail.com>
-
Joakim Plate authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at> Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Mans Rullgard authored
Starting with version 4.7, gcc properly supports unaligned memory accesses on ARM. Not using the inline asm with these compilers results in better code. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
With a dereferenced type-cast pointer as memory operand, gcc 4.6 and later will sometimes copy the data to a temporary location, the address of which is used as the operand value, if it thinks the target address might be misaligned. Using a pointer to a packed struct type instead does the right thing. The 16-bit case is special since the ldrh instruction addressing modes are limited compared to ldr. The "Uq" constraint produces a memory reference suitable for an ldrsb instruction, which supports the same addressing modes as ldrh. However, the restrictions appear to apply only when the operand addresses a single byte. The memory reference must thus be split into two operands each targeting one byte. Finally, the "Uq" constraint is only available in ARM mode. The Thumb-2 ldrh instruction supports most addressing modes so the normal "m" constraint can be used there. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Hendrik Leppkes authored
The index of the motion vector has to be checked before being multiplied by 2 for the array index. Signed-off-by:
Michael Niedermayer <michaelni@gmx.at> Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Hendrik Leppkes authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at> Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
- 01 May, 2012 6 commits
-
-
Mans Rullgard authored
ModeTab.fmode has only 3 elements, so indexing it with ftype in the initialier for 'size' is invalid when ftype == FT_PPC. This fixes crashes with gcc 4.8. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Justin Ruggles authored
-
Justin Ruggles authored
SDL only supports s16 sample format and a limited number of channel layouts. Some versions of SDL on some systems support 4-channel and 6-channel output, but it's safer overall to downmix any layout with more than 2 channels to stereo.
-
Reimar Döffinger authored
Signed-off-by:
Reimar Döffinger <Reimar.Doeffinger@gmx.de> Signed-off-by:
Justin Ruggles <justin.ruggles@gmail.com>
-
Jakub Stachowski authored
Reviewed-by:
Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com> Signed-off-by:
Michael Niedermayer <michaelni@gmx.at> Signed-off-by:
Kostya Shishkov <kostya.shishkov@gmail.com>
-
Mashiat Sarker Shakkhar authored
This fixes decoding of frames which span more than two packets. Tested with recit24.wma. Signed-off-by:
Kostya Shishkov <kostya.shishkov@gmail.com>
-
- 30 Apr, 2012 8 commits
-
-
Mans Rullgard authored
Indexing outside array limits is invalid and breaks with gcc 4.8. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The shift parameter was removed from this interface in 7e1ce6a6. This updates the Altivec implementation to match. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
To load unaligned vector data in the usual way, explicit vec_ld() should be used rather than dereferencing a pointer to a vector type. When the VSX extension is enabled, gcc may compile vector pointer dereferences using the VSX lxvw4x instruction instead of the lvx instruction typically used with Altivec/VMX. As the behaviour of these instructions with unaligned addresses differs, it is important that only lvx is used here. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Allowing dsputil functions to assume the stride is a multiple of 16 even for smaller block sizes can simplify their implementation. This appears to be the only place this guarantee is not met. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
Justin Ruggles authored
-
Luca Barbato authored
Do return error if memory allocation or I/O fails.
-
Luca Barbato authored
Do not return 0 on error.
-
- 29 Apr, 2012 4 commits
-
-
Hendrik Leppkes authored
Non perceptual color model that aims to have an increase effectiveness in compression like the normal YCbCr while having near-lossless/lossless mapping to RGB. Signed-off-by:
Luca Barbato <lu_zero@gentoo.org>
-
Luca Barbato authored
Apply coding style to the structs.
-
Ronald S. Bultje authored
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>
-
Mans Rullgard authored
Indexing outside arrays is invalid and breaks with gcc 4.8. Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 28 Apr, 2012 9 commits
-
-
Christophe GISQUET authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Christophe Gisquet authored
Down from 95 kcycles to 93 (including all called functions). Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Ronald S. Bultje authored
Force-inlining increases object size by 8kB and causes a 2% slowdown.
-
Christophe Gisquet authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Christophe Gisquet authored
is_block2 was always 0, so just remove it, and change accordingly the code. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Christophe Gisquet authored
120->100 cycles. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Christophe GISQUET authored
Commit 356ee8d7 caused the initial inversion. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Christophe Gisquet authored
141 cycles down to 51. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Roland Scheidegger authored
This adds a hand-optimized assembly version for get_cabac much like the existing one, but it works if the table offsets are RIP-relative. Compared to the non-RIP-relative version this adds 2 lea instructions and it needs one extra register. get_cabac() gets about 40% faster, for an overall speedup of about 5%. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-