From c337d26f9919085892670d7392571d11572c6f9f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 18 Jul 2013 14:43:35 +0400 Subject: [PATCH] lib/libcoolstream2: headers update --- lib/libcoolstream2/audio_cs.h | 19 ++++++++++++------ lib/libcoolstream2/cs_frontpanel.h | 4 ++-- lib/libcoolstream2/video_cs.h | 31 ++++++++++++++++++++++-------- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/lib/libcoolstream2/audio_cs.h b/lib/libcoolstream2/audio_cs.h index a5aa5d866..e15c00c29 100644 --- a/lib/libcoolstream2/audio_cs.h +++ b/lib/libcoolstream2/audio_cs.h @@ -78,15 +78,12 @@ private: unsigned int unit; cDemux *demux; cVideo *video; - CS_AUDIO_PDATA *privateData; - //unsigned int cEncodedDataOnSPDIF, cEncodedDataOnHDMI; + CS_AUDIO_PDATA *privateData; bool muted; AUDIO_FORMAT streamType; AUDIO_SYNC_MODE syncMode; - bool started; - unsigned int uAudioPTSDelay; - unsigned int uAudioDolbyPTSDelay, uAudioMpegPTSDelay; + unsigned int uCurrentPTSDelay; bool receivedDelay; /* internal methods */ @@ -100,6 +97,10 @@ private: bool spdifDD; bool hasMuteScheduled; bool analogOut; +#ifdef ISAPOLLO + bool containerMode; + bool hbrMode; +#endif // cAudio(unsigned int Unit); public: @@ -134,7 +135,7 @@ public: 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; } + unsigned int GetAudioDelay(void) { return uCurrentPTSDelay; } void SetSyncMode(AVSYNC_TYPE SyncMode); /* stream source */ @@ -162,6 +163,12 @@ public: void SetDemux(cDemux *Demux); void SetVideo(cVideo *Video); static cAudio *GetDecoder(unsigned int Unit); + bool Started(void); + bool Paused(void); +#ifdef ISAPOLLO + void SetHBRMode(bool Enable = false); + void SetContainerMode(bool Enable = false); +#endif }; #endif //__AUDIO_CS_H_ diff --git a/lib/libcoolstream2/cs_frontpanel.h b/lib/libcoolstream2/cs_frontpanel.h index 97c0f577a..f4963da36 100644 --- a/lib/libcoolstream2/cs_frontpanel.h +++ b/lib/libcoolstream2/cs_frontpanel.h @@ -76,10 +76,10 @@ typedef struct { typedef enum { FP_LED_1_ON = 0x81, FP_LED_2_ON = 0x82, - FP_LED_3_ON = 0x83, + FP_LED_3_ON = 0x88, FP_LED_1_OFF = 0x01, FP_LED_2_OFF = 0x02, - FP_LED_3_OFF = 0x03, + FP_LED_3_OFF = 0x08, } fp_led_ctrl_t; typedef struct { diff --git a/lib/libcoolstream2/video_cs.h b/lib/libcoolstream2/video_cs.h index 1d53e6268..70b08c6b8 100644 --- a/lib/libcoolstream2/video_cs.h +++ b/lib/libcoolstream2/video_cs.h @@ -5,7 +5,6 @@ /* */ /* (C) 2008 CoolStream International */ /* */ -/* $Id:: $ */ /*******************************************************************************/ #ifndef __VIDEO_CS_H_ #define __VIDEO_CS_H_ @@ -151,6 +150,12 @@ typedef enum VIDEO_CONTROL_MAX = VIDEO_CONTROL_SHARPNESS } VIDEO_CONTROL; +typedef enum +{ + VIDEO_STREAM_FEED_MODE_LIVE = 0, + VIDEO_STREAM_FEED_MODE_PLAYBACK, +} VIDEO_STREAM_FEED_MODE; + class cDemux; class cAudio; @@ -158,7 +163,7 @@ class cVideo { friend class cAudio; private: static cVideo *instance[CS_MAX_VIDEO_DECODERS]; - + // unsigned int unit; CS_VIDEO_PDATA *privateData; VIDEO_FORMAT streamType; @@ -171,14 +176,15 @@ private: DISPLAY_AR PictureAR; VIDEO_FRAME_RATE FrameRate; VIDEO_HDMI_CEC_MODE hdmiCECMode; +#ifdef ISAPOLLO + VIDEO_STREAM_FEED_MODE streamFeedMode; +#endif bool Interlaced; - unsigned int uVPPDisplayDelay; - unsigned int uVideoPTSDelay; + unsigned int uCurrentVPPDisplayDelay; + unsigned int uCurrentVideoPTSDelay; int StcPts; - bool started; unsigned int bStandby; bool blank; - bool playing; bool auto_format; int uFormatIndex; bool vbi_started; @@ -224,8 +230,8 @@ public: /* get play state */ int getPlayState(void); - void SetVPPDelay(unsigned int delay) { uVPPDisplayDelay = delay;}; - void SetVideoDelay(unsigned int delay) { uVideoPTSDelay = delay;}; + void SetVPPDelay(unsigned int delay) { uCurrentVPPDisplayDelay = delay; } + void SetVideoDelay(unsigned int delay) { uCurrentVideoPTSDelay = delay; } /* Notification handlers */ void HandleVPPMessage(int Event, void *pData); void HandleVideoMessage(void * hHandle, int Event, void *pData); @@ -233,7 +239,9 @@ public: VIDEO_DEFINITION GetVideoDef(void) { return VideoDefinition; } /* change video play state */ +#ifndef ISAPOLLO int Prepare(void * PcrChannel, unsigned short PcrPid, unsigned short VideoPid, void * hChannel = NULL); +#endif int Start(void * PcrChannel, unsigned short PcrPid, unsigned short VideoPid, void * hChannel = NULL); int Stop(bool Blank = true); bool Pause(void); @@ -271,6 +279,13 @@ public: bool GetScreenImage(unsigned char * &data, int &xres, int &yres, bool get_video = true, bool get_osd = false, bool scale_to_video = false); void SetDemux(cDemux *Demux); static cVideo *GetDecoder(unsigned int Unit); + bool Started(void); + bool Playing(void); + bool Paused(void); + void SyncSTC(void); +#ifdef ISAPOLLO + void SetStreamFeedMode(VIDEO_STREAM_FEED_MODE Mode); +#endif }; #endif // __VIDEO_CS_H_