Add support for FFmpeg 56 and 57

RESOLVED FIXED in Firefox 45

Status

()

defect
P2
normal
RESOLVED FIXED
4 years ago
3 years ago

People

(Reporter: jya, Assigned: jya)

Tracking

Trunk
mozilla46
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox45 fixed, firefox46 fixed)

Details

Attachments

(4 attachments, 1 obsolete attachment)

Our code supports FFmpeg's libavcodec 56 and earlier. For 56 we use deprecated code. We should support the new API which would allow to use ffvp9 from master
Priority: -- → P2
Depends on: 1235959
Depends on: 1236746
Additionaly, do not attempt to resolve unused symbols.
Attachment #8705019 - Flags: review?(ajones)
libavcodec and libavutil minimal headers.
Attachment #8705020 - Flags: review?(ajones)
At this stage only the original FFmpeg project is supported.
Attachment #8705021 - Flags: review?(ajones)
Assignee: nobody → jyavenard
Blocks: 1237540
Attachment #8705018 - Attachment is obsolete: true
Attachment #8705018 - Flags: review?(ajones)
Attachment #8705104 - Flags: review?(ajones)
Attachment #8705019 - Flags: review?(ajones) → review+
Attachment #8705020 - Flags: review?(ajones) → review+
Comment on attachment 8705021 [details] [diff] [review]
[ffmpeg] P4. Add support for libavcodec 57.

Review of attachment 8705021 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h
@@ +27,5 @@
>    AV_FUNC_AVUTIL_55 = AV_FUNC_55 | AV_FUNC_AVUTIL_MASK,
>    AV_FUNC_AVUTIL_56 = AV_FUNC_56 | AV_FUNC_AVUTIL_MASK,
> +  AV_FUNC_AVUTIL_57 = AV_FUNC_57 | AV_FUNC_AVUTIL_MASK,
> +  AV_FUNC_AVCODEC_ALL = AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57,
> +  AV_FUNC_AVUTIL_ALL = AV_FUNC_AVCODEC_ALL | AV_FUNC_AVUTIL_MASK

I can't help but think having a range macro AV_FUNC_VER(53, 55) would be helpful.
Attachment #8705021 - Flags: review?(ajones) → review+
Attachment #8705104 - Flags: review?(ajones) → review+
Comment on attachment 8705019 [details] [diff] [review]
[ffmpeg] P2. Remove unused AVFormat headers and unused functions.

Request for all patches.

Approval Request Comment
[Feature/regressing bug #]: 1232268
[User impact if declined]: New LTS version of various distributions will ship with FFmpeg 3.0. ESR45 will not be usable on those systems.
[Describe test coverage new/current, TreeHerder]: in central for a few weeks.
[Risks and why]: Low, it's well tested and there isn't much to it.
[String/UUID change made/needed]: None
Attachment #8705019 - Flags: approval-mozilla-aurora?
Comment on attachment 8705019 [details] [diff] [review]
[ffmpeg] P2. Remove unused AVFormat headers and unused functions.

Approval was for beta, as it's already been in 46 for a while.

As ESR is beta.

I know it's late, but just in case... Would be a pity to miss.

A user just reminded me of it. All the important bits are already in 45...
Attachment #8705019 - Flags: approval-mozilla-aurora? → approval-mozilla-beta?
Jean-yves, are you sure we want to do that at the end of the 45 cycle? Can it land in the first ESR dot release 45.1.0 ?
Flags: needinfo?(jyavenard)
The linux distribution I have in mind is Ubuntu 16.04 ; which will be released in April.

So, so long as we have something in release that works in 16.04 when it comes out that will do.

In the mean time, I'll prepare a patch for ubuntu and Archlinux (who have contacted me privately) for them so they can have something that works at the time. Just in case it doesn't make it for 45.
Flags: needinfo?(jyavenard)
Comment on attachment 8705019 [details] [diff] [review]
[ffmpeg] P2. Remove unused AVFormat headers and unused functions.

OK, 45.1.0 will arrive too late :(
Taking it as it seems I don't have the choice.
next time, please submit that earlier than the last beta of the cycle :/
Attachment #8705019 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
jya this has problems to apply:

grafting 322978:4bd55cc15633 "Bug 1232268: [ffmpeg] P1. Provide finer granularity on which symbols are to be loaded. r=kentuckyfriedtakahe"
merging dom/media/platforms/ffmpeg/FFmpegDataDecoder.cpp
merging dom/media/platforms/ffmpeg/FFmpegDataDecoder.h
merging dom/media/platforms/ffmpeg/FFmpegFunctionList.h
merging dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
merging dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.h
warning: conflicts while merging dom/media/platforms/ffmpeg/FFmpegFunctionList.h! (edit, then use 'hg resolve --mark')
warning: conflicts while merging dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp! (edit, then use 'hg resolve --mark')
abort: unresolved conflicts, can't continue
(use hg resolve and hg graft --continue)
Flags: needinfo?(jyavenard)
(In reply to Sylvestre Ledru [:sylvestre] from comment #13)
> Comment on attachment 8705019 [details] [diff] [review]
> [ffmpeg] P2. Remove unused AVFormat headers and unused functions.
> 
> OK, 45.1.0 will arrive too late :(
> Taking it as it seems I don't have the choice.
> next time, please submit that earlier than the last beta of the cycle :/

I didn't know. 
Ffmpeg decided to tag a release only very recently and Ubuntu went with this. 

At least we had support in progress
Flags: needinfo?(jyavenard)
You need to log in before you can comment on or make changes to this bug.