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)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox43 --- fixed

People

(Reporter: kinetik, Assigned: kinetik)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

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: nobody → kinetik
Status: NEW → ASSIGNED
Attachment #8650830 - Flags: review?(padenot)
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+
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.
Also, we pass AUDCLNT_STREAMFLAGS_NOPERSIST when initializing the IAudioClient, which ensures that none of the persistent settings would be stored.
(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 !
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
Depends on: 1426719
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: