RDK Documentation (Open Sourced RDK Components)
btrMgr_streamOutGst.c File Reference
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#include <gst/gst.h>
#include <gst/audio/audio.h>
#include <gst/app/gstappsrc.h>
#include "btrMgr_logger.h"
#include "btrMgr_streamOutGst.h"
Include dependency graph for btrMgr_streamOutGst.c:

Go to the source code of this file.

Data Structures

struct  _stBTRMgrSOGst
 

Macros

#define BTRMGR_SLEEP_TIMEOUT_MS   1
 
#define BTRMGR_WAIT_TIMEOUT_MS   2
 
#define BTRMGR_MAX_INTERNAL_QUEUE_ELEMENTS   8
 
#define BTRMGR_INPUT_BUF_INTERVAL_THRES_CNT   4
 
#define GST_ELEMENT_GET_STATE_RETRY_CNT_MAX   5
 
#define ENABLE_MAIN_LOOP_CONTEXT   0
 
#define BTRMGR_SBC_ALLOCATION_SNR   (1 << 1)
 
#define BTRMGR_SBC_ALLOCATION_LOUDNESS   1
 

Typedefs

typedef struct _stBTRMgrSOGst stBTRMgrSOGst
 

Functions

static GstState btrMgr_SO_validateStateWithTimeout (GstElement *element, GstState stateToValidate, guint msTimeOut)
 
static eBTRMgrSOGstRet btrMgr_SO_GstSendBuffer (stBTRMgrSOGst *pstBtrMgrSoGst, char *pcInBuf, int aiInBufSize)
 
static gpointer btrMgr_SO_g_main_loop_Task (gpointer apstBtrMgrSoGst)
 
static gboolean btrMgr_SO_g_main_loop_RunningCb (gpointer apstBtrMgrSoGst)
 
static gboolean btrMgr_SO_g_timeout_EmptyBufPushCb (gpointer apstBtrMgrSoGst)
 
static void btrMgr_SO_NeedDataCb (GstElement *appsrc, guint size, gpointer apstBtrMgrSoGst)
 
static void btrMgr_SO_EnoughDataCb (GstElement *appsrc, gpointer apstBtrMgrSoGst)
 
static gboolean btrMgr_SO_gstBusCallCb (GstBus *bus, GstMessage *msg, gpointer apstBtrMgrSoGst)
 
eBTRMgrSOGstRet BTRMgr_SO_GstInit (tBTRMgrSoGstHdl *phBTRMgrSoGstHdl, fPtr_BTRMgr_SO_GstStatusCb afpcBSoGstStatus, void *apvUserData)
 This API initializes the streaming interface. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstDeInit (tBTRMgrSoGstHdl hBTRMgrSoGstHdl)
 This API performs the cleanup operations. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstStart (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, int ai32InBufMaxSize, const char *apcInFmt, int ai32InRate, int ai32InChannels, int ai32OutRate, int ai32OutChannels, const char *apcOutChannelMode, unsigned char aui8SbcAllocMethod, unsigned char aui8SbcSubbands, unsigned char aui8SbcBlockLength, unsigned char aui8SbcMinBitpool, unsigned char aui8SbcMaxBitpool, int ai32BTDevFd, int ai32BTDevMTU)
 This API starts the playback and listens to the events associated with it. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstStop (tBTRMgrSoGstHdl hBTRMgrSoGstHdl)
 This API stops the current playback and sets the state as NULL. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstPause (tBTRMgrSoGstHdl hBTRMgrSoGstHdl)
 This API pauses the current playback and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstResume (tBTRMgrSoGstHdl hBTRMgrSoGstHdl)
 This API resumes the current operation and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstSetInputPaused (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, unsigned char ui8InputPaused)
 This API Sets whether the input of current Buffers is Paused. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstSetVolume (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, unsigned char ui8Volume)
 This API Sets the volume of current operation and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstGetVolume (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, unsigned char *ui8Volume)
 This API Gets the volume of current operation and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstSetMute (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, gboolean mute)
 This API Sets the Mute of current operation and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstGetMute (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, gboolean *muted)
 This API Gets the Mute of current operation and listens to the events. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstSendBuffer (tBTRMgrSoGstHdl hBTRMgrSoGstHdl, char *pcInBuf, int aiInBufSize)
 This API pushes the buffer to the queue. More...
 
eBTRMgrSOGstRet BTRMgr_SO_GstSendEOS (tBTRMgrSoGstHdl hBTRMgrSoGstHdl)
 This API is used to push EOS(End of Stream) to the queue. More...
 

yes

@description This file implements bluetooth manager's GStreamer streaming interface to external BT devices

Definition in file btrMgr_streamOutGst.c.


Data Structure Documentation

◆ _stBTRMgrSOGst

struct _stBTRMgrSOGst

Definition at line 64 of file btrMgr_streamOutGst.c.

Collaboration diagram for _stBTRMgrSOGst:
Collaboration graph
Data Fields
void * pPipeline
void * pSrc
void * pSink
void * pAudioConv
void * pAudioResample
void * pAudioEnc
void * pAECapsFilter
void * pRtpAudioPay
void * pVolume
void * pContext
GMutex gMtxMainLoopRunLock
GCond gCndMainLoopRun
guint emptyBufPushId
void * pLoop
void * pLoopThread
guint busWId
GstClockTime gstClkTStamp
guint64 inBufOffset
int i32InBufMaxSize
int i32InRate
int i32InChannels
unsigned int ui32InBitsPSample
unsigned int ui32InBufIntervalms
unsigned char ui8IpBufThrsCnt
fPtr_BTRMgr_SO_GstStatusCb fpcBSoGstStatus
void * pvcBUserData
GMutex pipelineDataMutex
gboolean bPipelineError
gboolean bIsInputPaused