platform/upstream/libav.git
10 years agovf_select: Drop a debug av_log with an unchecked double to enum conversion
Diego Biurrun [Tue, 29 Jul 2014 12:43:04 +0000 (05:43 -0700)]
vf_select: Drop a debug av_log with an unchecked double to enum conversion

CC: libav-stable@libav.org
10 years agompegvideo: move vol_control_parameters to the only place it is used
Nidhi Makhijani [Tue, 29 Jul 2014 15:54:29 +0000 (21:24 +0530)]
mpegvideo: move vol_control_parameters to the only place it is used

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agomatroska: Register mime types
Luca Barbato [Thu, 13 Mar 2014 21:14:43 +0000 (22:14 +0100)]
matroska: Register mime types

10 years agoaac: Register the mime type
Luca Barbato [Thu, 13 Mar 2014 21:12:18 +0000 (22:12 +0100)]
aac: Register the mime type

Speed up probing ADTS live streams that are not frame-aligned such
as http://mp3.streampower.be/radio1.aac .

10 years agoavformat: Use the mime type information in input probe
Luca Barbato [Thu, 13 Mar 2014 21:11:12 +0000 (22:11 +0100)]
avformat: Use the mime type information in input probe

It should provide a quicker guess for elementary streams provided
by http.

10 years agoavstring: Expose the simple name match function
Luca Barbato [Tue, 29 Jul 2014 13:29:13 +0000 (14:29 +0100)]
avstring: Expose the simple name match function

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years agoavformat: Move av_probe_input* to format.c
Luca Barbato [Thu, 13 Mar 2014 18:54:00 +0000 (19:54 +0100)]
avformat: Move av_probe_input* to format.c

10 years agocaf: Use correct printf conversion specifiers for POSIX int types
Diego Biurrun [Mon, 28 Jul 2014 16:21:57 +0000 (09:21 -0700)]
caf: Use correct printf conversion specifiers for POSIX int types

10 years agosanm: Use correct printf conversion specifiers for POSIX int types
Diego Biurrun [Sat, 26 Jul 2014 12:12:48 +0000 (05:12 -0700)]
sanm: Use correct printf conversion specifiers for POSIX int types

10 years agodump: Use correct printf conversion specifiers for POSIX int types
Diego Biurrun [Sat, 26 Jul 2014 12:11:18 +0000 (05:11 -0700)]
dump: Use correct printf conversion specifiers for POSIX int types

10 years agox86: build: Restore ordering of OBJS lines
Diego Biurrun [Sat, 26 Jul 2014 22:04:44 +0000 (15:04 -0700)]
x86: build: Restore ordering of OBJS lines

10 years agoconfigure: Use require_pkg_config for Speex
Luca Barbato [Thu, 24 Jul 2014 21:50:38 +0000 (23:50 +0200)]
configure: Use require_pkg_config for Speex

Distributors and integrators nowadays have less problems by leveraging
pkg-config files than having to set custom CFLAGS and LDFLAGS.

10 years agomxf: Extract origin information from material and source track
Marc-Antoine Arnaud [Tue, 22 Jul 2014 16:08:04 +0000 (18:08 +0200)]
mxf: Extract origin information from material and source track

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
10 years agomxf: Detect Vanc/Vbi SMPTE-436M mxf track
Marc-Antoine Arnaud [Tue, 22 Jul 2014 14:08:52 +0000 (16:08 +0200)]
mxf: Detect Vanc/Vbi SMPTE-436M mxf track

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
10 years agovideo4linux2: Avoid a floating point exception
Bernhard Übelacker [Sun, 27 Jul 2014 15:38:59 +0000 (08:38 -0700)]
video4linux2: Avoid a floating point exception

This avoids a segfault in avconv_opt.c:opt_target when trying to
determine the norm.

10 years agohevc: eliminate the last element from TransformTree
Anton Khirnov [Sun, 27 Jul 2014 10:59:40 +0000 (10:59 +0000)]
hevc: eliminate the last element from TransformTree

Replace it by passing an additional parameter to transform_unit()

10 years agohevc: eliminate unnecessary cbf_c{b,r} arrays
Anton Khirnov [Sun, 27 Jul 2014 10:49:27 +0000 (10:49 +0000)]
hevc: eliminate unnecessary cbf_c{b,r} arrays

They are replaced by passing additional parameters to the transform
functions.

10 years agohevc: do not store the transform inter_split flag in the context
Anton Khirnov [Sun, 27 Jul 2014 09:49:37 +0000 (09:49 +0000)]
hevc: do not store the transform inter_split flag in the context

It does not need to be preserved.

10 years agohevc: simplify splitting the transform tree blocks
Anton Khirnov [Sun, 27 Jul 2014 09:19:16 +0000 (09:19 +0000)]
hevc: simplify splitting the transform tree blocks

10 years agohevc: eliminate an unnecessary array
Anton Khirnov [Sun, 27 Jul 2014 08:17:29 +0000 (08:17 +0000)]
hevc: eliminate an unnecessary array

We do not need to store the value of the split flag.

10 years agocodec_desc: fix some typos in long codec names
Anton Khirnov [Sun, 20 Jul 2014 11:34:30 +0000 (11:34 +0000)]
codec_desc: fix some typos in long codec names

The rv20 typo spotted by Hendrik Leppkes <h.leppkes@gmail.com>

10 years agolavc: add a property for marking codecs that support frame reordering
Anton Khirnov [Sun, 20 Jul 2014 11:26:13 +0000 (11:26 +0000)]
lavc: add a property for marking codecs that support frame reordering

10 years agofate: support testing of release branches
Janne Grunau [Sat, 26 Jul 2014 21:29:46 +0000 (23:29 +0200)]
fate: support testing of release branches

Adding 'branch=release/10' to the fate config file will check the
release/10 branch instead of master. If no branch is specified it will
use 'master' so that existing config are still valid.

The server side changes are already deployed, see
https://fate.libav.org/v10/ for an example. The server supports only the
release/* branches.

The server enforces that a single slot tests always the same branch.
Please append "-v$RELEASE" to the slot of release branch configs or make
the slot otherwise unique.

A different fate samples dir is needed for each release branch. make
fate-rsync has the correct URL in each branch.

10 years agoeamad: use the bytestream2 API instead of AV_RL
Anton Khirnov [Sun, 20 Jul 2014 12:06:47 +0000 (12:06 +0000)]
eamad: use the bytestream2 API instead of AV_RL

This is safer and possibly fixes invalid reads on truncated data.

CC:libav-stable@libav.org

10 years agoavformat: Mark AVOutputFormat argument in avformat_query_codec as const
Diego Biurrun [Sat, 26 Jul 2014 09:50:59 +0000 (02:50 -0700)]
avformat: Mark AVOutputFormat argument in avformat_query_codec as const

10 years agoavformat: Mark argument in av_{i|o}format_next/ffurl_protocol_next as const
Diego Biurrun [Sat, 26 Jul 2014 09:47:41 +0000 (02:47 -0700)]
avformat: Mark argument in av_{i|o}format_next/ffurl_protocol_next as const

10 years agoavcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const
Diego Biurrun [Sat, 26 Jul 2014 09:46:40 +0000 (02:46 -0700)]
avcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const

10 years agohevc: SSE2 and SSSE3 loop filters
Pierre Edouard Lepere [Wed, 18 Jun 2014 03:57:16 +0000 (05:57 +0200)]
hevc: SSE2 and SSSE3 loop filters

Additional contributions by James Almer <jamrial@gmail.com>,
Carl Eugen Hoyos <cehoyos@ag.or.at>, Fiona Glaser <fiona@x264.com> and
Anton Khirnov <anton@khirnov.net>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
10 years agohevcdsp: remove an unneeded variable in the loop filter
Anton Khirnov [Sat, 12 Jul 2014 08:36:03 +0000 (08:36 +0000)]
hevcdsp: remove an unneeded variable in the loop filter

beta0 and beta1 will always be the same

10 years agooutput example: convert audio to the format supported by the encoder
Anton Khirnov [Thu, 24 Jul 2014 17:47:26 +0000 (17:47 +0000)]
output example: convert audio to the format supported by the encoder

10 years agooutput example: set the stream timebase
Anton Khirnov [Wed, 23 Jul 2014 11:09:16 +0000 (11:09 +0000)]
output example: set the stream timebase

This is required by the new API.

10 years agompegvideo: Move QMAT_SHIFT* defines to the only place they are used
Diego Biurrun [Wed, 23 Jul 2014 20:53:54 +0000 (13:53 -0700)]
mpegvideo: Move QMAT_SHIFT* defines to the only place they are used

10 years agompegvideo: Move ME_MAP_* defines to the only place they are used
Diego Biurrun [Wed, 23 Jul 2014 20:50:35 +0000 (13:50 -0700)]
mpegvideo: Move ME_MAP_* defines to the only place they are used

10 years agompegvideo: Drop unused MPEG_BUF_SIZE and CHROMA_444 defines
Diego Biurrun [Wed, 23 Jul 2014 20:49:16 +0000 (13:49 -0700)]
mpegvideo: Drop unused MPEG_BUF_SIZE and CHROMA_444 defines

10 years agofft-test: Pass the right struct members instead of casting
Diego Biurrun [Wed, 23 Jul 2014 20:38:35 +0000 (13:38 -0700)]
fft-test: Pass the right struct members instead of casting

10 years agovc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_c
Diego Biurrun [Thu, 24 Jul 2014 23:22:44 +0000 (16:22 -0700)]
vc1dsp: Add wrappers for {avg|put}_vc1_mspel_mc00_c

This avoids invoking the wrapped functions with too many arguments.

10 years agoqpeldsp: Mark source pointer in qpel_mc_func function pointer const
Diego Biurrun [Thu, 24 Jul 2014 23:19:45 +0000 (16:19 -0700)]
qpeldsp: Mark source pointer in qpel_mc_func function pointer const

10 years agodct/rdft: Remove duplicate typedefs for context structs
Diego Biurrun [Wed, 23 Jul 2014 14:36:19 +0000 (07:36 -0700)]
dct/rdft: Remove duplicate typedefs for context structs

The typedefs also exist in the avfft.h header and since typedefs cannot be
legally redefined in C, the code fails to compile with some compilers.

This reverts commits 11c7155cce and 57f1b1dcc7.

10 years agompegenccontext: Remove unused opaque pointer
Nidhi Makhijani [Thu, 24 Jul 2014 14:52:43 +0000 (20:22 +0530)]
mpegenccontext: Remove unused opaque pointer

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agohttp: K&R formatting cosmetics
Diego Biurrun [Tue, 22 Jul 2014 18:42:03 +0000 (11:42 -0700)]
http: K&R formatting cosmetics

Also comment some #endifs and reshuffle headers into canonical order.

10 years agofft-test: Pass correct struct members to (i)dct functions
Diego Biurrun [Wed, 23 Jul 2014 14:33:28 +0000 (07:33 -0700)]
fft-test: Pass correct struct members to (i)dct functions

This fixes a number of incompatible pointer type warnings.

10 years agofft-test: K&R formatting cosmetics
Diego Biurrun [Fri, 18 Jul 2014 12:37:11 +0000 (05:37 -0700)]
fft-test: K&R formatting cosmetics

Also rearrange #includes into canonical order.

10 years agofft-test: Check memory allocations
Diego Biurrun [Mon, 21 Jul 2014 09:12:32 +0000 (02:12 -0700)]
fft-test: Check memory allocations

10 years agofft-test: Drop unnecessary pointer indirection for context structs
Diego Biurrun [Thu, 26 Jun 2014 23:14:30 +0000 (16:14 -0700)]
fft-test: Drop unnecessary pointer indirection for context structs

10 years agofft-test: Reduce variable scope where sensibly possible
Diego Biurrun [Thu, 26 Jun 2014 00:35:03 +0000 (17:35 -0700)]
fft-test: Reduce variable scope where sensibly possible

Also merge variable declaration and initialization.

10 years agompegenccontext: Remove unused dct_unquantize_h261 function pointers
Nidhi Makhijani [Wed, 23 Jul 2014 11:57:01 +0000 (17:27 +0530)]
mpegenccontext: Remove unused dct_unquantize_h261 function pointers

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agofft-test: Make global exptab variable static
Diego Biurrun [Mon, 21 Jul 2014 08:53:16 +0000 (01:53 -0700)]
fft-test: Make global exptab variable static

10 years agompegvideo: Move QUANT_BIAS_SHIFT define to the only place it is used
Diego Biurrun [Tue, 22 Jul 2014 18:10:13 +0000 (11:10 -0700)]
mpegvideo: Move QUANT_BIAS_SHIFT define to the only place it is used

10 years agoconfigure: Extend the neon intrinsics check
Martin Storsjö [Tue, 22 Jul 2014 12:09:43 +0000 (15:09 +0300)]
configure: Extend the neon intrinsics check

Check for an instruction that causes the (very old) Apple GCC 4.2
to error out ("unrecognizable insn").

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agofft-test: Comment some #endifs
Diego Biurrun [Fri, 18 Jul 2014 12:07:30 +0000 (05:07 -0700)]
fft-test: Comment some #endifs

10 years agofft-test: Drop unnecessary #ifdefs around header includes
Diego Biurrun [Fri, 18 Jul 2014 12:06:32 +0000 (05:06 -0700)]
fft-test: Drop unnecessary #ifdefs around header includes

10 years agodct/rdft: Add missing typedefs for context structs
Diego Biurrun [Fri, 18 Jul 2014 13:07:26 +0000 (06:07 -0700)]
dct/rdft: Add missing typedefs for context structs

Without the typedefs there can be trouble depending on #include order.

10 years agobuild: Add define for SIMD extensions requiring 16-byte aligned buffers
Diego Biurrun [Mon, 21 Jul 2014 20:58:55 +0000 (13:58 -0700)]
build: Add define for SIMD extensions requiring 16-byte aligned buffers

10 years agolibxvid: Drop PPC-specific CPU detection hack
Diego Biurrun [Mon, 21 Jul 2014 20:11:40 +0000 (13:11 -0700)]
libxvid: Drop PPC-specific CPU detection hack

It is doubtful if the hack (still) works and Xvid had ten years to fix it.

10 years agohttp: Use a constant for the supported header size
Luca Barbato [Tue, 22 Jul 2014 14:37:09 +0000 (16:37 +0200)]
http: Use a constant for the supported header size

10 years agoimgconvert: cosmetics: Reshuffle defines to reduce ifdeffery
Diego Biurrun [Mon, 21 Jul 2014 20:10:53 +0000 (13:10 -0700)]
imgconvert: cosmetics: Reshuffle defines to reduce ifdeffery

10 years agoarm: Macroize the test for 'setend' CPU instruction support
Ben Avison [Mon, 21 Jul 2014 13:53:06 +0000 (14:53 +0100)]
arm: Macroize the test for 'setend' CPU instruction support

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agoaarch64: NEON intrinsics dct_unquantize_h263.
James Yu [Sat, 17 May 2014 04:21:10 +0000 (12:21 +0800)]
aarch64: NEON intrinsics dct_unquantize_h263.

Intrinsics only used on aarch64 since the existing ARMv7 NEON asm
is slightly faster (Cortex-A9, gcc-4.8, micro-benchmarks and full
decoding time).

Signed-off-by: James Yu <james.yu@linaro.org>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
10 years agoconfigure: add support for neon intrinsics
Janne Grunau [Tue, 13 May 2014 21:03:28 +0000 (23:03 +0200)]
configure: add support for neon intrinsics

10 years agohttp: Do move the class instantiation in the conditional block
Luca Barbato [Thu, 17 Jul 2014 22:55:05 +0000 (00:55 +0200)]
http: Do move the class instantiation in the conditional block

Remove a warning if https support is disabled.

10 years agohttp: Provide an option to override the HTTP method
Luca Barbato [Thu, 17 Jul 2014 22:39:43 +0000 (00:39 +0200)]
http: Provide an option to override the HTTP method

Certain servers accept only PUT as valid method.

10 years agobuild: Support executable only ldflags
Luca Barbato [Wed, 16 Jul 2014 15:00:11 +0000 (17:00 +0200)]
build: Support executable only ldflags

The options is useful to build position-independent executables on
hardened systems (e.g. Android L and Gentoo Hardened).

10 years agoconfigure: Do not add extralibs to avresample .pc file
Luca Barbato [Wed, 16 Jul 2014 14:33:13 +0000 (16:33 +0200)]
configure: Do not add extralibs to avresample .pc file

The library does not have external dependencies.

10 years agompegts: do not export empty language tags
Jan Gerber [Mon, 21 Jul 2014 19:39:02 +0000 (19:39 +0000)]
mpegts: do not export empty language tags

Signed-off-by: Anton Khirnov <anton@khirnov.net>
10 years agofate: Split audio- and video-related RealMedia targets
Katerina Barone-Adesi [Sun, 13 Jul 2014 21:47:05 +0000 (23:47 +0200)]
fate: Split audio- and video-related RealMedia targets

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agobuild: Conditionally compile all avcodec test programs
Diego Biurrun [Mon, 21 Jul 2014 12:28:26 +0000 (05:28 -0700)]
build: Conditionally compile all avcodec test programs

10 years agobuild: Conditionally build and run DCT test program
Diego Biurrun [Mon, 21 Jul 2014 12:27:45 +0000 (05:27 -0700)]
build: Conditionally build and run DCT test program

10 years agobuild: Conditionally build and test iirfilter
Diego Biurrun [Mon, 21 Jul 2014 12:26:00 +0000 (05:26 -0700)]
build: Conditionally build and test iirfilter

10 years agomjpeg: return proper error code
Nidhi Makhijani [Mon, 21 Jul 2014 07:11:46 +0000 (12:41 +0530)]
mjpeg: return proper error code

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agodct-test: Move arch-specific bits into arch-specific subdirectories
Diego Biurrun [Tue, 18 Feb 2014 13:15:55 +0000 (14:15 +0100)]
dct-test: Move arch-specific bits into arch-specific subdirectories

10 years agoRevert "tiff: support reading gray+alpha at 8 bits"
Janne Grunau [Mon, 21 Jul 2014 06:35:32 +0000 (08:35 +0200)]
Revert "tiff: support reading gray+alpha at 8 bits"

This reverts commit b31d76e45fc3c6529dd7109e721676f3ec376d00 as it
uses an unkown pixel format.

10 years agofate: add h264-direct-bff test
Vittorio Giovara [Fri, 18 Jul 2014 13:54:46 +0000 (09:54 -0400)]
fate: add h264-direct-bff test

10 years agoh264: Fix direct temporal mvs for bottom-field-first poc order
Ronald S. Bultje [Thu, 17 Jul 2014 23:49:54 +0000 (01:49 +0200)]
h264: Fix direct temporal mvs for bottom-field-first poc order

Such files can be created using the --bff x264 option.

Sample-Id: h264_direct_temporal_mvs_bff.mkv
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years agotiff: support reading gray+alpha at 8 bits
Carl Eugen Hoyos [Sun, 20 Jul 2014 06:34:19 +0000 (02:34 -0400)]
tiff: support reading gray+alpha at 8 bits

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years agoidct: Move arm-specific declarations to a header in the arm directory
Diego Biurrun [Tue, 18 Feb 2014 12:46:32 +0000 (13:46 +0100)]
idct: Move arm-specific declarations to a header in the arm directory

10 years agompegencconetxt: Move rv10-specific orig_width/orig_height where they belong
Nidhi Makhijani [Sun, 20 Jul 2014 09:21:38 +0000 (14:51 +0530)]
mpegencconetxt: Move rv10-specific orig_width/orig_height where they belong

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agofdct: Move ppc-specific declarations to a header in the ppc directory
Diego Biurrun [Tue, 18 Feb 2014 13:09:35 +0000 (14:09 +0100)]
fdct: Move ppc-specific declarations to a header in the ppc directory

10 years agosimple_idct: Move x86-specific declarations to a header in the x86 directory
Diego Biurrun [Tue, 18 Feb 2014 12:20:01 +0000 (13:20 +0100)]
simple_idct: Move x86-specific declarations to a header in the x86 directory

10 years agofdct: Move x86-specific declarations to a header in the x86 directory
Diego Biurrun [Tue, 18 Feb 2014 12:16:11 +0000 (13:16 +0100)]
fdct: Move x86-specific declarations to a header in the x86 directory

10 years agooss_audio: Split muxer and demuxer
Nidhi Makhijani [Fri, 18 Jul 2014 10:43:15 +0000 (16:13 +0530)]
oss_audio: Split muxer and demuxer

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agodct-test: Reuse enum idct_permutation_type instead of duplicating it
Diego Biurrun [Tue, 18 Feb 2014 11:11:41 +0000 (12:11 +0100)]
dct-test: Reuse enum idct_permutation_type instead of duplicating it

10 years agodct-test: Skip indirection for MMX IDCT permutation
Diego Biurrun [Tue, 18 Feb 2014 11:02:34 +0000 (12:02 +0100)]
dct-test: Skip indirection for MMX IDCT permutation

10 years agox86: dnxhdenc: Eliminate some unnecessary ifdefs
Diego Biurrun [Sun, 13 Jul 2014 11:03:35 +0000 (04:03 -0700)]
x86: dnxhdenc: Eliminate some unnecessary ifdefs

10 years agolibgsm: Split decoder and encoder
Nidhi Makhijani [Tue, 8 Jul 2014 03:33:35 +0000 (09:03 +0530)]
libgsm: Split decoder and encoder

Signed-off-by: Diego Biurrun <diego@biurrun.de>
10 years agoidctdsp: prettyprinting cosmetics
Diego Biurrun [Fri, 18 Jul 2014 14:37:35 +0000 (07:37 -0700)]
idctdsp: prettyprinting cosmetics

10 years agoidct: Convert IDCT permutation #defines to an enum
Diego Biurrun [Tue, 18 Feb 2014 10:30:55 +0000 (11:30 +0100)]
idct: Convert IDCT permutation #defines to an enum

Also rename the enum values to be consistent with other DCT permutations.

10 years agoavdevice: Give names to anonymously typedeffed structs
Diego Biurrun [Thu, 17 Jul 2014 15:51:27 +0000 (08:51 -0700)]
avdevice: Give names to anonymously typedeffed structs

Anonymous structs can cause trouble in header files, so try to
avoid them altogether as a matter of good style.

10 years agofft: Convert FFT/MDCT permutation type #defines to enums
Diego Biurrun [Tue, 18 Feb 2014 10:52:42 +0000 (11:52 +0100)]
fft: Convert FFT/MDCT permutation type #defines to enums

10 years agodct-test: Improve CPU flags struct member name
Diego Biurrun [Tue, 18 Feb 2014 10:58:57 +0000 (11:58 +0100)]
dct-test: Improve CPU flags struct member name

10 years agodct-test: Move cpu_flags variable out of global scope
Diego Biurrun [Tue, 18 Feb 2014 10:57:48 +0000 (11:57 +0100)]
dct-test: Move cpu_flags variable out of global scope

10 years agoarm: cosmetics: Consistently use lowercase for shift operators
Martin Storsjö [Thu, 17 Jul 2014 22:39:49 +0000 (01:39 +0300)]
arm: cosmetics: Consistently use lowercase for shift operators

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agoarm: cosmetics: Fix a misaligned asm operand
Martin Storsjö [Sat, 12 Jul 2014 19:41:51 +0000 (22:41 +0300)]
arm: cosmetics: Fix a misaligned asm operand

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agoarmv6: Accelerate butterflies_float
Ben Avison [Thu, 10 Jul 2014 23:12:34 +0000 (00:12 +0100)]
armv6: Accelerate butterflies_float

I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in butterflies_float_c() / ff_butterflies_float_vfp() for the
same sample AAC stream:

                   Before          After
                   Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode       1542.8 43.7     1470.5 41.5    100.0%      +4.9%
butterflies_float  130.0  11.9     70.2   12.1    100.0%      +85.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agoarmv6: Accelerate vector_fmul_window
Ben Avison [Thu, 10 Jul 2014 23:12:33 +0000 (00:12 +0100)]
armv6: Accelerate vector_fmul_window

I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in vector_fmul_window_c() / ff_vector_fmul_window_vfp() for the
same sample AAC stream:

                    Before          After
                    Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode        1598.2 47.4     1529.2 25.4    100.0%      +4.5%
vector_fmul_window  244.0  22.1     188.9  22.3    100.0%      +29.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agoarmv6: Accelerate ff_fft_calc for general case (nbits != 4)
Ben Avison [Wed, 16 Jul 2014 15:02:01 +0000 (16:02 +0100)]
armv6: Accelerate ff_fft_calc for general case (nbits != 4)

The previous implementation targeted DTS Coherent Acoustics, which only
requires nbits == 4 (fft16()). This case was (and still is) linked directly
rather than being indirected through ff_fft_calc_vfp(), but now the full
range from radix-4 up to radix-65536 is available. This benefits other codecs
such as AAC and AC3.

The implementaion is based upon the C version, with each routine larger than
radix-16 calling a hierarchy of smaller FFT functions, then performing a
post-processing pass. This pass benefits a lot from loop unrolling to
counter the long pipelines in the VFP. A relaxed calling standard also
reduces the overhead of the call hierarchy, and avoiding the excessive
inlining performed by GCC probably helps with I-cache utilisation too.

I benchmarked the result by measuring the number of gperftools samples that
hit anywhere in the AAC decoder (starting from aac_decode_frame()) or
specifically in the FFT routines (fft4() to fft512() and pass()) for the
same sample AAC stream:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
Audio decode  2245.5 53.1     1599.6 43.8    100.0%      +40.4%
FFT routines  940.6  22.0     348.1  20.8    100.0%      +170.2%

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agoarmv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)
Ben Avison [Thu, 10 Jul 2014 23:12:31 +0000 (00:12 +0100)]
armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)

The previous implementation targeted DTS Coherent Acoustics, which only
requires mdct_bits == 6. This relatively small size lent itself to
unrolling the loops a small number of times, and encoding offsets
calculated at assembly time within the load/store instructions of each
iteration.

In the more general case (codecs such as AAC and AC3) much larger arrays
are used - mdct_bits == [8, 9, 11]. The old method does not scale for
these cases, so more integer registers are used with non-unrolled versions
of the loops (and with some stack spillage). The postrotation filter loop
is still unrolled by a factor of 2 to permit the double-buffering of some
VFP registers to facilitate overlap of neighbouring iterations.

I benchmarked the result by measuring the number of gperftools samples
that hit anywhere in the AAC decoder (starting from aac_decode_frame())
or specifically in ff_imdct_half_c / ff_imdct_half_vfp, for the same
example AAC stream:

                  Before          After
                  Mean   StdDev   Mean   StdDev  Confidence  Change
aac_decode_frame  2368.1 35.8     2117.2 35.3    100.0%      +11.8%
ff_imdct_half_*   457.5  22.4     251.2  16.2    100.0%      +82.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agodsputil: Split motion estimation compare bits off into their own context
Diego Biurrun [Sat, 8 Feb 2014 01:59:58 +0000 (02:59 +0100)]
dsputil: Split motion estimation compare bits off into their own context

10 years agoconfigure: Assume runtime cpu detection on arm on --target-os=android as well
Martin Storsjö [Wed, 16 Jul 2014 16:43:12 +0000 (19:43 +0300)]
configure: Assume runtime cpu detection on arm on --target-os=android as well

Signed-off-by: Martin Storsjö <martin@martin.st>
10 years agox86: dsputil: Coalesce all init files
Diego Biurrun [Sat, 4 Jan 2014 14:23:15 +0000 (15:23 +0100)]
x86: dsputil: Coalesce all init files

This makes the init files match the structure of the dsputil split.

10 years agoavpacket: Check for and return errors in ff_interleave_add_packet()
Nidhi Makhijani [Mon, 14 Jul 2014 06:22:44 +0000 (11:52 +0530)]
avpacket: Check for and return errors in ff_interleave_add_packet()

Signed-off-by: Diego Biurrun <diego@biurrun.de>