ffmpeg.git
7 years agoc93: convert to bytestream2 API
Paul B Mahol [Mon, 12 Mar 2012 14:27:04 +0000 (14:27 +0000)]
c93: convert to bytestream2 API

Protects against overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoiff: make .long_name more descriptive
Paul B Mahol [Fri, 9 Mar 2012 01:49:53 +0000 (01:49 +0000)]
iff: make .long_name more descriptive

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoFATE: add test for cdxl demuxer
Paul B Mahol [Fri, 9 Mar 2012 20:49:56 +0000 (20:49 +0000)]
FATE: add test for cdxl demuxer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agortsp: Fix a typo
Martin Storsjö [Mon, 12 Mar 2012 14:07:33 +0000 (16:07 +0200)]
rtsp: Fix a typo

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agodsicinvideo: validate buffer offset before copying pixels.
Ronald S. Bultje [Sun, 11 Mar 2012 14:28:54 +0000 (07:28 -0700)]
dsicinvideo: validate buffer offset before copying pixels.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agocook: error out on quant_index values outside [-63, 63] range.
Ronald S. Bultje [Sun, 11 Mar 2012 01:51:28 +0000 (17:51 -0800)]
cook: error out on quant_index values outside [-63, 63] range.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agompc: pad mpc_CC/SCF[] tables to allow for negative indices.
Ronald S. Bultje [Sat, 10 Mar 2012 22:28:08 +0000 (14:28 -0800)]
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
7 years agocook: expand dither_tab[], and make sure indexes into it don't overflow.
Ronald S. Bultje [Fri, 9 Mar 2012 01:09:27 +0000 (17:09 -0800)]
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
7 years agoxxan: reindent xan_unpack_luma().
Ronald S. Bultje [Fri, 9 Mar 2012 00:32:49 +0000 (16:32 -0800)]
xxan: reindent xan_unpack_luma().

It used 3-space indent instead of 4-space indent.

7 years agoxxan: protect against chroma LUT overreads.
Ronald S. Bultje [Sat, 10 Mar 2012 19:57:17 +0000 (11:57 -0800)]
xxan: protect against chroma LUT overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoxxan: convert to bytestream2 API.
Ronald S. Bultje [Fri, 9 Mar 2012 00:32:47 +0000 (16:32 -0800)]
xxan: convert to bytestream2 API.

Protects against overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoxxan: don't read before start of buffer in av_memcpy_backptr().
Ronald S. Bultje [Fri, 9 Mar 2012 00:32:46 +0000 (16:32 -0800)]
xxan: don't read before start of buffer in av_memcpy_backptr().

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agovp8: convert mbedge loopfilter x86 assembly to use named arguments.
Ronald S. Bultje [Mon, 5 Mar 2012 04:21:22 +0000 (20:21 -0800)]
vp8: convert mbedge loopfilter x86 assembly to use named arguments.

7 years agovp8: convert inner loopfilter x86 assembly to use named arguments.
Ronald S. Bultje [Mon, 5 Mar 2012 00:17:14 +0000 (16:17 -0800)]
vp8: convert inner loopfilter x86 assembly to use named arguments.

7 years agoFix a bunch of common typos.
Diego Biurrun [Wed, 25 Jan 2012 11:25:11 +0000 (12:25 +0100)]
Fix a bunch of common typos.

7 years agobuild: Skip compiling xvmc.h under the correct condition.
Diego Biurrun [Thu, 8 Mar 2012 22:53:20 +0000 (23:53 +0100)]
build: Skip compiling xvmc.h under the correct condition.

7 years agoconfigure: darwin: Change dylib install names to include major version.
Gil Pedersen [Wed, 7 Mar 2012 16:03:06 +0000 (17:03 +0100)]
configure: darwin: Change dylib install names to include major version.

This will cause linkers to link against the major lib names, instead of the
base names, allowing multiple major versions of the libraries to co-exist.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agompegts: Always honor a registration descriptor if present and there is no other codec...
Alex Converse [Thu, 8 Mar 2012 21:36:51 +0000 (13:36 -0800)]
mpegts: Always honor a registration descriptor if present and there is no other codec information.

7 years agoaacdec: Fix SCE parity check.
Michael Niedermayer [Wed, 7 Mar 2012 01:30:09 +0000 (17:30 -0800)]
aacdec: Fix SCE parity check.

An unpaired SCE preceding a CPE only makes sense for front SCEs
preceding the first CPE.

Split from FFmpeg commit a8d67efa53dae1d14614e3a7bd4e77e4eab066ab

Signed-off-by: Alex Converse <alex.converse@gmail.com>
7 years agoaacdec: Fix out of array writes (stack).
Michael Niedermayer [Wed, 7 Mar 2012 01:26:29 +0000 (17:26 -0800)]
aacdec: Fix out of array writes (stack).

Set the element to channel vector (e2c_vec) size to be the maximum
number of aac channel elements. This makes it slightly larger than it
needs to be because CCEs are never mapped to output channel locations.

Also add a check that all input tags (legal or not) will fit.

Split from FFmpeg commit a8d67efa53dae1d14614e3a7bd4e77e4eab066ab

Signed-off-by: Alex Converse <alex.converse@gmail.com>
7 years agortsp: Only set the ttl parameter if the server actually gave a value
Martin Storsjö [Thu, 8 Mar 2012 13:32:39 +0000 (15:32 +0200)]
rtsp: Only set the ttl parameter if the server actually gave a value

Passing ttl=0 to the rtp/udp url contexts makes packets never
leave the host machine.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoudp: Set ttl for read-write streams, too, not only for write-only ones
Martin Storsjö [Thu, 8 Mar 2012 13:31:45 +0000 (15:31 +0200)]
udp: Set ttl for read-write streams, too, not only for write-only ones

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoudp: Only bind to the multicast address if in read-only mode
Martin Storsjö [Thu, 8 Mar 2012 13:17:15 +0000 (15:17 +0200)]
udp: Only bind to the multicast address if in read-only mode

This fixes sending back RTCP RR packets if receiving RTP over
multicast.

If the multicast stream is sent on demand (set up and signalled
via RTSP), the sender might depend on getting RTCP RR packets
knowing that there are listeners, otherwise the stream can be
closed after a certain timeout.

This fixes receiving RTSP streams over multicast on unix, from
certain Axis cameras.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoudp: Clarify the comment about binding the multicast address
Martin Storsjö [Thu, 8 Mar 2012 13:15:11 +0000 (15:15 +0200)]
udp: Clarify the comment about binding the multicast address

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoudp: Reorder comments
Martin Storsjö [Wed, 7 Mar 2012 22:38:02 +0000 (00:38 +0200)]
udp: Reorder comments

When this code was added in 36b532815cb83, the new code was added
between the existing comment and the existing line of code, making
the old comment seem to refer to the new code. This makes it read
correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agottadec: unbreak playback of matroska files
Paul B Mahol [Tue, 6 Mar 2012 20:26:48 +0000 (20:26 +0000)]
ttadec: unbreak playback of matroska files

Matroska demuxer needs to recreate tta header, so just display
crc error without aborting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agovorbisdec: avoid invalid memory access
Aaron Colwell [Wed, 7 Mar 2012 22:51:00 +0000 (14:51 -0800)]
vorbisdec: avoid invalid memory access

This fixes some invalid memory access caused later in the function
by res_chan[] not being set for all channels. This happens when a
channel doesn't appear a submap. This change simply returns a
decoder error when this situation is detected.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agoFix uninitialized reads on malformed ogg files.
Dale Curtis [Wed, 7 Mar 2012 22:26:58 +0000 (14:26 -0800)]
Fix uninitialized reads on malformed ogg files.

The ogg decoder wasn't padding the input buffer with the appropriate
FF_INPUT_BUFFER_PADDING_SIZE bytes. Which led to uninitialized reads in
various pieces of parsing code when they thought they had more data than
they actually did.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agohuffyuv: add padding to classic (v1) huffman tables.
Ronald S. Bultje [Thu, 8 Mar 2012 00:29:23 +0000 (16:29 -0800)]
huffyuv: add padding to classic (v1) huffman tables.

We slightly overread the input buffer, so we require
padding at the end of the buffer, as is documented in the
get_bits API. Without padding, we'll read uninitialized
data or beyond the end of the .rodata, which may crash.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agopng: convert to bytestream2 API.
Ronald S. Bultje [Thu, 8 Mar 2012 00:16:20 +0000 (16:16 -0800)]
png: convert to bytestream2 API.

Protects against overreads in the input buffer.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agodca: include libavutil/mathematics.h for possibly missing M_SQRT1_2
Kostya Shishkov [Wed, 7 Mar 2012 19:07:17 +0000 (20:07 +0100)]
dca: include libavutil/mathematics.h for possibly missing M_SQRT1_2

7 years agoavs: fix infinite loop on end-of-stream.
Ronald S. Bultje [Thu, 16 Feb 2012 00:21:34 +0000 (16:21 -0800)]
avs: fix infinite loop on end-of-stream.

The codec would keep returning the last decoded frame if the stream
contains B-frames, since it wouldn't clear that frame from the list of
frames to be returned to the user.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agotiffdec: Prevent illegal memory access caused by recycled pointers.
Alex Converse [Wed, 7 Mar 2012 01:00:29 +0000 (17:00 -0800)]
tiffdec: Prevent illegal memory access caused by recycled pointers.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agortpenc: Fix the AVRational used for av_rescale_q_rnd
Martin Storsjö [Wed, 7 Mar 2012 22:52:53 +0000 (00:52 +0200)]
rtpenc: Fix the AVRational used for av_rescale_q_rnd

The current one has a zero denominator - this is what was
intended in 14aecc50fae6.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agowma: fix off-by-one in array bounds check.
Ronald S. Bultje [Wed, 7 Mar 2012 22:18:14 +0000 (14:18 -0800)]
wma: fix off-by-one in array bounds check.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agosbrdsp.asm: convert all instructions to float/SSE ones.
Reimar Döffinger [Wed, 7 Mar 2012 20:35:13 +0000 (21:35 +0100)]
sbrdsp.asm: convert all instructions to float/SSE ones.

Since the values are floats, using the float operations
makes sense, improves performance on some CPUs and
makes the code SSE compatible instead of needing SSE2.

Based on suggestion by Jason.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agodv: cosmetics.
Ronald S. Bultje [Wed, 7 Mar 2012 21:49:41 +0000 (13:49 -0800)]
dv: cosmetics.

7 years agodv: check buffer size before reading profile.
Ronald S. Bultje [Wed, 7 Mar 2012 21:48:41 +0000 (13:48 -0800)]
dv: check buffer size before reading profile.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoRevert "AAC SBR: group some writes."
Ronald S. Bultje [Wed, 7 Mar 2012 18:52:09 +0000 (10:52 -0800)]
Revert "AAC SBR: group some writes."

This reverts commit ba36f14e5d34bcca6ecf77ba1c7512d1b51a9740. It
broke decoding on x86-32 on some systems.

7 years agoudp: Print an error message if bind fails
Martin Storsjö [Wed, 7 Mar 2012 19:40:29 +0000 (21:40 +0200)]
udp: Print an error message if bind fails

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agocook: extend channel uncoupling tables so the full bit range is covered.
Ronald S. Bultje [Tue, 6 Mar 2012 21:45:32 +0000 (13:45 -0800)]
cook: extend channel uncoupling tables so the full bit range is covered.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoroqvideo: cosmetics.
Ronald S. Bultje [Wed, 7 Mar 2012 18:59:45 +0000 (10:59 -0800)]
roqvideo: cosmetics.

7 years agoroqvideo: convert to bytestream2 API.
Ronald S. Bultje [Tue, 6 Mar 2012 23:58:35 +0000 (15:58 -0800)]
roqvideo: convert to bytestream2 API.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agodca: don't use av_clip_uintp2().
Ronald S. Bultje [Wed, 7 Mar 2012 19:06:20 +0000 (11:06 -0800)]
dca: don't use av_clip_uintp2().

The argument is not a literal, thus causing the ARM v6 or later
builds to break.

7 years agowmall: fix build with -DDEBUG enabled.
Ronald S. Bultje [Wed, 7 Mar 2012 18:40:15 +0000 (10:40 -0800)]
wmall: fix build with -DDEBUG enabled.

7 years agosmc: port to bytestream2 API.
Ronald S. Bultje [Wed, 29 Feb 2012 22:44:37 +0000 (14:44 -0800)]
smc: port to bytestream2 API.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoAAC SBR: group some writes.
Christophe Gisquet [Tue, 28 Feb 2012 10:20:02 +0000 (11:20 +0100)]
AAC SBR: group some writes.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agodsputil: remove shift parameter from scalarproduct_int16
Christophe GISQUET [Sat, 3 Mar 2012 14:09:36 +0000 (15:09 +0100)]
dsputil: remove shift parameter from scalarproduct_int16

There is only one caller, which does not need the shifting. Other use cases
are situations where different roundings would be needed.

The x86 and neon versions are modified accordingly.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agoSBR DSP: unroll sum_square
Christophe GISQUET [Wed, 22 Feb 2012 16:48:59 +0000 (17:48 +0100)]
SBR DSP: unroll sum_square

The length is even, so some unrolling can be performed. Timings are for x86:
- 32bits: 102c -> 82c
- 64bits:  82c -> 69c

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agorv34: remove dead code in intra availability check
Christophe GISQUET [Thu, 23 Feb 2012 18:10:32 +0000 (19:10 +0100)]
rv34: remove dead code in intra availability check

This was an incorrect copy-and-paste to a code not needing the original code.
Spotted by Jason in a previous review but forgotten in the commit.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agorv34: clean a bit availability checks.
Christophe GISQUET [Mon, 16 Jan 2012 19:54:26 +0000 (20:54 +0100)]
rv34: clean a bit availability checks.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agov4l2: update documentation
Luca Barbato [Sat, 3 Mar 2012 11:24:56 +0000 (12:24 +0100)]
v4l2: update documentation

Update the examples and remove stale information.
Video4linux support had been already removed.

7 years agotgq: convert to bytestream2 API.
Ronald S. Bultje [Tue, 6 Mar 2012 22:18:32 +0000 (14:18 -0800)]
tgq: convert to bytestream2 API.

This protects against input buffer overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoparser: remove forward declaration of MpegEncContext
Paul B Mahol [Wed, 7 Mar 2012 07:16:37 +0000 (07:16 +0000)]
parser: remove forward declaration of MpegEncContext

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agodca: prevent accessing static arrays with invalid indexes.
Ronald S. Bultje [Wed, 29 Feb 2012 02:11:59 +0000 (18:11 -0800)]
dca: prevent accessing static arrays with invalid indexes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoraw: move buffer size check up.
Ronald S. Bultje [Wed, 7 Mar 2012 00:08:10 +0000 (16:08 -0800)]
raw: move buffer size check up.

This way, it protects against overreads for 4bpp/2bpp content also.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agolpcm: fix sample size calculation for 20bit LCPM.
Ronald S. Bultje [Wed, 7 Mar 2012 04:08:17 +0000 (20:08 -0800)]
lpcm: fix sample size calculation for 20bit LCPM.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoswscale: clip unscaled output intermediates.
Ronald S. Bultje [Tue, 6 Mar 2012 22:35:24 +0000 (14:35 -0800)]
swscale: clip unscaled output intermediates.

Fixes bug 240, as well as several integer overflows (visible as glitches)
in other scaling output routines, e.g. YUV422.

