summaryrefslogtreecommitdiffstats
path: root/src/modules/module-virtual-source.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/module-virtual-source.c')
-rw-r--r--src/modules/module-virtual-source.c14
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);
}