summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2014-08-25 10:05:49 +0200
committerAlessandro Ghedini <alessandro@ghedini.me>2014-08-25 11:24:01 +0200
commit334fd10f1cd0e031a3679ca4dff439bfb162f904 (patch)
tree3ca4406306eb4671ab64567de0ea4d42f6f1af54
parent226735331cf53bc8293458f96e8f004ad530942e (diff)
downloadmpv-334fd10f1cd0e031a3679ca4dff439bfb162f904.tar.bz2
mpv-334fd10f1cd0e031a3679ca4dff439bfb162f904.tar.xz
coreaudio_device: fix overwriting of user input
Fixes #1030
-rw-r--r--audio/out/ao_coreaudio_device.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/audio/out/ao_coreaudio_device.c b/audio/out/ao_coreaudio_device.c
index 047e094f61..cf9d312003 100644
--- a/audio/out/ao_coreaudio_device.c
+++ b/audio/out/ao_coreaudio_device.c
@@ -404,15 +404,6 @@ static int init(struct ao *ao)
if (p->opt_list) ca_print_device_list(ao);
- *p = (struct priv) {
- .muted = false,
- .stream_asbd_changed = 0,
- .hog_pid = -1,
- .stream = 0,
- .stream_idx = -1,
- .changed_mixing = false,
- };
-
OSStatus err = ca_select_device(ao, p->opt_device_id, &p->device);
CHECK_CA_ERROR("failed to select device");
@@ -676,6 +667,14 @@ const struct ao_driver audio_out_coreaudio_exclusive = {
.pause = audio_pause,
.resume = audio_resume,
.priv_size = sizeof(struct priv),
+ .priv_defaults = &(const struct priv){
+ .muted = false,
+ .stream_asbd_changed = 0,
+ .hog_pid = -1,
+ .stream = 0,
+ .stream_idx = -1,
+ .changed_mixing = false,
+ },
.options = (const struct m_option[]) {
OPT_INT("device_id", opt_device_id, 0, OPTDEF_INT(-1)),
OPT_FLAG("list", opt_list, 0),