Maestro Audio Framework v 1.7
NXP Semiconductors
Loading...
Searching...
No Matches
streamer_api.h File Reference

Streamer API header. Public APIs for using the maestro streamer framework. More...

#include <stddef.h>
#include "fsl_os_abstraction.h"
#include "streamer_message.h"

Data Structures

struct  ElementTypeLookup
 Element type and property. More...
 
struct  AlbumArt
 Album Art Object. More...
 
struct  TrackInfo
 Track Info Object. More...
 
struct  StreamImageType
 StreamImageType. More...
 
struct  StreamStringType
 StreamStringType. More...
 
union  StreamData
 StreamData. More...
 
struct  ELEMENT_PROPERTY_T
 Element Property structure. More...
 
struct  STREAMER_MSG_T
 Streamer Message Type. More...
 
struct  PipelineElements
 
struct  STREAMER_CREATE_PARAM
 Streamer Arguments. More...
 
struct  STREAMER_T
 Streamer Data Structure. More...
 

Macros

#define AF_MESSAGE_SECTION   0x10000
 Message ID prefix.
 
#define STREAMER_MSG_START   (0x0000 | AF_MESSAGE_SECTION)
 First message ID.
 
#define STREAMER_MSG_END   (0x00FF | AF_MESSAGE_SECTION)
 Last message ID.
 
#define STREAMER_MQ_NAME_LENGTH   (32)
 Message queue name length.
 
#define CODEC_INFO_LEN   64
 Codec information length.
 
#define GET_BIT(Bit)   (1 << (Bit))
 Get bit on specified position.
 
#define SET_BIT(Flag, Bit)   ((Flag) |= GET_BIT(Bit))
 Set bit on specified position.
 
#define CLEAR_BIT(Flag, Bit)   ((Flag) &= ~GET_BIT(Bit))
 Clear bit on specified position.
 
#define BUILD_ELEMENT(n_src, n_sink, id)   (_SRC(n_src) | _SINK(n_sink) | id)
 Build element ID based on number of sources, sinks and type element ID.
 
#define _SINK(num)   ((num & 0x3) << 14)
 Helper macro for building element ID with sink pad number.
 
#define _SRC(num)   ((num & 0x3) << 12)
 Helper macro for building element ID with source pad number.
 
#define ELEMENT_ID(type)   (type & 0x0FFF)
 Get element ID based on its type.
 
#define PATHNAME_SIZE   256
 Maximal path name size.
 
#define EVENT_WAIT_BIT   1
 Bit for waiting for streamer message response.
 
#define MSG_POOL_NUM_MSGS   10
 Maximum number of messages in streamer message queue.
 
#define MAX_PIPELINES   (2)
 The maximum number of Pipelines that may be created within a single streamer task.
 
#define MAX_ELEMENTS   (ELEMENT_LAST_INDEX)
 The maximum number of Elements that may be created within a single streamer task.
 
#define WAIT_STREAMER_MSG_RESPONSE_TIME_OUT   8000 /* 8s */
 The wait time out for streamer response of a message processing completion After streamer processed a message, it will signal the condition variable in the message to make the function call synchronized.
 
#define TRACK_TITLE_LEN   64
 Maximum track title length.
 
#define TRACK_ARTIST_LEN   64
 Maximum track artist length.
 
#define TRACK_ALBUM_LEN   64
 Maximum track album length.
 
#define TRACK_GENRE_LEN   34
 Maximum track genre length.
 
#define TRACK_YEAR_LEN   5
 Maximum track year length.
 
#define RAW_DATA   0
 Raw data.
 
#define AUDIO_DATA   1
 Audio data.
 
#define CHECK_RET(condition, function)
 Macro for checking return value of a function.
 
#define PIPELINE_SIZE(pipeline)   (sizeof(pipeline) / sizeof(ElementIndex))
 Pipeline size - number of elements in the pipeline.
 
#define STREAMER_MSG_SIZE   (sizeof(STREAMER_MSG_T))
 Size of streamer message structure.
 

Typedefs

typedef uintptr_t ElementHandle
 Element handle.
 
typedef uintptr_t PipelineHandle
 Pipeline handle.
 
typedef uintptr_t APPHandle
 Application handle.
 

Enumerations

enum  StreamReturnType {
  STREAM_OK = 0 ,
  STREAM_ERR_GENERAL = -1 ,
  STREAM_ERR_INVALID_ARGS = -2 ,
  STREAM_ERR_NO_MEM = -3 ,
  STREAM_ERR_INVALID_SEEK_TIME = -4 ,
  STREAM_ERR_NOT_SEEKABLE = -5 ,
  STREAM_ERR_INFO_ABSENT = -6 ,
  STREAM_ERR_ELEMENT_ALREADY_IN_PIPELINE = -7 ,
  STREAM_ERR_ELEMENT_LINKED = -8 ,
  STREAM_ERR_ELEMENT_NOT_FREE = -9 ,
  STREAM_ERR_ELEMENT_NOT_FOUND = -10 ,
  STREAM_ERR_ELEMENT_INVALID_PAD = -11 ,
  STREAM_ERR_ELEMENT_PADS_NOT_LINKED = -12 ,
  STREAM_ERR_ELEMENT_BAD_STATUS = -13
}
 
enum  STREAMER_MSG_ID {
  STREAM_MSG_CLOSE_TASK = STREAMER_MSG_START ,
  STREAM_MSG_CREATE_PIPELINE ,
  STREAM_MSG_DESTROY_PIPELINE ,
  STREAM_MSG_CREATE_ELEMENT ,
  STREAM_MSG_DESTROY_ELEMENT ,
  STREAM_MSG_ADD_ELEMENT ,
  STREAM_MSG_REMOVE_ELEMENT ,
  STREAM_MSG_LINK_ELEMENTS ,
  STREAM_MSG_UNLINK_ELEMENTS ,
  STREAM_MSG_SET_STATE ,
  STREAM_MSG_GET_STATE ,
  STREAM_MSG_SET_FILE ,
  STREAM_MSG_SET_PROPERTY ,
  STREAM_MSG_GET_PROPERTY ,
  STREAM_MSG_GET_TRACK_INFO ,
  STREAM_MSG_SEEK_PIPELINE ,
  STREAM_MSG_QUERY_PIPELINE ,
  STREAM_MSG_SET_REPEAT ,
  STREAM_MSG_UPDATE_DURATION ,
  STREAM_MSG_UPDATE_POSITION ,
  STREAM_MSG_UPDATE_TRACK_INFO ,
  STREAM_MSG_EOS ,
  STREAM_MSG_ERROR ,
  STREAM_MSG_LAST = STREAMER_MSG_END
}
 
enum  PipelineState {
  STATE_NULL ,
  STATE_READY ,
  STATE_PAUSED ,
  STATE_PLAYING
}
 PipelineState. More...
 
enum  ElementIndex {
  ELEMENT_FILE_SRC_INDEX = 0 ,
  ELEMENT_MEM_SRC_INDEX ,
  ELEMENT_NETBUF_SRC_INDEX ,
  ELEMENT_MICROPHONE_INDEX ,
  ELEMENT_FILE_SINK_INDEX ,
  ELEMENT_MEM_SINK_INDEX ,
  ELEMENT_SPEAKER_INDEX ,
  ELEMENT_DECODER_INDEX ,
  ELEMENT_ENCODER_INDEX ,
  ELEMENT_VIT_INDEX ,
  ELEMENT_VIT_PROC_INDEX ,
  ELEMENT_VOICESEEKER_INDEX ,
  ELEMENT_SRC_INDEX ,
  ELEMENT_USB_SRC_INDEX ,
  ELEMENT_USB_SINK_INDEX ,
  ELEMENT_ASRC_INDEX ,
  ELEMENT_LAST_INDEX
}
 Element index for the lookup table.
 
enum  StreamElementType {
  TYPE_ELEMENT_FILE_SRC = BUILD_ELEMENT(1, 0, 0) ,
  TYPE_ELEMENT_MEM_SRC = BUILD_ELEMENT(1, 0, 1) ,
  TYPE_ELEMENT_NETBUF_SRC = BUILD_ELEMENT(1, 0, 2) ,
  TYPE_ELEMENT_AUDIO_SRC = BUILD_ELEMENT(1, 0, 3) ,
  TYPE_ELEMENT_FILE_SINK = BUILD_ELEMENT(0, 1, 4) ,
  TYPE_ELEMENT_MEM_SINK = BUILD_ELEMENT(0, 1, 5) ,
  TYPE_ELEMENT_AUDIO_SINK = BUILD_ELEMENT(0, 1, 6) ,
  TYPE_ELEMENT_VIT_SINK = BUILD_ELEMENT(0, 1, 7) ,
  TYPE_ELEMENT_DECODER = BUILD_ELEMENT(1, 1, 8) ,
  TYPE_ELEMENT_ENCODER = BUILD_ELEMENT(1, 1, 9) ,
  TYPE_ELEMENT_AUDIO_PROC = BUILD_ELEMENT(1, 1, 10) ,
  TYPE_ELEMENT_LAST = 11
}
 StreamElementType. More...
 
enum  DecoderType {
  DECODER_TYPE_UNKNOWN ,
  DECODER_TYPE_WAV ,
  DECODER_TYPE_MP3 ,
  DECODER_TYPE_MP2 ,
  DECODER_TYPE_AAC ,
  DECODER_TYPE_OGG ,
  DECODER_TYPE_WMA ,
  DECODER_TYPE_WMV ,
  DECODER_TYPE_MPEG2 ,
  DECODER_TYPE_MPEG4 ,
  DECODER_TYPE_JPEG ,
  DECODER_TYPE_CD_DA ,
  DECODER_TYPE_MFI ,
  DECODER_TYPE_FLAC ,
  DECODER_TYPE_ALAC ,
  DECODER_TYPE_AC3 ,
  DECODER_TYPE_OPUS ,
  DECODER_TYPE_OGG_OPUS ,
  LAST_DECODER_TYPE
}
 DecoderType. More...
 
enum  ParserType {
  PARSER_TYPE_ASF ,
  PARSER_TYPE_MP4 ,
  PARSER_TYPE_3GP ,
  PARSER_TYPE_OGG ,
  PARSER_TYPE_BY_PASS ,
  LAST_PARSER_TYPE
}
 ParserType. More...
 
enum  StreamInfoType {
  INFO_AUDIO_BITRATE ,
  INFO_AUDIO_CHANNELS ,
  INFO_AUDIO_SAMPLERATE ,
  INFO_AUDIO_TYPE ,
  INFO_CODEC_INFO ,
  INFO_DURATION ,
  INFO_POSITION ,
  INFO_TIME_SEEKABLE ,
  INFO_BYTE_SEEKABLE ,
  INFO_STREAM_INFO_UPDATE ,
  INFO_SIZE ,
  INFO_BUFF_OCC ,
  INFO_ALBUM ,
  INFO_ARTIST ,
  INFO_TITLE ,
  INFO_GENRE ,
  INFO_YEAR ,
  INFO_TRACK ,
  INFO_ALBUMART_IMAGE ,
  INFO_META_INFO_UPDATE ,
  INFO_ERROR ,
  INFO_LAST
}
 StreamInfoType. More...
 
enum  AudioSrcDeviceDriverType {
  AUDIOSRC_PCMRTOS ,
  LAST_AUDIOSRC_DEVICE_DRIVER_TYPE
}
 AudioSrcDeviceDriverType. More...
 
enum  AudioSinkDeviceDriverType {
  AUDIO_SINK_DEVICE_TYPE_PCMRTOS ,
  LAST_AUDIO_SINK_DEVICE_DRIVER_TYPE
}
 AudioSinkDeviceDriverType. More...
 
