Closed
Bug 1197049
Opened 9 years ago
Closed 9 years ago
Audio stream volume reset to default when device changes
Categories
(Core :: Audio/Video: MediaStreamGraph, defect)
Core
Audio/Video: MediaStreamGraph
Tracking
()
RESOLVED
FIXED
mozilla43
Tracking | Status | |
---|---|---|
firefox43 | --- | fixed |
People
(Reporter: kinetik, Assigned: kinetik)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
5.45 KB,
patch
|
padenot
:
review+
|
Details | Diff | Splinter Review |
A device change in the WASAPI backend causes the IAudioClient to be recreated and reinitialized. Any modifications to the IAudioClient made outside of setup_wasapi_stream are lost when this happens.
Right now, this is simply the volume setting. If this backend implemented stream_set_panning, we'd also lose that.
Assignee | ||
Comment 1•9 years ago
|
||
Assignee | ||
Comment 2•9 years ago
|
||
Try push for patch (also includes bug 1136360 patches): https://treeherder.mozilla.org/#/jobs?repo=try&revision=95b50562dd3b
Comment 3•9 years ago
|
||
Comment on attachment 8650830 [details] [diff] [review]
bug1197049_v0.patch
Review of attachment 8650830 [details] [diff] [review]:
-----------------------------------------------------------------
I thought we would have an issue because of server-side volume persistence in Windows (across process run), but we should be good, since it is expected that:
- The volume is set to 1.0 unconditionally when creating a stream (higher up, in the HTMLMediaElement iirc)
- Web applications that want volume persistence can implement their own (and already do)
Attachment #8650830 -
Flags: review?(padenot) → review+
Assignee | ||
Comment 4•9 years ago
|
||
Thanks for the review.
To clarify the persistent volume thing, that applies to session volumes (i.e. the volume control that shows up in the mixer control panel, for which there is (usually) only one per application). I agree that we don't want to create persistent volume settings for any situation where the volume hasn't been set explicitly.
In this case, we're not adjusting that volume or the endpoint volume, therefore we're not touching a persistent volume control. The per-stream volume adjusted via IAudioStreamVolume is a transient setting only, as far as I understand it.
Assignee | ||
Comment 5•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/31d1d9a45b12ee7ff4655d5a353c2e1b2096518b
Bug 1197049 - Retain stream volume across device changes. r=padenot
Assignee | ||
Comment 6•9 years ago
|
||
Also, we pass AUDCLNT_STREAMFLAGS_NOPERSIST when initializing the IAudioClient, which ensures that none of the persistent settings would be stored.
Comment 7•9 years ago
|
||
(In reply to Matthew Gregan [:kinetik] from comment #6)
> Also, we pass AUDCLNT_STREAMFLAGS_NOPERSIST when initializing the
> IAudioClient, which ensures that none of the persistent settings would be
> stored.
Ha indeed we do !
Comment 8•9 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox43:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in
before you can comment on or make changes to this bug.
Description
•