Closed Bug 1233429 Opened 5 years ago Closed 5 years ago

Just updated to Firefox 43 and can't play video anymore

Categories

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

43 Branch
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox42 --- unaffected
firefox43 - disabled
firefox44 - unaffected
firefox45 --- unaffected
firefox46 --- unaffected

People

(Reporter: matbonucci, Assigned: jya)

References

Details

(Keywords: regression)

Attachments

(2 files)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0
Build ID: 20151210085006

Steps to reproduce:

Play videos from Youtube, Tumblr, Vimeo, Instagram and locally


Actual results:

Youtube says "An error ocurred" and the other websites just don't play them


Expected results:

The videos start to play
Keywords: html5
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Everything was working until firefox updated to version 43. And now i can't play any video. I checked youtube.com/html5 and everything is checked. I'm on Lubuntu 14.04 x64
What if you set media.mediasource.webm.enabled to false in about:config? does youtube play for you now?
Keywords: html5regression
Priority: -- → P1
Mat, can you try with a clean profile ?
Flags: needinfo?(matbonucci)
matbonucci, can you please right-click on the YouTube player error and select the “Copy debug info” and paste it in this bug? That will help us know what video codec YouTube is trying to use.
(In reply to Jean-Yves Avenard [:jya] from comment #2)
> What if you set media.mediasource.webm.enabled to false in about:config?
> does youtube play for you now?

Didn't worked
Flags: needinfo?(matbonucci)
(In reply to matbonucci from comment #0)
> Created attachment 8699484 [details]
> 2015-12-17-110606_1440x900_scrot.png
> 
> User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101
> Firefox/43.0
> Build ID: 20151210085006
> 
> Steps to reproduce:
> 
> Play videos from Youtube, Tumblr, Vimeo, Instagram and locally
> 
> 
> Actual results:
> 
> Youtube says "An error ocurred" and the other websites just don't play them
> 
> 
> Expected results:
> 
> The videos start to play

Debug info from YouTube:
{"ns":"yt","el":"detailpage","cpn":"r0usNkX1ebjSpYjv","docid":"nU2N7DY9z2E","ver":2,"referrer":null,"cmt":"0","plid":"AAUnLCD6qoKq6yFm","ei":"OAp0VtjiKtDf-AXhzJ3YAg","fmt":"133","fs":"0","rt":"110.196","of":"fOVEYgjDJpXjLHaGwmgP0w","adformat":null,"content_v":null,"euri":"","subscribed":"1","lact":2,"live":null,"cl":"110481368","mos":0,"osid":null,"state":"c8","vm":"CAEQAQ","volume":100,"c":"WEB","cver":"html5","cplayer":"UNIPLAYER","cbr":"Firefox","cbrver":"43.0","cos":"X11","hl":"en_US","cr":"US","len":"248","fexp":"9406984,9416126,9420452,9422596,9423662","afmt":"140","vct":"0.000","vd":"NaN","vpl":"","vbu":"","vpa":true,"vsk":false,"ven":false,"vpr":1,"vrs":0,"vns":0,"vec":null,"vvol":1,"lct":"0.000","lsk":false,"lmf":false,"lbw":"180779.441","lhd":"1.004","ltd":"330.674","laa":"itag=140,seg=0,range=924-65535,time=0.0-4.1","lva":"itag=133,seg=0,range=1273-65535,time=0.0-2.1","lar":"","lvr":"","lvh":"","debug_error":{"errorCode":"fmt.decode","message":"An error occurred. Please try again later.","messageKey":"YTP_ERROR_GENERIC_WITHOUT_LINK"},"ismb":16120000,"debug_videoId":"nU2N7DY9z2E","cgr":true,"debug_playbackQuality":"small","debug_date":"Fri Dec 18 2015 09:01:19 GMT-0430 (VET)"}
(In reply to Chris Peterson [:cpeterson] from comment #4)
> matbonucci, can you please right-click on the YouTube player error and
> select the “Copy debug info” and paste it in this bug? That will help us
> know what video codec YouTube is trying to use.

Done. The info is down below
(In reply to Jean-Yves Avenard [:jya] from comment #3)
> Mat, can you try with a clean profile ?

SOLVED
That worked. I reseted Firefox in about:support then Restart Firefox.
Everything is playing fine now
Thank you
Need to find out what pref or something else is causing those failures.
Status: UNCONFIRMED → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
(In reply to matbonucci from comment #6)
> Debug info from YouTube:
> {"ns":"yt","el":"detailpage","cpn":"r0usNkX1ebjSpYjv","docid":"nU2N7DY9z2E",
> "ver":2,"referrer":null,"cmt":"0","plid":"AAUnLCD6qoKq6yFm","ei":
> "OAp0VtjiKtDf-AXhzJ3YAg","fmt":"133","fs":"0","rt":"110.196","of":
> "fOVEYgjDJpXjLHaGwmgP0w","adformat":null,"content_v":null,"euri":"",
> "subscribed":"1","lact":2,"live":null,"cl":"110481368","mos":0,"osid":null,
> "state":"c8","vm":"CAEQAQ","volume":100,"c":"WEB","cver":"html5","cplayer":
> "UNIPLAYER","cbr":"Firefox","cbrver":"43.0","cos":"X11","hl":"en_US","cr":
> "US","len":"248","fexp":"9406984,9416126,9420452,9422596,9423662","afmt":
> "140","vct":"0.000","vd":"NaN","vpl":"","vbu":"","vpa":true,"vsk":false,
> "ven":false,"vpr":1,"vrs":0,"vns":0,"vec":null,"vvol":1,"lct":"0.000","lsk":
> false,"lmf":false,"lbw":"180779.441","lhd":"1.004","ltd":"330.674","laa":
> "itag=140,seg=0,range=924-65535,time=0.0-4.1","lva":"itag=133,seg=0,
> range=1273-65535,time=0.0-2.1","lar":"","lvr":"","lvh":"","debug_error":
> {"errorCode":"fmt.decode","message":"An error occurred. Please try again
> later.","messageKey":"YTP_ERROR_GENERIC_WITHOUT_LINK"},"ismb":16120000,
> "debug_videoId":"nU2N7DY9z2E","cgr":true,"debug_playbackQuality":"small",
> "debug_date":"Fri Dec 18 2015 09:01:19 GMT-0430 (VET)"}

YouTube says this represents a 360p DASH playback that suffered an h.264 decode error within Firefox 43 on youtube.com.

@ Mat: did you have any browser add-ons that force YouTube to use H.264? AFAIU, YouTube should have defaulted to webm/VP9 for Firefox 43 on Linux. I don't know why YouTube was trying to play H.264.

@ Jean-Yves: would it be useful to add ffmpeg/libav version to about:support?
Flags: needinfo?(jyavenard)
> @ Jean-Yves: would it be useful to add ffmpeg/libav version to about:support?

in all the reports about linux html5 playback no longer working is due to the GMP PDM being enabled (media.fragmented-mp4.gmp.enabled). This would force the use of openh264 to decode h264 and it doesn't support the profile used by youtube.

The priority of the GMP PDM was moved up in bug 1197050 (commit http://hg.mozilla.org/releases/mozilla-release/rev/6ec03637d374bdeb1b516ecef9820c2533aefcd9) which is in 43. This was done to help Chris work on the GMP PDM.

So the problem has nothing to do with ffmpeg or libvpx, just that the GMP PDM is used. That pref must not be turned on.

We should liaise with whomever is doing the packaging of firefox and get them to turn off that pref.

Alternatively, we may want to have a 43.0.XX that ignore the value of the gmp preference and always ignore it.

I can wrap this up very quickly and it would be very safe to immediately land.
Liz is this something you would like me to do? fair amount of report that html5 is broken on linux due to that pref.
Flags: needinfo?(jyavenard) → needinfo?(lhenry)
[Tracking Requested - why for this release]:

Liz, I think this would be a safe fix for a 43.0.XX release. We would just be ignoring a pref that should only be used during development. We could reduce risk by restricting the fix to Linux, but I don't think that is necessary.

Without it YouTube is broken on some Linux distro builds of Firefox. The alternative, reaching out to those distros, will take days to find the right contacts, explain the problem, fix their distro's Firefox packaging, and then wait for updated packages to be distributed to their users.

I am reopening this bug so we can use it to track the pref-ignoring fix.
Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: WORKSFORME → ---
Jean-Yves, are you sure this is a distro bug? Why would Debian and Ubuntu and Fedora and Arch Linux all change the same undocumented pref to a non-default value that breaks YouTube, the most popular video website?
Flags: needinfo?(jyavenard)
(In reply to Chris Peterson [:cpeterson] from comment #13)
> Jean-Yves, are you sure this is a distro bug? Why would Debian and Ubuntu
> and Fedora and Arch Linux all change the same undocumented pref to a
> non-default value that breaks YouTube, the most popular video website?

It looks like it, the pref is set in a file distribution.ini..

Archlinux also disabled gstreamer completely which broke MP3 playback (we need gstreamer to play MP3 in 43)
Flags: needinfo?(jyavenard)
my guess is that it's a matter of "how look at all those media prefs" let's turn them on
(In reply to Jean-Yves Avenard [:jya] from comment #14)
> Archlinux also disabled gstreamer completely which broke MP3 playback (we
> need gstreamer to play MP3 in 43)

Does Archlinux know about this gstreamer MP3 problem yet? Do we need to tell them?
Things like http://www.ghacks.net/2014/07/25/enable-mse-h2-64-support-youtube-firefox-right-now/ are common place, so I guess a lot of people enabled everything they could under media.fragmented-mp4. Distros may have followed. Since .ffmpeg.enabled is now true by default, why not make it have precedence over .gmp.enabled when both are true?
(In reply to Chris Peterson [:cpeterson] from comment #13)
> Jean-Yves, are you sure this is a distro bug? Why would Debian and Ubuntu
> and Fedora and Arch Linux all change the same undocumented pref to a
> non-default value that breaks YouTube, the most popular video website?

FTR, Debian doesn't.
And it doesn't seem to be the case on Fedora either.
https://apps.fedoraproject.org/packages/firefox/sources/

So it would look like people are inflicting this upon themselves.
And I even got a crash report that goes away when turning the fragmented-mp4.gmp pref off.
(In reply to Mike Hommey [:glandium] from comment #23)
> And I even got a crash report that goes away when turning the
> fragmented-mp4.gmp pref off.

That crash is probably bug 1233394.

Thanks for checking Debian and the other distros, too. Even if this is a case of user error, we should be more careful when adding footguns.

@ Jean-Yves: Since this is not a distro bug, I think we should try to uplift a fix to ignore the pref. Otherwise people will keep hitting this problem (and you'll need to keep debugging this same problem report again and again :). I tried to contact or comment on some of the web pages Mike linked above.
Flags: needinfo?(jyavenard)
(In reply to Chris Peterson [:cpeterson] from comment #24)
> (In reply to Mike Hommey [:glandium] from comment #23)
> > And I even got a crash report that goes away when turning the
> > fragmented-mp4.gmp pref off.
> 
> That crash is probably bug 1233394.

It looks very much like it.

>  Thanks for checking Debian and the other distros, too. Even if this is a
> case of user error, we should be more careful when adding footguns.
> 
> @ Jean-Yves: Since this is not a distro bug, I think we should try to uplift
> a fix to ignore the pref. Otherwise people will keep hitting this problem
> (and you'll need to keep debugging this same problem report again and again
> :). I tried to contact or comment on some of the web pages Mike linked above.

The interesting thing is that it wasn't a problem in 42, and it's not a problem in 44 either because the pref does nothing there (seems like all the fragmented-mp4 prefs are gone)
(In reply to Mike Hommey [:glandium] from comment #25)
> (In reply to Chris Peterson [:cpeterson] from comment #24)
> > (In reply to Mike Hommey [:glandium] from comment #23)
> > > And I even got a crash report that goes away when turning the
> > > fragmented-mp4.gmp pref off.
> > 
> > That crash is probably bug 1233394.
> 
> It looks very much like it.
> 
> >  Thanks for checking Debian and the other distros, too. Even if this is a
> > case of user error, we should be more careful when adding footguns.
> > 
> > @ Jean-Yves: Since this is not a distro bug, I think we should try to uplift
> > a fix to ignore the pref. Otherwise people will keep hitting this problem
> > (and you'll need to keep debugging this same problem report again and again
> > :). I tried to contact or comment on some of the web pages Mike linked above.
> 
> The interesting thing is that it wasn't a problem in 42, and it's not a

it wasn't a problem in 42 because the GMP PDM was at the lowest priority. In comment 11 I mentioned how it was changed.

> problem in 44 either because the pref does nothing there (seems like all the
> fragmented-mp4 prefs are gone)

they were renamed media.blah
Flags: needinfo?(jyavenard)
I'll prepare a patch do ignore the GMP PDM pref.

Chris do you need it anywhere this pref?
Flags: needinfo?(cpearce)
Duplicate of this bug: 1233394
Why not just backout bug 1197050?
we could too
the effect would be the same as ignoring the pref (as there's always a PDM to use before it)
The advantage of a backout is that a) there is no patch to write and b) there is no review to wait for.
Do I need to ask for any approval? I have Liz on ni? She'll know
(In reply to Jean-Yves Avenard [:jya] from comment #27)
> I'll prepare a patch do ignore the GMP PDM pref.
> 
> Chris do you need it anywhere this pref?

We need the new pref in Firefox 45 [1], as we're using the Adobe CDM for decoding H.264/AAC on Windows N/KN/Vista when system codecs are not installed (bug 1210231). However note that we're forcing the GMP decoding to only use the Adobe CDM [2], so we should not get the problem being seen here in 45, as the Adobe CDM isn't available on Linux yet so we'll not try to use the GMP PDM, and the GMP PDM moved back to the end of the PDMFactory's list anyway in 45, so that we prefer system decoders when they're available (i.e. we effectively have already "done the backout" in 45).

I'd be fine with backing out bug 1197050 from 43 (release) and 44 (beta), or even just commenting out the block that creates the GMPDecoderModule. We don't need to backout from 45 (aurora) since the GMPDecoderModule moved to the back to the list there.

[1] http://mxr.mozilla.org/mozilla-central/source/browser/app/profile/firefox.js#1505
[2] http://mxr.mozilla.org/mozilla-central/source/browser/app/profile/firefox.js#1507
Flags: needinfo?(cpearce)
(In reply to Chris Pearce (:cpearce) from comment #34)
> I'd be fine with backing out bug 1197050 from 43 (release) and 44 (beta), or
> even just commenting out the block that creates the GMPDecoderModule. We
> don't need to backout from 45 (aurora) since the GMPDecoderModule moved to
> the back to the list there.

In fact, commenting out the block that creates the GMP PDM is probably the safest option, as if the user doesn't have another PDM that can do H.264 available, we could still hit the GMP PDM even if it's at the end of the list.
A few clarifications from my perspective as a Firefox packager for Arch Linux:

- The media.fragmented-mp4.gmp.enabled setting was enabled by users following some random guide. (It has been pointed out above that distributions did not set this pref.)
- We had disabled GStreamer in Arch which broke MP3 playback; this was fixed in a later build.
- The H264 playback issue I have described in bug 1233340 is unrelated to the gmp pref; while other YouTube videos work fine, this one (and surely others too) cannot be played and throws FFmpeg errors.
Something that also increase the problems is that YouTube has decided to only serve us MSE mp4/h264. So if the h264 decoder is broken (like if the gmp one is enabled).

Normally, as we have now enabled webm/vp9 by default for linux users we would have only ever user that, no requuring ffmpeg at all.
Duplicate of this bug: 1233335
Attached patch Disable GMP PDM.Splinter Review
Prevent users from shooting themselves in the foot by turning some prefs on.
Attachment #8700439 - Flags: review?(cpearce)
Assignee: nobody → jyavenard
Attachment #8700439 - Flags: review?(cpearce) → review+
Comment on attachment 8700439 [details] [diff] [review]
Disable GMP PDM.

Approval Request Comment
[Feature/regressing bug #]: 1197050
[User impact if declined]: Users can't use YouTube or play any h264 videos ; more common on Linux platform, but also seen on Windows XP.
[Describe test coverage new/current, TreeHerder]: Local test
[Risks and why]: None. The GMP PDM is an experimental feature and has always been off by default. Youtube playback on Linux was only available through gstreamer earlier or flash. As it was providing a limited experience most users would have turned on some preferences to enable the new MSE player. To do so they incorrectly turned all media related pref to on, including media.fragmented-mp4.gmp.enabled. Unfortunately in 43, enabling the GMP code will cause decoding to almost always fail. This patch disable the code entirely so that users who have turned on that pref by mistake can't be affected.
[String/UUID change made/needed]: None
Attachment #8700439 - Flags: approval-mozilla-release?
If I understand your comments above it sounds like there is a workaround and this problem is from users flipping a pref themselves. We should explain the workaround rather than do a dot release for this.
Flags: needinfo?(lhenry)
Can we do this as a hotfix (pref flip) for linux users? sylvestre just suggested this.
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #42)
> Can we do this as a hotfix (pref flip) for linux users? sylvestre just
> suggested this.

Yes, we'd need to set the media.fragmented-mp4.gmp.enabled pref to false. This could be done in a hotfix, though I've got no idea how hotfixes work.
We can take care of that.
Two issues/side effects:
* the pref will have to be renamed
* this won't impact the tarball on the website (but they should get the hotfix)
could be renamed to what it's now in 44: media.gmp.decoder.enabled
any dummy pref name will do. we want to disable the code entirely
I don't think you can rename a pref with a hotfix. You can change the existing pref value, though.
Sylvestre, Liz any chance for a hot fix happening?
we want media.fragmented-mp4.gmp.enabled set to false.
Flags: needinfo?(sledru)
Flags: needinfo?(lhenry)
Depends on: 1234802
This is managed in bug 1234802
Flags: needinfo?(sledru)
Flags: needinfo?(lhenry)
Setting flags for 43 to reflect the pref being disabled in bug 1234802.
Given that FF44 is unaffected, we do not need to track this.
fixed with hotfix...
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
Attachment #8700439 - Flags: approval-mozilla-release?
You need to log in before you can comment on or make changes to this bug.