7 years agosmacker: error out if palette copy-with-offset overruns palette size.
Ronald S. Bultje [Wed, 7 Mar 2012 01:24:20 +0000 (17:24 -0800)]
smacker: error out if palette copy-with-offset overruns palette size.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoalgmm: convert to bytestream2 API.
Ronald S. Bultje [Tue, 6 Mar 2012 23:15:42 +0000 (15:15 -0800)]
algmm: convert to bytestream2 API.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agowma: Refactor common code to fix standalone compilation of WMA lossless decoder.
Diego Biurrun [Tue, 6 Mar 2012 18:07:10 +0000 (19:07 +0100)]
wma: Refactor common code to fix standalone compilation of WMA lossless decoder.

7 years agovc1: Move init code shared between decoder and parser to common code file.
Diego Biurrun [Tue, 6 Mar 2012 17:59:03 +0000 (18:59 +0100)]
vc1: Move init code shared between decoder and parser to common code file.

This fixes standalone compilation of the VC-1 parser.

7 years agox86: Remove duplicated AVG_3DNOW_OP / AVG_MMX2_OP macros from h264_qpel_mmx.c.
Diego Biurrun [Tue, 6 Mar 2012 11:59:41 +0000 (12:59 +0100)]
x86: Remove duplicated AVG_3DNOW_OP / AVG_MMX2_OP macros from h264_qpel_mmx.c.

7 years agomov: Allow last chunk to have an arbitrary number of samples.
Carl Eugen Hoyos [Sat, 3 Dec 2011 11:29:41 +0000 (12:29 +0100)]
mov: Allow last chunk to have an arbitrary number of samples.

Fixes ticket #673.
(cherry picked from commit 8dcd2a41ecff8cc1e9b20cc267df54c59878ab3b)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
7 years agoSBR DSP: fix SSE code to not use SSE2 instructions.
Reimar Döffinger [Tue, 6 Mar 2012 21:11:30 +0000 (22:11 +0100)]
SBR DSP: fix SSE code to not use SSE2 instructions.

movq from SSE register _to_ memory is an SSE2 instruction.
Use the SSE movlps function instead that does the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agocpu: initialize mask to -1, so that by default, optimizations are used.
Ronald S. Bultje [Tue, 6 Mar 2012 20:47:23 +0000 (12:47 -0800)]
cpu: initialize mask to -1, so that by default, optimizations are used.

7 years agoerror_resilience: initialize s->block_index[].
Ronald S. Bultje [Tue, 6 Mar 2012 18:27:05 +0000 (10:27 -0800)]
error_resilience: initialize s->block_index[].

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agosvq3: protect against negative quantizers.
Ronald S. Bultje [Tue, 6 Mar 2012 01:03:32 +0000 (17:03 -0800)]
svq3: protect against negative quantizers.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoDon't use ff_cropTbl[] for IDCT.
Ronald S. Bultje [Tue, 6 Mar 2012 00:01:19 +0000 (16:01 -0800)]
Don't use ff_cropTbl[] for IDCT.

Results of IDCT can by far outreach the range of ff_cropTbl[], leading
to overreads and potentially crashes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoswscale: make filterPos 32bit.
Ronald S. Bultje [Mon, 5 Mar 2012 20:26:42 +0000 (12:26 -0800)]
swscale: make filterPos 32bit.

Fixes overflows for large image sizes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
7 years agoFATE: add CPUFLAGS variable, mapping to -cpuflags avconv option.
Anton Khirnov [Mon, 5 Mar 2012 07:05:56 +0000 (08:05 +0100)]
FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option.

7 years agoavconv: add -cpuflags option for setting supported cpuflags.
Anton Khirnov [Sun, 4 Mar 2012 15:46:45 +0000 (16:46 +0100)]
avconv: add -cpuflags option for setting supported cpuflags.

Useful for testing.

7 years agocpu: add av_set_cpu_flags_mask().
Anton Khirnov [Sun, 4 Mar 2012 15:08:48 +0000 (16:08 +0100)]
cpu: add av_set_cpu_flags_mask().

