XnsMediaInterface.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #pragma once
  2. enum
  3. {
  4. XINPUT_VIDEO = 1,
  5. XINPUT_AUDIO,
  6. };
  7. enum
  8. {
  9. XFRAME_UNKNOWN = 0,
  10. XFRAME_IVOP,
  11. XFRAME_PVOP,
  12. XFRAME_BVOP,
  13. XFRAME_END,
  14. XFRAME_BACKUP_FAIL = 7 //+ jungkoo.kang <2012.12.03> Banamex 프로젝트 관련 백업실패 고려하도록 수정
  15. };
  16. typedef enum
  17. {
  18. XVIDEO_PIXEL_UNKNOWN = 0x0000, // Unknown
  19. XVIDEO_PIXEL_R555 = 0x0002, // 16Bit, R555
  20. XVIDEO_PIXEL_R565 = 0x0003, // 16Bit, R565
  21. XVIDEO_PIXEL_BGR24 = 0x0004, // 24Bit
  22. XVIDEO_PIXEL_BGR32 = 0x0005, // 32Bit, Non Alpha Channel
  23. XVIDEO_PIXEL_BGRA = 0x0006, // 32Bit, with Alpha Channel
  24. // YUV Case (0x0101 ~ 0x01FF)
  25. XVIDEO_PIXEL_YV12 = 0x0101, // 12Bit, YV12
  26. } XVIDEO_PIXEL_FORMAT;
  27. enum
  28. {
  29. XTIME_UTC = 0,
  30. XTIME_LOCAL,
  31. };
  32. enum
  33. {
  34. XMEVT_DEVICE_STATUS_CHANGED = 1,
  35. XMEVT_CONTROL_LOCAL_NAME_CHANGED,
  36. XMEVT_CONTROL_REMOTE_NAME_CHANGED,
  37. XMEVT_CONTROL_STATUS_CHANGED,
  38. XMEVT_CONTROL_CAPABILITY_CHANGED,
  39. XMEVT_CONNECT_OVER,
  40. XMEVT_PLAYBACK_PLAYING,
  41. XMEVT_PLAYBACK_PAUSING,
  42. XMEVT_PLAYBACK_SEEKING,
  43. XMEVT_PLAYBACK_FRAMEADVANCING,
  44. XMEVT_PLAYBACK_END,
  45. XMEVT_MEDIASUORCE_RELEASING,
  46. };
  47. class IXnsMediaEventHandler
  48. {
  49. public:
  50. virtual void OnXnsMediaEvent( long nEventID , ... ) = 0;
  51. };
  52. class IXnsMedia
  53. {
  54. public:
  55. virtual long GetInputType() = 0;
  56. virtual long GetCodecType() = 0;
  57. virtual unsigned long GetTimeStamp() = 0;
  58. virtual long GetFrameSequence() = 0;
  59. virtual long GetFrameTime( long nType ) = 0;
  60. virtual long GetFrameType() = 0;
  61. virtual long GetIGroupCount() = 0;
  62. virtual long GetPGroupCount() = 0;
  63. virtual BOOL IsAudioSrouce() = 0;
  64. virtual BOOL IsVideoLoss() = 0;
  65. virtual BOOL IsAlarm() = 0;
  66. virtual BOOL IsMotion() = 0;
  67. virtual long GetImageWidth() = 0;
  68. virtual long GetImageHeight() = 0;
  69. virtual long GetFrameSize() = 0;
  70. virtual unsigned char* GetFrameData() = 0;
  71. virtual long GetRecTime() = 0;
  72. virtual long GetAudioChannel() = 0;
  73. virtual long GetAudioSampleRate() = 0;
  74. virtual long GetAudioBits() = 0;
  75. };
  76. class IXnsMediaSource
  77. {
  78. public:
  79. virtual long GetDeviceID() = 0;
  80. virtual long GetControlID() = 0;
  81. virtual long GetMediaType() = 0;
  82. virtual long GetStartTime() = 0;
  83. virtual long GetEndTime() = 0;
  84. virtual long GetDeviceStatus() = 0;
  85. virtual BOOL GetPlayBackStatus() = 0;
  86. virtual BOOL IsUserFull() = 0;
  87. virtual const char* GetControlLocalName() = 0;
  88. virtual const char* GetControlRemoteName() = 0;
  89. virtual long GetControlStatus( long nStatusID ) = 0;
  90. virtual BOOL GetControlCapability( long nCapabilityID ) = 0;
  91. virtual long GetCount() = 0;
  92. virtual long GetDataSize() = 0;
  93. virtual long GetMaxCount() = 0;
  94. virtual long GetMaxDataSize() = 0;
  95. virtual void SetMaxCount( long nMaxCount ) = 0;
  96. virtual void SetMaxDataSize( long nMaxDataSize ) = 0;
  97. virtual void SetXnsMediaEventHandler( IXnsMediaEventHandler *pEventHandler ) = 0;
  98. virtual IXnsMedia* GetMedia() = 0;
  99. virtual void ReleaseMedia( IXnsMedia* pMedia ) = 0;
  100. virtual void Clear() = 0;
  101. };
  102. #ifndef _VIDEO_CALLBACK_FUNC_
  103. typedef void (*CALLBACK_FUNC)(long hMediaSource, long nWidth, long nHeight, long nFrameSize, unsigned char* pVideo);
  104. typedef void (*CALLBACK_FUNC_EX)(long hMediaSource, long nWidth, long nHeight, long nFrameSize, unsigned char* pVideo, void *pInstance);
  105. #define _VIDEO_CALLBACK_FUNC_
  106. #endif