diff options
Diffstat (limited to 'src/modules/module-virtual-source.c')
-rw-r--r-- | src/modules/module-virtual-source.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/modules/module-virtual-source.c b/src/modules/module-virtual-source.c index fdf89b02..b8f2ab06 100644 --- a/src/modules/module-virtual-source.c +++ b/src/modules/module-virtual-source.c @@ -535,7 +535,6 @@ int pa__init(pa_module*m) { pa_source *master=NULL; pa_source_output_new_data source_output_data; pa_source_new_data source_data; - pa_bool_t *use_default = NULL; /* optional for uplink_sink */ pa_sink_new_data sink_data; @@ -629,10 +628,11 @@ int pa__init(pa_module*m) { source_output_data.driver = __FILE__; source_output_data.module = m; source_output_data.source = master; + source_output_data.destination_source = u->source; /* FIXME source_output_data.flags = PA_SOURCE_OUTPUT_DONT_INHIBIT_AUTO_SUSPEND; */ - pa_proplist_sets(source_output_data.proplist, PA_PROP_MEDIA_NAME, "Virtual Source Stream"); + pa_proplist_setf(source_output_data.proplist, PA_PROP_MEDIA_NAME, "Virtual Source Stream of %s", pa_proplist_gets(u->source->proplist, PA_PROP_DEVICE_DESCRIPTION)); pa_proplist_sets(source_output_data.proplist, PA_PROP_MEDIA_ROLE, "filter"); pa_source_output_new_data_set_sample_spec(&source_output_data, &ss); pa_source_output_new_data_set_channel_map(&source_output_data, &map); @@ -654,6 +654,8 @@ int pa__init(pa_module*m) { u->source_output->moving = source_output_moving_cb; u->source_output->userdata = u; + u->source->output_from_master = u->source_output; + pa_source_put(u->source); pa_source_output_put(u->source_output); @@ -711,16 +713,12 @@ int pa__init(pa_module*m) { pa_modargs_free(ma); - pa_xfree(use_default); - return 0; - fail: +fail: if (ma) pa_modargs_free(ma); - pa_xfree(use_default); - pa__done(m); return -1; @@ -765,7 +763,7 @@ void pa__done(pa_module*m) { pa_memblockq_free(u->memblockq); if (u->sink_memblockq) - pa_memblockq_free(u->sink_memblockq); + pa_memblockq_free(u->sink_memblockq); pa_xfree(u); } |