media_flow_ctrl.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. #ifndef __MEDIA_FLOW_H__
  2. #define __MEDIA_FLOW_H__
  3. #include "runav.h"
  4. //#include <sisap/subparser.h>
  5. #include "types.h"
  6. //#include "medialib_controller.h"
  7. //#include "net_util.h"
  8. //typedef long long INT64;
  9. #include "netctrl_video_flow_ctrl.h"
  10. #define MAX_PROGRAM_COUNT 32
  11. #define MAX_AUDIO_COUNT 20
  12. #define MAX_FF_FR_SPEED 5
  13. #define MAX_BUFFER_COUNT 12
  14. #define NP_URL_MAX_LEN (2048)
  15. typedef struct _Miracast_sDataSource
  16. {
  17. char src;
  18. char *pFullPath;
  19. int format;
  20. int index;
  21. }Miracast_sDataSource;
  22. typedef struct _MEDIA_CTRL_HANDLE {
  23. short nMediaStatus;
  24. short nMediaMode;
  25. pthread_mutex_t MediaCmd_Mutex;
  26. pthread_mutex_t MediaSubtitle_Mutex;
  27. pthread_mutex_t MediaEvent_Mutex;
  28. pthread_cond_t CondEvent_Thread;
  29. pthread_t MediaEvent_Thread;
  30. unsigned char bMutexThread;
  31. char strFilePath[300];
  32. short nEventBuffer[MAX_BUFFER_COUNT];
  33. unsigned char nEnqIdx;
  34. unsigned char nDeqIdx;
  35. int nEvent;
  36. unsigned char nSpeed_FF;
  37. unsigned char nSpeed_FR;
  38. unsigned long nRunavOpt;
  39. unsigned char bPlay;
  40. unsigned char bAudioOn;
  41. unsigned char bSubtitleOn;
  42. long long nTotalTime;
  43. int nCurrentProId;
  44. unsigned char nTotalProgram;
  45. unsigned char nCurrentSubtitleIdx;
  46. unsigned char nSubtitleCount;
  47. unsigned char bVideoNotSupport;
  48. unsigned char bAudioNotSupport;
  49. AvStreamInfo AvStreamInfo[MAX_PROGRAM_COUNT];
  50. runav_stream_info_t *pRunavStreamInfo;
  51. media_info_t MediaFileInfo;
  52. } MediaCtrlHandle, *pMediaCtrlHandle;
  53. typedef enum
  54. {
  55. MEDIA_PLAYER_AV_EVENT_DECODE_START = 0X0001000F, /*!< Audio/Video Decode Start evnet*/
  56. MEDIA_PLAYER_AV_EVENT_INITOK = 0X0001000D,
  57. MEDIA_PLAYER_AV_EVENT_PLAY_DONE = 0X0001000E,
  58. MEDIA_PLAYER_EVENT_END = 0X000FFFFF,
  59. } AL_MEDIA_PLAYER_Event_t;
  60. void MediaCtrl_IsDebugON();
  61. int MediaCtrl_Initialize();
  62. int MediaCtrl_Finalize();
  63. int MediaCtrl_SetMediaInfo(char *pszFileName);
  64. void* MediaCtrl_GetMediaCtrlHandle();
  65. void MediaCtrl_UpdateStreamInfo(void *Arg);
  66. void MediaCtrl_EventHandler(int nEventID, void *arg);
  67. void MediaCtrl_SetNotificationFunc(void *pData);
  68. void MediaCtrl_SetMediaMode(int nMode);
  69. int MediaCtrl_GetMediaStatus();
  70. unsigned char MediaCtrl_IsPlay();
  71. void MediaCtrl_VideoAudioSupport(unsigned char *bVideoNotSupport, unsigned char *bAudioNotSupport);
  72. unsigned char MediaCtrl_InitMutex();
  73. void MediaCtrl_DestroyMutex();
  74. int MediaCtrl_Init();
  75. void MediaCtrl_Exit();
  76. int MediaCtrl_SetDataSource(Miracast_sDataSource *pData, unsigned long nLowTime, unsigned long nHighTime);
  77. int MediaCtrl_GetFilmInfo(void *pFilmInfo);
  78. void MediaCtrl_Play();
  79. void MediaCtrl_Pause();
  80. void MediaCtrl_Stop();
  81. int MediaCtrl_FastForward();
  82. int MediaCtrl_FastRewind();
  83. int MediaCtrl_GetSubtitleCount();
  84. void MediaCtrl_SetSubtitleOff();
  85. void MediaCtrl_SetSubtitleIndex(int nIndex, int nType);
  86. int MediaCtrl_GetAudioCount();
  87. int MediaCtrl_GetCurrentAudioIndex(char *pLang);
  88. void MediaCtrl_SetAudioVideoFlag(BOOL bEnableAudio, BOOL bEnableVideo);
  89. //int MediaCtrl_SetAudioIndex(int nIndex, char *pLang);
  90. //void MediaCtrl_ChannelUpDown(int nUpDown);
  91. unsigned long MediaCtrl_GetCurrentTime();
  92. long long MediaCtrl_GetTotalTime();
  93. int MediaCtrl_SeekTime(unsigned long nAbsSeconds); // milliSecond
  94. void MediaCtrl_GetPosition(unsigned long *nLow, unsigned long *nHigh);
  95. void MediaCtrl_Player_RegisterMsgRouteway(BOOL (*SendMsg_Func)(AL_MEDIA_PLAYER_Event_t));
  96. //void MediaCtrl_Next();
  97. //static void * _MediaCtrl_Next();
  98. //void MediaCtrl_Prev();
  99. //static void * _MediaCtrl_Prev();
  100. //int MediaCtrl_Set(Net_Player_Set_e eSet, UINT32 dParam);
  101. //int MediaCtrl_Get(Net_Player_Get_e eGet, UINT32 *dParam);
  102. /*
  103. typedef struct _sDataSource
  104. {
  105. char src;
  106. char *pFullPath;
  107. int format;
  108. }sDataSource;
  109. typedef int (*iFunc_SetNotificationCBFunc)(void *);
  110. typedef void (*iFunc_SetMediaMode)(int);
  111. typedef int (*iFunc_QueryStatus)();
  112. typedef int (*iFunc_Init)();
  113. typedef int (*iFunc_Exit)();
  114. typedef int (*iFunc_SetDataSource)(sDataSource*, unsigned long, unsigned long);
  115. typedef int (*iFunc_GetFilmInfo)(void*);
  116. typedef void (*iFunc_Play)();
  117. typedef void (*iFunc_Pause)();
  118. typedef void (*iFunc_Stop)();
  119. typedef int (*iFunc_FastForward)(void *);
  120. typedef int (*iFunc_FastRewind)(void *);
  121. typedef void (*iFunc_SetSubbtitleOff)();
  122. typedef void (*iFunc_SetSubtitleIndex)(int);
  123. typedef void (*iFunc_SetAudioVideoFlag)(BOOL, BOOL);
  124. typedef void (*iFunc_SetAudioIndex)(int);
  125. typedef void (*iFunc_ChannelUpDown)(int);
  126. typedef unsigned long (*iFunc_GetCurrentTime)();
  127. typedef int (*iFunc_SeekTime)(unsigned long);
  128. typedef void (*iFunc_GetPosition)(unsigned long*, unsigned long*);
  129. typedef struct _imedia_controller
  130. {
  131. iFunc_SetNotificationCBFunc pFunc_SetNotificationCBFunc;
  132. iFunc_SetMediaMode pFunc_SetMediaMode;
  133. iFunc_QueryStatus pFunc_QueryStatus;
  134. iFunc_Init pFunc_Init;
  135. iFunc_Exit pFunc_Exit;
  136. iFunc_SetDataSource pFunc_SetDataSource;
  137. iFunc_GetFilmInfo pFunc_GetFilmInfo;
  138. iFunc_Play pFunc_Play;
  139. iFunc_Pause pFunc_Pause;
  140. iFunc_Stop pFunc_Stop;
  141. iFunc_FastForward pFunc_FastForward;
  142. iFunc_FastRewind pFunc_FastRewind;
  143. iFunc_SetSubbtitleOff pFunc_SetSubbtitleOff;
  144. iFunc_SetSubtitleIndex pFunc_SetSubtitleIndex;
  145. iFunc_SetAudioVideoFlag pFunc_SetAudioVideoFlag;
  146. iFunc_SetAudioIndex pFunc_SetAudioIndex;
  147. iFunc_ChannelUpDown pFunc_ChannelUpDown;
  148. iFunc_GetCurrentTime pFunc_GetCurrentTime;
  149. iFunc_SeekTime pFunc_SeekTime;
  150. iFunc_GetPosition piFunc_GetPosition;
  151. } iMedia_Controller;
  152. */
  153. #endif