ffmpeg.git
7 years agodfa: improve boundary checks in decode_dds1()
Anton Khirnov [Sat, 29 Sep 2012 11:25:28 +0000 (13:25 +0200)]
dfa: improve boundary checks in decode_dds1()

Fixes CVE-2012-2798

CC:libav-stable@libav.org

7 years agowmalosslessdec: Fix reading too many bits in decode_channel_residues()
Anton Khirnov [Sat, 29 Sep 2012 17:16:32 +0000 (19:16 +0200)]
wmalosslessdec: Fix reading too many bits in decode_channel_residues()

Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Based on a patch by Michael Niedermayer <michaelni@gmx.at>

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7 years agowmalosslessdec: fix a get_bits(0) in decode_ac_filter
Michael Niedermayer [Sat, 14 Apr 2012 12:50:25 +0000 (14:50 +0200)]
wmalosslessdec: fix a get_bits(0) in decode_ac_filter

Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agowmalosslessdec: make MCLMS arrays big enough for what is written into them.
Michael Niedermayer [Sat, 14 Apr 2012 12:49:22 +0000 (14:49 +0200)]
wmalosslessdec: make MCLMS arrays big enough for what is written into them.

Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoindeo4/5: check empty tile size in decode_mb_info().
Anton Khirnov [Sat, 29 Sep 2012 09:07:58 +0000 (11:07 +0200)]
indeo4/5: check empty tile size in decode_mb_info().

This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Based on a patch by Michael Niedermayer <michaelni@gmx.at>

Fixes CVE-2012-2800

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7 years agoivi_common: make ff_ivi_process_empty_tile() static.
Anton Khirnov [Sat, 29 Sep 2012 09:06:54 +0000 (11:06 +0200)]
ivi_common: make ff_ivi_process_empty_tile() static.

It's not used outside of ivi_common.c

7 years agoindeo5: check tile size in decode_mb_info().
Michael Niedermayer [Sun, 15 Apr 2012 12:11:50 +0000 (14:11 +0200)]
indeo5: check tile size in decode_mb_info().

This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Fixes CVE-2012-2794

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoindeo3: fix out of cell write.
Anton Khirnov [Sat, 29 Sep 2012 08:39:49 +0000 (10:39 +0200)]
indeo3: fix out of cell write.

Fixes CVE-2012-2776.

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7 years agowmalosslessdec: increase channel_coeffs/residues size
Anton Khirnov [Sat, 29 Sep 2012 06:40:42 +0000 (08:40 +0200)]
wmalosslessdec: increase channel_coeffs/residues size

Fixes CVE-2012-2792

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
7 years agowmalosslessdec: increase WMALL_BLOCK_MAX_BITS to 14.
Anton Khirnov [Sat, 29 Sep 2012 06:37:08 +0000 (08:37 +0200)]
wmalosslessdec: increase WMALL_BLOCK_MAX_BITS to 14.

7 years agolagarith: check count before writing zeros.
Michael Niedermayer [Sat, 14 Apr 2012 16:28:31 +0000 (18:28 +0200)]
lagarith: check count before writing zeros.

Fixes CVE-2012-2793

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agowmaprodec: check num_vec_coeffs for validity
Michael Niedermayer [Sat, 14 Apr 2012 09:07:11 +0000 (11:07 +0200)]
wmaprodec: check num_vec_coeffs for validity

Fixes CVE-2012-2789

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoavidec: use actually read size instead of requested size
Anton Khirnov [Fri, 28 Sep 2012 13:42:29 +0000 (15:42 +0200)]
avidec: use actually read size instead of requested size

Fixes CVE-2012-2788

7 years agoavidec: return 0, not packet size from read_packet().
Anton Khirnov [Fri, 28 Sep 2012 13:26:48 +0000 (15:26 +0200)]
avidec: return 0, not packet size from read_packet().

7 years agoindeo4: update AVCodecContext width/height on size change
Michael Niedermayer [Sat, 14 Apr 2012 18:04:05 +0000 (20:04 +0200)]
indeo4: update AVCodecContext width/height on size change

Fixes CVE-2012-2787

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agodfa: check that the caller set width/height properly.
Anton Khirnov [Fri, 28 Sep 2012 12:47:56 +0000 (14:47 +0200)]
dfa: check that the caller set width/height properly.

Fixes CVE-2012-2786.

7 years agoindeo5dec: Make sure we have had a valid gop header.
Michael Niedermayer [Sat, 24 Mar 2012 16:43:55 +0000 (17:43 +0100)]
indeo5dec: Make sure we have had a valid gop header.

This prevents decoding happening on a half initialized context.

Fixes CVE-2012-2779

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agocavsdec: check for changing w/h.
Michael Niedermayer [Sat, 24 Mar 2012 01:40:24 +0000 (02:40 +0100)]
cavsdec: check for changing w/h.

Our decoder does not support changing w/h.

Fixes CVE-2012-2777 and CVE-2012-2784.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agolavc: set channel count from channel layout in avcodec_open2().
Anton Khirnov [Fri, 28 Sep 2012 18:46:20 +0000 (20:46 +0200)]
lavc: set channel count from channel layout in avcodec_open2().

Some decoders (e.g. nellymoser) only set channel_layout and do not set
channel count.

7 years agodoc/platform: Rework the Visual Studio linking section
Derek Buitenhuis [Fri, 28 Sep 2012 01:52:34 +0000 (01:52 +0000)]
doc/platform: Rework the Visual Studio linking section

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodoc/faq: Change the Visual Studio entry to reflect current status
Derek Buitenhuis [Thu, 27 Sep 2012 19:02:28 +0000 (19:02 +0000)]
doc/faq: Change the Visual Studio entry to reflect current status

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodoc/platform: Replace Visual Studio section with build instructions
Derek Buitenhuis [Thu, 27 Sep 2012 18:39:02 +0000 (18:39 +0000)]
doc/platform: Replace Visual Studio section with build instructions

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodoc/platform: Nuke section on linking static MinGW-built libs with MSVC
Derek Buitenhuis [Thu, 27 Sep 2012 18:39:01 +0000 (18:39 +0000)]
doc/platform: Nuke section on linking static MinGW-built libs with MSVC

This practice is not supported by the MinGW developers, and even requires
patching the MinGW runtimes in newer versions. Furthermore, we now support
build with MSVC, so this section is rendered useless.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodoc/platform: Remove false claim about MinGW installer
Derek Buitenhuis [Thu, 27 Sep 2012 18:39:00 +0000 (18:39 +0000)]
doc/platform: Remove false claim about MinGW installer

This works just fine, and has for quite a while, using the mingw-get
installer.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodoc/platform: Mention MinGW-w64
Derek Buitenhuis [Thu, 27 Sep 2012 18:38:59 +0000 (18:38 +0000)]
doc/platform: Mention MinGW-w64

This is the toolchain most, including Libav's nightlies, use to build.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agodsputil_mmx: fix reading prior of the src array in sub_hfyu_median_prediction()
Michael Niedermayer [Thu, 27 Sep 2012 14:06:54 +0000 (14:06 +0000)]
dsputil_mmx: fix reading prior of the src array in sub_hfyu_median_prediction()

This should fix the utvideoenc valgrind failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7 years agompegaudiodec: fix short_start calculation
Luca Barbato [Fri, 28 Sep 2012 12:38:13 +0000 (14:38 +0200)]
mpegaudiodec: fix short_start calculation

The value should be always 3, as it follows from the specification.

Fix a stack buffer overflow in exponents_from_scale_factors as reported
by asan. Thanks to Dale Curtis for the sample vector.

7 years agolibopus: Remap channels using libopus' internal remapping.
Nathan Caldwell [Thu, 27 Sep 2012 08:23:29 +0000 (02:23 -0600)]
libopus: Remap channels using libopus' internal remapping.

This way we can directly remap channels from Opus' channel order to
libav's internal channel order, instead of mapping channels from
Opus' order to Vorbis' order then to libav's order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agoOpus decoder using libopus
Nicolas George [Fri, 28 Sep 2012 01:39:23 +0000 (19:39 -0600)]
Opus decoder using libopus

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agoavcodec: document the use of AVCodecContext.delay for audio decoding
Nathan Caldwell [Fri, 28 Sep 2012 04:41:24 +0000 (22:41 -0600)]
avcodec: document the use of AVCodecContext.delay for audio decoding

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agovc1dec: add flush function for WMV9 and VC-1 decoders
Kostya Shishkov [Thu, 27 Sep 2012 17:25:06 +0000 (19:25 +0200)]
vc1dec: add flush function for WMV9 and VC-1 decoders

CC: libav-stable@libav.org
7 years agohttp: Increase buffer sizes to cope with longer URIs
Duncan Salerno [Sat, 22 Sep 2012 20:17:36 +0000 (21:17 +0100)]
http: Increase buffer sizes to cope with longer URIs

Use the MAX_URL_SIZE define where applicable. Increase buffer
sizes for all buffers that need to fit a long pathname - buffers
that need to fit only the hostname (and other short strings, but
not the pathname - such as "headers" in http_connect) are kept
at 1024 bytes for now.

Also increase the max line length in http_read_header, since it
might need to contain a full url for Location: redirects.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agonutenc: const correctness for ff_put_v_trace/put_s_trace function arguments
Diego Biurrun [Thu, 27 Sep 2012 17:30:37 +0000 (19:30 +0200)]
nutenc: const correctness for ff_put_v_trace/put_s_trace function arguments

7 years agoh264_refs: Fix debug tprintf argument types
Diego Biurrun [Tue, 25 Sep 2012 17:05:26 +0000 (19:05 +0200)]
h264_refs: Fix debug tprintf argument types

7 years agogolomb: const correctness for get_ue()/get_se() function arguments
Diego Biurrun [Tue, 25 Sep 2012 17:04:47 +0000 (19:04 +0200)]
golomb: const correctness for get_ue()/get_se() function arguments

7 years agoget_bits: const correctness for get_bits_trace()/get_xbits_trace() arguments
Diego Biurrun [Tue, 25 Sep 2012 17:03:59 +0000 (19:03 +0200)]
get_bits: const correctness for get_bits_trace()/get_xbits_trace() arguments

7 years agodwt: Drop unused functions spatial_compose{53|97}i()
Diego Biurrun [Mon, 24 Sep 2012 15:07:22 +0000 (17:07 +0200)]
dwt: Drop unused functions spatial_compose{53|97}i()

7 years agonutdec: Remove unused and broken debug function stub
Diego Biurrun [Tue, 25 Sep 2012 17:01:10 +0000 (19:01 +0200)]
nutdec: Remove unused and broken debug function stub

7 years agoavcodec: Drop long-deprecated imgconvert.h header
Diego Biurrun [Mon, 24 Sep 2012 14:51:33 +0000 (16:51 +0200)]
avcodec: Drop long-deprecated imgconvert.h header

7 years agoAdd Opus support to the Ogg muxer.
Nathan Caldwell [Thu, 27 Sep 2012 08:21:56 +0000 (02:21 -0600)]
Add Opus support to the Ogg muxer.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agoAdd Opus codec id and codec description.
Andrew D'Addesio [Wed, 19 Sep 2012 01:02:14 +0000 (19:02 -0600)]
Add Opus codec id and codec description.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agoavformat: Identify anonymous AVIO typedef structs.
Dale Curtis [Thu, 27 Sep 2012 02:21:03 +0000 (19:21 -0700)]
avformat: Identify anonymous AVIO typedef structs.

Anonymous typedef structs prevent forward declaration, this
change gives the AVIOContext and AVIOInterruptCB structures
a name.  These structures are now in line with other common
structures such as AVFormatContext and AVCodecContext.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
7 years agonutdec: const correctness for get_v_trace/get_s_trace function arguments
Diego Biurrun [Tue, 25 Sep 2012 17:02:42 +0000 (19:02 +0200)]
nutdec: const correctness for get_v_trace/get_s_trace function arguments

7 years agotruemotion2: Request samples for old TM2 headers
Diego Biurrun [Wed, 26 Sep 2012 16:42:16 +0000 (18:42 +0200)]
truemotion2: Request samples for old TM2 headers

7 years agortpdec: Remove a useless ff_ prefix from a static symbol
Martin Storsjö [Sun, 23 Sep 2012 10:32:41 +0000 (13:32 +0300)]
rtpdec: Remove a useless ff_ prefix from a static symbol

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agortpdec: Support depacketizing speex
Dmitry Samonenko [Sat, 22 Sep 2012 10:39:03 +0000 (14:39 +0400)]
rtpdec: Support depacketizing speex

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agortpenc: Add support for packetizing speex
Dmitry Samonenko [Sat, 22 Sep 2012 10:32:37 +0000 (14:32 +0400)]
rtpenc: Add support for packetizing speex

This packetization scheme simply places the full packets into the
RTP packet without any extra header bytes.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoxsub: feed init_get_bits the whole buffer
Alexandre Colucci [Mon, 2 May 2011 16:55:02 +0000 (18:55 +0200)]
xsub: feed init_get_bits the whole buffer

Do not use rlelen field for buffer size in init_get_bits, it is
only the size of the data for the first field.
Since it is not reliable, just use the size of the whole buffer.

Additional comments add removal of unused rlelen variable by
Reimar Döffinger.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
7 years agolibfdk-aac: Allow setting VBR modes via a private option
Martin Storsjö [Tue, 25 Sep 2012 05:37:21 +0000 (08:37 +0300)]
libfdk-aac: Allow setting VBR modes via a private option

This avoids using the global_quality field and QSCALE flag for
passing the VBR modes, since the value range of the global_quality
field doesn't really map cleanly to this codec's VBR modes.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agolibfdk-aac: Warn the user that the VBR modes are unsupported
Martin Storsjö [Tue, 25 Sep 2012 05:31:44 +0000 (08:31 +0300)]
libfdk-aac: Warn the user that the VBR modes are unsupported

These modes were not originally exposed by the library at all.
In practice, only a few of them work for each sample rate/profile
combination, and they don't work at all for the more uncommon
sample rates.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoRevert "cbrt_tablegen: Include libm.h"
Derek Buitenhuis [Tue, 25 Sep 2012 16:54:26 +0000 (12:54 -0400)]
Revert "cbrt_tablegen: Include libm.h"

This code runs on the host and should not use libm.h, which is meant
for the target.

This reverts commit 2768b717987d4e19d2774890d7d84aef531b1d9f.

7 years agopthread: make sure AVFrame.extended_data is set properly.
Anton Khirnov [Tue, 25 Sep 2012 06:08:28 +0000 (08:08 +0200)]
pthread: make sure AVFrame.extended_data is set properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
7 years agolibfdk-aac: reindent after last commit
Nathan Caldwell [Mon, 24 Sep 2012 23:03:22 +0000 (17:03 -0600)]
libfdk-aac: reindent after last commit

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agolibfdk-aac: Limit to supported sample rates.
Nathan Caldwell [Mon, 24 Sep 2012 23:02:44 +0000 (17:02 -0600)]
libfdk-aac: Limit to supported sample rates.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agocbrt_tablegen: Include libm.h
Derek Buitenhuis [Mon, 24 Sep 2012 23:22:15 +0000 (23:22 +0000)]
cbrt_tablegen: Include libm.h

Needed for cbrtf fallback on systems which lack it.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
7 years agooggparsetheora: make it more robust
Luca Barbato [Wed, 19 Sep 2012 23:33:47 +0000 (01:33 +0200)]
oggparsetheora: make it more robust

7 years agoogg: prevent NULL pointer deference in theora gptopts
Michael Niedermayer [Fri, 23 Mar 2012 02:43:30 +0000 (03:43 +0100)]
ogg: prevent NULL pointer deference in theora gptopts

Additional safety in case a special ogg stream is crafted
with the proper number of

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7 years agoogg: calculate the start position once all the headers are parsed
Luca Barbato [Wed, 19 Sep 2012 23:07:09 +0000 (01:07 +0200)]
ogg: calculate the start position once all the headers are parsed

The fisbone packets can be muxed in any order as long the last one
comes before the first data packet.

7 years agoogg: check that the expected number of headers had been parsed
Luca Barbato [Wed, 19 Sep 2012 23:01:43 +0000 (01:01 +0200)]
ogg: check that the expected number of headers had been parsed

Not having the header for a codec is a tell-tale of a broken file.

7 years agolibx264: change default to closed gop to match x264cli
John Van Sickle [Sat, 22 Sep 2012 18:41:16 +0000 (14:41 -0400)]
libx264: change default to closed gop to match x264cli

open-gop can be enabled with "-flags -cgop"

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agoUse avcodec_free_frame() to free AVFrames.
Anton Khirnov [Fri, 21 Sep 2012 07:10:23 +0000 (09:10 +0200)]
Use avcodec_free_frame() to free AVFrames.

7 years agolavf: use a malloced AVFrame in try_decode_frame().
Anton Khirnov [Fri, 21 Sep 2012 07:09:01 +0000 (09:09 +0200)]
lavf: use a malloced AVFrame in try_decode_frame().

This allows using avcodec_free_frame() to free it properly.

7 years agolavc: add avcodec_free_frame().
Anton Khirnov [Fri, 21 Sep 2012 07:07:02 +0000 (09:07 +0200)]
lavc: add avcodec_free_frame().

Since an AVFrame now has malloced members (extended_data), it must have
a destructor.

7 years agolavc: ensure extended_data is set properly on decoding
Anton Khirnov [Fri, 21 Sep 2012 07:04:12 +0000 (09:04 +0200)]
lavc: ensure extended_data is set properly on decoding

7 years agolavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults()
Anton Khirnov [Fri, 21 Sep 2012 06:30:42 +0000 (08:30 +0200)]
lavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults()

7 years agolavc: use av_mallocz to allocate AVFrames.
Anton Khirnov [Mon, 24 Sep 2012 05:17:13 +0000 (07:17 +0200)]
lavc: use av_mallocz to allocate AVFrames.

Otherwise the frame is uninitialized, so avcodec_get_frame_defaults()
cannot determine whether to free extended_data.

7 years agolavc: rename the argument of avcodec_alloc_frame/get_frame_defaults
Anton Khirnov [Fri, 21 Sep 2012 06:28:49 +0000 (08:28 +0200)]
lavc: rename the argument of avcodec_alloc_frame/get_frame_defaults

AVFrame is used for both audio and video, so calling the argument 'pic'
is misleading.

7 years agortp: Packetization of JPEG (RFC 2435)
Samuel Pitoiset [Sun, 23 Sep 2012 14:17:41 +0000 (16:17 +0200)]
rtp: Packetization of JPEG (RFC 2435)

7 years agosmoothstreamingenc: Copy the SAR on the AVStreams as well
Martin Storsjö [Sat, 22 Sep 2012 21:18:23 +0000 (00:18 +0300)]
smoothstreamingenc: Copy the SAR on the AVStreams as well

This is required in chained muxers, if the SAR happens to be set.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoavcodec: fix memleak in avcodec_encode_audio2()
Justin Ruggles [Thu, 23 Aug 2012 17:47:25 +0000 (13:47 -0400)]
avcodec: fix memleak in avcodec_encode_audio2()

Ensure that padded_frame is freed before returning when needed.

7 years agosipr: fall back to setting mode based on bit_rate.
Reimar Döffinger [Thu, 5 Jan 2012 20:01:56 +0000 (21:01 +0100)]
sipr: fall back to setting mode based on bit_rate.

Not all applications (e.g. MPlayer) set block_align, and
when using a different demuxer it might not even be
easily available.
So fall back to selecting mode based on bit rate as before
if block_align has not useful value.
It can't be worse than failing to decode completely.

(cherry picked from commit 1d0d63052b82c76e10c45cd38cdd27677de72e81)

CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
7 years agolibx264: add forgotten ;
Anton Khirnov [Fri, 21 Sep 2012 07:20:09 +0000 (09:20 +0200)]
libx264: add forgotten ;

7 years agomatroskadec: fix a sanity check.
Anton Khirnov [Thu, 20 Sep 2012 18:04:56 +0000 (20:04 +0200)]
matroskadec: fix a sanity check.

7 years agomatroskadec: only return corrupt packets that actually contain data
Anton Khirnov [Thu, 20 Sep 2012 18:01:43 +0000 (20:01 +0200)]
matroskadec: only return corrupt packets that actually contain data

Fixes bug 372.

7 years agolavf: zero data/size of the packet passed to read_packet().
Anton Khirnov [Thu, 20 Sep 2012 18:00:39 +0000 (20:00 +0200)]
lavf: zero data/size of the packet passed to read_packet().

7 years agoARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code
Mans Rullgard [Thu, 20 Sep 2012 21:55:11 +0000 (22:55 +0100)]
ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code

The Apple assembler refuses to assemble the 3-operand form
in Thumb2 even though it is valid syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
7 years agoARM: align PIC offset pools to 4 bytes
Mans Rullgard [Thu, 20 Sep 2012 21:53:41 +0000 (22:53 +0100)]
ARM: align PIC offset pools to 4 bytes

When building Thumb2 code, the end of a function, where the PIC
offsets are placed, need not be aligned.  Although the values
are only accessed with instructions allowing unaligned addresses,
keeping them aligned is preferable.

Signed-off-by: Mans Rullgard <mans@mansr.com>
7 years agoARM: swap source operands in some add instructions
Mans Rullgard [Thu, 2 Aug 2012 18:17:16 +0000 (19:17 +0100)]
ARM: swap source operands in some add instructions

This allows using a 16-bit opcode when generating Thumb2 code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
7 years agoconfigure: update tms470 detection for latest version
Mans Rullgard [Sat, 15 Sep 2012 14:36:22 +0000 (15:36 +0100)]
configure: update tms470 detection for latest version

v5.0 of the TI ARM compiler changes the version string.
This updates the detection to check for both the old and
the new strings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
7 years agolavf probe: prevent codec probe with no data at all seen
Janne Grunau [Fri, 7 Sep 2012 14:27:21 +0000 (16:27 +0200)]
lavf probe: prevent codec probe with no data at all seen

This occurs with fuzzed mpeg-ts files. set_codec_from_probe_data() is
called with a zeroed AVProbeData since no packet made through for
specific stream.

7 years agomotion_est: fix use of inline on extern functions
Mans Rullgard [Wed, 19 Sep 2012 21:30:06 +0000 (22:30 +0100)]
motion_est: fix use of inline on extern functions

Inline functions declared without extern do not provide an external
definition in standard C99.  This code only works because most
compilers do not implement the inline semantics correctly.  With a
stricter compiler, linking fails with unresolved references to these
functions.

Declaring the functions extern inline works correctly with some
compilers while some others still fail to create external definitions.

For maximum portability, create a static inline version with an
externally visible wrapper for ff_get_mb_score.  ff_epzs_motion_search
is so large that no sane compiler inlines it anyway, so there the
inline keyword can simply be dropped with no effect.

Signed-off-by: Mans Rullgard <mans@mansr.com>
7 years agomp3dec: read Xing frame TOC index
Anton Khirnov [Sun, 2 Sep 2012 13:36:18 +0000 (15:36 +0200)]
mp3dec: read Xing frame TOC index

7 years agomp3dec: use named constants for Xing header flags
Anton Khirnov [Sat, 1 Sep 2012 22:30:41 +0000 (00:30 +0200)]
mp3dec: use named constants for Xing header flags

7 years agolibx264: add support for nal-hrd, required for Blu-ray streams.
John Van Sickle [Wed, 19 Sep 2012 17:51:29 +0000 (13:51 -0400)]
libx264: add support for nal-hrd, required for Blu-ray streams.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
7 years agomov: support random access point grouping
Yusuke Nakamura [Mon, 23 Apr 2012 23:51:29 +0000 (08:51 +0900)]
mov: support random access point grouping

Frames described by this grouping are the starter of a closed or
an open GOP.
This is useful for open GOP of H.264 stream which is not described
by sync sample atom.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
7 years agomatroskadec: properly support BlockDuration
Luca Barbato [Mon, 17 Sep 2012 00:48:02 +0000 (02:48 +0200)]
matroskadec: properly support BlockDuration

7 years agomatroskadec: split frame parsing
Luca Barbato [Sun, 16 Sep 2012 23:28:13 +0000 (01:28 +0200)]
matroskadec: split frame parsing

7 years agomatroskadec: split laces parsing
Luca Barbato [Sun, 16 Sep 2012 23:58:32 +0000 (01:58 +0200)]
matroskadec: split laces parsing

7 years agomatroska: implement support for ProRes
Luca Barbato [Fri, 14 Sep 2012 22:59:05 +0000 (00:59 +0200)]
matroska: implement support for ProRes

Support Matroska native formatting.

On demuxing prepend a Frame container atom (32bit big endian encoded
frame size and 'icpf' string).
On muxing remove it.

7 years agomatroska: implement support for ALAC
Moritz Bunkus [Fri, 14 Sep 2012 20:26:14 +0000 (22:26 +0200)]
matroska: implement support for ALAC

Support Matroska native formatting.

On demuxing reconstruct the 36-bytes QuickTime atom that the ALAC
decoder expects by prepending the "atom size", "tag" and
"tag version" fields missing from the Matroska's CodecPrivate
element.

On muxing remove the initial 12 bytes

Sample files are available:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska.mka
and the CoreAudio file it was created from with today's mkvmerge:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska-source.caf

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
7 years agomatroskadec: validate lace_size when parsed
Luca Barbato [Fri, 14 Sep 2012 19:24:23 +0000 (21:24 +0200)]
matroskadec: validate lace_size when parsed

Stricter validation, explicitly exit on misparsing and some error
forwarding from the ebml parsing functions used.

7 years agomatroskadec: return meaningful errors in matroska_decode_buffer
Luca Barbato [Fri, 14 Sep 2012 18:03:37 +0000 (20:03 +0200)]
matroskadec: return meaningful errors in matroska_decode_buffer

7 years agomatroskadec: fix incorrect unsigned->signed conversion
Dale Curtis [Thu, 14 Jun 2012 22:22:25 +0000 (15:22 -0700)]
matroskadec: fix incorrect unsigned->signed conversion

7 years agomatroskadec: refactor matroska_decode_buffer
Luca Barbato [Fri, 14 Sep 2012 16:51:49 +0000 (18:51 +0200)]
matroskadec: refactor matroska_decode_buffer

Make MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP behave like
the other encodings and spare few lines of boilerplate code.

7 years agomatroskadec: check realloc in lzo encoding
Luca Barbato [Fri, 14 Sep 2012 16:39:58 +0000 (18:39 +0200)]
matroskadec: check realloc in lzo encoding

Make all the compression encodings behave the same way.

7 years agomatroska: honor error_recognition on unknown doctypes
Luca Barbato [Thu, 12 Jul 2012 11:38:50 +0000 (13:38 +0200)]
matroska: honor error_recognition on unknown doctypes

7 years agotiffdec: Add support for GRAY16LE.
Alex Converse [Wed, 19 Sep 2012 00:46:48 +0000 (17:46 -0700)]
tiffdec: Add support for GRAY16LE.

Tested with the GraphicsMagick TIFF archive and Libav generated files.

7 years agotiffenc: Add support for little endian RGB48 and GRAY16
Alex Converse [Tue, 18 Sep 2012 23:45:09 +0000 (16:45 -0700)]
tiffenc: Add support for little endian RGB48 and GRAY16

7 years agompeg4: support frame parameter changes with frame-mt
Janne Grunau [Tue, 18 Sep 2012 13:48:14 +0000 (15:48 +0200)]
mpeg4: support frame parameter changes with frame-mt

Adds a flag context_reinit to MpegEncContext to relieable keep track
of frame parameter changes which require a context reinitialization.
This is required for broken inputs which change the frame size but
error out before the context can be reinitialized.

7 years agompegvideo: check ff_find_unused_picture() return value for errors
Janne Grunau [Sat, 8 Sep 2012 13:56:52 +0000 (15:56 +0200)]
mpegvideo: check ff_find_unused_picture() return value for errors