Closed Bug 1240630 Opened 7 years ago Closed 7 years ago

Allow using our own ffvp9 even if system FFmpeg is installed


(Core :: Audio/Video: Playback, defect)

45 Branch
Not set



Tracking Status
firefox46 --- fixed


(Reporter: jya, Assigned: jya)


(Depends on 1 open bug)



(4 files)

Right now, we can only have a single FFmpeg PDM loaded.

If a libavcodec shared library is found to be installed in the system, it will be used and the built-in ffvpx decoder will be bypassed.

Unfortunately, this means that if the system libavcodec is of an older version, there could be regressions over the use of ffvpx.

Additionally, it also means that different linux distribution would give different results.

We should have a way to load both ffvpx and system FFmpeg at the same time and prefer our ffvpx for VP9 and VP8 decoding.
Depends on: 1240649
This allows support for linking to two different version of libavcodec: our own and the system one if found.
ffvpx symbols are loaded within the namespace mozilla::ffvpx.
Attachment #8709364 - Flags: review?(ajones)
Add new preference media.ffvpx.enabled to control FFVPX PDM being enabled.
Attachment #8709365 - Flags: review?(ajones)
This is a partial revert of bug 1214462 part2. We don't need FFmpeg support on Android or Windows anymore; instead the functionality is provided by the FFVPX PDM.
Remove support for FFmpeg on Windows.
Attachment #8709366 - Flags: review?(ajones)
The days we used to only be able to use the FFmpeg decoder for H264 are long gone. It can do H264, VP6, VP8 and VP9.
Attachment #8709367 - Flags: review?(ajones)
Assignee: nobody → jyavenard
Attachment #8709364 - Flags: review?(ajones) → review+
Attachment #8709365 - Flags: review?(ajones) → review+
Attachment #8709366 - Flags: review?(ajones) → review+
Attachment #8709367 - Flags: review?(ajones) → review+
I would prefer to see a struct of function pointers be passed around instead of the namespaces.
Blocks: 1240995
Blocks: 1241660
Flags: needinfo?(jyavenard)
You need to log in before you can comment on or make changes to this bug.