ffmpeg.git
8 years agolibavcodec: Define a side data type for parameter changes
Martin Storsjö [Thu, 15 Dec 2011 16:30:03 +0000 (18:30 +0200)]
libavcodec: Define a side data type for parameter changes

Also define a codec capability for codecs that can handle
parameters changed externally between decoded packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoaacdec: Handle new extradata passed as side data
Martin Storsjö [Thu, 15 Dec 2011 14:53:19 +0000 (16:53 +0200)]
aacdec: Handle new extradata passed as side data

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoflvdec: Export new AAC/H.264 extradata as side data on the next packet
Martin Storsjö [Thu, 15 Dec 2011 14:29:55 +0000 (16:29 +0200)]
flvdec: Export new AAC/H.264 extradata as side data on the next packet

Compared to just overwriting the old extradata, this has the
advantage of letting the decoder know exactly when the
extradata changed (otherwise it is changed immediately when the
new extradata packet is demuxed, even if there's old queued packets
awaiting to be decoded). This makes it easier for decoders to
actually react to the change, so they won't have to inspect
the extradata for each packet to see if it might have changed.

This works when sequentially playing a file with sample rate
changes, but if seeking past a new extradata packet in the
file, it obviously doesn't work properly. That case doesn't
work in flash player either, so it's probably ok not to handle
it.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agolibavcodec: Define a side data type for new extradata
Martin Storsjö [Thu, 15 Dec 2011 14:11:49 +0000 (16:11 +0200)]
libavcodec: Define a side data type for new extradata

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoflacdec: skip all track indices at once instead of looping.
Paul B Mahol [Sat, 10 Dec 2011 19:42:46 +0000 (14:42 -0500)]
flacdec: skip all track indices at once instead of looping.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
8 years agomxf: Add PictureEssenceCoding UL for V210.
Tomas Härdin [Mon, 26 Sep 2011 09:24:11 +0000 (11:24 +0200)]
mxf: Add PictureEssenceCoding UL for V210.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agomxfdec: consider QuantizationBits between 17 and 24 to be pcm_s24*
Tomas Härdin [Tue, 27 Sep 2011 09:14:59 +0000 (11:14 +0200)]
mxfdec: consider QuantizationBits between 17 and 24 to be pcm_s24*

This fixes playback of BRD38772509.mxf.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agomxfenc: Add support for MPEG-2 MP@HL-14 in mxf container.
Daniel Kristjansson [Fri, 16 Sep 2011 16:16:30 +0000 (18:16 +0200)]
mxfenc: Add support for MPEG-2 MP@HL-14 in mxf container.

Support Main Profile at High 1440 Level in MXF container,
using essence coding label from SMPTE RDD 9, table 6.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agomxf: H.264/MPEG-4 AVC Intra support
Baptiste Coudurier [Sun, 14 Aug 2011 22:40:54 +0000 (00:40 +0200)]
mxf: H.264/MPEG-4 AVC Intra support

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agoconfigure: Show whether the safe bitstream reader is enabled
Martin Storsjö [Wed, 21 Dec 2011 13:32:39 +0000 (15:32 +0200)]
configure: Show whether the safe bitstream reader is enabled

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agox86: Tighten register constraints for decode_significance*_x86.
Diego Biurrun [Wed, 21 Dec 2011 10:39:39 +0000 (11:39 +0100)]
x86: Tighten register constraints for decode_significance*_x86.

On 32-bit OS X with gcc 4.0/4.2 and shared libraries enabled, the ebx register
is not available, but required to assemble the functions.

This reverts commit 8742a4f to a simplified version of the original constraints.

8 years agoReplace Subversion revisions in comments by Git hashes.
Diego Biurrun [Tue, 20 Dec 2011 22:51:55 +0000 (23:51 +0100)]
Replace Subversion revisions in comments by Git hashes.

8 years agoh264_cabac: synchronize decode_significance_*_x86 conditionals
Diego Biurrun [Tue, 20 Dec 2011 17:57:30 +0000 (18:57 +0100)]
h264_cabac: synchronize decode_significance_*_x86 conditionals

The definition and the call site where under different #ifdefs.

8 years agow32threads: wait for the waked thread in pthread_cond_signal.
Sergey Radionov [Wed, 21 Dec 2011 02:08:56 +0000 (09:08 +0700)]
w32threads: wait for the waked thread in pthread_cond_signal.

This fixes a deadlock VLC triggered with multithreaded decoding. The
wait forces one of the current waiters to wake and not the thread
which calls pthread_cond_signal() itself.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
8 years agoaacdec: Cleanup decode_ics_info.
Alex Converse [Tue, 20 Dec 2011 18:36:27 +0000 (10:36 -0800)]
aacdec: Cleanup decode_ics_info.

Remove unused function argument.
Return an AVERROR.
Don't zero out ICS on failure.

8 years agonetwork: properly declare WSADATA in windows
Sergey Radionov [Wed, 21 Dec 2011 02:19:10 +0000 (09:19 +0700)]
network: properly declare WSADATA in windows

Fixed "ISO C90 forbids mixed declarations and code" in ff_network_init

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
8 years agofate: account for NUT 10bit support
Luca Barbato [Wed, 21 Dec 2011 01:50:57 +0000 (02:50 +0100)]
fate: account for NUT 10bit support

Some libavifilter tests use NUT as output even if the produced
files were not decodable. The support for 10bit introduced in
432f0e5b7d and 91b1e6f0c changed the hashes.

8 years agobuild: error on mixed declarations and code
Mans Rullgard [Tue, 20 Dec 2011 16:32:06 +0000 (16:32 +0000)]
build: error on mixed declarations and code

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agopostproc: altivec: fix remaining mixed declarations and code
Mans Rullgard [Tue, 20 Dec 2011 19:07:49 +0000 (19:07 +0000)]
postproc: altivec: fix remaining mixed declarations and code

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agopostproc: altivec: untemplate some variable names
Mans Rullgard [Tue, 20 Dec 2011 19:03:25 +0000 (19:03 +0000)]
postproc: altivec: untemplate some variable names

These variables are now in separate scopes and thus do not
need unique names.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agopostproc: altivec: fix trivial cases of mixed declarations and code
Mans Rullgard [Tue, 20 Dec 2011 18:31:43 +0000 (18:31 +0000)]
postproc: altivec: fix trivial cases of mixed declarations and code

This moves declarations without initialisers or with constant
initialisers to the start of a block, and adds do {} while(0)
around some macros, thus allowing declarations within them.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agolavc: always align height by 32 pixel
Rafaël Carré [Tue, 13 Dec 2011 14:32:34 +0000 (15:32 +0100)]
lavc: always align height by 32 pixel

Interlaced content for most codec requires it.
This patch is a stop-gap pending a serious rework to support
codecs with non 16 pixel macroblocks.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
8 years agoraw: add 10bit YUV definitions
Luca Barbato [Sun, 4 Dec 2011 14:56:40 +0000 (15:56 +0100)]
raw: add 10bit YUV definitions

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
8 years agonut: support 10bit YUV
Luca Barbato [Sun, 4 Dec 2011 14:56:39 +0000 (15:56 +0100)]
nut: support 10bit YUV

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
8 years agompegvideo_enc: separate declarations and statements
Diego Biurrun [Tue, 20 Dec 2011 09:06:49 +0000 (10:06 +0100)]
mpegvideo_enc: separate declarations and statements

libavcodec/mpegvideo_enc.c:1209: warning: ISO C90 forbids mixed declarations and code

8 years agooma: make header compile standalone
Diego Biurrun [Tue, 20 Dec 2011 14:38:18 +0000 (15:38 +0100)]
oma: make header compile standalone

8 years agovp3: Reorder some functions to fix VP3 build with Theora disabled.
Diego Biurrun [Tue, 20 Dec 2011 13:42:54 +0000 (14:42 +0100)]
vp3: Reorder some functions to fix VP3 build with Theora disabled.

8 years agobuild: fix standalone compilation of ADX encoder
Diego Biurrun [Tue, 20 Dec 2011 17:26:54 +0000 (18:26 +0100)]
build: fix standalone compilation of ADX encoder

The encoder depends on the common code, so link against it.

8 years agobuild: fix standalone compilation of ADPCM decoders
Diego Biurrun [Tue, 20 Dec 2011 10:37:56 +0000 (11:37 +0100)]
build: fix standalone compilation of ADPCM decoders

The generic ADPCM codes depends on the ADPCM data tables.

8 years agobuild: fix standalone compilation of mpc7/mpc8 decoders
Diego Biurrun [Tue, 20 Dec 2011 10:34:05 +0000 (11:34 +0100)]
build: fix standalone compilation of mpc7/mpc8 decoders

These decoders depend on the mpegaudio DSP code.

8 years ago4xm: Use bytestream2 functions to prevent overreads
Aneesh Dogra [Mon, 19 Dec 2011 22:24:50 +0000 (03:54 +0530)]
4xm: Use bytestream2 functions to prevent overreads

Fixes Bug 110.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
8 years agobytestream: add a new set of bytestream functions with overread checking
Aneesh Dogra [Mon, 19 Dec 2011 22:24:50 +0000 (03:54 +0530)]
bytestream: add a new set of bytestream functions with overread checking

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
8 years agompegts: Suppress invalid timebase warnings on DMB streams.
Alex Converse [Mon, 19 Dec 2011 18:48:57 +0000 (10:48 -0800)]
mpegts: Suppress invalid timebase warnings on DMB streams.

timestamp_len and timestamp_res intialize to zero.

8 years agompegts: Fix typo in handling sections in the PMT.
Alex Converse [Mon, 19 Dec 2011 18:41:22 +0000 (10:41 -0800)]
mpegts: Fix typo in handling sections in the PMT.

This was an error rebasing 4682a1dc3aa2554ad7077f5db32d0f2d598d018e for
commit. The "pes" variable guaranteed to be NULL in that block.

8 years agovc1dec: Use the right pointer type for the tmp pointer
Martin Storsjö [Tue, 20 Dec 2011 08:53:18 +0000 (10:53 +0200)]
vc1dec: Use the right pointer type for the tmp pointer

This fixes warnings about assignment from incompatible
pointer type.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoh264: clear trailing bits in partially parsed NAL units
Janne Grunau [Mon, 19 Dec 2011 17:11:44 +0000 (18:11 +0100)]
h264: clear trailing bits in partially parsed NAL units

Trailing bits are likely to be non-zero if the NAL unit is truncated.
Clearing the bits make overreads of the bitstream less likely in this
case. Fixes playback of
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4 which
has a forbidden byte sequence of 0x00 0x00 0x00 in it SPS.

8 years agovc1: Handle WVC1 interlaced stream
Aneesh Dogra [Mon, 19 Dec 2011 20:08:19 +0000 (01:38 +0530)]
vc1: Handle WVC1 interlaced stream

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoxl: Fix overreads
Aneesh Dogra [Mon, 19 Dec 2011 18:30:30 +0000 (00:00 +0530)]
xl: Fix overreads

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agompegts: rename payload_index to payload_size
Luca Barbato [Sat, 17 Dec 2011 13:08:11 +0000 (14:08 +0100)]
mpegts: rename payload_index to payload_size

It holds the size of the current payload.

8 years agosegment: introduce segmented chain muxer
Luca Barbato [Sun, 2 Oct 2011 21:05:29 +0000 (23:05 +0200)]
segment: introduce segmented chain muxer

It behaves similarly to image2 muxer

8 years agolavu: add AVERROR_BUG error value
Luca Barbato [Wed, 14 Dec 2011 19:27:11 +0000 (20:27 +0100)]
lavu: add AVERROR_BUG error value

It should be used to mark codepath that can be reached only through
programming error.

8 years agoavplay: clear pkt_temp when pkt is freed.
Michael Niedermayer [Tue, 13 Dec 2011 23:38:23 +0000 (00:38 +0100)]
avplay: clear pkt_temp when pkt is freed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
8 years agoqcelpdec: K&R formatting cosmetics
Asen Lekov [Sun, 18 Dec 2011 23:32:54 +0000 (01:32 +0200)]
qcelpdec: K&R formatting cosmetics

Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years agoqcelpdec: cosmetics: drop some pointless parentheses
Diego Biurrun [Mon, 19 Dec 2011 13:54:58 +0000 (14:54 +0100)]
qcelpdec: cosmetics: drop some pointless parentheses

8 years agox86: conditionally compile dnxhd encoder optimizations
Diego Biurrun [Sun, 18 Dec 2011 12:13:02 +0000 (13:13 +0100)]
x86: conditionally compile dnxhd encoder optimizations

8 years agoRevert "h264: skip start code search if the size of the nal unit is known"
Janne Grunau [Mon, 19 Dec 2011 02:00:36 +0000 (03:00 +0100)]
Revert "h264: skip start code search if the size of the nal unit is known"

This reverts commit 87eebb3454ff0cd6af6ebf9e1d31bdfd1c3b601b.

