Commit Graph

44184 Commits

Author SHA1 Message Date
Diego Biurrun
f912fd767e Add missing #includes for standalone spherical-information-related headers 2016-12-08 20:12:23 +01:00
Vittorio Giovara
cf1cae58b0 fate: Add spherical and stereo3d mov tests 2016-12-07 14:35:08 -05:00
Vittorio Giovara
68f8db6108 avprobe: Allow specifying multiple stream entries to be shown 2016-12-07 14:35:08 -05:00
Vittorio Giovara
e90137c045 mov: Export spherical information
This implements Spherical Video V1 and V2, as described in the
spatial-media collection by Google.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-07 14:35:06 -05:00
Vittorio Giovara
2fb6acd9c2 lavc: Add spherical packet side data API
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-07 14:34:34 -05:00
Vittorio Giovara
c70add61d1 lavu: Add AVSphericalMapping type and frame side data
While no decoder currently exports spherical information, this type
represents a frame property that has to be passed through from container
to frames.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-07 14:32:17 -05:00
Vittorio Giovara
075acbb6ff lavu: Add a video section to Doxygen documentation
Fill it with AVStereo3D and AVDisplayMatrix documentation.
Apply the necessary changes to make verbatim code look good in doxygen.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-07 14:26:21 -05:00
Diego Biurrun
624aa8ab22 build: Add missing Makefile entries and ifdefs for QSV hwaccels 2016-12-07 15:46:57 +01:00
Diego Biurrun
c833c2034f build: Ensure that the "all" target appears before all Makefile includes
Otherwise builds without explicit target result in silent no-ops.
2016-12-07 15:46:57 +01:00
Diego Biurrun
6bd9590b33 build: Have old H.264/HEVC nvenc encoders select their new counterparts
This makes sense and takes care of missing build dependencies.
2016-12-07 12:13:23 +01:00
Diego Biurrun
3e105d0884 build: Move entries related to building TOOLS to a subdirectory Makefile 2016-12-07 11:02:31 +01:00
Diego Biurrun
4104cc5622 build: Warn that reconfiguration is necessary if version.h files changed
The library versions are stored in the config.mak file and are used
to derive shared library names.
2016-12-07 11:02:31 +01:00
Wan-Teh Chang
f22da2cdf9 configure: add -fPIE instead of -pie to C flags for ThreadSanitizer
-pie was added to C flags for ThreadSanitizer in commit
19f251a288. Under clang 3.8.0, the -pie
flag causes a compiler warning and a linker error when running configure
--toolchain=clang-tsan. Here is an excerpt from config.log:

clang ... -fsanitize=thread -pie -std=c11 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.A8SsaoCF.o /tmp/ffconf.JdpujQlD.c
clang: warning: argument unused during compilation: '-pie'
clang -fsanitize=thread -pie -Wl,--as-needed -o /tmp/ffconf.2iYA4bsw /tmp/ffconf.A8SsaoCF.o -lm -lm -lbz2 -lz -pthread
/usr/bin/ld: /tmp/ffconf.A8SsaoCF.o: relocation R_X86_64_PC32 against undefined symbol `atan2f@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)

To be conservative, I changed -pie to -fPIE. But the documentation seems
to imply just -fsanitize=thread is enough:

http://clang.llvm.org/docs/ThreadSanitizer.html
https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual

Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-12-06 20:34:25 +01:00
Diego Biurrun
404cb74793 configure: Pass CFLAGS_HEADERS through the right CFLAGS filter
The generic parameter names used for CFLAGS in configure must be filtered
for each compiler and replaced by the equivalent flag for that compiler.
2016-12-06 17:49:05 +01:00
Diego Biurrun
9265364bec build: Separate avisynth and avxsynth support
This simplifies the code.
2016-12-06 17:49:05 +01:00
Diego Biurrun
3d6135eacf configure: Simplify OMX check 2016-12-06 08:33:08 +01:00
Diego Biurrun
601f8dde13 configure: Move COMPONENT_LIST to the bottom of CONFIG_LIST
This ensures that dependencies are resolved correctly. COMPONENT_LIST
can contain parts that depend on previous entries of CONFIG_LIST.
2016-12-06 08:33:07 +01:00
Diego Biurrun
29d2e03ed9 configure: Simplify and fix avfoundation indev handling
Handle extralibs in the standard way, add missing pthreads dependency.
Also globally check for -fobj-arc with Objective-C compilers since
that option is useful for other Objective-C code as well.
2016-12-05 18:07:24 +01:00
Diego Biurrun
5d45fe7da9 build: Add EXTRALIBS to TOOLS linker command
EXTRALIBS contains general and platform-specific extra libraries
that should be part of all linker commands.
2016-12-05 16:39:52 +01:00
Diego Biurrun
2a09644076 configure: Separate package name and version requirements in helper functions
The unadorned package name is needed to derive package-related variable names.
2016-12-05 16:37:55 +01:00
Diego Biurrun
ffb9025f39 configure: Simplify MMAL check 2016-12-05 16:15:40 +01:00
Diego Biurrun
660470cd62 build: Add missing audio_frame_queue dependency for libwavpack encoder 2016-12-05 16:13:05 +01:00
Diego Biurrun
e1dc5358af build: Create a component for MPEG audio header decoding
Fixes standalone compilation of the libmp3lame encoder.
2016-12-05 16:13:05 +01:00
Diego Biurrun
0fdc9f81a0 build: Add missing hevc_ps dependency for QSV HEVC encoder 2016-12-05 16:13:04 +01:00
Alexandra Hájková
6c916192f3 mimic: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Alexandra Hájková
cdc6727c3e metasound: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Alexandra Hájková
6fad5abcad lagarith: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Alexandra Hájková
c3defda0d8 indeo: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Alexandra Hájková
f5b7bd2a7c imc: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Alexandra Hájková
39ecf0588f webp: Convert to the new bitstream reader 2016-12-03 14:36:03 +01:00
Diego Biurrun
6ef3360a38 configure: Add misssing qpeldsp dependency to mss2 decoder 2016-12-03 14:06:36 +01:00
Diego Biurrun
14bba44fb2 build: Drop support for configuring library name suffixes
It is of doubtful utility, adds complexity and no known users exist.
2016-12-03 09:15:01 +01:00
Diego Biurrun
1ea77aae92 configure: Drop bogus xcb_event variables 2016-12-03 09:15:01 +01:00
Diego Biurrun
3794062ab1 Remove Plan 9 support
Supporting the system was a nice joke for the 9 release, but it has
run its course. Nowadays Plan 9 receives no testing and has no
practical usefulness.
2016-12-03 09:15:01 +01:00
Diego Biurrun
4a1ef54398 build: Drop support for old versions of libdc1394
The libdc1394 API transition was finished close to a decade ago.
2016-12-03 09:15:01 +01:00
Diego Biurrun
2575b1917b build: Add separate flags for checkheaders targets
This allows filtering out some warning noise.
2016-12-03 08:00:33 +01:00
Diego Biurrun
984e50e74b build: Add -Wpedantic and -Wextra to extra warning flags
Also drop -Winline from set of warning flags as it only produces noise.
2016-12-03 08:00:33 +01:00
James Almer
33a2b73b98 mpeg4audio: correctly propagate meaningful error values
Signed-off-by: James Almer <jamrial@gmail.com>
2016-12-02 12:16:30 -05:00
Wan-Teh Chang
d82d5379ca mmaldec: initialize refcount using atomic_init()
This is how we initialize refcount in libavutil/buffer.c.

Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-02 12:16:26 -05:00
Luca Barbato
518a22471e configure: Be more helpful when requiring options set
Be explicit about which options should be set.
2016-12-02 12:00:07 -05:00
Aleksandr Slobodeniuk
a91f1023bc examples: fix a typo in an error message
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-02 11:59:08 -05:00
Vittorio Giovara
706af9227b lavu: Document the color properties enumeration values origin 2016-12-02 11:36:46 -05:00
Vittorio Giovara
5168026a05 options_table: Do not rely on enum size as option bound
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-02 11:36:46 -05:00
Vittorio Giovara
ff9db5cfd1 lavc: Use a stricter check for the color properties values
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-12-02 11:36:42 -05:00
Diego Biurrun
0a35f128f3 cabac: x86: Give optimizations header a more meaningful name 2016-12-01 08:23:54 +01:00
Martin Storsjö
cad42fadcd aarch64: vp9itxfm: Skip empty slices in the first pass of idct_idct 16x16 and 32x32
This work is sponsored by, and copyright, Google.

Previously all subpartitions except the eob=1 (DC) case ran with
the same runtime:

vp9_inv_dct_dct_16x16_sub16_add_neon:   1373.2
vp9_inv_dct_dct_32x32_sub32_add_neon:   8089.0

By skipping individual 8x16 or 8x32 pixel slices in the first pass,
we reduce the runtime of these functions like this:

vp9_inv_dct_dct_16x16_sub1_add_neon:     235.3
vp9_inv_dct_dct_16x16_sub2_add_neon:    1036.7
vp9_inv_dct_dct_16x16_sub4_add_neon:    1036.7
vp9_inv_dct_dct_16x16_sub8_add_neon:    1036.7
vp9_inv_dct_dct_16x16_sub12_add_neon:   1372.1
vp9_inv_dct_dct_16x16_sub16_add_neon:   1372.1
vp9_inv_dct_dct_32x32_sub1_add_neon:     555.1
vp9_inv_dct_dct_32x32_sub2_add_neon:    5190.2
vp9_inv_dct_dct_32x32_sub4_add_neon:    5180.0
vp9_inv_dct_dct_32x32_sub8_add_neon:    5183.1
vp9_inv_dct_dct_32x32_sub12_add_neon:   6161.5
vp9_inv_dct_dct_32x32_sub16_add_neon:   6155.5
vp9_inv_dct_dct_32x32_sub20_add_neon:   7136.3
vp9_inv_dct_dct_32x32_sub24_add_neon:   7128.4
vp9_inv_dct_dct_32x32_sub28_add_neon:   8098.9
vp9_inv_dct_dct_32x32_sub32_add_neon:   8098.8

I.e. in general a very minor overhead for the full subpartition case due
to the additional cmps, but a significant speedup for the cases when we
only need to process a small part of the actual input data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-30 23:57:05 +02:00
Martin Storsjö
9c8bc74c2b arm: vp9itxfm: Skip empty slices in the first pass of idct_idct 16x16 and 32x32
This work is sponsored by, and copyright, Google.

Previously all subpartitions except the eob=1 (DC) case ran with
the same runtime:

                                     Cortex A7       A8       A9      A53
vp9_inv_dct_dct_16x16_sub16_add_neon:   3188.1   2435.4   2499.0   1969.0
vp9_inv_dct_dct_32x32_sub32_add_neon:  18531.7  16582.3  14207.6  12000.3

By skipping individual 4x16 or 4x32 pixel slices in the first pass,
we reduce the runtime of these functions like this:

vp9_inv_dct_dct_16x16_sub1_add_neon:     274.6    189.5    211.7    235.8
vp9_inv_dct_dct_16x16_sub2_add_neon:    2064.0   1534.8   1719.4   1248.7
vp9_inv_dct_dct_16x16_sub4_add_neon:    2135.0   1477.2   1736.3   1249.5
vp9_inv_dct_dct_16x16_sub8_add_neon:    2446.7   1828.7   1993.6   1494.7
vp9_inv_dct_dct_16x16_sub12_add_neon:   2832.4   2118.3   2266.5   1735.1
vp9_inv_dct_dct_16x16_sub16_add_neon:   3211.7   2475.3   2523.5   1983.1
vp9_inv_dct_dct_32x32_sub1_add_neon:     756.2    456.7    862.0    553.9
vp9_inv_dct_dct_32x32_sub2_add_neon:   10682.2   8190.4   8539.2   6762.5
vp9_inv_dct_dct_32x32_sub4_add_neon:   10813.5   8014.9   8518.3   6762.8
vp9_inv_dct_dct_32x32_sub8_add_neon:   11859.6   9313.0   9347.4   7514.5
vp9_inv_dct_dct_32x32_sub12_add_neon:  12946.6  10752.4  10192.2   8280.2
vp9_inv_dct_dct_32x32_sub16_add_neon:  14074.6  11946.5  11001.4   9008.6
vp9_inv_dct_dct_32x32_sub20_add_neon:  15269.9  13662.7  11816.1   9762.6
vp9_inv_dct_dct_32x32_sub24_add_neon:  16327.9  14940.1  12626.7  10516.0
vp9_inv_dct_dct_32x32_sub28_add_neon:  17462.7  15776.1  13446.2  11264.7
vp9_inv_dct_dct_32x32_sub32_add_neon:  18575.5  17157.0  14249.3  12015.1

I.e. in general a very minor overhead for the full subpartition case due
to the additional loads and cmps, but a significant speedup for the cases
when we only need to process a small part of the actual input data.

In common VP9 content in a few inspected clips, 70-90% of the non-dc-only
16x16 and 32x32 IDCTs only have nonzero coefficients in the upper left
8x8 or 16x16 subpartitions respectively.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-30 23:54:07 +02:00
Martin Storsjö
3c87039a40 arm: vp9itxfm: Only reload the idct coeffs for the iadst_idct combination
This avoids reloading them if they haven't been clobbered, if the
first pass also was idct.

This is similar to what was done in the aarch64 version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-30 23:53:52 +02:00
Clément Bœsch
c4c5f5386c vp9dsp: add DC only versions for idct/idct.
before:

time ./avconv -v 0 -nostats -threads 1 -i sintel_vp9_500kbps.webm -f null -
real    0m11.125s
user    0m11.059s
sys     0m0.050s

time ./avconv -v 0 -nostats -threads 1 -i sintel_vp9_500kbps.webm -f null -
real    0m10.944s
user    0m10.819s
sys     0m0.064s

after:

time ./avconv -v 0 -nostats -threads 1 -i sintel_vp9_500kbps.webm -f null -
real    0m8.153s
user    0m8.034s
sys     0m0.050s

time ./avconv -v 0 -nostats -threads 1 -i sintel_vp9_500kbps.webm -f null -
real    0m8.038s
user    0m7.980s
sys     0m0.039s

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-30 23:48:28 +02:00
Diego Biurrun
e4382a4ab4 hevc: Eliminate pointless variable indirection 2016-11-30 14:11:44 +01:00