diff --git a/lib/libcoolstream/audio_cs.h b/lib/libcoolstream/audio_cs.h index a961991b6..c954b1a8b 100644 --- a/lib/libcoolstream/audio_cs.h +++ b/lib/libcoolstream/audio_cs.h @@ -3,28 +3,26 @@ #ifndef _AUDIO_CS_H_ #define _AUDIO_CS_H_ -typedef enum -{ - AUDIO_SYNC_WITH_PTS, - AUDIO_NO_SYNC, - AUDIO_SYNC_AUDIO_MASTER +typedef enum { + AUDIO_SYNC_WITH_PTS, + AUDIO_NO_SYNC, + AUDIO_SYNC_AUDIO_MASTER } AUDIO_SYNC_MODE; -typedef enum -{ - AUDIO_FMT_AUTO = 0, - AUDIO_FMT_MPEG, - AUDIO_FMT_MP3, - AUDIO_FMT_DOLBY_DIGITAL, - AUDIO_FMT_BASIC = AUDIO_FMT_DOLBY_DIGITAL, - AUDIO_FMT_AAC, - AUDIO_FMT_AAC_PLUS, - AUDIO_FMT_DD_PLUS, - AUDIO_FMT_DTS, - AUDIO_FMT_AVS, - AUDIO_FMT_MLP, - AUDIO_FMT_WMA, - AUDIO_FMT_ADVANCED = AUDIO_FMT_MLP +typedef enum { + AUDIO_FMT_AUTO = 0, + AUDIO_FMT_MPEG, + AUDIO_FMT_MP3, + AUDIO_FMT_DOLBY_DIGITAL, + AUDIO_FMT_BASIC = AUDIO_FMT_DOLBY_DIGITAL, + AUDIO_FMT_AAC, + AUDIO_FMT_AAC_PLUS, + AUDIO_FMT_DD_PLUS, + AUDIO_FMT_DTS, + AUDIO_FMT_AVS, + AUDIO_FMT_MLP, + AUDIO_FMT_WMA, + AUDIO_FMT_ADVANCED = AUDIO_FMT_MLP } AUDIO_FORMAT; #ifndef CS_AUDIO_PDATA @@ -33,84 +31,83 @@ typedef enum #include "cs_types.h" -class cAudio -{ - private: - CS_AUDIO_PDATA * privateData; - unsigned int cEncodedDataOnSPDIF, cEncodedDataOnHDMI; - bool Muted; +class cAudio { +private: + CS_AUDIO_PDATA *privateData; + unsigned int cEncodedDataOnSPDIF, cEncodedDataOnHDMI; + bool muted; - AUDIO_FORMAT StreamType; - AUDIO_SYNC_MODE SyncMode; - bool started; - unsigned int uAudioPTSDelay; - unsigned int uAudioDolbyPTSDelay, uAudioMpegPTSDelay; - bool receivedDelay; + AUDIO_FORMAT streamType; + AUDIO_SYNC_MODE syncMode; + bool started; + unsigned int uAudioPTSDelay; + unsigned int uAudioDolbyPTSDelay, uAudioMpegPTSDelay; + bool receivedDelay; - /* internal methods */ - int setBypassMode(int disable); - int LipsyncAdjust(void); - int atten; - int volume; + /* internal methods */ + int setBypassMode(bool Disable); + int LipsyncAdjust(void); + int atten; + int volume; - bool clip_started; - bool hdmiDD; - bool spdifDD; - bool hasMuteScheduled; - bool analogOut; - public: - /* construct & destruct */ - cAudio(void * hBuffer, void * encHD, void * encSD); - ~cAudio(void); + bool clip_started; + bool hdmiDD; + bool spdifDD; + bool hasMuteScheduled; + bool analogOut; +public: + /* construct & destruct */ + cAudio(void *hBuffer, void *encHD, void *encSD); + ~cAudio(void); - void * GetHandle(); - void * GetDSP(); - void HandleAudioMessage(int Event, void *pData); - void HandlePcmMessage(int Event, void *pData); - /* shut up */ - int mute(void); - int unmute(void); - int SetMute(int enable); + void *GetHandle(void); + void *GetDSP(void); + void HandleAudioMessage(int Event, void *pData); + void HandlePcmMessage(int Event, void *pData); + /* shut up */ + int mute(void); + int unmute(void); + int SetMute(bool Enable); - /* bypass audio to external decoder */ - int enableBypass(void); - int disableBypass(void); + /* bypass audio to external decoder */ + int enableBypass(void); + int disableBypass(void); - /* volume, min = 0, max = 255 */ - int setVolume(unsigned int left, unsigned int right); - int getVolume(void) { return volume;} - bool getMuteStatus(void) { return Muted; } + /* volume, min = 0, max = 255 */ + int setVolume(unsigned int Left, unsigned int Right); + int getVolume(void) { return volume;} + bool getMuteStatus(void) { return muted; } - /* start and stop audio */ - int Start(void); - int Stop(void); - bool Pause(bool Pcm = true); - bool Resume(bool Pcm = true); - void SetStreamType(AUDIO_FORMAT type) { StreamType = type; }; - AUDIO_FORMAT GetStreamType(void) { return StreamType; } - bool ReceivedAudioDelay(void) { return receivedDelay; } - void SetReceivedAudioDelay(bool set = false) { receivedDelay = set; } - unsigned int GetAudioDelay(void) { return (StreamType == AUDIO_FMT_DOLBY_DIGITAL) ? uAudioDolbyPTSDelay : uAudioMpegPTSDelay; } - void SetSyncMode(AVSYNC_TYPE Mode); + /* start and stop audio */ + int Start(void); + int Stop(void); + bool Pause(bool Pcm = true); + bool Resume(bool Pcm = true); + void SetStreamType(AUDIO_FORMAT StreamType) { streamType = StreamType; }; + AUDIO_FORMAT GetStreamType(void) { return streamType; } + bool ReceivedAudioDelay(void) { return receivedDelay; } + void SetReceivedAudioDelay(bool Set = false) { receivedDelay = Set; } + unsigned int GetAudioDelay(void) { return (streamType == AUDIO_FMT_DOLBY_DIGITAL) ? uAudioDolbyPTSDelay : uAudioMpegPTSDelay; } + void SetSyncMode(AVSYNC_TYPE SyncMode); - /* stream source */ - int getSource(void); - int setSource(int source); - int Flush(void); + /* stream source */ + int getSource(void); + int setSource(int Source); + int Flush(void); - /* select channels */ - int setChannel(int channel); - int getChannel(void); - int PrepareClipPlay(int uNoOfChannels, int uSampleRate, int uBitsPerSample, int bLittleEndian); - int WriteClip(unsigned char * buffer, int size); - int StopClip(); - void getAudioInfo(int &type, int &layer, int& freq, int &bitrate, int &mode); - void SetSRS(int iq_enable, int nmgr_enable, int iq_mode, int iq_level); - bool IsHdmiDDSupported(); - void SetHdmiDD(bool enable); - void SetSpdifDD(bool enable); - void ScheduleMute(bool On); - void EnableAnalogOut(bool enable); + /* select channels */ + int setChannel(int Channel); + int getChannel(void); + int PrepareClipPlay(int uNoOfChannels, int uSampleRate, int uBitsPerSample, int bLittleEndian); + int WriteClip(unsigned char *Buffer, int Size); + int StopClip(void); + void getAudioInfo(int &Type, int &Layer, int &Freq, int &Bitrate, int &Mode); + void SetSRS(int iq_enable, int nmgr_enable, int iq_mode, int iq_level); + bool IsHdmiDDSupported(void); + void SetHdmiDD(bool Enable); + void SetSpdifDD(bool Enable); + void ScheduleMute(bool On); + void EnableAnalogOut(bool Enable); }; #endif diff --git a/lib/libcoolstream/cs_api.h b/lib/libcoolstream/cs_api.h index 0dccae4c5..8119e50be 100644 --- a/lib/libcoolstream/cs_api.h +++ b/lib/libcoolstream/cs_api.h @@ -3,6 +3,23 @@ typedef void (*cs_messenger) (unsigned int msg, unsigned int data); +enum CS_LOG_MODULE { + CS_LOG_CI = 0, + CS_LOG_HDMI_CEC, + CS_LOG_HDMI, + CS_LOG_VIDEO, + CS_LOG_VIDEO_DRM, + CS_LOG_AUDIO, + CS_LOG_DEMUX, + CS_LOG_DENC, + CS_LOG_PVR_RECORD, + CS_LOG_PVR_PLAY, + CS_LOG_POWER_CTRL, + CS_LOG_POWER_CLK, + CS_LOG_MEM, + CS_LOG_API, +}; + // Initialization void cs_api_init(void); void cs_api_exit(void); @@ -20,7 +37,10 @@ cs_messenger cs_get_messenger(void); // Logging functions void cs_log_enable(void); void cs_log_disable(void); -void cs_log_message(const char *module, const char *fmt, ...); +void cs_log_message(const char *prefix, const char *fmt, ...); +void cs_log_module_enable(enum CS_LOG_MODULE module); +void cs_log_module_disable(enum CS_LOG_MODULE module); +void cs_log_module_message(enum CS_LOG_MODULE module, const char *fmt, ...); // TS Routing unsigned int cs_get_ts_output(void); diff --git a/lib/libcoolstream/dmx_cs.h b/lib/libcoolstream/dmx_cs.h index b2dc10783..21d32e158 100644 --- a/lib/libcoolstream/dmx_cs.h +++ b/lib/libcoolstream/dmx_cs.h @@ -11,12 +11,12 @@ #include -#define DEMUX_POLL_TIMEOUT 0 // timeout in ms -#define MAX_FILTER_LENGTH 16 // maximum number of filters +#define DEMUX_POLL_TIMEOUT 0 // timeout in ms +#define MAX_FILTER_LENGTH 16 // maximum number of filters #ifndef DMX_FILTER_SIZE -#define DMX_FILTER_SIZE MAX_FILTER_LENGTH +#define DMX_FILTER_SIZE MAX_FILTER_LENGTH #endif -#define MAX_DMX_UNITS 4 //DMX_NUM_TSS_INPUTS_REVB +#define MAX_DMX_UNITS 4 //DMX_NUM_TSS_INPUTS_REVB #ifndef CS_DMX_PDATA #define CS_DMX_PDATA void @@ -24,54 +24,52 @@ #include "cs_types.h" -typedef enum -{ - DMX_VIDEO_CHANNEL = 1, - DMX_AUDIO_CHANNEL, - DMX_PES_CHANNEL, - DMX_PSI_CHANNEL, - DMX_PIP_CHANNEL, - DMX_TP_CHANNEL, - DMX_PCR_ONLY_CHANNEL +typedef enum { + DMX_VIDEO_CHANNEL = 1, + DMX_AUDIO_CHANNEL, + DMX_PES_CHANNEL, + DMX_PSI_CHANNEL, + DMX_PIP_CHANNEL, + DMX_TP_CHANNEL, + DMX_PCR_ONLY_CHANNEL } DMX_CHANNEL_TYPE; -class cDemux -{ - private: - int timeout; - unsigned short pid; - unsigned char tid[MAX_FILTER_LENGTH], mask[MAX_FILTER_LENGTH]; - bool nb; // non block - pthread_cond_t read_cond; - pthread_mutex_t mutex; - AVSYNC_TYPE SyncMode; - int uLength; - bool enabled; - int unit; +class cDemux { +private: + int timeout; + unsigned short pid; + unsigned char tid[MAX_FILTER_LENGTH], mask[MAX_FILTER_LENGTH]; + bool nb; // non block + pthread_cond_t read_cond; + pthread_mutex_t mutex; + AVSYNC_TYPE syncMode; + int uLength; + bool enabled; + int unit; - DMX_CHANNEL_TYPE type; - CS_DMX_PDATA * privateData; - public: - bool Open(DMX_CHANNEL_TYPE pes_type, void * hVideoBuffer = NULL, int uBufferSize = 8192); - void Close(void); - bool Start(void); - bool Stop(void); - int Read(unsigned char *buff, int len, int Timeout = 0); - void SignalRead(int len); - unsigned short GetPID(void) { return pid; } - const unsigned char *GetFilterTID(void) { return tid; } - const unsigned char *GetFilterMask(void) { return mask; } - bool sectionFilter(unsigned short Pid, const unsigned char * const Tid, const unsigned char * const Mask, int len, int Timeout = DEMUX_POLL_TIMEOUT, const unsigned char * const nMask = NULL); - bool pesFilter(const unsigned short Pid); - void SetSyncMode(AVSYNC_TYPE mode); - void * getBuffer(); - void * getChannel(); - DMX_CHANNEL_TYPE getChannelType(void); - void addPid(unsigned short Pid); - void getSTC(int64_t * STC); - // - cDemux(int num = 0); - ~cDemux(); + DMX_CHANNEL_TYPE type; + CS_DMX_PDATA * privateData; +public: + cDemux(int num = 0); + ~cDemux(); + // + bool Open(DMX_CHANNEL_TYPE pes_type, void * hVideoBuffer = NULL, int uBufferSize = 8192); + void Close(void); + bool Start(void); + bool Stop(void); + int Read(unsigned char *buff, int len, int Timeout = 0); + void SignalRead(int len); + unsigned short GetPID(void) { return pid; } + const unsigned char *GetFilterTID(void) { return tid; } + const unsigned char *GetFilterMask(void) { return mask; } + bool sectionFilter(unsigned short Pid, const unsigned char * const Tid, const unsigned char * const Mask, int len, int Timeout = DEMUX_POLL_TIMEOUT, const unsigned char * const nMask = NULL); + bool pesFilter(const unsigned short Pid); + void SetSyncMode(AVSYNC_TYPE SyncMode); + void *getBuffer(void); + void *getChannel(void); + DMX_CHANNEL_TYPE getChannelType(void); + void addPid(unsigned short Pid); + void getSTC(int64_t *STC); + // }; - #endif //__DEMUX_H diff --git a/lib/libcoolstream/dvb-ci.h b/lib/libcoolstream/dvb-ci.h index 9b5f8486b..d527272af 100644 --- a/lib/libcoolstream/dvb-ci.h +++ b/lib/libcoolstream/dvb-ci.h @@ -11,6 +11,7 @@ void CI_EnterMenu(unsigned char bSlotIndex); #ifdef __cplusplus } #endif +#include #define MAX_MMI_ITEMS 20 #define MAX_MMI_TEXT_LEN 255 @@ -34,7 +35,6 @@ typedef struct char enguiryText[MAX_MMI_TEXT_LEN]; } MMI_ENGUIRY_INFO; -typedef void (*SEND_MSG_HOOK) (unsigned int msg, unsigned int data); class cDvbCi { private: @@ -44,16 +44,14 @@ class cDvbCi { unsigned char * pmtbuf; void SendPMT(); pthread_mutex_t ciMutex; + cDvbCi(int Slots); public: bool Init(void); bool SendPMT(unsigned char *data, int len); bool SendDateTime(void); // - cDvbCi(int Slots); ~cDvbCi(); static cDvbCi * getInstance(); - SEND_MSG_HOOK SendMessage; - void SetHook(SEND_MSG_HOOK _SendMessage) { SendMessage = _SendMessage; }; bool CamPresent(int slot); bool GetName(int slot, char * name); bool Reset(int slot); diff --git a/lib/libcoolstream/pwrmngr.h b/lib/libcoolstream/pwrmngr.h index aabc07b2b..0adbb267d 100644 --- a/lib/libcoolstream/pwrmngr.h +++ b/lib/libcoolstream/pwrmngr.h @@ -38,7 +38,7 @@ private: bool opened; PWR_STATE powerState; // - static void ApplicationCallback(void */*hHandle*/, void */*pUserData*/, signed long /*eEvent*/, void */*pEventData*/, void */*pTag*/) {} + static void ApplicationCallback(void *hHandle, void *pUserData, signed long eEvent, void *pEventData, void *pTag) {} bool SetState(PWR_STATE PowerState); public: bool Open(void); diff --git a/lib/libcoolstream/video_cs.h b/lib/libcoolstream/video_cs.h index 5e1fba652..14ed049bb 100644 --- a/lib/libcoolstream/video_cs.h +++ b/lib/libcoolstream/video_cs.h @@ -110,7 +110,8 @@ class cVideo VIDEO_FORMAT StreamType; VIDEO_DEFINITION VideoDefinition; DISPLAY_AR DisplayAR; - VIDEO_PLAY_MODE SyncMode; + VIDEO_PLAY_MODE playMode; + AVSYNC_TYPE syncMode; DISPLAY_AR_MODE ARMode; VIDEO_DB_DR eDbDr; DISPLAY_AR PictureAR;