1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

18969 Commits

Author SHA1 Message Date
Ben Avison
b9eb03416d truehd: break out part of output_data into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:29 +02:00
Ben Avison
fcf5fc4445 truehd: tune VLC decoding for ARM.
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     348.8  20.1     339.6  15.1    88.8%       +2.7%  (insignificant)
6:2 function  38.1   8.1      26.4   4.1     100.0%      +44.5%
8:2 total     339.1  15.4     324.5  15.5    99.4%       +4.5%
8:2 function  33.8   7.0      27.3   5.6     99.7%       +23.6%
6:6 total     604.6  20.8     572.8  20.6    100.0%      +5.6%
6:6 function  95.8   8.4      68.9   8.2     100.0%      +39.1%
8:8 total     766.4  17.6     741.5  21.2    100.0%      +3.4%
8:8 function  106.0  11.4     86.1   9.9     100.0%      +23.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:12 +02:00
Ben Avison
483321fe78 truehd: add hand-scheduled ARM asm version of ff_mlp_rematrix_channel.
Profiling results for overall audio decode and the rematrix_channels function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     370.8  17.0     348.8  20.1    99.9%       +6.3%
6:2 function  46.4   8.4      45.8   6.6     18.0%       +1.2%  (insignificant)
8:2 total     343.2  19.0     339.1  15.4    54.7%       +1.2%  (insignificant)
8:2 function  38.9   3.9      40.2   6.9     52.4%       -3.2%  (insignificant)
6:6 total     658.4  15.7     604.6  20.8    100.0%      +8.9%
6:6 function  109.0  8.7      59.5   5.4     100.0%      +83.3%
8:8 total     896.2  24.5     766.4  17.6    100.0%      +16.9%
8:8 function  223.4  12.8     93.8   5.0     100.0%      +138.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:10 +02:00
Ben Avison
4e5aa080bb truehd: break out part of rematrix_channels into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:05 +02:00
Ben Avison
15a29c39d9 truehd: add hand-scheduled ARM asm version of mlp_filter_channel.
Profiling results for overall audio decode and the mlp_filter_channel(_arm)
function in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     380.4  22.0     370.8  17.0    87.4%       +2.6%  (insignificant)
6:2 function  60.7   7.2      36.6   8.1     100.0%      +65.8%
8:2 total     357.0  17.5     343.2  19.0    97.8%       +4.0%  (insignificant)
8:2 function  60.3   8.8      37.3   3.8     100.0%      +61.8%
6:6 total     717.2  23.2     658.4  15.7    100.0%      +8.9%
6:6 function  140.4  12.9     81.5   9.2     100.0%      +72.4%
8:8 total     981.9  16.2     896.2  24.5    100.0%      +9.6%
8:8 function  193.4  15.0     103.3  11.5    100.0%      +87.2%

