aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* jpeg: handle progressive in second field of interlaced.Ronald S. Bultje2012-05-021-3/+2
| | | | | | | | 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
* ituh263dec: Implement enough of Annex O (scalability) to fix a FPE.Michael Niedermayer2012-05-021-0/+16
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h263: more strictly forbid frame size changes with frame-mt.Ronald S. Bultje2012-05-021-5/+7
| | | | | | | Prevents crashes because the old check was incomplete. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* h264: additional protection against unsupported size/bitdepth changes.Ronald S. Bultje2012-05-022-2/+5
| | | | | | | Fixes crashes in codepaths not covered by original checks. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* tta: prevents overflows for 32bit integers in header.Ronald S. Bultje2012-05-021-3/+5
| | | | | | | | 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
* configure: remove malloc_aligned.Ronald S. Bultje2012-05-021-6/+1
| | | | | | 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).
* vp8: update frame size changes on thread context switches.Ronald S. Bultje2012-05-021-0/+2
| | | | | | | | | 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
* snowdsp: explicitily state instruction size.Ronald S. Bultje2012-05-021-2/+2
| | | | Fixes a compile error with clang at -O0.
* wmall: fix reconstructing audio with uncoded channelsKostya Shishkov2012-05-021-3/+3
|
* WMAL cosmetics: fix indentationMashiat Sarker Shakkhar2012-05-021-1/+1
| | | | Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* gitignore: add Win32 library suffixesJoakim Plate2012-05-021-0/+3
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* arm: intreadwrite: disable inline asm for gcc 4.7 and laterMans Rullgard2012-05-021-1/+2
| | | | | | | | 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>
* arm: intreadwrite: fix inline asm constraints for gcc 4.6 and laterMans Rullgard2012-05-021-3/+10
| | | | | | | | | | | | | | | | | | | | 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>
* indeo3: fix motion vector validationHendrik Leppkes2012-05-011-2/+2
| | | | | | | | 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>
* pcm_bluray: set bits_per_raw_sample for > 16-bitHendrik Leppkes2012-05-011-0/+1
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* twinvq: fix out of bounds array accessMans Rullgard2012-05-011-2/+4
| | | | | | | | | 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>
* lavr: use 8.8 instead of 10.6 as the 16-bit fixed-point mixing coeff typeJustin Ruggles2012-05-017-15/+18
|
* avplay: use libavresample for sample format conversion and channel mixingJustin Ruggles2012-05-011-38/+86
| | | | | | | 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.
* Fix compilation with YASM/NASM without AVX support.Reimar Döffinger2012-05-011-0/+2
| | | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* WMAL: do not output last frame again if nothing was decoded in current packetJakub Stachowski2012-05-011-0/+2
| | | | | | 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>
* WMAL: do not start decoding if frame does not end in current packetMashiat Sarker Shakkhar2012-05-011-2/+2
| | | | | | | This fixes decoding of frames which span more than two packets. Tested with recit24.wma. Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* adpcm-thp: fix invalid array indexingMans Rullgard2012-05-011-4/+6
| | | | | | Indexing outside array limits is invalid and breaks with gcc 4.8. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ppc: add const where needed in scalarproduct_int16_altivec()Mans Rullgard2012-05-011-3/+4
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ppc: remove shift parameter from scalarproduct_int16_altivec()Mans Rullgard2012-05-011-10/+1
| | | | | | | The shift parameter was removed from this interface in 7e1ce6a. This updates the Altivec implementation to match. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ppc: dsputil: do unaligned block accesses correctlyMans Rullgard2012-05-012-100/+98
| | | | | | | | | | | | 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>
* dvenc: do not call dsputil functions with stride not a multiple of 16Mans Rullgard2012-05-011-3/+3
| | | | | | | | 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>
* APIchanges: fill in some dates and commit hashesJustin Ruggles2012-04-301-9/+9
|
* mkv: mark corrupted packets and return themLuca Barbato2012-04-291-0/+5
| | | | Do return error if memory allocation or I/O fails.
* mkv: forward EMBL block data errorLuca Barbato2012-04-291-1/+1
| | | | Do not return 0 on error.
* avcodec: introduce YCoCg colorspaceHendrik Leppkes2012-04-291-0/+1
| | | | | | | | 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>
* avcodec: cosmetic cleanup on headerLuca Barbato2012-04-291-39/+39
| | | | Apply coding style to the structs.
* aac sbr: align struct member by 32 byte.Ronald S. Bultje2012-04-291-1/+1
| | | | | | | 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>
* 4xm: fix invalid array indexingMans Rullgard2012-04-291-9/+12
| | | | | | Indexing outside arrays is invalid and breaks with gcc 4.8. Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv34dsp: factorize a multiplication in the noround inverse transformChristophe GISQUET2012-04-281-9/+9
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv40: perform bitwise checks in loop filterChristophe Gisquet2012-04-281-8/+8
| | | | | | Down from 95 kcycles to 93 (including all called functions). Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv34: remove inline keyword from rv34_decode_block().Ronald S. Bultje2012-04-281-1/+1
| | | | Force-inlining increases object size by 8kB and causes a 2% slowdown.
* rv40: change a logical test into a bitwise one.Christophe Gisquet2012-04-281-1/+1
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv34: remove constant parameterChristophe Gisquet2012-04-281-11/+6
| | | | | | is_block2 was always 0, so just remove it, and change accordingly the code. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv40: don't always do the full prev_type searchChristophe Gisquet2012-04-281-11/+14
| | | | | | 120->100 cycles. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* dsputil x86: revert a test back to its previous valueChristophe GISQUET2012-04-281-1/+1
| | | | | | Commit 356ee8d caused the initial inversion. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv34dsp x86: implement MMX2 inverse transformChristophe Gisquet2012-04-282-0/+80
| | | | | | 141 cycles down to 51. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: new assembly version of get_cabac for x86_64 with PICRoland Scheidegger2012-04-283-24/+121
| | | | | | | | | | 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>
* h264: use one table instead of several for cabac functionsRoland Scheidegger2012-04-286-48/+70
| | | | | | | | | | | | | The reason is this is easier for PIC code (in particular on darwin...). Keep the old names as pointers (static in cabac_functions.h so gcc knows these are just immediate offsets) so the c code can nicely stay the same (alternatively could use offsets directly in the functions needing the tables). This should produce the same code as before with non-pic and better code (confirmed) with pic. The assembly uses the new table but still won't work for PIC case. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: (trivial) remove unneeded macro argument in x86/cabac.hRoland Scheidegger2012-04-281-3/+3
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* libschroedingerdec: check mallocJordi Ortiz2012-04-281-0/+5
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* segment: reorder seg_write_header allocationLuca Barbato2012-04-271-8/+6
| | | | | As pointed by Paul B Mahol <onemda@gmail.com> the previous code could lead to null pointer dereference.
* avio: make avio_close(NULL) a no-opLuca Barbato2012-04-271-1/+5
| | | | Its behaviour in line with ffurl_close(NULL).
* mov: Parse EC3SpecificBox (dec3 atom).Yusuke Nakamura2012-04-271-0/+29
| | | | | | | | Skip to parse fields for additional independent substreams and its associated dependent substreams since libavcodec's E-AC-3 decoder does not support them yet. Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* mpegts: Make sure we don't return uninitialized packetsMartin Storsjö2012-04-271-0/+3
| | | | | | | | | This fixes crashes, where the demuxer could return 0 even if the returned AVPacket isn't initialized at all. This could happen if running into EOF or running out of probesize with non-seekable sources. Signed-off-by: Martin Storsjö <martin@martin.st>
* gitignore: replace library catch-all pattern by more specific patternsDiego Biurrun2012-04-271-6/+5
| | | | | | Ignoring all files that start with the name of a library matches some files that are not generated. So replace libfoo/libfoo* with patterns for static and shared libraries, pkg-config and version files.