Maestro Audio Framework v 1.5
NXP Semiconductors
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  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  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 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   (1)
 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 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  StreamPipelineType {
  STREAM_PIPELINE_FILESYSTEM = 0 ,
  STREAM_PIPELINE_MEM ,
  STREAM_PIPELINE_NETBUF ,
  STREAM_PIPELINE_PCM ,
  STREAM_PIPELINE_OPUS_MEM2MEM ,
  STREAM_PIPELINE_MIC2FILE ,
  STREAM_PIPELINE_VIT ,
  STREAM_PIPELINE_AUDIO_PROC ,
  STREAM_PIPELINE_PCM_AUDIO ,
  STREAM_PIPELINE_PCM_AUDIO_PROC_AUDIO ,
  STREAM_PIPELINE_TEST_AUDIO_PROCFILE2FILE ,
  STREAM_PIPELINE_MAX
}
 StreamPipelineType. More...
 
enum  ElementIndex {
  ELEMENT_FILE_SRC_INDEX ,
  ELEMENT_MEM_SRC_INDEX ,
  ELEMENT_NETBUF_SRC_INDEX ,
  ELEMENT_AUDIO_SRC_INDEX ,
  ELEMENT_FILE_SINK_INDEX ,
  ELEMENT_MEM_SINK_INDEX ,
  ELEMENT_AUDIO_SINK_INDEX ,
  ELEMENT_DECODER_INDEX ,
  ELEMENT_ENCODER_INDEX ,
  ELEMENT_VIT_INDEX ,
  ELEMENT_AUDIO_PROC_INDEX ,
  ELEMENT_LAST_INDEX
}
 Element index for the lookup table.
 
enum  StreamElementType {
  TYPE_ELEMENT_FILE_SRC = BUILD_ELEMENT(1, 0, ELEMENT_FILE_SRC_INDEX) ,
  TYPE_ELEMENT_MEM_SRC = BUILD_ELEMENT(1, 0, ELEMENT_MEM_SRC_INDEX) ,
  TYPE_ELEMENT_NETBUF_SRC = BUILD_ELEMENT(1, 0, ELEMENT_NETBUF_SRC_INDEX) ,
  TYPE_ELEMENT_AUDIO_SRC = BUILD_ELEMENT(1, 0, ELEMENT_AUDIO_SRC_INDEX) ,
  TYPE_ELEMENT_FILE_SINK = BUILD_ELEMENT(0, 1, ELEMENT_FILE_SINK_INDEX) ,
  TYPE_ELEMENT_MEM_SINK = BUILD_ELEMENT(0, 1, ELEMENT_MEM_SINK_INDEX) ,
  TYPE_ELEMENT_AUDIO_SINK = BUILD_ELEMENT(0, 1, ELEMENT_AUDIO_SINK_INDEX) ,
  TYPE_ELEMENT_DECODER = BUILD_ELEMENT(1, 1, ELEMENT_DECODER_INDEX) ,
  TYPE_ELEMENT_ENCODER = BUILD_ELEMENT(1, 1, ELEMENT_ENCODER_INDEX) ,
  TYPE_ELEMENT_VIT_SINK = BUILD_ELEMENT(0, 1, ELEMENT_VIT_INDEX) ,
  TYPE_ELEMENT_AUDIO_PROC = BUILD_ELEMENT(1, 1, ELEMENT_AUDIO_PROC_INDEX) ,
  TYPE_ELEMENT_LAST = ELEMENT_LAST_INDEX
}
 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. More...
 
int32_t streamer_destroy (STREAMER_T *streamer)
 Destroy a streamer object. More...
 
int32_t streamer_create_pipeline (STREAMER_T *streamer, int32_t pipeline_id, StreamPipelineType pipeline_type, const char *in_dev_name, const char *out_dev_name, bool block)
 Create a pipeline that will handle the different connected elements. More...
 
int32_t streamer_destroy_pipeline (STREAMER_T *streamer, int32_t pipeline_id, bool block)
 Destroy a pipeline. More...
 
int32_t streamer_get_track_info (STREAMER_T *streamer, int32_t pipeline_id, TrackInfo *info, bool block)
 Get track information. More...
 
int32_t streamer_set_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState state, bool block)
 Set streamer state. More...
 
int32_t streamer_get_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState *state, bool block)
 Get streamer state. More...
 
int32_t streamer_query_info (STREAMER_T *streamer, int32_t pipeline_id, StreamInfoType infoType, StreamData *query_data, bool block)
 Query streamer information. More...
 
int32_t streamer_seek_pipeline (STREAMER_T *streamer, int32_t pipeline_id, int32_t seek_time_ms, bool block)
 Seek pipeline. More...
 
int32_t streamer_set_property (STREAMER_T *streamer, ELEMENT_PROPERTY_T prop, bool block)
 Set element property. More...
 
int32_t streamer_get_property (STREAMER_T *streamer, uint16_t prop, uint32_t *val_ptr, bool block)
 Get element property. More...
 
int32_t streamer_set_file (STREAMER_T *streamer, int32_t pipeline_id, char *path, PipelineState state, bool block)
 Set file source. More...
 
int32_t streamer_set_repeat (STREAMER_T *streamer, int32_t pipeline_id, bool repeat_on, bool block)
 Set pipeline to repeat. More...
 

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.

◆ StreamPipelineType

The type of pipeline in streamer. These may not all be supported.

Enumerator
STREAM_PIPELINE_FILESYSTEM 

Pipeline with file source, decoder and audio sink.

STREAM_PIPELINE_MEM 

Pipeline with memory buffer source, decoder and audio sink.

STREAM_PIPELINE_NETBUF 

Pipeline with network buffer source, decoder and audio sink.

STREAM_PIPELINE_PCM 

Pipeline with audio (PCM) source and audio sink.

◆ 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.

TYPE_ELEMENT_MEM_SRC 

Memory source element.

TYPE_ELEMENT_NETBUF_SRC 

Network buffer source element. Requires CCI usage.

TYPE_ELEMENT_AUDIO_SRC 

Audio source element.

TYPE_ELEMENT_FILE_SINK 

File sink element.

TYPE_ELEMENT_MEM_SINK 

Memory sink element.

TYPE_ELEMENT_AUDIO_SINK 

Audio sink element.

TYPE_ELEMENT_DECODER 

Decoder 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,
StreamPipelineType  pipeline_type,
const char *  in_dev_name,
const char *  out_dev_name,
bool  block 
)
Parameters
streamerstreamer object
pipeline_idunique pipeline ID
pipeline_typetype of the pipeline
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,
ELEMENT_PROPERTY_T  prop,
bool  block 
)
Parameters
streamerstreamer object
propelement property
blockblocking / non-blocking mode
Returns
int32_t error code

◆ streamer_get_property()

int32_t streamer_get_property ( STREAMER_T streamer,
uint16_t  prop,
uint32_t *  val_ptr,
bool  block 
)
Parameters
streamerstreamer object
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