mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
pulse: map stream index to endpoint
This commit is contained in:
parent
8335c50e1e
commit
2fddfb02bd
4 changed files with 15 additions and 5 deletions
|
|
@ -644,8 +644,14 @@ static int set_mask(pa_context *c, struct global *g)
|
|||
g->endpoint_info.client_id = atoi(str);
|
||||
if ((str = pw_properties_get(g->props, PW_KEY_DEVICE_ID)) != NULL)
|
||||
g->endpoint_info.device_id = atoi(str);
|
||||
if ((str = pw_properties_get(g->props, PW_KEY_NODE_ID)) != NULL)
|
||||
if ((str = pw_properties_get(g->props, PW_KEY_NODE_ID)) != NULL) {
|
||||
pa_stream *s;
|
||||
g->endpoint_info.node_id = atoi(str);
|
||||
spa_list_for_each(s, &c->streams, link) {
|
||||
if (pw_stream_get_node_id(s->stream) == g->endpoint_info.node_id)
|
||||
s->endpoint_id = g->id;
|
||||
}
|
||||
}
|
||||
|
||||
events = &endpoint_events;
|
||||
client_version = PW_VERSION_ENDPOINT_PROXY;
|
||||
|
|
|
|||
|
|
@ -344,6 +344,7 @@ struct pa_stream {
|
|||
pa_format_info *req_formats[PA_MAX_FORMATS];
|
||||
pa_format_info *format;
|
||||
|
||||
uint32_t endpoint_id;
|
||||
uint32_t stream_index;
|
||||
|
||||
pa_buffer_attr buffer_attr;
|
||||
|
|
|
|||
|
|
@ -1493,7 +1493,7 @@ static void sink_input_callback(struct sink_input_data *d)
|
|||
if (info == NULL)
|
||||
return;
|
||||
|
||||
s = find_stream(d->context, g->id);
|
||||
s = find_stream(d->context, g->endpoint_info.node_id);
|
||||
|
||||
if (info->props) {
|
||||
if ((name = spa_dict_lookup(info->props, PW_KEY_MEDIA_NAME)) == NULL &&
|
||||
|
|
@ -1793,7 +1793,7 @@ static void source_output_callback(struct source_output_data *d)
|
|||
if (info == NULL)
|
||||
return;
|
||||
|
||||
s = find_stream(d->context, g->id);
|
||||
s = find_stream(d->context, g->endpoint_info.node_id);
|
||||
|
||||
name = info->name;
|
||||
if (name == NULL && info->props) {
|
||||
|
|
|
|||
|
|
@ -561,6 +561,7 @@ static pa_stream* stream_new(pa_context *c, const char *name,
|
|||
|
||||
pw_stream_add_listener(s->stream, &s->stream_listener, &stream_events, s);
|
||||
|
||||
s->endpoint_id = SPA_ID_INVALID;
|
||||
s->direction = PA_STREAM_NODIRECTION;
|
||||
s->state = PA_STREAM_UNCONNECTED;
|
||||
s->flags = 0;
|
||||
|
|
@ -732,8 +733,10 @@ uint32_t pa_stream_get_index(PA_CONST pa_stream *s)
|
|||
|
||||
spa_assert(s);
|
||||
spa_assert(s->refcount >= 1);
|
||||
|
||||
idx = pw_stream_get_node_id(s->stream);
|
||||
if (s->endpoint_id != SPA_ID_INVALID)
|
||||
idx = s->endpoint_id;
|
||||
else
|
||||
idx = pw_stream_get_node_id(s->stream);
|
||||
pw_log_debug("stream %p: index %u", s, idx);
|
||||
return idx;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue