Data Fields | |
rte_context_class * | next |
rte_context_info * | _public |
rte_context *(* | _new )(rte_context_class *, char **errstr) |
void(* | _delete )(rte_context *) |
rte_option_info *(* | context_option_enum )(rte_context *, unsigned int) |
rte_codec_info *(* | codec_enum )(rte_context *, unsigned int) |
rte_codec *(* | codec_set )(rte_context *, const char *, rte_stream_type, unsigned int) |
rte_option_info *(* | codec_option_enum )(rte_codec *, unsigned int) |
rte_bool(* | parameters_set )(rte_codec *, rte_stream_parameters *) |
rte_bool(* | set_input )(rte_codec *, rte_io_method, rte_buffer_callback read_cb, rte_buffer_callback unref_cb, unsigned int *queue_length) |
rte_bool(* | set_output )(rte_context *context, rte_buffer_callback write_cb, rte_seek_callback seek_cb) |
rte_bool(* | start )(rte_context *, double timestamp, rte_codec *sync_ref, rte_bool async) |
void(* | status )(rte_context *, rte_codec *, rte_status *, unsigned int size) |
|
Backend use, list of context classes |
|
Backends can use this to store rte_context_info. The field is not directly accessed by the frontend. |
|
Allocate new rte_context instance. Returns all fields zero except rte_context->_class, ->state (RTE_STATE_NEW) and ->mutex (initialized). Context options are reset by the frontend.
When the allocation fails, return |
|
Delete context and all data associated with it. Don't forget to uninitialize the mutex. |
|
All the context_option functions behave as their frontend counterparts, and they are collectively optional ( |
|
The codec_enum, codec_get, codec_set functions behave as the frontend versions and are all mandatory. |
|
Note either keyword and index (set/replace) or type and index (remove) are passed. Codec options are reset by the caller. When replacing a codec fails, the old one must remain unchanged. |
|
All the codec_option functions behave as the frontend versions. Using these hooks backends can override codec option calls. Individually optional, then the frontend calls the respective codec function directly. |
|
All the parameters_set and parameters_get functions behave as the frontend versions. Using these hooks backends can override codec parameter calls. Individually optional, then the frontend calls the respective codec function directly. When neither the context nor the codec defines a parameters_get function and rte_codec->state is RTE_STATE_PARAM or higher, the frontend will access the rte_codec->params field directly. |
|
The I/O functions set_input and push_buffer work as the codec versions. Both are optional, then the frontend calls the respective codec function directly. |
|
|
The start, pause and stop functions behave as their frontend versions. The pause function is not implemented yet, the other are mandatory. |
|
When the codec parameter is |