mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
serialize: remove serialization
Remove obsolete serialization code. Merge last bits into stream buffer reconstruction. Use POD copy for the allocation params. Small cleanups
This commit is contained in:
parent
8a6ce3b179
commit
1588b9df8d
12 changed files with 66 additions and 279 deletions
|
|
@ -107,6 +107,12 @@ struct _SpaFormat {
|
|||
SpaFormatBody body;
|
||||
};
|
||||
|
||||
#define SPA_FORMAT_INIT(size,type,media_type,media_subtype,...) \
|
||||
{ { size, SPA_POD_TYPE_OBJECT }, \
|
||||
{ { 0, type }, \
|
||||
SPA_POD_INT_INIT (media_type), \
|
||||
SPA_POD_INT_INIT (media_subtype) } }
|
||||
|
||||
#define SPA_FORMAT_BODY_FOREACH(body, size, iter) \
|
||||
for ((iter) = SPA_MEMBER ((body), sizeof (SpaFormatBody), SpaPODProp); \
|
||||
(iter) < SPA_MEMBER ((body), (size), SpaPODProp); \
|
||||
|
|
|
|||
|
|
@ -72,19 +72,9 @@ typedef enum {
|
|||
SPA_PORT_FORMAT_FLAG_NEAREST = (1 << 2),
|
||||
} SpaPortFormatFlags;
|
||||
|
||||
typedef enum {
|
||||
SPA_PORT_STATE_FLAG_NONE = 0,
|
||||
SPA_PORT_STATE_FLAG_HAVE_FORMAT = 1 << 0,
|
||||
SPA_PORT_STATE_FLAG_HAVE_BUFFERS = 1 << 1,
|
||||
} SpaPortStateFlags;
|
||||
|
||||
/**
|
||||
* SpaPortInputFlags:
|
||||
* @SPA_INPUT_FLAG_NONE: no flag
|
||||
*/
|
||||
typedef enum {
|
||||
SPA_PORT_INPUT_FLAG_NONE = 0,
|
||||
} SpaPortInputFlags;
|
||||
#define SPA_PORT_STATE_FLAG_NONE 0
|
||||
#define SPA_PORT_STATE_FLAG_HAVE_FORMAT (1 << 0)
|
||||
#define SPA_PORT_STATE_FLAG_HAVE_BUFFERS (1 << 1)
|
||||
|
||||
/**
|
||||
* SpaPortInput:
|
||||
|
|
@ -96,39 +86,34 @@ typedef enum {
|
|||
* Input information for a node.
|
||||
*/
|
||||
typedef struct {
|
||||
SpaPortStateFlags state;
|
||||
SpaPortInputFlags flags;
|
||||
uint32_t state;
|
||||
#define SPA_PORT_INPUT_FLAG_NONE 0
|
||||
uint32_t flags;
|
||||
uint32_t buffer_id;
|
||||
SpaResult status;
|
||||
uint32_t status;
|
||||
} SpaPortInput;
|
||||
|
||||
/**
|
||||
* SpaPortOutputFlags:
|
||||
* @SPA_PORT_OUTPUT_FLAG_NONE: no flag
|
||||
*/
|
||||
typedef enum {
|
||||
SPA_PORT_OUTPUT_FLAG_NONE = 0,
|
||||
} SpaPortOutputFlags;
|
||||
|
||||
/**
|
||||
* SpaPortOutput:
|
||||
* @state: the port state
|
||||
* @flags: extra flags
|
||||
* @buffer_id: a buffer id will be set
|
||||
* @event: output event
|
||||
* @status: the status
|
||||
* @latency: current port latency
|
||||
* @event: output event
|
||||
*
|
||||
* Output information for a port on a node. This is allocated
|
||||
* by the host and configured on all output ports for which output is
|
||||
* requested.
|
||||
*/
|
||||
typedef struct {
|
||||
SpaPortStateFlags state;
|
||||
uint64_t latency;
|
||||
SpaPortOutputFlags flags;
|
||||
uint32_t state;
|
||||
#define SPA_PORT_OUTPUT_FLAG_NONE 0
|
||||
uint32_t flags;
|
||||
uint32_t buffer_id;
|
||||
uint32_t status;
|
||||
uint64_t latency;
|
||||
SpaNodeEvent *event;
|
||||
SpaResult status;
|
||||
} SpaPortOutput;
|
||||
|
||||
/**
|
||||
|
|
@ -472,7 +457,7 @@ struct _SpaNode {
|
|||
*
|
||||
* Tell the port to allocate memory for @buffers.
|
||||
*
|
||||
* @params should contain an array of pointers to buffers. The data
|
||||
* @buffers should contain an array of pointers to buffers. The data
|
||||
* in the buffers should point to an array of at least 1 SPA_DATA_TYPE_INVALID
|
||||
* data pointers that will be filled by this function.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -351,6 +351,13 @@ spa_pod_builder_addv (SpaPODBuilder *builder,
|
|||
spa_pod_builder_string_len (builder, str, len);
|
||||
break;
|
||||
}
|
||||
case SPA_POD_TYPE_BYTES:
|
||||
{
|
||||
void *value = va_arg (args, void *);
|
||||
uint32_t size = va_arg (args, uint32_t);
|
||||
spa_pod_builder_bytes (builder, value, size);
|
||||
break;
|
||||
}
|
||||
case SPA_POD_TYPE_RECTANGLE:
|
||||
{
|
||||
uint32_t width = va_arg (args, uint32_t), height = va_arg (args, uint32_t);
|
||||
|
|
@ -418,13 +425,6 @@ spa_pod_builder_addv (SpaPODBuilder *builder,
|
|||
spa_pod_builder_pop (builder, f);
|
||||
break;
|
||||
}
|
||||
case SPA_POD_TYPE_BYTES:
|
||||
{
|
||||
void *value = va_arg (args, void *);
|
||||
uint32_t size = va_arg (args, uint32_t);
|
||||
spa_pod_builder_bytes (builder, value, size);
|
||||
break;
|
||||
}
|
||||
case SPA_POD_TYPE_POD:
|
||||
{
|
||||
const SpaPOD *value = va_arg (args, SpaPOD *);
|
||||
|
|
|
|||
|
|
@ -116,6 +116,10 @@ spa_pod_object_find_prop (const SpaPODObject *obj, uint32_t key)
|
|||
strncpy (dest, SPA_POD_CONTENTS (SpaPODString, pod), maxlen-1); \
|
||||
break; \
|
||||
} \
|
||||
case SPA_POD_TYPE_BYTES: \
|
||||
*(va_arg (args, void **)) = SPA_POD_CONTENTS (SpaPODBytes, pod); \
|
||||
*(va_arg (args, uint32_t *)) = SPA_POD_BODY_SIZE (pod); \
|
||||
break; \
|
||||
case SPA_POD_TYPE_RECTANGLE: \
|
||||
*(va_arg (args, SpaRectangle *)) = SPA_POD_VALUE (SpaPODRectangle, pod); \
|
||||
break; \
|
||||
|
|
@ -132,10 +136,6 @@ spa_pod_object_find_prop (const SpaPODObject *obj, uint32_t key)
|
|||
case SPA_POD_TYPE_POD: \
|
||||
*(va_arg (args, SpaPOD **)) = pod; \
|
||||
break; \
|
||||
case SPA_POD_TYPE_BYTES: \
|
||||
*(va_arg (args, void **)) = SPA_POD_CONTENTS (SpaPODBytes, pod); \
|
||||
*(va_arg (args, uint32_t *)) = SPA_POD_BODY_SIZE (pod); \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
|
|
@ -144,6 +144,7 @@ spa_pod_object_find_prop (const SpaPODObject *obj, uint32_t key)
|
|||
switch (type) { \
|
||||
case SPA_POD_TYPE_BYTES: \
|
||||
va_arg (args, void*); \
|
||||
/* fallthrough */ \
|
||||
case SPA_POD_TYPE_BOOL: \
|
||||
case SPA_POD_TYPE_URI: \
|
||||
case SPA_POD_TYPE_INT: \
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ typedef enum {
|
|||
SPA_POD_TYPE_FLOAT,
|
||||
SPA_POD_TYPE_DOUBLE,
|
||||
SPA_POD_TYPE_STRING,
|
||||
SPA_POD_TYPE_BYTES,
|
||||
SPA_POD_TYPE_RECTANGLE,
|
||||
SPA_POD_TYPE_FRACTION,
|
||||
SPA_POD_TYPE_BITMASK,
|
||||
|
|
@ -50,8 +51,7 @@ typedef enum {
|
|||
SPA_POD_TYPE_STRUCT,
|
||||
SPA_POD_TYPE_OBJECT,
|
||||
SPA_POD_TYPE_PROP,
|
||||
SPA_POD_TYPE_BYTES,
|
||||
SPA_POD_TYPE_POD
|
||||
SPA_POD_TYPE_POD,
|
||||
} SpaPODType;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue