Commit Graph

65136 Commits

Author SHA1 Message Date
Mickaël Raulet
d249e6828e hevc/sao: optimze sao implementation
- adding one extra pixel all around the frame
- do not copy when SAO is not applied

5% improvement

cherry picked from commit 10fc29fc19a12c4d8168fbe1a954b76386db12d0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:46:50 +02:00
Michael Niedermayer
2897447ddf Merge commit '913fa85a2c1fcd71802f7decdef5f355e0d9c757'
* commit '913fa85a2c1fcd71802f7decdef5f355e0d9c757':
  dct-test: Skip indirection for MMX IDCT permutation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:45:32 +02:00
Michael Niedermayer
097bf834ba Merge commit '9e0b29911f1f167381a7dbdfca68bf417b8c767b'
* commit '9e0b29911f1f167381a7dbdfca68bf417b8c767b':
  x86: dnxhdenc: Eliminate some unnecessary ifdefs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:33:24 +02:00
Michael Niedermayer
4b0fa45b84 Merge commit 'b4edbe9a0eb48423fbf249b0ca7fb62838bdb7f5'
* commit 'b4edbe9a0eb48423fbf249b0ca7fb62838bdb7f5':
  libgsm: Split decoder and encoder

Conflicts:
	libavcodec/libgsmenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:28:34 +02:00
Michael Niedermayer
521f569734 Merge commit '8b0dd4942aac320d1ca3c40fa7ea1be342c71273'
* commit '8b0dd4942aac320d1ca3c40fa7ea1be342c71273':
  idctdsp: prettyprinting cosmetics

Conflicts:
	libavcodec/idctdsp.c
	libavcodec/ppc/idctdsp.c
	libavcodec/x86/idctdsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:16:04 +02:00
Diego Biurrun
e0a2e60c0a dct-test: Reuse enum idct_permutation_type instead of duplicating it 2014-07-18 13:04:39 -07:00
Michael Niedermayer
42d326353c Merge commit 'b4987f72197e0c62cf2633bf835a9c32d2a445ae'
* commit 'b4987f72197e0c62cf2633bf835a9c32d2a445ae':
  idct: Convert IDCT permutation #defines to an enum

Conflicts:
	libavcodec/idctdsp.c
	libavcodec/x86/cavsdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 22:01:17 +02:00
Michael Niedermayer
f6ed5df9c0 Merge commit 'c0de9159a7ba5707aa0a5c2bc73ae78b7b87ec46'
* commit 'c0de9159a7ba5707aa0a5c2bc73ae78b7b87ec46':
  avdevice: Give names to anonymously typedeffed structs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:48:37 +02:00
Michael Niedermayer
cff61d595e Merge commit '24af1aa0f70362a66cda04c9d7cd012e019f5572'
* commit '24af1aa0f70362a66cda04c9d7cd012e019f5572':
  fft: Convert FFT/MDCT permutation type #defines to enums

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:43:50 +02:00
Michael Niedermayer
29119aff6c Merge commit '746ad4e0df7faf93329804e412ec53c1d929a75b'
* commit '746ad4e0df7faf93329804e412ec53c1d929a75b':
  dct-test: Improve CPU flags struct member name

Conflicts:
	libavcodec/dct-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:36:46 +02:00
Michael Niedermayer
2dbda9378c Merge commit 'cb44b21da1f59923be577f08c267ec270529be97'
* commit 'cb44b21da1f59923be577f08c267ec270529be97':
  dct-test: Move cpu_flags variable out of global scope

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 21:30:25 +02:00
Peter B
0f70131089 fate: Add test for wav Peak Envelope Chunk encoder (levl chunk).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 19:38:54 +02:00
Carl Eugen Hoyos
5dcd43cd86 Fix make checkheaders for libavcodec/proresdsp.h. 2014-07-18 19:05:07 +02:00
Diego Biurrun
913fa85a2c dct-test: Skip indirection for MMX IDCT permutation 2014-07-18 09:58:17 -07:00
Diego Biurrun
9e0b29911f x86: dnxhdenc: Eliminate some unnecessary ifdefs 2014-07-18 09:58:17 -07:00
Nidhi Makhijani
b4edbe9a0e libgsm: Split decoder and encoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-18 17:27:54 +02:00
Diego Biurrun
8b0dd4942a idctdsp: prettyprinting cosmetics 2014-07-18 07:51:03 -07:00
Diego Biurrun
b4987f7219 idct: Convert IDCT permutation #defines to an enum
Also rename the enum values to be consistent with other DCT permutations.
2014-07-18 07:51:03 -07:00
Diego Biurrun
c0de9159a7 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.
2014-07-18 07:43:36 -07:00
Diego Biurrun
24af1aa0f7 fft: Convert FFT/MDCT permutation type #defines to enums 2014-07-18 07:29:13 -07:00
Diego Biurrun
746ad4e0df dct-test: Improve CPU flags struct member name 2014-07-18 06:14:43 -07:00
Diego Biurrun
cb44b21da1 dct-test: Move cpu_flags variable out of global scope 2014-07-18 06:14:42 -07:00
Andrey Utkin
cb8cb85da7 lavfi/drawtext: add alias "expr_int_format" to expansion function "eif"
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 14:24:34 +02:00
Timothy Gu
0035783488 smacker: remove dead code
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 13:31:19 +02:00
Michael Niedermayer
d13effb0b4 Merge commit '7e18a727d2c2a19f22fcf68875d1b05fd2eafcef'
* commit '7e18a727d2c2a19f22fcf68875d1b05fd2eafcef':
  arm: cosmetics: Consistently use lowercase for shift operators

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 13:17:29 +02:00
Michael Niedermayer
cd4497d8c5 Merge commit 'fe67f3fbb5f9f6a6b60f837f6bc5e087ac11f3bf'
* commit 'fe67f3fbb5f9f6a6b60f837f6bc5e087ac11f3bf':
  arm: cosmetics: Fix a misaligned asm operand

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 12:44:03 +02:00
Martin Storsjö
7e18a727d2 arm: cosmetics: Consistently use lowercase for shift operators
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 11:17:40 +03:00
Martin Storsjö
fe67f3fbb5 arm: cosmetics: Fix a misaligned asm operand
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-18 11:17:35 +03:00
James Almer
277e5ca617 alpha/me_cmp: move code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 05:15:17 +02:00
James Almer
95a2d705cd alpha/idctdsp: move disabled cruft out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 05:15:05 +02:00
Michael Niedermayer
d5ba19e611 avcodec/a64multienc use av_freep()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:57:00 +02:00
Timothy Gu
cd3c85ac5c a64multienc: remove dead assignment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:56:18 +02:00
Timothy Gu
b64808e9dd kerndeint: remove dead assignments
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 04:44:58 +02:00
Michael Niedermayer
c67cf84628 Merge commit '5a272190a04666f0fe41be767396b30712638c21'
* commit '5a272190a04666f0fe41be767396b30712638c21':
  armv6: Accelerate butterflies_float

See: 57641410d1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:44:28 +02:00
Michael Niedermayer
7809c26006 Merge commit '5edad2c4a1f46bcc56be755af86ab355c2f1b37f'
* commit '5edad2c4a1f46bcc56be755af86ab355c2f1b37f':
  armv6: Accelerate vector_fmul_window

See: 649c666137
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:14:22 +02:00
Michael Niedermayer
c27adb37ef Merge commit '87552d54d3337c3241e8a9e1a05df16eaa821496'
* commit '87552d54d3337c3241e8a9e1a05df16eaa821496':
  armv6: Accelerate ff_fft_calc for general case (nbits != 4)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 03:12:02 +02:00
Michael Niedermayer
4c735ee0e3 Merge commit '5c22e8e4ad0852d61d5c4ba8d67d33fd72339497'
* commit '5c22e8e4ad0852d61d5c4ba8d67d33fd72339497':
  armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)

See: 42c1cc35b7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 02:33:26 +02:00
Michael Niedermayer
c527c14d63 avcodec/dvenc: clear all dsp contexts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-18 00:48:34 +02:00
Ben Avison
5a272190a0 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>
2014-07-18 01:34:38 +03:00
Ben Avison
5edad2c4a1 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>
2014-07-18 01:34:31 +03:00
Ben Avison
87552d54d3 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>
2014-07-18 01:34:23 +03:00
Ben Avison
5c22e8e4ad 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>
2014-07-18 01:34:08 +03:00
Michael Niedermayer
162cffca80 avcodec/me_cmp: restore author attribution and copyrights
These where removed by libav in

See: git show -C 2d60444331
diff --git a/libavcodec/dsputil.c b/libavcodec/me_cmp.c
similarity index 98%
rename from libavcodec/dsputil.c
rename to libavcodec/me_cmp.c
index ba71a99..9fcc937 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/me_cmp.c
@@ -1,8 +1,4 @@
 /*
- * DSP utils
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
  * This file is part of Libav.
  *
  * Libav is free software; you can redistribute it and/or

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 23:59:28 +02:00
Michael Niedermayer
3a2d1465c8 Merge commit '2d60444331fca1910510038dd3817bea885c2367'
* commit '2d60444331fca1910510038dd3817bea885c2367':
  dsputil: Split motion estimation compare bits off into their own context

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/arm/Makefile
	libavcodec/dvenc.c
	libavcodec/error_resilience.c
	libavcodec/h264.h
	libavcodec/h264_slice.c
	libavcodec/me_cmp.c
	libavcodec/me_cmp.h
	libavcodec/motion_est.c
	libavcodec/motion_est_template.c
	libavcodec/mpeg4videoenc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/Makefile
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 23:27:40 +02:00
Michael Niedermayer
6be71e9955 Merge commit 'a578b0407dc983aecd72028e1127062689b67089'
* commit 'a578b0407dc983aecd72028e1127062689b67089':
  configure: Assume runtime cpu detection on arm on --target-os=android as well

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 22:20:53 +02:00
Michael Niedermayer
d6676a1605 Merge commit 'c23ce454b3e33634a188d6facfd2b7182af5af93'
* commit 'c23ce454b3e33634a188d6facfd2b7182af5af93':
  x86: dsputil: Coalesce all init files

Conflicts:
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_x86.h
	libavcodec/x86/motion_est.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 22:07:52 +02:00
Nicolas George
8e2976860f lavd/x11grab: reindent after last commit. 2014-07-17 18:28:58 +02:00
Nicolas George
099aff5c42 lavfi: check refcount before merging.
When merging the formats around the automatically inserted
convert filters, the refcount of the format lists can not be 0.
Coverity does not detect it, and suspects a memory leak,
because if refcount is 0 the newly allocated lists are not
stored anywhere. That gives CIDs 1224282, 1224283 and 1224284.
Lists with refcount 0 are used in can_merge_formats(), so the
asserts can not be moved inside the merge functions.
2014-07-17 18:12:34 +02:00
Nicolas George
1d12df1ad7 lavd/x11grab: add an option to disable MIT-SHM.
With remote displays supporting the MIT-SHM extension,
the extension is detected and used, but attaching fails
asynchronously.
2014-07-17 18:12:15 +02:00
Nicolas George
16c6795465 lavd/x11grab: check 32-bits color masks.
The X11 servers by VNC, at 32-bits depths, has the following masks:
R:0x000007ff G:0x003ff800 B:0xffc00000
This is not compatible with AV_PIX_FMT_0RGB32, and the result
is success with completely wrong colors.
2014-07-17 18:11:56 +02:00