Closed Bug 1190970 Opened 5 years ago Closed 5 years ago

Limit MSE support for WebM/VP9 to platforms without H.264 platform decoders

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox42 --- fixed
firefox43 --- fixed

People

(Reporter: cpeterson, Assigned: jya)

References

Details

Attachments

(2 files, 3 obsolete files)

These platforms include:

- Linux
- Windows XP
- Vista or Windows Server 2008 without the "Platform Update Supplement for Windows Vista" update
- Windows Enterprise, or Server N or KN variants of Windows, without the "Media Feature Pack" installed
So if I'm reading the title right, this is supposed to not expose VP9 if H.264 is available? Seems a bit odd now that bug 1187247 has landed. I've been using it for the past several days with Youtube and haven't had any issues.
Assignee: nobody → jyavenard
I discussed with Anthony last week on how we wouldn't enable it on XP and windows platforms without h264 but where Flash is available and works well so we don't take the chance of introducing regressions.
Ah okay, seems reasonable. I'd suggest maybe dropping Linux from the list though, as Flash is basically unsupported on that platform and most distros don't ship Flash player by default. The experience for me has been way better with the new MSE reader and webm.
Oh it will be available on Linux...
Depends on: 1192517
Attachment #8645650 - Flags: review?(ajones)
Comment on attachment 8645650 [details] [diff] [review]
[MSE] Enable webm mediasource on unix variants.

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

::: modules/libpref/init/all.js
@@ +474,5 @@
>  pref("media.mediasource.enabled", false);
>  #endif
>  
>  pref("media.mediasource.mp4.enabled", true);
> +#if defined(XP_UNIX)

In all.js, XP_UNIX includes Linux, OS X, Android, FFOS, and iOS. Do you want to enable webm only on Linux desktop? You can use #ifdef UNIX_BUT_NOT_MAC in firefox.js instead.

https://wiki.mozilla.org/Platform/Platform-specific_build_defines
Comment on attachment 8645650 [details] [diff] [review]
[MSE] Enable webm mediasource on unix variants.

Thank you Chris for this. I had overlooked it.

As discussed, will enable enable webm on all platform by default, but disable it on GONK, WINDOWS and MAC
Attachment #8645650 - Attachment is obsolete: true
Attachment #8645650 - Flags: review?(ajones)
I enabled mediasource everywhere.

Instead what may or may not be enabled is mp4 or webm.
should we enable mse mp4 on android ?
Comment on attachment 8646035 [details] [diff] [review]
[MSE] P2. Only enable MP4 mediasource on mac,windows and ffos.

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

LGTM but you should probably ask Anthony or cpearce for r+. I think we should enable MSE MP4 on Android because we have hardware decoders for H.264 and AAC there, right?
Attachment #8646035 - Flags: review?(cpeterson) → feedback+
Comment on attachment 8646034 [details] [diff] [review]
[MSE] P1. Enable WebM by default on platforms not supporting h264/aac.

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

LGTM but you should probably ask Anthony or cpearce to r+. I think we should disable MSE WebM on Android because we have hardware decoders for H.264 and AAC there, right?
Attachment #8646034 - Flags: review?(cpeterson) → feedback+
Attachment #8646034 - Flags: review?(ajones)
Attachment #8646035 - Flags: review?(ajones)
(In reply to Chris Peterson [:cpeterson] from comment #13)
> Comment on attachment 8646034 [details] [diff] [review]
> [MSE] P1. Enable WebM by default on platforms not supporting h264/aac.
> 
> Review of attachment 8646034 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> LGTM but you should probably ask Anthony or cpearce to r+. I think we should
> disable MSE WebM on Android because we have hardware decoders for H.264 and
> AAC there, right?

there's HW decoder for webm too on Android, however this is relying on bug 1190379 going in
(In reply to Jean-Yves Avenard [:jya] from comment #2)
> I discussed with Anthony last week on how we wouldn't enable it on XP and
> windows platforms without h264 but where Flash is available and works well
> so we don't take the chance of introducing regressions.

What's the path to getting it enabled on these platforms as well? I.e., what will make us confident enough we're not introducing regressions?
Comment on attachment 8646034 [details] [diff] [review]
[MSE] P1. Enable WebM by default on platforms not supporting h264/aac.

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

media.mediasource.enabled should always be true. Are you disabling webm on Android?

::: modules/libpref/init/all.js
@@ +470,2 @@
>  // configurations because code for those platforms isn't ready yet.
>  #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GONK)

Need to get rid of this if statement and enable MSE everywhere.
Attachment #8646035 - Flags: review?(ajones) → review+
Comment on attachment 8646034 [details] [diff] [review]
[MSE] P1. Enable WebM by default on platforms not supporting h264/aac.

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

Double check Android. Ship it.
Attachment #8646034 - Flags: review?(ajones) → review+
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #16)
> Comment on attachment 8646034 [details] [diff] [review]
> [MSE] P1. Enable WebM by default on platforms not supporting h264/aac.
> 
> Review of attachment 8646034 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> media.mediasource.enabled should always be true. Are you disabling webm on
> Android?
> 
> ::: modules/libpref/init/all.js
> @@ +470,2 @@
> >  // configurations because code for those platforms isn't ready yet.
> >  #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GONK)
> 
> Need to get rid of this if statement and enable MSE everywhere.

that's what I did in P2.
snorp, how good is the h264 / aac decoder in android?

Can we enable mse / mp4 on android ? (with API LEVEL >= 16)
Flags: needinfo?(snorp)
(In reply to Jean-Yves Avenard [:jya] from comment #19)
> snorp, how good is the h264 / aac decoder in android?
> 
> Can we enable mse / mp4 on android ? (with API LEVEL >= 16)

MSE/MP4 should already be on for Android (API 16+) from bug 1084456.
Flags: needinfo?(snorp)
(In reply to Timothy B. Terriberry (:derf) from comment #15)
> (In reply to Jean-Yves Avenard [:jya] from comment #2)
> > I discussed with Anthony last week on how we wouldn't enable it on XP and
> > windows platforms without h264 but where Flash is available and works well
> > so we don't take the chance of introducing regressions.
> 
> What's the path to getting it enabled on these platforms as well? I.e., what
> will make us confident enough we're not introducing regressions?

I guess once it has baked long enough on platforms where it's enabled?

webm support is very new ; and I have found multiple cases where playback will stall watching youtube.
Attachment #8646034 - Attachment is obsolete: true
Attachment #8646035 - Attachment is obsolete: true
Comment on attachment 8648546 [details] [diff] [review]
[MSE] P1. Enable WebM by default on platforms not supporting h264/aac.

Carrying r+
Attachment #8648546 - Flags: review+
snorp, has anyone actually tested MSE on Android?

On 40 or 41 (beta), MSE isn't enabled.
On 42 or Nightly it gives me a decode error or stall.
(that's testing YouTube)

That's on a Sony Z3C with Android 5.0.2

A simple MSE test:
http://people.mozilla.org/~jyavenard/tests/mse_mp4/paper.html

doesn't play either.
Flags: needinfo?(snorp)
See Also: → 1195169
Depends on: 1195170
Comment on attachment 8648694 [details] [diff] [review]
[MSE] P2. Update mochitest. r=bholley

Mediasource is now enabled on all platforms.
Attachment #8648694 - Flags: review?(jst)
(In reply to Jean-Yves Avenard [:jya] from comment #24)
> snorp, has anyone actually tested MSE on Android?

I did at one point, but it has been a while.

> 
> On 40 or 41 (beta), MSE isn't enabled.
> On 42 or Nightly it gives me a decode error or stall.
> (that's testing YouTube)

YouTube is a special case, they seem to want to send us VP9.

> 
> That's on a Sony Z3C with Android 5.0.2
> 
> A simple MSE test:
> http://people.mozilla.org/~jyavenard/tests/mse_mp4/paper.html
> 
> doesn't play either.

That plays here (Nightly) on a Nexus 4.
Flags: needinfo?(snorp)
Attachment #8648694 - Flags: review?(jst) → review+
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #30)
> YouTube is a special case, they seem to want to send us VP9.

YouTube always prefers VP9 over H.264. I think they tried to play VP9 because you were spoofing Chrome's UA. We can tell people at YouTube what to send us, though our canPlayType should be doing the right thing..
https://hg.mozilla.org/mozilla-central/rev/1f5f824de708
https://hg.mozilla.org/mozilla-central/rev/e578cc44a96a
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
Blocks: 1197083
Duplicate of this bug: 1183977
Backed out for a youtube playback regression. See Bug 1199573.
https://hg.mozilla.org/releases/mozilla-aurora/rev/5bb661db5c6c
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
Blocks: 1213177
You need to log in before you can comment on or make changes to this bug.