Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Native Opus decoder committed to FFmpeg/libav (Read 6165 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Native Opus decoder committed to FFmpeg/libav

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:
Code: [Select]
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:
Code: [Select]
[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:

Code: [Select]
[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:

Code: [Select]
[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

 

Native Opus decoder committed to FFmpeg/libav

Reply #1
Nice  I really hope that this speeds up Opus integration into Android audio player's which are know to based on ffmpeg (Poweramp, DeadBeef).
I'll go and post this on DeadBeef's Google+

Native Opus decoder committed to FFmpeg/libav

Reply #2
DeadBeef is not using ffmpeg as it was told by me, instead it uses it's own plugins. Sorry for that.

Native Opus decoder committed to FFmpeg/libav

Reply #3
There's an ffmpeg plugin, but it's old (last I checked anyway).

Native Opus decoder committed to FFmpeg/libav

Reply #4
Deadbeef has an ffmpeg plugin, but versions from 0.11 weren't supported for several releases.  Should be supported again in latest release.  ffmpeg versions are complicated but 2.0 upwards is supported, versions up to 0.10 also work, and anything in between might work.

Native Opus decoder committed to FFmpeg/libav

Reply #5
Hello, how I can include libopus in Android ffmpeg library? I know the --enable-libopus switch but the rest....  I've built normal FFmpeg for Android before, thats no problem tho.

Native Opus decoder committed to FFmpeg/libav

Reply #6
Do you have libopus on your system?  I don't know if you need the source but you definitely need libopus-dev or the equivalent so that ffmpeg has headers to compile against.