#ifndef __MEDIA_FLOW_H__ #define __MEDIA_FLOW_H__ #include "runav.h" //#include #include "types.h" //#include "medialib_controller.h" //#include "net_util.h" //typedef long long INT64; #include "netctrl_video_flow_ctrl.h" #define MAX_PROGRAM_COUNT 32 #define MAX_AUDIO_COUNT 20 #define MAX_FF_FR_SPEED 5 #define MAX_BUFFER_COUNT 12 #define NP_URL_MAX_LEN (2048) typedef struct _Miracast_sDataSource { char src; char *pFullPath; int format; int index; }Miracast_sDataSource; typedef struct _MEDIA_CTRL_HANDLE { short nMediaStatus; short nMediaMode; pthread_mutex_t MediaCmd_Mutex; pthread_mutex_t MediaSubtitle_Mutex; pthread_mutex_t MediaEvent_Mutex; pthread_cond_t CondEvent_Thread; pthread_t MediaEvent_Thread; unsigned char bMutexThread; char strFilePath[300]; short nEventBuffer[MAX_BUFFER_COUNT]; unsigned char nEnqIdx; unsigned char nDeqIdx; int nEvent; unsigned char nSpeed_FF; unsigned char nSpeed_FR; unsigned long nRunavOpt; unsigned char bPlay; unsigned char bAudioOn; unsigned char bSubtitleOn; long long nTotalTime; int nCurrentProId; unsigned char nTotalProgram; unsigned char nCurrentSubtitleIdx; unsigned char nSubtitleCount; unsigned char bVideoNotSupport; unsigned char bAudioNotSupport; AvStreamInfo AvStreamInfo[MAX_PROGRAM_COUNT]; runav_stream_info_t *pRunavStreamInfo; media_info_t MediaFileInfo; } MediaCtrlHandle, *pMediaCtrlHandle; typedef enum { MEDIA_PLAYER_AV_EVENT_DECODE_START = 0X0001000F, /*!< Audio/Video Decode Start evnet*/ MEDIA_PLAYER_AV_EVENT_INITOK = 0X0001000D, MEDIA_PLAYER_AV_EVENT_PLAY_DONE = 0X0001000E, MEDIA_PLAYER_EVENT_END = 0X000FFFFF, } AL_MEDIA_PLAYER_Event_t; void MediaCtrl_IsDebugON(); int MediaCtrl_Initialize(); int MediaCtrl_Finalize(); int MediaCtrl_SetMediaInfo(char *pszFileName); void* MediaCtrl_GetMediaCtrlHandle(); void MediaCtrl_UpdateStreamInfo(void *Arg); void MediaCtrl_EventHandler(int nEventID, void *arg); void MediaCtrl_SetNotificationFunc(void *pData); void MediaCtrl_SetMediaMode(int nMode); int MediaCtrl_GetMediaStatus(); unsigned char MediaCtrl_IsPlay(); void MediaCtrl_VideoAudioSupport(unsigned char *bVideoNotSupport, unsigned char *bAudioNotSupport); unsigned char MediaCtrl_InitMutex(); void MediaCtrl_DestroyMutex(); int MediaCtrl_Init(); void MediaCtrl_Exit(); int MediaCtrl_SetDataSource(Miracast_sDataSource *pData, unsigned long nLowTime, unsigned long nHighTime); int MediaCtrl_GetFilmInfo(void *pFilmInfo); void MediaCtrl_Play(); void MediaCtrl_Pause(); void MediaCtrl_Stop(); int MediaCtrl_FastForward(); int MediaCtrl_FastRewind(); int MediaCtrl_GetSubtitleCount(); void MediaCtrl_SetSubtitleOff(); void MediaCtrl_SetSubtitleIndex(int nIndex, int nType); int MediaCtrl_GetAudioCount(); int MediaCtrl_GetCurrentAudioIndex(char *pLang); void MediaCtrl_SetAudioVideoFlag(BOOL bEnableAudio, BOOL bEnableVideo); //int MediaCtrl_SetAudioIndex(int nIndex, char *pLang); //void MediaCtrl_ChannelUpDown(int nUpDown); unsigned long MediaCtrl_GetCurrentTime(); long long MediaCtrl_GetTotalTime(); int MediaCtrl_SeekTime(unsigned long nAbsSeconds); // milliSecond void MediaCtrl_GetPosition(unsigned long *nLow, unsigned long *nHigh); void MediaCtrl_Player_RegisterMsgRouteway(BOOL (*SendMsg_Func)(AL_MEDIA_PLAYER_Event_t)); //void MediaCtrl_Next(); //static void * _MediaCtrl_Next(); //void MediaCtrl_Prev(); //static void * _MediaCtrl_Prev(); //int MediaCtrl_Set(Net_Player_Set_e eSet, UINT32 dParam); //int MediaCtrl_Get(Net_Player_Get_e eGet, UINT32 *dParam); /* typedef struct _sDataSource { char src; char *pFullPath; int format; }sDataSource; typedef int (*iFunc_SetNotificationCBFunc)(void *); typedef void (*iFunc_SetMediaMode)(int); typedef int (*iFunc_QueryStatus)(); typedef int (*iFunc_Init)(); typedef int (*iFunc_Exit)(); typedef int (*iFunc_SetDataSource)(sDataSource*, unsigned long, unsigned long); typedef int (*iFunc_GetFilmInfo)(void*); typedef void (*iFunc_Play)(); typedef void (*iFunc_Pause)(); typedef void (*iFunc_Stop)(); typedef int (*iFunc_FastForward)(void *); typedef int (*iFunc_FastRewind)(void *); typedef void (*iFunc_SetSubbtitleOff)(); typedef void (*iFunc_SetSubtitleIndex)(int); typedef void (*iFunc_SetAudioVideoFlag)(BOOL, BOOL); typedef void (*iFunc_SetAudioIndex)(int); typedef void (*iFunc_ChannelUpDown)(int); typedef unsigned long (*iFunc_GetCurrentTime)(); typedef int (*iFunc_SeekTime)(unsigned long); typedef void (*iFunc_GetPosition)(unsigned long*, unsigned long*); typedef struct _imedia_controller { iFunc_SetNotificationCBFunc pFunc_SetNotificationCBFunc; iFunc_SetMediaMode pFunc_SetMediaMode; iFunc_QueryStatus pFunc_QueryStatus; iFunc_Init pFunc_Init; iFunc_Exit pFunc_Exit; iFunc_SetDataSource pFunc_SetDataSource; iFunc_GetFilmInfo pFunc_GetFilmInfo; iFunc_Play pFunc_Play; iFunc_Pause pFunc_Pause; iFunc_Stop pFunc_Stop; iFunc_FastForward pFunc_FastForward; iFunc_FastRewind pFunc_FastRewind; iFunc_SetSubbtitleOff pFunc_SetSubbtitleOff; iFunc_SetSubtitleIndex pFunc_SetSubtitleIndex; iFunc_SetAudioVideoFlag pFunc_SetAudioVideoFlag; iFunc_SetAudioIndex pFunc_SetAudioIndex; iFunc_ChannelUpDown pFunc_ChannelUpDown; iFunc_GetCurrentTime pFunc_GetCurrentTime; iFunc_SeekTime pFunc_SeekTime; iFunc_GetPosition piFunc_GetPosition; } iMedia_Controller; */ #endif