On Wed, 31 Jul 2013, Ben Avison wrote:
Here's another patch series, this time aimed at accelerating the
playback of MPEG transport streams (including BluRay ISOs). I was
primarily targeting the ARM11 again (ARMv6) but in practice most of
these are actually cross-platform optimisations.
Benchmarks are given for Raspberry Pi (ARM1176JZF-S), measuring an
avconv command with arguments
-f null -vcodec copy -acodec copy
The patch series as a whole shows a speedup of 29%.
I realise that there may be some question over whether I've put the
new h264_find_start_code_candidate function pointer in the right
place, or whether it's actually a bug that there are two
H264DSPContext structs, but I'm sure there will be discussion on
those points if so.
Ben Avison (6):
Add missing h264dsp initialisation call
New h264dsp method, h264_find_start_code_candidate
arm: Add assembly version of h264_find_start_code_candidate
Remove one 64-bit integer modulus operation per MPEGTS packet
Remove one memcpy per MPEGTS packet
Made discard_pid() faster for single-program MPEGTS streams
libavcodec/arm/Makefile | 1 +
libavcodec/arm/h264dsp_armv6.S | 251 +++++++++++++++++++++++++++++++++++++
libavcodec/arm/h264dsp_init_arm.c | 4 +
libavcodec/h264_parser.c | 28 +----
libavcodec/h264dsp.c | 29 +++++
libavcodec/h264dsp.h | 9 ++
libavformat/avio.h | 15 +++
libavformat/aviobuf.c | 12 ++
libavformat/mpegts.c | 58 +++++++--
9 files changed, 369 insertions(+), 38 deletions(-)
create mode 100644 libavcodec/arm/h264dsp_armv6.S
--
1.7.5.4
FWIW, with the missing thumb 'it' instructions added, this seems to build
in most of my 'tricky' arm build setups, and passes fate-h264 even when
processed by gas-preprocessor.pl. (With the previous patchset I ran into a
few missing features in gas-preprocessor.pl that I had to fix.)
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel