upipe/urequest.h header reference
Upipe structure used to provide an upstream pipe with a structure More
Header inclusion [link]
Members [link]
Types [link]
- typedef void (*urequest_free_func)(struct urequest *)
- typedef int (*urequest_func)(struct urequest *, va_list )
- enum urequest_type
Functions [link]
- struct urequest * urequest_alloc_proxy(struct urequest *urequest)
- void urequest_clean(struct urequest *urequest)
- struct urequest * urequest_find_proxy(struct urequest *urequest, struct uchain *requests)
- void urequest_free(struct urequest *urequest)
- void urequest_free_proxy(struct urequest *urequest)
- void urequest_init_flow_format(struct urequest *urequest, struct uref *flow_format, urequest_func urequest_provide, urequest_free_func urequest_free)
- void urequest_init_sink_latency(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free)
- void urequest_init_ubuf_mgr(struct urequest *urequest, struct uref *flow_format, urequest_func urequest_provide, urequest_free_func urequest_free)
- void urequest_init_uclock(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free)
- void urequest_init_uref_mgr(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free)
- int urequest_provide_flow_format(struct urequest *urequest, struct uref *flow_format)
- int urequest_provide_proxy(struct urequest *urequest, va_list args)
- int urequest_provide_sink_latency(struct urequest *urequest, uint64_t latency)
- int urequest_provide_ubuf_mgr(struct urequest *urequest, struct ubuf_mgr *ubuf_mgr, struct uref *flow_format)
- int urequest_provide_uclock(struct urequest *urequest, struct uclock *uclock)
- int urequest_provide_uref_mgr(struct urequest *urequest, struct uref_mgr *uref_mgr)
- void urequest_set_opaque(struct urequest *urequest, void *opaque)
- const char * urequest_type_str(int type)
Macro [link]
Description [link]
Upipe structure used to provide an upstream pipe with a structure
Members detail [link]
#define _UPIPE_UREQUEST_H_ [link]
This macro is declared in upipe/urequest.h source file, line 31.
[link]
This struct is declared in upipe/ubuf_mem.h source file, line 42.
| Field | Description |
|---|---|
| struct urefcount * refcount; | pointer to refcount management structure |
| uint32_t signature; | signature of the API (block, pic, sound, other) |
| struct ubuf *(*ubuf_alloc)(struct ubuf_mgr *, uint32_t signatureva_list ) ; | function to allocate a new ubuf, with optional arguments depending on the ubuf manager |
| int (*ubuf_control)(struct ubuf *, int va_list ) ; | control function for standard or local commands |
| void (*ubuf_free)(struct ubuf *) ; | function to free a ubuf |
| int (*ubuf_mgr_control)(struct ubuf_mgr *, int va_list ) ; | manager control function for standard or local commands |
[link]
This struct is declared in upipe/uprobe_uclock.h source file, line 42.
| Field | Description |
|---|---|
| struct urefcount * refcount; | pointer to refcount management structure |
| uint64_t (*uclock_now)(struct uclock *) ; | function returning the current system time |
| uint64_t (*uclock_to_real)(struct uclock *, uint64_t ) ; | function converting a system time to Epoch-based real time |
| uint64_t (*uclock_from_real)(struct uclock *, uint64_t ) ; | function converting Epoch-based real time to system time |
[link]
This struct is declared in upipe/urequest.h source file, line 95.
| Field | Description |
|---|---|
| struct uchain uchain; | structure for double-linked lists - for use by the upstream pipe only |
| void * opaque; | opaque - for use by the upstream pipe only |
| bool registered; | true if the urequest was already registered |
| int type; | request type |
| struct uref * uref; | optional uref argument |
| urequest_func urequest_provide; | function to provide a structure |
| urequest_free_func urequest_free; | function to free the request |
This function is declared in upipe/urequest.h source file, line 380.
This function duplicates and configure a proxy request.
Parameter list:
- urequest: request to proxy
The return value is an allocated request
This function is declared in upipe/urequest.h source file, line 219.
This function cleans up a urequest structure.
Parameter list:
- urequest: pointer to urequest
This function is declared in upipe/urequest.h source file, line 418.
This function finds a proxy urequest in a list from the original request.
Parameter list:
- urequest: original request
- requests: list of requests to look
The return value is the proxy request or NULL
This function is declared in upipe/urequest.h source file, line 231.
This function frees a urequest structure. Note that you must clean it first, if it has been initialized.
Parameter list:
- urequest: pointer to urequest
This typedef is declared in upipe/urequest.h source file, line 91.
This typedef frees the request.
This function is declared in upipe/urequest.h source file, line 403.
This function frees a proxy request.
Parameter list:
- urequest: proxy request to free
This typedef is declared in upipe/urequest.h source file, line 89.
This typedef is the call-back type for urequest structures.
#define urequest_get_opaque(urequest, type) [link]
This macro is declared in upipe/urequest.h source file, line 242.
This macro gets the opaque member of a request.
Parameter list:
- urequest: pointer to urequest
- type: type to cast to
The return value is opaque
void urequest_init_flow_format(struct urequest *urequest, struct uref *flow_format, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is declared in upipe/urequest.h source file, line 162.
This function initializes a urequest structure asking for a flow format. The downstream pipes will provide a modified flow format that will be compatible.
Parameter list:
- urequest: pointer to urequest
- flow_format: proposed flow format
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
void urequest_init_sink_latency(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is declared in upipe/urequest.h source file, line 209.
This function initializes a urequest structure asking for the sink latency. The downstream pipes will provide a modified flow format that will be compatible.
Parameter list:
- urequest: pointer to urequest
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
void urequest_init_ubuf_mgr(struct urequest *urequest, struct uref *flow_format, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is declared in upipe/urequest.h source file, line 179.
This function initializes a urequest structure asking for a ubuf manager. The downstream pipes may amend the request to change alignment or padding.
Parameter list:
- urequest: pointer to urequest
- flow_format: requested flow format
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
void urequest_init_uclock(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is declared in upipe/urequest.h source file, line 194.
This function initializes a urequest structure asking for a uclock.
Parameter list:
- urequest: pointer to urequest
- flow_format: requested flow format
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
void urequest_init_uref_mgr(struct urequest *urequest, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is declared in upipe/urequest.h source file, line 145.
This function initializes a urequest structure asking for a uref manager.
Parameter list:
- urequest: pointer to urequest
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
This function is declared in upipe/urequest.h source file, line 307.
This function provides a urequest with a new flow format. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- flow: format suggested flow format
The return value is an error code
This function is declared in upipe/urequest.h source file, line 368.
This function handles the result of a proxy request.
Parameter list:
- urequest: request provided
- args: optional arguments
The return value is an error code
This function is declared in upipe/urequest.h source file, line 354.
This function provides a urequest with a new sink latency. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- latency: sink latency
The return value is an error code
int urequest_provide_ubuf_mgr(struct urequest *urequest, struct ubuf_mgr *ubuf_mgr, struct uref *flow_format) [link]
This function is declared in upipe/urequest.h source file, line 324.
This function provides a urequest with a new ubuf manager. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- ubuf_mgr: pointer to ubuf manager
- flow: format allocated flow format
The return value is an error code
This function is declared in upipe/urequest.h source file, line 339.
This function provides a urequest with a new uclock. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- uclock: pointer to uclock
The return value is an error code
This function is declared in upipe/urequest.h source file, line 292.
This function provides a urequest with a new uref manager. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- uref_mgr: pointer to uref manager
The return value is an error code
This function is declared in upipe/urequest.h source file, line 251.
This function sets the opaque member of a request.
Parameter list:
- urequest: pointer to urequest
- opaque: opaque
enum urequest_type [link]
This enum is declared in upipe/urequest.h source file, line 53.
This enum defines standard requests which upipe modules may need.
| Identifier | Value | Description |
|---|---|---|
| UREQUEST_UREF_MGR | 0 | a uref manager is requested (struct uref_mgr *) |
| UREQUEST_FLOW_FORMAT | 1 | a flow format is requested (struct uref *) |
| UREQUEST_UBUF_MGR | 2 | a ubuf manager is requested (struct ubuf_mgr *, struct uref *) |
| UREQUEST_UCLOCK | 3 | a uclock is requested (struct uclock *) |
| UREQUEST_SINK_LATENCY | 4 | the latency of the sink is requested (uint64_t) |
| UREQUEST_LOCAL | 0x8000 | non-standard requests implemented by a module type can start from there (first arg = signature) |
const char * urequest_type_str(int type) [link]
This function is declared in upipe/urequest.h source file, line 76.
This function converts an urequest type into a string.
Parameter list:
- type: urequest type id to convert
The return value is a string or NULL if unknown
This function is for internal use only.
This function is declared in UBASE_FROM_TO function like macro expansion, line 19 in upipe/urequest.h source file, line 113.
This function returns a pointer to uchain.
Parameter list:
- sub: pointer to struct uchain
The return value is pointer to struct urequest
void urequest_init(struct urequest *urequest, int type, struct uref *uref, urequest_func urequest_provide, urequest_free_func urequest_free) [link]
This function is for internal use only.
This function is declared in upipe/urequest.h source file, line 126.
This function initializes a urequest structure.
Parameter list:
- urequest: pointer to urequest
- type: request type
- urequest_provide: function used to provide a structure
- urequest_free: function used to free the request
This function is for internal use only.
This function is declared in upipe/urequest.h source file, line 275.
This function provides a urequest with optional arguments. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest, followed with optional arguments
The return value is an error code
This function is for internal use only.
This function is declared in upipe/urequest.h source file, line 263.
This function provides a urequest with optional arguments. All arguments belong to the callee.
Parameter list:
- urequest: pointer to urequest
- args: list of arguments
The return value is an error code
This function is for internal use only.
This function is declared in UBASE_FROM_TO function like macro expansion, line 9 in upipe/urequest.h source file, line 113.
This function returns a pointer to uchain.
Parameter list:
- urequest: pointer to struct urequest
The return value is pointer to struct uchain