![]() |
Maestro Audio Framework v 1.0
NXP Semiconductors
|
Streamer API header. More...
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 |
| #define | STREAMER_MSG_START (0x0000 | AF_MESSAGE_SECTION) |
| #define | STREAMER_MSG_END (0x00FF | AF_MESSAGE_SECTION) |
| #define | CODEC_INFO_LEN 64 |
| #define | GET_BIT(Bit) (1 << (Bit)) |
| #define | SET_BIT(Flag, Bit) ((Flag) |= GET_BIT(Bit)) |
| #define | CLEAR_BIT(Flag, Bit) ((Flag) &= ~GET_BIT(Bit)) |
| #define | BUILD_ELEMENT(n_src, n_sink, id) (_SRC(n_src) | _SINK(n_sink) | id) |
| #define | _SINK(num) ((num & 0x3) << 14) |
| #define | _SRC(num) ((num & 0x3) << 12) |
| #define | ELEMENT_ID(type) (type & 0x0FFF) |
| #define | STREAMER_MQ_NAME_LENGTH (32) |
| #define | PLAYER_MQ_NAME_BASE "/player.mq." |
| #define | STREAMER_MQ_NAME_BASE "/streamer.mq." |
| #define | MQ_NAME_FORMAT "%s%ld" |
| #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 |
| #define | TRACK_ARTIST_LEN 64 |
| #define | TRACK_ALBUM_LEN 64 |
| #define | TRACK_GENRE_LEN 34 |
| #define | TRACK_YEAR_LEN 5 |
| #define | STREAMER_MSG_SIZE (sizeof(STREAMER_MSG_T)) |
Typedefs | |
| typedef uintptr_t | ElementHandle |
| typedef uintptr_t | PipelineHandle |
| typedef uintptr_t | APPHandle |
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 } |
| StreamReturnType Handles return status from pipeline operations. More... | |
| 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 } |
| Streamer Message Identifiers Enumeration of all streamer request messages. More... | |
| enum | PipelineState { STATE_NULL , STATE_READY , STATE_PAUSED , STATE_PLAYING } |
| PipelineState. More... | |
| enum | StreamPipelineType { STREAM_PIPELINE_FILESYSTEM , STREAM_PIPELINE_MEM , STREAM_PIPELINE_NETBUF , STREAM_PIPELINE_PCM , STREAM_PIPELINE_BTSA , STREAM_PIPELINE_PCM_AIRPLAY , STREAM_PIPELINE_PCM_ASYNC , STREAM_PIPELINE_PCM_ANALOG , STREAM_PIPELINE_OPUS_MEM2MEM , STREAM_PIPELINE_MIC2FILE , STREAM_PIPELINE_VIT , STREAM_PIPELINE_EAP , STREAM_PIPELINE_MCHMEMORY , STREAM_PIPELINE_PCM_AUDIO , STREAM_PIPELINE_PCM_EAP_AUDIO , 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_EAP_INDEX , ELEMENT_LAST_INDEX } |
| enum | StreamElementType { TYPE_ELEMENT_FILE_SRC = BUILD_ELEMENT (3, 0, ELEMENT_FILE_SRC_INDEX) , TYPE_ELEMENT_MEM_SRC = BUILD_ELEMENT (3, 0, ELEMENT_MEM_SRC_INDEX) , TYPE_ELEMENT_NETBUF_SRC = BUILD_ELEMENT (3, 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, 3, 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_EAP = BUILD_ELEMENT (1, 1, ELEMENT_EAP_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_VIDEO_BITRATE = 1 , INFO_VIDEO_FRAMERATE , INFO_VIDEO_TYPE , 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_FILE_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_T * | streamer_create (STREAMER_CREATE_PARAM *task_param) |
| void | streamer_destroy (STREAMER_T *streamer) |
| int32_t | streamer_create_pipeline (STREAMER_T *streamer, int32_t pipeline_id, StreamPipelineType pipeline_type, char *in_dev_name, char *out_dev_name, bool block) |
| int32_t | streamer_destroy_pipeline (STREAMER_T *streamer, int32_t pipeline_id, bool block) |
| int32_t | streamer_get_track_info (STREAMER_T *streamer, int32_t pipeline_id, TrackInfo *info, bool block) |
| int32_t | streamer_set_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState state, bool block) |
| int32_t | streamer_get_state (STREAMER_T *streamer, int32_t pipeline_id, PipelineState *state, bool block) |
| int32_t | streamer_query_info (STREAMER_T *streamer, int32_t pipeline_id, StreamInfoType infoType, StreamData *query_data, bool block) |
| int32_t | streamer_seek_pipeline (STREAMER_T *streamer, int32_t pipeline_id, int32_t seek_time_ms, bool block) |
| int32_t | streamer_set_property (STREAMER_T *streamer, ELEMENT_PROPERTY_T prop, bool block) |
| int32_t | streamer_get_property (STREAMER_T *streamer, uint16_t prop, uint32_t *val_ptr, bool block) |
| int32_t | streamer_set_file (STREAMER_T *streamer, int32_t pipeline_id, char *path, PipelineState state, bool block) |
| int32_t | streamer_set_repeat (STREAMER_T *streamer, int32_t pipeline_id, bool repeat_on, bool block) |
Public APIs for using the maestro streamer framework
| enum StreamReturnType |
| enum STREAMER_MSG_ID |
| enum 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.
| enum StreamPipelineType |
The type of pipeline in streamer. These may not all be supported.
| enum 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
| enum DecoderType |
| enum ParserType |
| enum StreamInfoType |
Types of Information the pipeline may provide
| enum StreamMsgType |
| enum AlbumArtSource |
| enum ImageFormat |