7 years agolibx264: Allow overriding the sliced threads option
Martin Storsjö [Mon, 5 Mar 2012 19:54:17 +0000 (21:54 +0200)]
libx264: Allow overriding the sliced threads option

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoavconv: fix counting encoded video size.
Anton Khirnov [Tue, 6 Mar 2012 07:57:58 +0000 (08:57 +0100)]
avconv: fix counting encoded video size.

avcodec_encode_video2() return value is 0 on success, encoded frame size
is stored in the packet.

7 years agocdxl demux: do not create packets with uninitialized data at EOF.
Reimar Döffinger [Sun, 26 Feb 2012 22:47:41 +0000 (22:47 +0000)]
cdxl demux: do not create packets with uninitialized data at EOF.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
7 years agoReplace computations of remaining bits with calls to get_bits_left().
Alex Converse [Mon, 5 Mar 2012 01:53:50 +0000 (17:53 -0800)]
Replace computations of remaining bits with calls to get_bits_left().

7 years agoamrnb/amrwb: Remove get_bits usage.
Alex Converse [Mon, 5 Mar 2012 01:24:38 +0000 (17:24 -0800)]
amrnb/amrwb: Remove get_bits usage.

It is used to parse fixed sized fields out of a single octet. The code
is simpler without it.

7 years agocosmetics: reindent
Justin Ruggles [Mon, 27 Feb 2012 23:16:11 +0000 (18:16 -0500)]
cosmetics: reindent

7 years agoavformat: do not require a pixel/sample format if there is no decoder
Justin Ruggles [Mon, 27 Feb 2012 23:02:10 +0000 (18:02 -0500)]
avformat: do not require a pixel/sample format if there is no decoder

Also, do not keep trying to find and open a decoder in try_decode_frame() if
we already tried and failed once.

Fixes always searching until max_analyze_duration in
avformat_find_stream_info() when demuxing codecs without a decoder.

7 years agoavformat: do not fill-in audio packet duration in compute_pkt_fields()
Justin Ruggles [Mon, 27 Feb 2012 23:07:07 +0000 (18:07 -0500)]
avformat: do not fill-in audio packet duration in compute_pkt_fields()

Use the estimated duration only to calculate missing timestamps if needed.

7 years agolavf: Use av_get_audio_frame_duration() in get_audio_frame_size()
Justin Ruggles [Mon, 27 Feb 2012 20:54:41 +0000 (15:54 -0500)]
lavf: Use av_get_audio_frame_duration() in get_audio_frame_size()

Also, do not give AVCodecContext.frame_size priority for muxing.

Updated 2 FATE references:
dxa-feeble - adds 1 audio frame that is still within 2 seconds as specified
             by -t 2 in the FATE test
wmv8-drm-nodec - durations are not needed. previously they were estimated
                 using the packet size and average bit rate.

7 years agodca_parser: parse the sample rate and frame durations
Justin Ruggles [Mon, 27 Feb 2012 18:58:01 +0000 (13:58 -0500)]
dca_parser: parse the sample rate and frame durations

7 years agolibspeexdec: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 16:18:33 +0000 (11:18 -0500)]
libspeexdec: do not set AVCodecContext.frame_size

It is not necessary

7 years agolibopencore-amr: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 16:15:17 +0000 (11:15 -0500)]
libopencore-amr: do not set AVCodecContext.frame_size

It is not necessary

7 years agoalsdec: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 16:02:33 +0000 (11:02 -0500)]
alsdec: do not set AVCodecContext.frame_size

It is not necessary

7 years agosiff: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 04:27:21 +0000 (23:27 -0500)]
siff: do not set AVCodecContext.frame_size

also, properly set AVCodecContext.bits_per_coded_sample, AVStreasm.start_time,
and AVPacket.duration.

7 years agoamr demuxer: do not set AVCodecContext.frame_size.
Justin Ruggles [Mon, 27 Feb 2012 04:12:03 +0000 (23:12 -0500)]
amr demuxer: do not set AVCodecContext.frame_size.

it is not necessary.

7 years agoaiffdec: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 03:55:52 +0000 (22:55 -0500)]
aiffdec: do not set AVCodecContext.frame_size

It is unnecessary. Also, for some codecs we're reading more than 1 frame per
packet. Instead we use a private context variable to calculate the bit rate,
stream duration, and packet durations.

Updated FATE seek test, which has slightly different timestamps due to a
more accurate bit rate calculation.

7 years agomov: do not set AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 02:03:04 +0000 (21:03 -0500)]
mov: do not set AVCodecContext.frame_size

It is not necessary.

7 years agoape: do not set AVCodecContext.frame_size.
Justin Ruggles [Tue, 24 Jan 2012 23:25:47 +0000 (18:25 -0500)]
ape: do not set AVCodecContext.frame_size.

prevents lavf from setting incorrect packet durations.

7 years agordt: remove workaround for infinite loop with aac
Justin Ruggles [Mon, 27 Feb 2012 09:08:44 +0000 (04:08 -0500)]
rdt: remove workaround for infinite loop with aac

avformat_find_stream_info() no longer hangs while waiting for AAC frame_size

7 years agoavformat: do not require frame_size in avformat_find_stream_info() for CELT
Justin Ruggles [Mon, 27 Feb 2012 07:46:03 +0000 (02:46 -0500)]
avformat: do not require frame_size in avformat_find_stream_info() for CELT

In Ogg/CELT, frame_size is found in the same place as the sample_rate and
channels, so we do not need to force the frame_size to be parsed.

7 years agoavformat: do not require frame_size in avformat_find_stream_info() for MP1/2/3
Justin Ruggles [Mon, 27 Feb 2012 07:42:22 +0000 (02:42 -0500)]
avformat: do not require frame_size in avformat_find_stream_info() for MP1/2/3

It was only needed to avoid a bad time base (and thus non-monotone timestamps)
for stream copy to avi.

7 years agoavformat: do not require frame_size in avformat_find_stream_info() for AAC
Justin Ruggles [Mon, 27 Feb 2012 05:50:16 +0000 (00:50 -0500)]
avformat: do not require frame_size in avformat_find_stream_info() for AAC

We already will get the needed info because of CODEC_CAP_CHANNEL_CONF

7 years agoswfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size
Justin Ruggles [Mon, 27 Feb 2012 08:09:44 +0000 (03:09 -0500)]
swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size

This way we can do stream copy without having the demuxer wait until
frame_size has been set.

7 years agortpenc: use av_get_audio_frame_duration() for max_frames_per_packet
Justin Ruggles [Mon, 27 Feb 2012 08:01:45 +0000 (03:01 -0500)]
rtpenc: use av_get_audio_frame_duration() for max_frames_per_packet

It is more reliable than AVCodecContext.frame_size for codecs with constant
packet duration.

7 years agoriffenc: use av_get_audio_frame_duration()
Justin Ruggles [Mon, 27 Feb 2012 07:34:14 +0000 (02:34 -0500)]
riffenc: use av_get_audio_frame_duration()

For encoding, frame_size is not a reliable indicator of packet duration.
Also, we don't want to have to force the demuxer to find frame_size for
stream copy to work.

7 years agoavcodec: add av_get_audio_frame_duration() function.
Justin Ruggles [Fri, 27 Jan 2012 01:08:23 +0000 (20:08 -0500)]
avcodec: add av_get_audio_frame_duration() function.

This is a utility function for the user to get the frame duration based on
the codec id, frame size in bytes, and various AVCodecContext parameters.

7 years agoavcodec: add av_get_exact_bits_per_sample() function
Justin Ruggles [Thu, 19 Jan 2012 23:36:40 +0000 (18:36 -0500)]
avcodec: add av_get_exact_bits_per_sample() function

This only returns bits per sample when it is exactly correct. That is, the
codec contains only raw samples with no frame headers or padding. This applies
to basically all PCM codecs and a small subset of ADPCM codecs.