mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
use dictionary for extra port info
This commit is contained in:
parent
d79489b29b
commit
becae3e7fa
9 changed files with 14 additions and 13 deletions
|
|
@ -28,6 +28,7 @@ typedef struct _SpaAllocParam SpaAllocParam;
|
||||||
|
|
||||||
#include <spa/defs.h>
|
#include <spa/defs.h>
|
||||||
#include <spa/buffer.h>
|
#include <spa/buffer.h>
|
||||||
|
#include <spa/dict.h>
|
||||||
|
|
||||||
#define SPA_ALLOC_PARAM_URI "http://spaplug.in/ns/alloc-param"
|
#define SPA_ALLOC_PARAM_URI "http://spaplug.in/ns/alloc-param"
|
||||||
#define SPA_ALLOC_PARAM_PREFIX SPA_ALLOC_PARAM_URI "#"
|
#define SPA_ALLOC_PARAM_PREFIX SPA_ALLOC_PARAM_URI "#"
|
||||||
|
|
@ -110,7 +111,7 @@ typedef enum {
|
||||||
* @latency: latency on this port in nanoseconds
|
* @latency: latency on this port in nanoseconds
|
||||||
* @params: extra allocation parameters
|
* @params: extra allocation parameters
|
||||||
* @n_params: number of elements in @params;
|
* @n_params: number of elements in @params;
|
||||||
* @features: NULL terminated array of extra port features
|
* @extra: a dictionary of extra port info
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
@ -119,7 +120,7 @@ typedef struct {
|
||||||
uint64_t latency;
|
uint64_t latency;
|
||||||
SpaAllocParam **params;
|
SpaAllocParam **params;
|
||||||
unsigned int n_params;
|
unsigned int n_params;
|
||||||
const char **features;
|
SpaDict *extra;
|
||||||
} SpaPortInfo;
|
} SpaPortInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ typedef struct {
|
||||||
* @range_type: type of the range values
|
* @range_type: type of the range values
|
||||||
* @n_range_values: number of elements in @range_values
|
* @n_range_values: number of elements in @range_values
|
||||||
* @range_values: array of possible values
|
* @range_values: array of possible values
|
||||||
* @info: extra info
|
* @extra: extra info
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
|
@ -148,7 +148,7 @@ typedef struct {
|
||||||
SpaPropRangeType range_type;
|
SpaPropRangeType range_type;
|
||||||
unsigned int n_range_values;
|
unsigned int n_range_values;
|
||||||
const SpaPropRangeInfo *range_values;
|
const SpaPropRangeInfo *range_values;
|
||||||
SpaDict *info;
|
SpaDict *extra;
|
||||||
} SpaPropInfo;
|
} SpaPropInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -432,9 +432,9 @@ spa_debug_props (const SpaProps *props, bool print_ranges)
|
||||||
fprintf (stderr, "\t: %-12s\n", rinfo->name);
|
fprintf (stderr, "\t: %-12s\n", rinfo->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (info->info) {
|
if (info->extra) {
|
||||||
fprintf (stderr, "Info: \n");
|
fprintf (stderr, "Extra info: \n");
|
||||||
spa_debug_dict (info->info);
|
spa_debug_dict (info->extra);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return SPA_RESULT_OK;
|
return SPA_RESULT_OK;
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ spa_port_info_serialize (void *p, const SpaPortInfo *info)
|
||||||
pi->params = SPA_INT_TO_PTR (SPA_PTRDIFF (ap, pi));
|
pi->params = SPA_INT_TO_PTR (SPA_PTRDIFF (ap, pi));
|
||||||
else
|
else
|
||||||
pi->params = 0;
|
pi->params = 0;
|
||||||
pi->features = 0;
|
pi->extra = 0;
|
||||||
|
|
||||||
p = SPA_MEMBER (ap, sizeof (SpaAllocParam*) * info->n_params, void);
|
p = SPA_MEMBER (ap, sizeof (SpaAllocParam*) * info->n_params, void);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -341,7 +341,7 @@ spa_alsa_sink_node_port_set_format (SpaNode *node,
|
||||||
this->param_buffers.min_buffers = 1;
|
this->param_buffers.min_buffers = 1;
|
||||||
this->param_buffers.max_buffers = 8;
|
this->param_buffers.max_buffers = 8;
|
||||||
this->param_buffers.align = 16;
|
this->param_buffers.align = 16;
|
||||||
this->info.features = NULL;
|
this->info.extra = NULL;
|
||||||
|
|
||||||
this->have_format = true;
|
this->have_format = true;
|
||||||
update_state (this, SPA_NODE_STATE_READY);
|
update_state (this, SPA_NODE_STATE_READY);
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ spa_alsa_source_node_port_set_format (SpaNode *node,
|
||||||
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
||||||
this->param_meta.param.size = sizeof (this->param_meta);
|
this->param_meta.param.size = sizeof (this->param_meta);
|
||||||
this->param_meta.type = SPA_META_TYPE_HEADER;
|
this->param_meta.type = SPA_META_TYPE_HEADER;
|
||||||
this->info.features = NULL;
|
this->info.extra = NULL;
|
||||||
|
|
||||||
this->have_format = true;
|
this->have_format = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -583,7 +583,7 @@ spa_audiotestsrc_node_port_set_format (SpaNode *node,
|
||||||
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
||||||
this->param_meta.param.size = sizeof (this->param_meta);
|
this->param_meta.param.size = sizeof (this->param_meta);
|
||||||
this->param_meta.type = SPA_META_TYPE_HEADER;
|
this->param_meta.type = SPA_META_TYPE_HEADER;
|
||||||
this->info.features = NULL;
|
this->info.extra = NULL;
|
||||||
update_state (this, SPA_NODE_STATE_READY);
|
update_state (this, SPA_NODE_STATE_READY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -816,7 +816,7 @@ spa_v4l2_set_format (SpaV4l2Source *this, V4l2Format *f, bool try_only)
|
||||||
state->param_meta.param.size = sizeof (state->param_meta);
|
state->param_meta.param.size = sizeof (state->param_meta);
|
||||||
state->param_meta.type = SPA_META_TYPE_HEADER;
|
state->param_meta.type = SPA_META_TYPE_HEADER;
|
||||||
|
|
||||||
state->info.features = NULL;
|
state->info.extra = NULL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -532,7 +532,7 @@ spa_videotestsrc_node_port_set_format (SpaNode *node,
|
||||||
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
this->param_meta.param.type = SPA_ALLOC_PARAM_TYPE_META_ENABLE;
|
||||||
this->param_meta.param.size = sizeof (this->param_meta);
|
this->param_meta.param.size = sizeof (this->param_meta);
|
||||||
this->param_meta.type = SPA_META_TYPE_HEADER;
|
this->param_meta.type = SPA_META_TYPE_HEADER;
|
||||||
this->info.features = NULL;
|
this->info.extra = NULL;
|
||||||
update_state (this, SPA_NODE_STATE_READY);
|
update_state (this, SPA_NODE_STATE_READY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue