avp_if.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. #ifndef __AVP_IF_H__
  2. #define __AVP_IF_H__
  3. #ifdef AVP_IF_IMPLEMENTATION
  4. #define AVP_IF_EXTERN
  5. #else
  6. #define AVP_IF_EXTERN extern
  7. #endif
  8. #include "avp_ext.h"
  9. #define AVP_IF_ERROR_FINALIZE_FAIL -14
  10. #define AVP_IF_ERROR_INIT_LIST -13
  11. #define AVP_IF_ERROR_WAITING_STREAM_INVALIDATE -12
  12. #define AVP_IF_ERROR_SET_STREAM_STATE -11
  13. #define AVP_IF_ERROR_STREAM_INVALIDATE -10
  14. #define AVP_IF_ERROR_KERNEL_HANDLE -9
  15. #define AVP_IF_ERROR_PE_HANDLE -8
  16. #define AVP_IF_ERROR_RESOUCE_ALLOCATION -7
  17. #define AVP_IF_QUEUE_FULL -6
  18. #define AVP_IF_SENDMSG_FAIL -5
  19. #define AVP_IF_INITIALIZE_FAIL -4
  20. #define AVP_IF_ALLOC_MEMORYFAIL -3
  21. #define AVP_IF_INVALID_PARAMETER -2
  22. #define AVP_IF_WEBSITE_UNEXIST -1
  23. #define AVP_IF_SUCCESSFUL 0
  24. #define AVP_IF_SYSTEM_ONBUSY 1
  25. #define AVP_IF_WARNING_DATA_NOT_READY 2
  26. #define AVP_IF_WARNING_PE_BUSY 3
  27. #define AVP_IF_WARNING_PE_UNSUPPORT 4
  28. #define AVP_IF_WARNING_PLAYBACK_STREAM_INVALIDATE 5
  29. #define AVP_IF_WARNING_PLAYBACK_STATE_INVALIDATE 6
  30. #define AVP_IF_WARNING_PLAYBACK_FAIL_INVALID 7
  31. #define AVP_IF_WARNING_STREAMOPEN_FAIL 8
  32. //PE return warning
  33. #define AVP_IF_PE_START (10)
  34. #define AVP_IF_PE_STATE_TRANSITION_WARNING (1+AVP_IF_PE_START) /*!< PE_IF_STATE_TRANSITION_WARNING*/
  35. #define AVP_IF_PE_PLAYBACK_OBJECT_WARNING (2+AVP_IF_PE_START) /*!< PE_IF_PLAYBACK_OBJECT_WARNING*/
  36. #define AVP_IF_PE_OBJECT_NOT_PLAYING_WARNING (3+AVP_IF_PE_START) /*!< PE_IF_OBJECT_NOT_PLAYING_WARNING*/
  37. #define AVP_IF_PE_DVD_ATTRIBUTE_SETTING_WARNING (4+AVP_IF_PE_START) /*!< PE_IF_DVD_ATTRIBUTE_SETTING_WARNING*/
  38. #define AVP_IF_PE_REPEAT_AB_TOO_CLOSE_WARNING (5+AVP_IF_PE_START) /*!< PE_IF_REPEAT_AB_TOO_CLOSE_WARNING*/
  39. #define AVP_IF_PE_MP3_LYRIC_NOT_PRESENT_WARNING (6+AVP_IF_PE_START) /*!< PE_IF_MP3_LYRIC_NOT_PRESENT_WARNING*/
  40. #define AVP_IF_PE_MP3_ID3_NOT_PRESENT_WARNING (7+AVP_IF_PE_START) /*!< PE_IF_MP3_ID3_NOT_PRESENT_WARNING*/
  41. #define AVP_IF_PE_TRICKMODE_NOT_SUPPORT_WARNING (8+AVP_IF_PE_START) /*!< PE_IF_TRICKMODE_NOT_SUPPORT_WARNING*/
  42. #define AVP_IF_PE_INVALID_STATE_WARNING (9+AVP_IF_PE_START) /*!< PE_IF_INVALID_STATE_WARNING*/
  43. #define AVP_IF_PE_WARNING_PARAM_ALREADY_SET (10+AVP_IF_PE_START) /*!< PE_IF_WARNING_PARAM_ALREADY_SET*/
  44. #define AVP_IF_PE_DVD_HIGHLIGHT_NOT_PRESENT_WARNING (11+AVP_IF_PE_START) /*!< PE_IF_DVD_HIGHLIGHT_NOT_PRESENT_WARNING*/
  45. #define AVP_IF_PE_DVD_BTN_NUM_INVALID_WARNING (12+AVP_IF_PE_START) /*!< PE_IF_DVD_BTN_NUM_INVALID_WARNING*/
  46. #define AVP_IF_PE_AVD_BUSY_WARNING (13+AVP_IF_PE_START) /*!< PE_IF_AVD_BUSY_WARNING*/
  47. #define AVP_IF_PE_MINUS_VR_ATTRIBUTE_SETTING_WARNING (14+AVP_IF_PE_START) /*!< PE_IF_MINUS_VR_ATTRIBUTE_SETTING_WARNING*/
  48. #define AVP_IF_PE_DIVX_SOURCE_DRM_WARNING (15+AVP_IF_PE_START) /*!< PE_IF_DIVX_SOURCE_DRM_WARNING*/
  49. #define AVP_IF_PE_DIVX_SOURCE_DRM_UNSUPPORT_AUDIO_WARNING (16+AVP_IF_PE_START) /*!< PE_IF_DIVX_SOURCE_DRM_UNSUPPORT_AUDIO_WARNING*/
  50. #define AVP_IF_PE_UNSUPPORT_AUDIO_WARNING (17+AVP_IF_PE_START) /*!< PE_IF_UNSUPPORT_AUDIO_WARNING */
  51. #define AVP_IF_PE_INVALID_TIME_WARNING (18+AVP_IF_PE_START) /*!< PE_IF_INVALID_TIME_WARNING*/
  52. #define AVP_IF_PE_NO_VIDEO_WARNING (19+AVP_IF_PE_START) /*!< PE_IF_NO_VIDEO_WARNING*/
  53. #define AVP_IF_PE_SEEK_TO_FILE_END_WARNING (20+AVP_IF_PE_START) /*!< PE_IF_SEEK_TO_FILE_END_WARNING*/
  54. #define AVP_IF_PE_BADMUX_WARNING (21+AVP_IF_PE_START) /*!< PE_IF_BADMUX_WARNING*/
  55. typedef enum
  56. {
  57. AVP_CALLBACK_PLAYBACK_FAIL,
  58. AVP_CALLBACK_PLAYBACK_FINISH,
  59. AVP_CALLBACK_PLAYBACK_STARTUP_FAIL,
  60. AVP_CALLBACK_PLAYBACK_STARTUP_DONE,
  61. AVP_CALLBACK_PLAYBACK_STOP_FAIL,
  62. AVP_CALLBACK_PLAYBACK_STOP_DONE,
  63. AVP_CALLBACK_PLAYBACK_PRESTOP_FAIL,
  64. AVP_CALLBACK_PLAYBACK_PRESTOP_DONE,
  65. AVP_CALLBACK_PLAYBACK_PAUSE_FAIL,
  66. AVP_CALLBACK_PLAYBACK_PAUSE_DONE,
  67. AVP_CALLBACK_PLAYBACK_FF_FAIL,
  68. AVP_CALLBACK_PLAYBACK_FF_DONE,
  69. AVP_CALLBACK_PLAYBACK_FB_FAIL,
  70. AVP_CALLBACK_PLAYBACK_FB_DONE,
  71. AVP_CALLBACK_PLAYBACK_FB_FILE_BEGIN,
  72. AVP_CALLBACK_PLAYBACK_GOTO_FAIL,
  73. AVP_CALLBACK_PLAYBACK_GOTO_DONE,
  74. AVP_CALLBACK_PLAYBACK_FILL_CACHE_START,
  75. AVP_CALLBACK_PLAYBACK_FILL_CACHE_FINISH,
  76. AVP_CALLBACK_PLAYBACK_CHANGE2_NORMAL_PLAY_DONE,
  77. AVP_CALLBACK_PLAYBACK_CHANGE2_NORMAL_PLAY_FAIL,
  78. AVP_CALLBACK_PLAYBACK_PE_OPEN_WARNING,
  79. AVP_CALLBACK_PLAYBACK_FINALIZE_DONE,
  80. AVP_CALLBACK_MAX
  81. } AVP_CallbackType_e;
  82. typedef enum AVPPlayBackOp_e_
  83. {
  84. AVP_PLAY_OP_IDLE, /*<! idle*/
  85. AVP_PLAY_OP_STOP, /*<! stop*/
  86. AVP_PLAY_OP_PLAY, /*<! play*/
  87. AVP_PLAY_OP_FF, /*<! fast forward*/
  88. AVP_PLAY_OP_FB, /*<! fast backward*/
  89. AVP_PLAY_OP_SF, /*<! slow forward*/
  90. AVP_PLAY_OP_SB, /*<! slow backward*/
  91. AVP_PLAY_OP_PAUSE, /*<! pause*/
  92. AVP_PLAY_OP_GOTO, /*<! goto*/
  93. AVP_PLAY_OP_MAX,
  94. } AVPPlayBackOp_e;
  95. typedef INT32 (*AVPCallbackFunc)(AVP_CallbackType_e eAVPCallbackType, UINT32 dParam);
  96. typedef INT32 (*AVPBackupParam)(void *pParam, void **ppParam);
  97. typedef INT32 (*AVPParamRelease)(void *pParam);
  98. #define AVP_STREAM_DETACH_OK 0
  99. #define AVP_STREAM_DETACH_FAIL 1
  100. typedef struct AVPStreamDriver_t_
  101. {
  102. void * pPrivateData;
  103. INT32 (*pfInitPrivData)(void **ppPrivData,void * pstPBObj);
  104. INT32 (*pfFinaPrivData)(void * ppPrivData);
  105. INT32 (*pfOpen)(void * pPrivateData);
  106. INT32 (*pfClose)(void * pPrivateData);
  107. INT32 (*pfRead)(UINT8 *buf, UINT64 len, void * pPrivateData);
  108. UINT64 (*pfSeek)(UINT64 dOffset, void * pPrivateData);
  109. UINT64 (*pfGetFileSize)(void * pPrivateData);
  110. INT32 (*pfSetTimeOut)(void * pPrivateData, INT32 timeout);
  111. INT32 (*pfForceStop)(void * pPrivateData);
  112. void (*pfBlockToFillCache)(UINT32 fill_cache_size, void * pPrivateData);
  113. INT32 (*pfCheckError)(void * pPrivateData, UINT64 dOffset, UINT64 len);
  114. INT32 (*pfGetDrvPrivData)(void * pPrivateData, void * pPara, AVPStreamParaType_e eParaType);
  115. INT32 (*pfSetDrvPrivData)(void * pPrivateData, void * pPara, AVPStreamParaType_e eParaType);
  116. INT32 (*pfGetPreloadBufInfo)(void * pPrivateData, UINT32 ** ppstPreBuf, UINT32 *pdBufSize);
  117. } AVPStreamDriver_t;
  118. typedef struct AVPObjCfg_t_ {
  119. void * pCfg;
  120. } AVPObjCfg_t;
  121. AVP_IF_EXTERN INT32 AVP_IF_Initialize(AVPCallbackFunc pfCallback,AVPObjCfg_t *pstAVPCfg);
  122. AVP_IF_EXTERN INT32 AVP_IF_Finalize(void);
  123. AVP_IF_EXTERN INT32 AVP_IF_MountDriver(AVPStreamDriver_t *pstAVPDrv);
  124. AVP_IF_EXTERN INT32 AVP_IF_SetStreamType(UINT32 eMediaType);
  125. AVP_IF_EXTERN INT32 AVP_IF_SetStreamMode(UINT32 eStreamMode);
  126. AVP_IF_EXTERN INT32 AVP_IF_SetAPPBMode(UINT32 eAPPBMode);
  127. AVP_IF_EXTERN INT32 AVP_IF_GetSpeed(UINT32 *pdFactor);
  128. AVP_IF_EXTERN INT32 AVP_IF_SetWMKLockRule(void);
  129. AVP_IF_EXTERN INT32 AVP_IF_SetWMKUnLockRule(void);
  130. AVP_IF_EXTERN INT32 AVP_IF_StartPlay(void);
  131. AVP_IF_EXTERN INT32 AVP_IF_FastForward(UINT32 dFactor);
  132. AVP_IF_EXTERN INT32 AVP_IF_FastBackward(UINT32 dFactor);
  133. AVP_IF_EXTERN INT32 AVP_IF_Change2NormalPlay(void);
  134. AVP_IF_EXTERN INT32 AVP_IF_PreStop(void);
  135. AVP_IF_EXTERN INT32 AVP_IF_Stop(void);
  136. AVP_IF_EXTERN INT32 AVP_IF_Pause(void);
  137. AVP_IF_EXTERN INT32 AVP_IF_GetPlayBackInfo(AVPPlayBackInfo_t* pstPBInfo);
  138. AVP_IF_EXTERN INT32 AVP_IF_ChangeAudioStream(UINT32 dAudioNum);
  139. AVP_IF_EXTERN INT32 AVP_IF_GetCurrentAudioStream(UINT32 * pdStreamNum);
  140. AVP_IF_EXTERN INT32 AVP_IF_GetTotalAudioStreamCount(UINT32 * pdAudioCount);
  141. AVP_IF_EXTERN INT32 AVP_IF_ChangeAudioChannel(UINT32 dAudioNum);
  142. AVP_IF_EXTERN INT32 AVP_IF_GetCurrentAudioChannel(UINT32 * pdChannelNum);
  143. AVP_IF_EXTERN INT32 AVP_IF_GetAudioStreamAttribute(UINT32 dAudStrmIdx, AVPAudStrmAttribute_t *pstAudStrmAtr);
  144. AVP_IF_EXTERN INT32 AVP_IF_GetTotalAudioChannelCount(UINT32 * pdAudioCount);
  145. AVP_IF_EXTERN INT32 AVP_IF_GetTotalTime(UINT32 * pdTotalSec);
  146. AVP_IF_EXTERN INT32 AVP_IF_GetElapsedTime(UINT32 * pdTimeSec);
  147. AVP_IF_EXTERN INT32 AVP_IF_GotoTime(UINT32 dTimeSec);
  148. AVP_IF_EXTERN INT32 AVP_IF_ChangeSupicStream(UINT32 dSupicNum);
  149. AVP_IF_EXTERN INT32 AVP_IF_GetCurrentSupicStreamNum(UINT32* pdSupicNum);
  150. AVP_IF_EXTERN INT32 AVP_IF_GetTotalSupicStreamCount(UINT32 * pdSupicCount);
  151. AVP_IF_EXTERN INT32 AVP_IF_SetCurrentSupicOnOff(UINT32 dOnOffFlg);
  152. AVP_IF_EXTERN INT32 AVP_IF_GetCurrentSupicOnOff(UINT32 * pdOnOffFlg);
  153. AVP_IF_EXTERN INT32 AVP_IF_GetUserOperation(AVPPlayBackOp_e * peUserOp);
  154. AVP_IF_EXTERN INT32 AVP_IF_GetElapsedPosition(UINT64 *OffsetPos);//add by rui.l 0411
  155. AVP_IF_EXTERN INT32 AVP_IF_GetFileTrackSize(UINT64 *TrackSize);//add by rui.l0411
  156. AVP_IF_EXTERN INT32 AVP_IF_GetSpeed(UINT32 *pdFactor);
  157. #endif