Maestro Audio Framework v 1.7
NXP Semiconductors
Loading...
Searching...
No Matches
vit_sink.c File Reference

This file contains the implementation for the Vit Sink. More...

#include <string.h>
#include "vit_sink.h"
#include "pipeline.h"
#include "streamer_element_properties.h"

Functions

static uint8_t vitsink_sink_pad_activation_handler (StreamPad *pad, uint8_t active)
 This function activates the sink pad and allocates memory for the vit sink element.
 
static FlowReturn vitsink_sink_pad_chain_handler (StreamPad *pad, StreamBuffer *buf)
 This pad function takes data from the source element and pushes it onto the VIT library. The VIT sink requires currently precise data buffer size.
 
static uint8_t vitsink_sink_pad_event_handler (StreamPad *pad, StreamEvent *event)
 This function processes the pad events.
 
static int32_t vitsink_change_state (StreamElement *element_ptr, PipelineState new_state)
 This function changes the VIT sink state and calls the appropriate apis for that state and takes the actions and then returns. PipelineState Transition: NULL to READY: Nothing to do READY to PAUSE: Activate sink pads and their peer pads PAUSE to PLAY: Start Writing PAUSE to READY: Deactivate sink pads and their peer pads READY to NULL: Nothing to do.
 
static uint8_t vitsink_sink_pad_query_handler (StreamPad *pad, StreamQuery *query)
 This pad function handles query from the pipeline. If not able to handle the query then it pushes the query to its peer.
 
static int32_t vitsink_set_property (StreamElement *element_ptr, uint16_t prop, uint32_t val)
 This function sets VIT sink element's properties.
 
static int32_t vitsink_get_property (StreamElement *element_ptr, uint16_t prop, uint32_t *val_ptr)
 This function gets VIT sink element's properties.
 
int32_t vitsink_init_element (StreamElement *element_ptr)
 This function initializes the vit sink element and sink pads.
 
int32_t vitsink_set_buffer (ElementHandle element_hdl, char *location_ptr, uint32_t size)
 Set the location of the memory buffer to write to as well as the size.
 
int32_t vitsink_set_raw_write_mode (ElementHandle element_hdl, uint8_t raw_write_mode)
 This function sets the raw write mode or the packet header mode to write to memory. (write_mode == true) means only data will be written (no packet headers) (write_mode == false) means packet header will be written aOSA_LONG with data.
 
int32_t vit_register_ext_processing (ElementHandle element, VitSinkInitFunc init_func_ptr, VitSinkPostProcFunc proc_func_ptr, VitSinkDeinitFunc deinit_func_ptr, void *arg_ptr)
 Register external processing function and argument pointers.
 

Function Documentation

◆ vitsink_sink_pad_activation_handler()

static uint8_t vitsink_sink_pad_activation_handler ( StreamPad * pad,
uint8_t active )
static
Parameters
padpad handle
activeboolean activate/disactivate pad
Returns
true/false
Return values
truesuccess
falsefailed

◆ vitsink_sink_pad_chain_handler()

static FlowReturn vitsink_sink_pad_chain_handler ( StreamPad * pad,
StreamBuffer * buf )
static
Parameters
padpad handle
bufinput buffer
Returns
FlowReturn
Return values
FLOW_OKsuccess
FLOW_UNEXPECTEDbad paramesters
FLOW_ERRORwrite failed

◆ vitsink_sink_pad_event_handler()

static uint8_t vitsink_sink_pad_event_handler ( StreamPad * pad,
StreamEvent * event )
static
Parameters
padpad handle
eventevent enumeration
Returns
true/false
Return values
truesuccess
falsefailed

◆ vitsink_change_state()

static int32_t vitsink_change_state ( StreamElement * element_ptr,
PipelineState new_state )
static
Parameters
element_ptrelement
new_statevit sink state to be changed
Returns
StreamReturnType
Return values
STREAM_OKsuccess
STREAM_ERR_INVALID_ARGSinvalid arguments

◆ vitsink_sink_pad_query_handler()

static uint8_t vitsink_sink_pad_query_handler ( StreamPad * pad,
StreamQuery * query )
static
Parameters
padpad handle
queryinput buffer
Returns
: true/false

◆ vitsink_set_property()

static int32_t vitsink_set_property ( StreamElement * element_ptr,
uint16_t prop,
uint32_t val )
static
Parameters
element_ptrVIT sink element instance
propproperties
valparameters
Returns
StreamReturnType
Return values
STREAM_OKsuccess
STREAM_ERR_INFO_ABSENTunknown property
STREAM_GENERALbad status to set the property

◆ vitsink_get_property()

static int32_t vitsink_get_property ( StreamElement * element_ptr,
uint16_t prop,
uint32_t * val_ptr )
static
Parameters
element_ptraudio sink element instance
propproperties
val_ptrparameters
Returns
AudioSinkStreamErrorType
Return values
STREAM_OKsuccess
STREAM_ERR_INVALID_ARGSbad arguments
STREAM_ERR_INFO_ABSENTunknown property

◆ vitsink_init_element()

int32_t vitsink_init_element ( StreamElement * element_ptr)
Parameters
element_ptrpointer of memory sink element instance
Returns
StreamReturnType
Return values
STREAM_OKsuccess
STREAM_ERR_ELEMENT_NOT_FOUNDinvalid instance pointer of element_ptr

◆ vitsink_set_buffer()

int32_t vitsink_set_buffer ( ElementHandle element_hdl,
char * location_ptr,
uint32_t size )
Parameters
element_hdlelement handle
location_ptrlocation path
sizememory buffer size
Returns
StreamReturnType
Return values
STREAM_OKsuccess
STREAM_ERR_INVALID_ARGSinvalid parameters
STREAM_ERR_GENERALstatus is bigger than or equal to STATE_PAUSED

◆ vitsink_set_raw_write_mode()

int32_t vitsink_set_raw_write_mode ( ElementHandle element_hdl,
uint8_t raw_write_mode )
Parameters
element_hdlelement handle
raw_write_modewrite mode raw (or) packet header
Returns
StreamReturnType
Return values
STREAM_OKsuccess
STREAM_ERR_INVALID_ARGSinvalid arguments
STREAM_ERR_GENERALvalue is bigger than or equal to STATE_PAUSED

◆ vit_register_ext_processing()

int32_t vit_register_ext_processing ( ElementHandle element,
VitSinkInitFunc init_func_ptr,
VitSinkPostProcFunc proc_func_ptr,
VitSinkDeinitFunc deinit_func_ptr,
void * arg_ptr )
Parameters
elementVIT element handle
init_func_ptrInit function pointer
proc_func_ptrProcess function pointer
deinit_func_ptrDeinit function pointer
arg_ptrArguments pointer
Returns
STREAM_OK
STREAM_ERR_INVALID_ARGS