Closed Bug 1383541 Opened 7 years ago Closed 7 years ago

Can't select 4K H.264 video on YouTube since Firefox 54

Categories

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

54 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla56
Tracking Status
firefox-esr52 --- unaffected
firefox54 --- wontfix
firefox55 --- wontfix
firefox56 --- verified

People

(Reporter: dtgjyhdty, Assigned: mozbugz)

Details

(Keywords: regression)

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20170413192749

Steps to reproduce:

1. Go to about:config and set media.webm.enabled to false to force YouTube to serve H.264.
2. Open https://www.youtube.com/watch?v=iNJdPyoqt8U
3. See the available resolution selection.


Actual results:

Max. available resolution is 1080p.


Expected results:

1440p and 2160p should also be available.

The last version that worked fine was 53.0.3, the issue started from 54.0. The latest Nightly also has this problem. I'm using Windows 7 64-bit.
OS: Unspecified → Windows 7
Hardware: Unspecified → x86_64
Per Microsoft’s own documentation, windows 7 h264 decoder doesn’t support resolution greater than 1080p.

You’ll need to update to Windows 8 or Windows 10
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
Note, you can override this restrictions with the media.wmf.allow-unsupported-resolutions preference setting it to true
Yes, according to https://msdn.microsoft.com/en-us/library/windows/desktop/dd797815(v=vs.85).aspx "In Windows 7, the maximum supported resolution is 1920 × 1088 pixels for both software and DXVA decoding.". However it's only true if the Platform update (KB2670838) is not installed. It's very easy to check by playing any local 4K mp4 file in Firefox. If KB2670838 is not installed, it won't play, and if the update is installed, it will play just fine. I guess Microsoft just didn't bother to update their documentation.

I've tried the media.wmf.allow-unsupported-resolutions preference, and it brought 1440p and 2160p back, but it didn't play these resolutions only showing the spinner. I've attached a screenshot to prove that it worked fine in Firefox 53 and below.

I'm not planning to update to Windows 8 or Windows 10 anytime soon. I'm not a fan of them for many reasons.
Flags: needinfo?(jyavenard)
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
:Gerald you implemented that change. What do you think?
Flags: needinfo?(jyavenard) → needinfo?(gsquelart)
Thanks for this info John, quite enlightening.

I should probably re-enable higher resolutions where possible.

However, if you're saying they still don't actually play, I'm not sure if *I* can fix that, as the resolution-check is only done in one spot, after that it should all be down to the Windows decoder to do its job.

Anyway, I'll investigate...
Assignee: nobody → gsquelart
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(gsquelart)
You're right Gerald, media.wmf.allow-unsupported-resolutions actually works fine. After reading your comment I tried to install 54 again and this time it worked perfectly both with and without DXVA. So the last time something was wrong on my end, sorry for the misinformation.

I think the best way would be to detect if the Platform Update is installed and only automatically enable resolutions > 1920 × 1088 on Windows 7 in that case. One way to do it is to check the version of the decoder dll (msmpeg2vdec.dll). It's 6.1.7601.18514 in the original Windows 7 SP1 and 12.0.9200.16426 after the Platform Update. But if doing something like this is not feasible, I guess it's all right to leave it under the preference as it is now.
As a test I installed win7 in a new VM, it had the old decoder 6.something that couldn't play the >1080p resolutions.

I then let Windows update itself using the default-selected updates.
The new decoder 12.0.9200.16426 was installed (without manually installing KB2670838) and I could play the higher-resolution videos.

So I'll just look for that version (or later) to allow higher resolutions.
Comment on attachment 8889853 [details]
Bug 1383541 - WMFDecoderModule shouldn't call useless IsH264DecoderBlacklisted() -

https://reviewboard.mozilla.org/r/160932/#review166270
Attachment #8889853 - Flags: review?(jyavenard) → review+
Comment on attachment 8889854 [details]
Bug 1383541 - Allow 4096x2304 H264 on win7 with recent decoder -

https://reviewboard.mozilla.org/r/160934/#review166274
Attachment #8889854 - Flags: review?(jyavenard) → review+
Pushed by gsquelart@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d856479d5d9a
WMFDecoderModule shouldn't call useless IsH264DecoderBlacklisted() - r=jya
https://hg.mozilla.org/integration/autoland/rev/599f374f8da1
Allow 4096x2304 H264 on win7 with recent decoder - r=jya
https://hg.mozilla.org/mozilla-central/rev/d856479d5d9a
https://hg.mozilla.org/mozilla-central/rev/599f374f8da1
Status: NEW → RESOLVED
Closed: 7 years ago7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
I've tried the latest Nightly with different updates and the results are:
1) If KB2670838 is installed, msmpeg2vdec.dll gets updated to 12.0.9200.16426, and 1440p and 2160p are available;
2) If KB2977728 or KB3110329 is installed on top of KB2670838, msmpeg2vdec.dll gets updated to 12.0.9200.17037, and 1440p and 2160p are also available;
3) If KB2670838 is not installed, msmpeg2vdec.dll stays at versions 6.1.*, and only 1080p and below are available.

So it works perfectly, thanks for the fix Gerald!
Status: RESOLVED → VERIFIED
Thank you John for initially reporting the issue, and testing the fix.

Though I'm told our sandboxing will become stricter and may eventually break this fix. NI:myself to revisit...
Flags: needinfo?(gsquelart)
I'm confirming that it's fixed, starting in Mozilla Firefox 56.0a1 (2017-07-26).
Thank you very much! I'm marking this bug as VERIFIED.
Has STR: --- → yes
Keywords: regression
QA Contact: Virtual
Flags: needinfo?(gsquelart)
You need to log in before you can comment on or make changes to this bug.