A native Opus decoder is now available in FFmpeg/libav [git]:
https://git.videolan.org/?p=ffmpeg.git;a=co...770fdf5f57de222
https://git.libav.org/?p=libav.git;a=commit...770fdf5f57de222
Some applications might start using the native decoder (knowingly or unknowingly). So, I decided to test both decoders (FFmpeg and libopus) to see how they perform.
Two samples where used in the test:
Filename Length Info
t96.opus 13824.1 music content encoded with default VBR 96kbps [CELT]
t16.opus 7869.97 voice content encoded with VBR 16kbps [SILK]
Two devices used in the test:
[Laptop]
CPU: Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz
OS: ArchLinux [x86_64]
[Tablet]
CPU: ARMv7 Processor rev 9 (v7l)
Tegra 3, 1700MHz
swp half thumb fastmult vfp edsp neon vfpv3 tls
OS: ArchLinux ARM [armv7h] chroot (Native env: Android/CM11)
Laptop/X86_64 Results:
[t96.opus]
Decoder Time Speed
FFmpeg ~114 ~121.26x
libopus ~108.5 ~127.41x
[t16.opus]
Decoder Time Speed
FFmpeg ~37.75 ~208.47x
libopus ~38.25 ~205.75x
Tablet/ARMv7l Results:
[t96.opus]
Decoder Time Speed
FFmpeg ~333 ~41.51x
libopus ~385.5 ~35.86x
libopus* ~296.5 ~46.62x
[t16.opus]
Decoder Time Speed
FFmpeg ~128 ~61.48x
libopus ~139.5 ~56.41x
libopus* ~78 ~100.89x
* Built with --enable-fixed-point