mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
Improve upload
Only send a buffer when we have received a NEED_DATA message. Add a signal to pulla buffer from the sink. Restructure the sink to use a queue like the source and only push a buffer when we can. Improve SpaData. Offset and size should be between 0 and maxsize, make sure we clamp correctly when needed. node_process_output completes the processing of the output after receiving HAVE_OUTPUT for async elements. It instructs the node that it now can produce more output.
This commit is contained in:
parent
8ce3f949e2
commit
5b0b9c43d0
18 changed files with 201 additions and 112 deletions
|
|
@ -174,8 +174,8 @@ typedef struct {
|
|||
SpaDataType type;
|
||||
int flags;
|
||||
int fd;
|
||||
off_t offset;
|
||||
size_t size;
|
||||
off_t mapoffset;
|
||||
size_t maxsize;
|
||||
void *data;
|
||||
SpaChunk *chunk;
|
||||
} SpaData;
|
||||
|
|
|
|||
|
|
@ -568,8 +568,8 @@ struct _SpaNode {
|
|||
* Returns: #SPA_RESULT_OK on success
|
||||
* #SPA_RESULT_HAVE_ENOUGH_INPUT when output can be produced.
|
||||
*/
|
||||
SpaResult (*process_input) (SpaNode *node);
|
||||
SpaResult (*process_output) (SpaNode *node);
|
||||
SpaResult (*process_input) (SpaNode *node);
|
||||
SpaResult (*process_output) (SpaNode *node);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue