- 13 Aug, 2012 7 commits
-
-
Mans Rullgard authored
Use saturating addition functions instead of 64-bit intermediates and separate clipping. This is much faster when dedicated instructions are available. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Firstly, nothing in this function can overflow 32 bits so the use of a 64-bit type is completely unnecessary. Secondly, the scale is either a power of two or 0x7fff. Doing separate loops for these cases avoids using multiplications. Finally, since only the number of bits, not the actual value, of the maximum value is needed, the bitwise or of all the values serves the purpose while being faster. It is worth noting that even if overflow could happen, it was not handled correctly anyway. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The operands in both cases are 16-bit so cannot overflow a 32-bit destination. In gain_scale() the inputs are reduced to 14-bit, so even the shift cannot overflow. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The 'shift' argument is always 1 so there is no need to pass it explicitly in every call. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The compiler performs this optimisation. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Adding instead of subtracting the products in the loop allows the compiler to generate more efficient multiply-accumulate instructions when 16-bit multiply-subtract is not available. ARM has only multiply-accumulate for 16-bit operands. In general, if only one variant exists, it is usually accumulate rather than subtract. In the same spirit, using the dedicated saturation function enables use of any special optimised versions of this. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Fixed-point audio codecs often use saturating arithmetic, and special instructions for these operations are common. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 12 Aug, 2012 8 commits
-
-
Derek Buitenhuis authored
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Derek Buitenhuis authored
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Derek Buitenhuis authored
This is in preparation for adding support for other colorspaces and coding types. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Martin Storsjö authored
If the dts difference is more than 1000 times the average dts difference, restart the analysis. Signed-off-by: Martin Storsjö <martin@martin.st>
-
Martin Storsjö authored
These are normally initialized to AV_NOPTS_VALUE at the start of avformat_find_stream_info, but if a new stream is found while this function is running (e.g. like in mpegts), the newly added AVStreams didn't have these values properly initalized, leading to avformat_find_stream_info terminating too soon (when the first timestamps are far from 0). Signed-off-by: Martin Storsjö <martin@martin.st>
-
Mohammad Alsaleh authored
Some files' embedded art seems to have the mimetype 'image/JPG' instead of 'image/jpg'. Libav fails to parse those because it matches case-sensitively. Use av_strncasecmp() to fix this behaviour. Signed-off-by: Mohammad Alsaleh <msal@tormail.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
-
- 11 Aug, 2012 8 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
This fixes running FATE without --enable-gpl.
-
Diego Biurrun authored
-
Jordi Ortiz authored
Signed-off-by: Martin Storsjö <martin@martin.st>
-
Samuel Pitoiset authored
Also fix the bytestream reader size parameter to take the offset into account. Signed-off-by: Martin Storsjö <martin@martin.st>
-
Anton Khirnov authored
-
Anton Khirnov authored
-
Anton Khirnov authored
They describe properties that are inherent to a codec (as described by an AVCodecID) without referring to a specific implementation.
-
- 10 Aug, 2012 8 commits
-
-
Anton Khirnov authored
C++ does not allow to mix different enums, so e.g. code comparing ACodecID with CodecID would fail to compile with gcc. This very evil hack should fix this problem.
-
Mans Rullgard authored
This makes struct AVDictionary fully opaque now that nothing needs to access it directly any more. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
This adds a function to retrieve the number of entries in a dictionary and updates the places directly accessing what should be an opaque struct to use this new function instead. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
This addition must be done as 64-bit to avoid overflow and for the subsequent clipping to be meaningful. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
In 16-bit arithmetic, x * 0xffffc is simply x * -4 with extra overflows, (and the constant was probably meant to be 0xfffc). Combined with the shift, this simplifies to -x >> 1. Finally, clearing the low two bits with a 32-bit mask and switching to a 32-bit type allows more efficient code on 32-bit machines. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
(x << 2) - x is just an optimisation of 3 * x the compiler is perfectly capable of doing on its own. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 09 Aug, 2012 9 commits
-
-
Samuel Pitoiset authored
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Samuel Pitoiset authored
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Samuel Pitoiset authored
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The condition is trivially true, but keeping the assert() is sensible to avoid FFM_HEADER_SIZE ever getting out of sync with the actual code. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The only compiler I have that does not define the standard offsetof() macro is "Bruce's C Compiler", a simple compiler for producing 8/16-bit 8086 code, usually for use in early stages of PC booting. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
This list is incomplete (we also use UINT16_MAX), so there does not appear to be any system we care about that needs these. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Michael Niedermayer authored
This fixes build failures on debian/kfreebsd, which has the sctp.h header, but it is currently broken (a cpp test succeeds, but a compile test fails), see http://bugs.debian.org/684330 for details. Also remove the checked item from HAVE_LIST, since the corresponding HAVE_* define isn't used by the source code. Signed-off-by: Martin Storsjö <martin@martin.st>
-
Diego Biurrun authored
-