Experiments with adding preload instructions to this function yielded no
useful benefit, so these have not been included.

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:53:52 +02:00
Diego Biurrun
efc7290eb6 x86: hpeldsp: Keep all rnd_template instantiations in hpeldsp_init
There is no point in having a separate file just for the instantiation
that provides the public functions.
2014-03-26 04:31:27 -07:00
Diego Biurrun
55d7f26e7b hpeldsp_template: Move content to hpeldsp
There is no point in having this separate; it is not used as a template.
2014-03-26 04:31:27 -07:00
Diego Biurrun
09d4389de1 hpeldsp_template: Drop av_unused attribute from *_no_rnd_pixels16_8_c functions 2014-03-26 04:31:27 -07:00
Diego Biurrun
92ba965103 dsputil: Move draw_edges and clear_block* out of dsputil_template
The functions are not used templatized.
2014-03-26 04:31:27 -07:00
Diego Biurrun
da5be23525 dsputil: Move RV40-specific bits into rv40dsp 2014-03-26 04:31:27 -07:00
Diego Biurrun
8011ac911b hpeldsp_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
2c01ad8b20 dsputil_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
aba70bb538 Add missing headers to make template files compile (more) standalone 2014-03-26 04:31:27 -07:00
Diego Biurrun
e7373585f8 dsputil_template: Move bits that are used templatized into separate file
This allows detemplatizing the bits that are not instantiated twice.
2014-03-26 04:31:27 -07:00
Diego Biurrun
d3c3c1664a dsputil: Move hpel_template #include out of dsputil_template
Multiple inclusion makes no sense as it is only used in the 8-bit case.
2014-03-26 04:31:26 -07:00
Diego Biurrun
d0aabeab23 x86: h264_qpel: Fix typo in CALL_2X_PIXELS macro invocation
This fixes FATE with mmxext CPUFLAGS set.
2014-03-26 12:00:01 +01:00
Vittorio Giovara
dc0c70e018 avcodec: add missing includes 2014-03-25 12:28:22 +01:00
Derek Buitenhuis
21a561176e libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:27:41 +00:00
Michael Niedermayer
60728e8bab libx265: Write global extradata when requested
Matroska, MP4, and other containers require it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-24 15:27:41 +00:00
Diego Biurrun
8ef33497a6 build: Add config option for CABAC code
This allows for more elegant dependency and object declarations.
2014-03-24 15:35:18 +01:00
Anton Khirnov
4a0f665143 libavcodec: when decoding, copy replaygain side data to decoded frames 2014-03-24 06:07:51 +01:00
Anton Khirnov
5a7e35dd23 Add replaygain side data type and code for parsing replaygain tags. 2014-03-24 06:07:51 +01:00
Anton Khirnov
0e2c3ee9a3 lavc: give a typedeffed name to the AVPacket.side_data struct 2014-03-24 06:07:50 +01:00
Luca Barbato
f51d0f39c0 h264: Split h264 slice decoding from nal decoding 2014-03-23 22:41:12 +01:00
Vittorio Giovara
e9a77f4bc0 h264: move macroblock decoding into its own file 2014-03-23 22:41:12 +01:00
Luca Barbato
ede2b451cc build: Sort h264 objects 2014-03-23 22:41:11 +01:00
Luca Barbato
fb7127b2c8 build: h264 parser depends on full h264 decoder 2014-03-23 22:41:11 +01:00
Vittorio Giovara
6f6c029464 lavc: drop ff_pixfmt_list_420 2014-03-23 01:56:58 +01:00
Diego Biurrun
4f4840377f lagarith: Fix typo in printf format string
libavcodec/lagarith.c:671:16: warning: '#' flag used with ‘%u’ gnu_printf format [-Wformat]
2014-03-22 18:36:33 +01:00
Diego Biurrun
57f09608e1 dsputil: Move thirdpel-related bits into their own context 2014-03-22 06:17:30 -07:00
Diego Biurrun
82dd1026cf x86: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
ae116cd3ed ppc: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
6655c933a8 x86: dsputil: Move fpel declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
322a1dda97 dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macros 2014-03-22 06:17:29 -07:00
Diego Biurrun
f9279ee749 dsputil: Move ff_zigzag_direct and ff_crop_tab declarations to mathops.h 2014-03-22 06:17:29 -07:00
Diego Biurrun
600b854ad8 imgconvert: Move ff_deinterlace_line_*_mmx declarations out of dsputil 2014-03-22 06:17:29 -07:00
Diego Biurrun
1a8d0cf77e x86: dsputil: Move inline assembly macros to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
1df0b06162 nuv: Reuse the DSPContext from RTJpegContext
There is no point in populating NuvContext with another DSPContext.

Also split static and dynamic initialization bits to avoid running the
static initialization parts over and over.
2014-03-22 06:17:29 -07:00
Diego Biurrun
cc8163e1a3 avcodec: more correct printf specifiers 2014-03-22 14:08:20 +01:00
wm4
8b6136d3d1 vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:01:59 +01:00
wm4
1b1094a19d vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame
This gets rid of aliasing completely unrelated structs to Picture.

Fixes the remaining compilation warnings in the vdpau code.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:00:39 +01:00
wm4
7948a51b5c vdpau: don't assume Picture and H264Picture are the same
The code passed H264Picture* and Picture*, and assumed the
hwaccel_picture_private field was in the same place in both
structs. Somehow this happened to work in Libav, but broke in
FFmpeg (and probably subtly breaks in Libav too).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 16:59:46 +01:00
Diego Biurrun
82bb304801 dsputil: Use correct type in me_cmp_func function pointer 2014-03-20 05:03:23 -07:00
Diego Biurrun
0e083d7e43 build: Group general components separate from de/encoders in arch Makefiles
This is in line with how the top-level libavcodec Makefile is structured.
2014-03-20 05:03:23 -07:00
Diego Biurrun
54a6e08a65 dsputil: Conditionally compile dsputil code on all architectures 2014-03-20 05:03:23 -07:00
Diego Biurrun
5169e68895 dsputil: Propagate bit depth information to all (sub)init functions
This avoids recalculating the value over and over again.
2014-03-20 05:03:23 -07:00
Diego Biurrun
cf7a216757 arm: dsputil: K&R formatting cosmetics 2014-03-20 05:03:23 -07:00
Diego Biurrun
1675975216 ppc: dsputil: Drop trailing semicolon from macros
This allows for a more natural macro usage.
2014-03-20 05:03:22 -07:00
Diego Biurrun
b7d24fd4b2 ppc: dsputil: Merge some declarations and initializations 2014-03-20 05:03:22 -07:00
Diego Biurrun
b045283f21 ppc: dsputil: Simplify some ifdeffed function definitions 2014-03-20 05:03:22 -07:00