Closed Bug 1195061 Opened 4 years ago Closed 4 years ago

Mono Audio unplayable in Windows 10

Categories

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

40 Branch
x86_64
Windows 10
defect
Not set
major

Tracking

()

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

People

(Reporter: Paul.Hancock.17041993, Assigned: kinetik)

Details

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Build ID: 20150812163655

Steps to reproduce:

Attempt to play a mono OGG file


Actual results:

Play button will change, but nothing else occurs


Expected results:

Playback should start
still working on whether it's specific to OGG or mono files, occurs with 5.1 speaker setups but not stereo.
Severity: normal → blocker
OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
Attach an audio sample if possible.
Severity: blocker → normal
Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
Summary: Mono and/or OGG Audio unplayable in Windows 10 → Mono Audio unplayable in Windows 10
confirmed mono-audio specific and the problem is inside cubeb again

example sources;
https://commons.wikimedia.org/wiki/File:Fennec_Singing.ogg
https://www.youtube.com/watch?v=mEN7DTdHbAU

working on a possible patch now
Attached patch win10monAudFix.patch (obsolete) — Splinter Review
windows 10 sees the removal of mono support entirely for > 2 channel setups, so we have to give it stereo regardless.

no idea about sources > 2 channels, but I don't think we support that yet anyway?
Severity: normal → major
I would consider the lack of playback for a common format to be at least major
I can reproduce this locally.

In handle_channel_layout, we pass a mix format with nChannels == 1 to IsFormatSupported and receive AUDCLNT_E_UNSUPPORTED_FORMAT, which causes us to fall back to using the hardware mix format retrieved from GetMixFormat.  Passing that to Initialize causes it to fail with AUDCLNT_E_UNSUPPORTED_FORMAT again and cubeb_stream_init eventually returns CUBEB_ERROR.

In theory, we'd expect initializing a stream with the format reported by GetMixFormat to succeed and we'd then up/down mix and resample as necessary.  It fails because we change dwChannelMask to (in this case) KSAUDIO_SPEAKER_MONO before testing IsFormatSupported and when reverting the mix format to the version received from GetMixFormat we only reset the WAVEFORMATEX members rather than the complete WAVEFORMATEXTENSIBLE structure (which includes dwChannelMask).
Assignee: nobody → kinetik
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Attached patch fix v0Splinter Review
Attachment #8648477 - Attachment is obsolete: true
Attachment #8648566 - Flags: review?(padenot)
well that explains why it wasn't accepting the hardware default, not sure how I overlooked that, but I can confirm it fixes the bug. Quite odd though that it wasn't a problem until now...
Attachment #8648566 - Flags: review?(padenot) → review+
Comment on attachment 8648566 [details] [diff] [review]
fix v0

Approval Request Comment
[Feature/regressing bug #]: bug always present, exposed by Windows 10 behaviour changes
[User impact if declined]: some audio formats unplayable on Windows 10 (mono audio)
[Describe test coverage new/current, TreeHerder]: n/a
[Risks and why]: very low, trivial fix
[String/UUID change made/needed]: none
Attachment #8648566 - Flags: approval-mozilla-beta?
Attachment #8648566 - Flags: approval-mozilla-aurora?
(In reply to Paul17041993 from comment #8)
> well that explains why it wasn't accepting the hardware default, not sure
> how I overlooked that, but I can confirm it fixes the bug. Quite odd though
> that it wasn't a problem until now...

Thanks for verifying the fix!
https://hg.mozilla.org/mozilla-central/rev/3a784fc318c1
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
we should push this as far back as 40 if it's not a problem, of which it shouldn't be as the function hasn't been touched since some distant version...
Comment on attachment 8648566 [details] [diff] [review]
fix v0

Windows 10 regression, taking the fix.
Attachment #8648566 - Flags: approval-mozilla-beta?
Attachment #8648566 - Flags: approval-mozilla-beta+
Attachment #8648566 - Flags: approval-mozilla-aurora?
Attachment #8648566 - Flags: approval-mozilla-aurora+
Flags: qe-verify+
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.