8 years agoswscale: fix formatting and indentation of unscaled conversion routines.
Nathan Adil Maxson [Sun, 18 Dec 2011 16:11:27 +0000 (08:11 -0800)]
swscale: fix formatting and indentation of unscaled conversion routines.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
8 years agoh264: skip start code search if the size of the nal unit is known
Janne Grunau [Sun, 18 Dec 2011 21:42:36 +0000 (22:42 +0100)]
h264: skip start code search if the size of the nal unit is known

Start code emulation prevention is only required in Annex B bytestream
packed NAL units. For other coding formats the size is already known.
Looking for a start code prefix can result in false positives like in
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4
which has a false positive in the SPS.

8 years agocljr: fix buf_size sanity check
Paul B. Mahol [Sat, 17 Dec 2011 17:58:06 +0000 (17:58 +0000)]
cljr: fix buf_size sanity check

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agocljr: Check if width and height are positive integers
Shitiz Garg [Thu, 15 Dec 2011 22:20:21 +0000 (22:20 +0000)]
cljr: Check if width and height are positive integers

Width and height might get passed as 0 and would cause floating point
exceptions in decode_frame.
Fixes bugzilla #149

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agoAPIchanges: fill in revision for AVFrame.age deprecation
Mans Rullgard [Sun, 18 Dec 2011 22:15:04 +0000 (22:15 +0000)]
APIchanges: fill in revision for AVFrame.age deprecation

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoavcodec: deprecate AVFrame.age
Mans Rullgard [Sun, 18 Dec 2011 20:41:42 +0000 (20:41 +0000)]
avcodec: deprecate AVFrame.age

This was intended as an optimisation for skipped blocks in MPEG2
P-frames and never used elsewhere.  Removing this "optimisation"
speeds up MPEG2 decoding by 1-2% (ARM Cortex-A9).

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years ago4xm: remove unneeded check for remaining unused data.
Justin Ruggles [Sun, 18 Dec 2011 18:21:27 +0000 (13:21 -0500)]
4xm: remove unneeded check for remaining unused data.

This is unnecessary complication that only prints a message and does not
affect decoding.

8 years agolavf: force threads to 1 in avformat_find_stream_info()
Anton Khirnov [Tue, 6 Dec 2011 06:51:54 +0000 (07:51 +0100)]
lavf: force threads to 1 in avformat_find_stream_info()

Fixes avformat_find_stream_info() on streams with number of frames <
thread count.

8 years agoswscale: fix overflows in vertical scaling at top/bottom edges.
Ronald S. Bultje [Sun, 18 Dec 2011 16:27:43 +0000 (08:27 -0800)]
swscale: fix overflows in vertical scaling at top/bottom edges.

This fixes integer multiplication overflows in RGB48 output
(vertical) scaling as detected by IOC. What happens is that for
certain types of filters (lanczos, spline, bicubic), the
intermediate sum of coefficients in the middle of a filter can
be larger than the fixed-point equivalent of 1.0, even if the
final sum is 1.0. This is fine and we support that.

However, at frame edges, initFilter() will merge the coefficients
for the off-screen pixels into the top or bottom pixel, such as
to emulate edge extension. This means that suddenly, a single
coefficient can be larger than the fixed-point equivalent of
1.0, which the vertical scaling routines do not support.

Therefore, remove the merging of coefficients for edges for
the vertical scaling filter, and instead add edge detection
to the scaler itself so that it copies the pointers (not data)
for the edges (i.e. it uses line[0] for line[-1] as well), so
that a single coefficient is never larger than the fixed-point
equivalent of 1.0.

8 years agolavf: add OpenMG audio muxer.
Michael Karcher [Fri, 21 Oct 2011 21:32:33 +0000 (23:32 +0200)]
lavf: add OpenMG audio muxer.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
8 years agoomadec: split data that will be used in the muxer to a separate file.
Anton Khirnov [Sat, 17 Dec 2011 14:23:13 +0000 (15:23 +0100)]
omadec: split data that will be used in the muxer to a separate file.

8 years agolavf: rename oma.c -> omadec.c
Anton Khirnov [Sat, 17 Dec 2011 14:00:04 +0000 (15:00 +0100)]
lavf: rename oma.c -> omadec.c

8 years agotmv decoder: set correct pix_fmt
Uoti Urpala [Sun, 18 Dec 2011 14:17:07 +0000 (16:17 +0200)]
tmv decoder: set correct pix_fmt

Previously the decoder only worked if the user had set avctx->pix_fmt
manually. For some reason the libavformat tmv demuxer sets this, so
the problem was not visible in avplay etc.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
8 years agobuild: link test programs with static libraries
Mans Rullgard [Sat, 17 Dec 2011 15:05:24 +0000 (15:05 +0000)]
build: link test programs with static libraries

Many of the test programs directly access internal symbols not
exported from the shared libraries.  This allows tests to run
when configured with shared libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agodct-test: remove unused variable cropTbl
Mans Rullgard [Sat, 17 Dec 2011 21:35:50 +0000 (21:35 +0000)]
dct-test: remove unused variable cropTbl

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoswscale: fix overflow in gray16 vertical scaling.
Ronald S. Bultje [Sat, 17 Dec 2011 19:56:40 +0000 (19:56 +0000)]
swscale: fix overflow in gray16 vertical scaling.

This fixes the same overflow as in the RGB48/16-bit YUV scaling;
some filters can overflow both negatively and positively (e.g.
spline/lanczos), so we bias a signed integer so it's "half signed"
and "half unsigned", and can cover overflows in both directions
while maintaining full 31-bit depth.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoget_bits: remove LAST_SKIP_CACHE macro
Mans Rullgard [Sat, 17 Dec 2011 19:40:16 +0000 (19:40 +0000)]
get_bits: remove LAST_SKIP_CACHE macro

This macro is empty since the removal of the A32 bitstream reader.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoswscale: fix integer overflows in RGB pixel writing.
Mans Rullgard [Sat, 17 Dec 2011 18:45:46 +0000 (18:45 +0000)]
swscale: fix integer overflows in RGB pixel writing.

We're shifting individual components (8-bit, unsigned) left by 24,
so making them unsigned should give the same results without the
overflow.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
8 years agoswscale: add endian conversion for RGB555 and RGB444 pixel formats
Janne Grunau [Fri, 16 Dec 2011 22:04:30 +0000 (23:04 +0100)]
swscale: add endian conversion for RGB555 and RGB444 pixel formats

Add a macro to shorten the if condition.

8 years agoswscale: fix overflows in output of RGB48 pixels.
Ronald S. Bultje [Fri, 16 Dec 2011 00:03:54 +0000 (00:03 +0000)]
swscale: fix overflows in output of RGB48 pixels.

For certain types of filters where the intermediate sum of coefficients
can go above the fixed-point equivalent of 1.0 in the middle of a filter,
the sum of a 31-bit calculation can overflow in both directions and can
thus not be represented in a 32-bit signed or unsigned integer. To work
around this, we subtract 0x40000000 from a signed integer base, so that
we're halfway signed/unsigned, which makes it fit even if it overflows.
After the filter finishes, we add the scaled bias back after a shift.

We use the same trick for 16-bit bpc YUV output routines.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoget_bits: remove strange/obsolete comments
Mans Rullgard [Sat, 17 Dec 2011 01:07:32 +0000 (01:07 +0000)]
get_bits: remove strange/obsolete comments

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoget_bits: whitespace (mostly) cosmetics
Mans Rullgard [Sat, 17 Dec 2011 01:05:35 +0000 (01:05 +0000)]
get_bits: whitespace (mostly) cosmetics

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoswscale: add rgb565 endianess conversion
Janne Grunau [Fri, 16 Dec 2011 18:38:53 +0000 (19:38 +0100)]
swscale: add rgb565 endianess conversion

8 years agoget_bits: remove unnecessary #includes
Mans Rullgard [Sat, 17 Dec 2011 00:30:59 +0000 (00:30 +0000)]
get_bits: remove unnecessary #includes

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agomp3dec: hack: fix decoding with safe bitstream reader
Mans Rullgard [Sat, 17 Dec 2011 16:19:24 +0000 (16:19 +0000)]
mp3dec: hack: fix decoding with safe bitstream reader

The buffer splicing relies on the bitstream reader over-reading
the end of the buffer as declared in init_get_bits(), although
more data is actually present.  Manually moving the bitstream
boundary after init_get_bits() allows this to work as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agofate: fix eatqi test
Mans Rullgard [Sat, 17 Dec 2011 15:48:19 +0000 (15:48 +0000)]
fate: fix eatqi test

The sample has an incomplete last frame.  Decoding it is pointless.
The garbage produced was changed by the bitstream reader now
protecting against over-reads.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoadpcm: Check for channels to be a non-zero integer
Shitiz Garg [Sat, 17 Dec 2011 14:05:59 +0000 (19:35 +0530)]
adpcm: Check for channels to be a non-zero integer

channels would be 0 sometimes and would cause floating point exception
Fixes bugzilla #124

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
8 years agoswscale: fix overflows in RGB rounding constants.
Ronald S. Bultje [Fri, 16 Dec 2011 00:03:57 +0000 (00:03 +0000)]
swscale: fix overflows in RGB rounding constants.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoget_bits: introduce safe bitreading to prevent overreads.
Ronald S. Bultje [Fri, 16 Dec 2011 21:42:04 +0000 (21:42 +0000)]
get_bits: introduce safe bitreading to prevent overreads.

When turned on, H264/CAVLC gets ~15% (CVPCMNL1_SVA_C.264) slower for
ultra-high-bitrate files, or ~2.5% (CVFI1_SVA_C.264) for lower-bitrate
files. Other codecs are affected to a lesser extent because they are
less optimized; e.g., VC-1 slows down by less than 1% (all on x86).
The patch generated 3 extra instructions (cmp, cmovae and mov) per
call to get_bits().

The performance penalty on ARM is within the error margin for most
files, up to 4% in extreme cases such as CVPCMNL1_SVA_C.264.

Based on work (for GCI) by Aneesh Dogra <lionaneesh@gmail.com>, and
inspired by patch in Chromium by Chris Evans <cevans@chromium.org>.

8 years agoget_bits: remove A32 variant
Mans Rullgard [Fri, 16 Dec 2011 21:19:50 +0000 (21:19 +0000)]
get_bits: remove A32 variant

The A32 bitstream reader variant is only used on ARMv5 and for
Prores due to the larger bit cache this decoder requires.

In benchmarks on ARMv5 (Marvell Sheeva) with gcc 4.6, the only
statistically significant difference between ALT and A32 is
a 4% advantage for ALT in FLAC decoding.  There is thus no (longer)
any reason to keep the A32 reader from this point of view.

This patch adds an option to the ALT reader increasing the bit
cache to 32 bits as required by the Prores decoder.  Benchmarking
shows no significant change in speed on Intel i7.  Again, the
A32 reader fails to justify its existence.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoavconv: support stream specifiers in -metadata and -map_metadata
Alexandra Khirnova [Tue, 13 Dec 2011 10:23:06 +0000 (10:23 +0000)]
avconv: support stream specifiers in -metadata and -map_metadata

Signed-off-by: Anton Khirnov <anton@khirnov.net>
8 years agowavpack: Fix 32-bit clipping
Derek Buitenhuis [Fri, 16 Dec 2011 18:31:29 +0000 (13:31 -0500)]
wavpack: Fix 32-bit clipping

In the case that (frame_flags & 0x03) == 3, hybrid_maxclip
may have had a signed integer overflow.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
8 years agowavpack: Clip samples after shifting
Derek Buitenhuis [Fri, 16 Dec 2011 18:31:28 +0000 (13:31 -0500)]
wavpack: Clip samples after shifting

It doesn't make much sense to clip pre-shift,
nor is it correct for proper decoding.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
8 years agoh264: don't drop B-frames after next keyframe on POC reset.
Ronald S. Bultje [Mon, 12 Dec 2011 20:02:58 +0000 (12:02 -0800)]
h264: don't drop B-frames after next keyframe on POC reset.

The keyframe after a POC reset may not be the first to be returned to
the user. Therefore, don't reset the expected next POC once we return
a keyframe to the user, but once we know that the next frame in the
return-queue is a keyframe.

8 years agoget_bits: remove useless pointer casts
Mans Rullgard [Fri, 16 Dec 2011 15:10:42 +0000 (15:10 +0000)]
get_bits: remove useless pointer casts

These pointers are already of the correct type.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agoconfigure: refactor lists of tests and components into variables
Diego Biurrun [Mon, 12 Sep 2011 15:52:44 +0000 (17:52 +0200)]
configure: refactor lists of tests and components into variables

8 years agorv40: NEON optimised weak loop filter
Mans Rullgard [Fri, 9 Dec 2011 21:21:26 +0000 (21:21 +0000)]
rv40: NEON optimised weak loop filter

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agompegts: replace some magic numbers with the existing define
Vladimir Pantelic [Fri, 16 Dec 2011 09:01:16 +0000 (10:01 +0100)]
mpegts: replace some magic numbers with the existing define

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoswscale: add unscaled packed 16 bit per component endianess conversion
Janne Grunau [Thu, 15 Dec 2011 23:44:26 +0000 (00:44 +0100)]
swscale: add unscaled packed 16 bit per component endianess conversion

8 years agomovenc: Rudimentary IODs support.
Alex Converse [Tue, 4 Oct 2011 18:44:25 +0000 (11:44 -0700)]
movenc: Rudimentary IODs support.

8 years agov410enc: fix output buffer size check
Mans Rullgard [Thu, 15 Dec 2011 16:31:07 +0000 (16:31 +0000)]
v410enc: fix output buffer size check

The encoder clearly needs width * height * 4 bytes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agov410enc: include correct headers
Mans Rullgard [Thu, 15 Dec 2011 16:06:12 +0000 (16:06 +0000)]
v410enc: include correct headers

This file does not use anything from put_bits.h but needs
intreadwrite.h.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agofate: add -pix_fmt rgb48le to r210 test
Janne Grunau [Thu, 15 Dec 2011 14:44:38 +0000 (15:44 +0100)]
fate: add -pix_fmt rgb48le to r210 test

Fixes checksum on big endian systems.

8 years agoflvenc: Support muxing 16 kHz nellymoser
Martin Storsjö [Thu, 15 Dec 2011 13:10:57 +0000 (15:10 +0200)]
flvenc: Support muxing 16 kHz nellymoser

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoconfigure: refactor list of programs into a variable
Diego Biurrun [Thu, 15 Dec 2011 11:17:13 +0000 (12:17 +0100)]
configure: refactor list of programs into a variable

8 years agofate: add r210 decoder test
Aneesh Dogra [Sun, 11 Dec 2011 04:45:38 +0000 (04:45 +0000)]
fate: add r210 decoder test

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
8 years agofate: split off Indeo FATE tests into their own file
Diego Biurrun [Wed, 14 Dec 2011 21:48:20 +0000 (22:48 +0100)]
fate: split off Indeo FATE tests into their own file

8 years agofate: split off ATRAC FATE tests into their own file
Diego Biurrun [Wed, 14 Dec 2011 21:35:14 +0000 (22:35 +0100)]
fate: split off ATRAC FATE tests into their own file

8 years agofate: Add FATE tests for v410 encoder and decoder
Derek Buitenhuis [Tue, 13 Dec 2011 20:07:12 +0000 (15:07 -0500)]
fate: Add FATE tests for v410 encoder and decoder

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years agoARM: fix external symbol refs in rv40 asm
Mans Rullgard [Thu, 15 Dec 2011 11:02:46 +0000 (11:02 +0000)]
ARM: fix external symbol refs in rv40 asm

External symbol references need prefixes on some systems.
This should fix build errors on Darwin.

Signed-off-by: Mans Rullgard <mans@mansr.com>
8 years agowestwood: Make sure audio header info is present when parsing audio packets
Shitiz Garg [Thu, 15 Dec 2011 09:02:59 +0000 (14:32 +0530)]
westwood: Make sure audio header info is present when parsing audio packets

Audio header information might get scrambled and would not parse,
yet wsqva_read_packet would try to parse audio packets causing
segfaults such as floating point exception.

Fixes bugzilla #141.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agolibgsm: Reset the MS mode of GSM in the flush function
Martin Storsjö [Wed, 14 Dec 2011 20:32:29 +0000 (22:32 +0200)]
libgsm: Reset the MS mode of GSM in the flush function

The mode is set in libgsm_decode_init, but the decoder
object is simply destroyed and recreated in the flush
function - therefore the mode has to be set again.

This fixes playback using the libgsm_ms decoder in avplay.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agolibgsm: Set options on the right object
Martin Storsjö [Wed, 14 Dec 2011 20:14:28 +0000 (22:14 +0200)]
libgsm: Set options on the right object

This fixes regressions in decoding using the libgsm_ms decoder,
broken since 0eea21294354.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoARM: dca: disable optimised decode_blockcodes() for old gcc
Mans Rullgard [Thu, 15 Dec 2011 00:29:49 +0000 (00:29 +0000)]
ARM: dca: disable optimised decode_blockcodes() for old gcc

Old gcc versions have trouble compiling this function, and
no simple, targeted test is possible.

Signed-off-by: Mans Rullgard <mans@mansr.com>