enum  StreamMsgType {
  MESSAGE_UNKNOWN = 0 ,
  MESSAGE_EOS = GET_BIT(0) ,
  MESSAGE_ERROR = GET_BIT(1) ,
  MESSAGE_WARNING = GET_BIT(2) ,
  MESSAGE_INFO = GET_BIT(3) ,
  MESSAGE_BUFFERING = GET_BIT(4) ,
  MESSAGE_STATE_CHANGED = GET_BIT(5)
}
 StreamMsgType Different message types that are available. More...
 
enum  AlbumArtSource {
  ART_DEFAULT = 0 ,
  ART_EMBEDDED ,
  ART_FOLDER
}
 Album Art Source. More...
 
enum  ImageFormat {
  IMG_RGB_555 = 0 ,
  IMG_RGB_565 ,
  IMG_RGB_666 ,
  IMG_RGB_888 ,
  IMG_GRAYSCALE
}
 Image Format. More...
 

Functions

STREAMER_Tstreamer_create (STREAMER_CREATE_PARAM *task_param)
 Create a streamer.
 
int32_t streamer_destroy (STREAMER_T *streamer)
 Destroy a streamer object.
 
int32_t streamer_create_pipeline (STREAMER_T *streamer, int32_t pipeline_id, const char *in_dev_name, const char *out_dev_name, PipelineElements elements, bool block)
 Create a pipeline that will handle the different connected elements.
 
int32_t streamer_destroy_pipeline (STREAMER_T *streamer, int32_t pipeline_id, bool block)
 Destroy a pipeline.
 
int32_t streamer_get_track_info (STREAMER_T *streamer, int32_t pipeline_id, TrackInfo *info, bool block)
 Get track information.
 
int32_t streamer_set_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState state, bool block)
 Set streamer state.
 
int32_t streamer_get_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState *state, bool block)
 Get streamer state.
 
int32_t streamer_query_info (STREAMER_T *streamer, int32_t pipeline_id, StreamInfoType infoType, StreamData *query_data, bool block)
 Query streamer information.
 
int32_t streamer_seek_pipeline (STREAMER_T *streamer, int32_t pipeline_id, int32_t seek_time_ms, bool block)
 Seek pipeline.
 
int32_t streamer_set_property (STREAMER_T *streamer, int8_t pipeline_id, ELEMENT_PROPERTY_T prop, bool block)
 Set element property.
 
int32_t streamer_get_property (STREAMER_T *streamer, int8_t pipeline_id, uint16_t prop, uint32_t *val_ptr, bool block)
 Get element property.
 
int32_t streamer_set_file (STREAMER_T *streamer, int32_t pipeline_id, char *path, PipelineState state, bool block)
 Set file source.
 
int32_t streamer_set_repeat (STREAMER_T *streamer, int32_t pipeline_id, bool repeat_on, bool block)
 Set pipeline to repeat.
 
int32_t is_element_in_pipeline (PipelineElements pipe_elems, ElementIndex id)
 

Macro Definition Documentation

◆ RAW_DATA

#define RAW_DATA   0

Data Packets

◆ CHECK_RET

#define CHECK_RET ( condition,
function )
Value:
({ \
int __ret; \
\
if ((__ret = (int)(condition)) != 0) \
{ \
STREAMER_LOG_ERR(DBG_CORE, ERRCODE_INTERNAL, "function(%s) failed:%d\n", function, __ret); \
return __ret; \
} \
__ret; \
})
#define ERRCODE_INTERNAL
Error code internal.
Definition error.h:48
#define DBG_CORE
Flag enable core debug messages.
Definition streamer.h:33

Enumeration Type Documentation

◆ StreamReturnType

StreamReturnType Handles return status from pipeline operations

Enumerator
STREAM_OK 

General success.

STREAM_ERR_GENERAL 

General failure.

STREAM_ERR_INVALID_ARGS 

Invalid arguments to the function.

STREAM_ERR_NO_MEM 

Not enough memory to continue. Fatal.

STREAM_ERR_INVALID_SEEK_TIME 

Invalid seek time specified.

STREAM_ERR_NOT_SEEKABLE 

Pipeline playback not seekable.

STREAM_ERR_INFO_ABSENT 

Required info not available.

STREAM_ERR_ELEMENT_ALREADY_IN_PIPELINE 

Element already a part of pipeline.

STREAM_ERR_ELEMENT_LINKED 

Element linked to another.

STREAM_ERR_ELEMENT_NOT_FREE 

Element still linked an part of pipeline.

STREAM_ERR_ELEMENT_NOT_FOUND 

Specified element not found in pipeline.

STREAM_ERR_ELEMENT_INVALID_PAD 

Invalid pad index specified in element.

STREAM_ERR_ELEMENT_PADS_NOT_LINKED 

Specified pads not linked.

STREAM_ERR_ELEMENT_BAD_STATUS 

try to operate in a bad status.

◆ STREAMER_MSG_ID

Streamer Message Identifiers Enumeration of all streamer request messages

Enumerator
STREAM_MSG_CLOSE_TASK 

0 Close Streamer Task

STREAM_MSG_CREATE_PIPELINE 

1 Create Pipeline

STREAM_MSG_DESTROY_PIPELINE 

2 Destroy Pipeline

STREAM_MSG_CREATE_ELEMENT 

3 Create Element

STREAM_MSG_DESTROY_ELEMENT 

4 Destroy Element

STREAM_MSG_ADD_ELEMENT 

5 Add Element to Pipeline

STREAM_MSG_REMOVE_ELEMENT 

6 Remove Element from Pipeline

STREAM_MSG_LINK_ELEMENTS 

7 Link two elements together

STREAM_MSG_UNLINK_ELEMENTS 

8 Unlink two elements together

STREAM_MSG_SET_STATE 

9 Set Pipeline State

STREAM_MSG_GET_STATE 

a Get Pipeline State

STREAM_MSG_SET_FILE 

b Set the file path and reconfigure the pipeline

STREAM_MSG_SET_PROPERTY 

c Set an Element specific property value

STREAM_MSG_GET_PROPERTY 

d Get an Element specific property value

STREAM_MSG_GET_TRACK_INFO 

e Get track info

STREAM_MSG_SEEK_PIPELINE 

f Seek the pipeline to a time

STREAM_MSG_QUERY_PIPELINE 

10 Query the pipeline

STREAM_MSG_SET_REPEAT 

11 Set repeat mode of pipeline

STREAM_MSG_UPDATE_DURATION 

12 Track duration info updated

STREAM_MSG_UPDATE_POSITION 

13 Track playing position updated

STREAM_MSG_UPDATE_TRACK_INFO 

14 Track info updated

STREAM_MSG_EOS 

15 End of track reached

STREAM_MSG_ERROR 

16 Error in streamer

STREAM_MSG_LAST 

17

◆ PipelineState

States for pipeline and individual elements of the pipeline. In ideal condition all the elements will have the same state as the parent pipeline state.

Enumerator
STATE_NULL 

A pipeline is created, but all the elements are in initial state (decoder type, parser type are not determined - using default value). Source file is not assigned or open.

STATE_READY 

All the streamer elements’ properties are initialized (source file opened, decoder type, parser type are determined). The pipeline is ready for playing or pause.

STATE_PAUSED 

The element should be ready to accept and process data.

STATE_PLAYING 

The same as PAUSED except for live sources and sinks.

◆ StreamElementType

Holds an element type for pipeline operations. Type is built based on number of source pads, number of sink pads, and a unique index

Enumerator
TYPE_ELEMENT_FILE_SRC 

File source element.

Memory source element

TYPE_ELEMENT_MEM_SRC 

Network buffer source element. Requires CCI usage.

TYPE_ELEMENT_NETBUF_SRC 

Audio source element.

TYPE_ELEMENT_AUDIO_SRC 

File sink element.

TYPE_ELEMENT_FILE_SINK 

Memory sink element.

TYPE_ELEMENT_MEM_SINK 

Audio sink element.

TYPE_ELEMENT_AUDIO_SINK 

VIT sink element.

TYPE_ELEMENT_VIT_SINK 

Decoder element.

TYPE_ELEMENT_DECODER 

Encoder element.

TYPE_ELEMENT_ENCODER 

Audio process element.

◆ DecoderType

Enumeration of potential media decoders. These may not all be supported.

Enumerator
DECODER_TYPE_UNKNOWN 

unknown Decoder

DECODER_TYPE_WAV 

Wave Decoder.

DECODER_TYPE_MP3 

MP3 Decoder.

DECODER_TYPE_OPUS 

raw OPUS decoder

DECODER_TYPE_OGG_OPUS 

OGG OPUS decoder.

LAST_DECODER_TYPE 

Placeholder.

◆ ParserType

enum ParserType

Enumeration of potential media parsers. @ These may not all be supported.

Enumerator
PARSER_TYPE_ASF 

ASF Parser.

PARSER_TYPE_MP4 

MP4 Parser.

PARSER_TYPE_3GP 

3GP parser

PARSER_TYPE_OGG 

OGG parser.

PARSER_TYPE_BY_PASS 

parser will work in by pass mode by default

LAST_PARSER_TYPE 

Placeholder.

◆ StreamInfoType

Types of Information the pipeline may provide

Enumerator
INFO_AUDIO_BITRATE 

Audio Bitrate.

INFO_AUDIO_CHANNELS 

Number of audio channels.

INFO_AUDIO_SAMPLERATE 

Audio Sample Rate (Hz)

INFO_AUDIO_TYPE 

Audio File.

INFO_CODEC_INFO 

Codec information.

INFO_DURATION 

Duration of the Track (ms)

INFO_POSITION 

Current Position of the Track (ms)

INFO_TIME_SEEKABLE 

Input Supports Seek by Time.

INFO_BYTE_SEEKABLE 

Input Supports Seek by Byte.

INFO_STREAM_INFO_UPDATE 

stream info updated

INFO_SIZE 

Size of audio size.

INFO_BUFF_OCC 

Buffer level/audio latency.

INFO_ALBUM 

Album Name.

INFO_ARTIST 

Artist Name.

INFO_TITLE 

Track Title.

INFO_GENRE 

Genre.

INFO_YEAR 

Year.

INFO_TRACK 

Track Number.

INFO_ALBUMART_IMAGE 

Album Artwork.

INFO_META_INFO_UPDATE 

metadata info updated

INFO_ERROR 

error

INFO_LAST 

Placeholder always at the end.

◆ AudioSrcDeviceDriverType

Enumeration of potential audio src devices

Enumerator
AUDIOSRC_PCMRTOS 

Audio source device using pcm interface and rtos.

LAST_AUDIOSRC_DEVICE_DRIVER_TYPE 

Placeholder.

◆ AudioSinkDeviceDriverType

Enumeration of potential audio sink devices

Enumerator
AUDIO_SINK_DEVICE_TYPE_PCMRTOS 

Audio sink device using pcm interface and rtos.

LAST_AUDIO_SINK_DEVICE_DRIVER_TYPE 

Placeholder.

◆ StreamMsgType

Enumerator
MESSAGE_UNKNOWN 

Unknown.

MESSAGE_EOS 

End-of-stream reached in a pipeline. The application will only receive this message in the PLAYING state and every time it sets a pipeline to PLAYING that is in the EOS state. The application can perform a flushing seek in the pipeline, which will undo the EOS state again.

MESSAGE_ERROR 

An error occurred. When the application receives an error message it should stop playback of the pipeline and not assume that more data will be played.

MESSAGE_WARNING 

A warning occurred.

MESSAGE_INFO 

An info message occurred.

MESSAGE_BUFFERING 

The pipeline is buffering. When the application receives a buffering msg in the PLAYING state for a non-live pipeline it must PAUSE the pipeline until the buffering completes, when the percent field in the message is 100%. For live pipelines, no action must be performed and the buffering percentage can be used to inform the user about the progress.

MESSAGE_STATE_CHANGED 

A state change happened.

◆ AlbumArtSource

Identify the source of an album art image

Enumerator
ART_DEFAULT 

No album art found, using default.

ART_EMBEDDED 

Art found embedded in source file.

ART_FOLDER 

Art found in containing folder.

◆ ImageFormat

Enumeration of output formats supported by the Image Decoder

Enumerator
IMG_RGB_555 

RGB 555 (16-bit) (PPM)

IMG_RGB_565 

RGB 565 (16-bit) (PPM)

IMG_RGB_666 

RGB 666 (18-bit) (PPM)

IMG_RGB_888 

RGB 888 (24-bit) (PPM)

IMG_GRAYSCALE 

Grayscale (PGM)

Function Documentation

◆ streamer_create()

STREAMER_T * streamer_create ( STREAMER_CREATE_PARAM * task_param)

Function for creating of a streamer object serving as the core of the framework. A streamer task is created that is responsible for handling the messages between the framework and the application. Then a pipeline for audio processing is created using streamer_create_pipeline.

Parameters
task_paramparemeters for creating the core streamer task
Returns
STREAMER_T*

◆ streamer_destroy()

int32_t streamer_destroy ( STREAMER_T * streamer)
Parameters
streamerThe streamer object to be destroyed

◆ streamer_create_pipeline()

int32_t streamer_create_pipeline ( STREAMER_T * streamer,
int32_t pipeline_id,
const char * in_dev_name,
const char * out_dev_name,
PipelineElements elements,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
in_dev_nameinput device name
out_dev_nameoutput device name
blockblocking / non-blocking creation of pipeline called directly
Returns
int32_t error code

◆ streamer_destroy_pipeline()

int32_t streamer_destroy_pipeline ( STREAMER_T * streamer,
int32_t pipeline_id,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
blockblocking / non-blocking destruction of pipeline
Returns
int32_t error code

◆ streamer_get_track_info()

int32_t streamer_get_track_info ( STREAMER_T * streamer,
int32_t pipeline_id,
TrackInfo * info,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
infotrack information
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_set_state()

int32_t streamer_set_state ( STREAMER_T * streamer,
int32_t pipeline_id,
PipelineState state,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
statestreamer state
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_get_state()

int32_t streamer_get_state ( STREAMER_T * streamer,
int32_t pipeline_id,
PipelineState * state,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
statestreamer state
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_query_info()

int32_t streamer_query_info ( STREAMER_T * streamer,
int32_t pipeline_id,
StreamInfoType infoType,
StreamData * query_data,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
infoTypestreamer information type
query_dataquery data
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_seek_pipeline()

int32_t streamer_seek_pipeline ( STREAMER_T * streamer,
int32_t pipeline_id,
int32_t seek_time_ms,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
seek_time_msdesired seek time in [ms]
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_set_property()

int32_t streamer_set_property ( STREAMER_T * streamer,
int8_t pipeline_id,
ELEMENT_PROPERTY_T prop,
bool block )
Parameters
streamerstreamer object
pipeline_idpipeline index
propelement property
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_get_property()

int32_t streamer_get_property ( STREAMER_T * streamer,
int8_t pipeline_id,
uint16_t prop,
uint32_t * val_ptr,
bool block )
Parameters
streamerstreamer object
pipeline_idpipeline index
propelement property
val_ptrproperty value
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_set_file()

int32_t streamer_set_file ( STREAMER_T * streamer,
int32_t pipeline_id,
char * path,
PipelineState state,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
pathpath to the file
statestreamer state
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_set_repeat()

int32_t streamer_set_repeat ( STREAMER_T * streamer,
int32_t pipeline_id,
bool repeat_on,
bool block )
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
repeat_onrepeat flag
blockblocking / non-blocking mode
Returns
int32_t error code