14 #include "MWIEC60958.h"
15 #include "MWHDMIPackets.h"
18 #define _MAX_PATH (512)
30 #define HPCICHANNEL int
34 #define HCHANNEL void *
38 #define MWCAP_PTR64 MWCAP_PTR
42 #define MWHANDLE MWCAP_PTR
46 #define LPBYTE unsigned char*
50 #define HTIMER MWCAP_PTR
54 #define HNOTIFY MWCAP_PTR
58 #define HOSD MWCAP_PTR
66 #define ULONG unsigned long
70 #define HANDLE64 MWCAP_PTR
82 typedef CHAR MWCAP_BOOL;
96 typedef enum _MW_RESULT_ {
103 #define INPUT_SOURCE(type, index) (((type) << 8) | ((index) & 0xFF))
104 #define INPUT_TYPE(source) ((source) >> 8)
105 #define INPUT_INDEX(source) ((source) & 0xFF)
107 typedef enum _MWCAP_PRODUCT_ID {
108 MWCAP_PRODUCT_ID_PRO_CAPTURE_AIO = 0x00000102,
109 MWCAP_PRODUCT_ID_PRO_CAPTURE_DVI = 0x00000103,
110 MWCAP_PRODUCT_ID_PRO_CAPTURE_HDMI = 0x00000104,
111 MWCAP_PRODUCT_ID_PRO_CAPTURE_SDI = 0x00000105,
112 MWCAP_PRODUCT_ID_PRO_CAPTURE_DUAL_SDI = 0x00000106,
113 MWCAP_PRODUCT_ID_PRO_CAPTURE_DUAL_DVI = 0x00000107,
114 MWCAP_PRODUCT_ID_PRO_CAPTURE_DUAL_HDMI = 0x00000108,
115 MWCAP_PRODUCT_ID_PRO_CAPTURE_QUAD_SDI = 0x00000109,
116 MWCAP_PRODUCT_ID_PRO_CAPTURE_QUAD_HDMI = 0x00000110,
117 MWCAP_PRODUCT_ID_PRO_CAPTURE_MINI_HDMI = 0x00000111,
118 MWCAP_PRODUCT_ID_PRO_CAPTURE_HDMI_4K = 0x00000112,
119 MWCAP_PRODUCT_ID_PRO_CAPTURE_MINI_SDI = 0x00000113,
120 MWCAP_PRODUCT_ID_PRO_CAPTURE_AIO_4K_PLUS = 0x00000114,
121 MWCAP_PRODUCT_ID_PRO_CAPTURE_HDMI_4K_PLUS = 0x00000115,
122 MWCAP_PRODUCT_ID_PRO_CAPTURE_DVI_4K = 0x00000116,
123 MWCAP_PRODUCT_ID_PRO_CAPTURE_AIO_4K = 0x00000117,
124 MWCAP_PRODUCT_ID_PRO_CAPTURE_SDI_4K_PLUS = 0x00000118,
125 MWCAP_PRODUCT_ID_PRO_CAPTURE_DUAL_HDMI_4K_PLUS = 0x00000119,
126 MWCAP_PRODUCT_ID_PRO_CAPTURE_DUAL_SDI_4K_PLUS = 0x00000120,
128 MWCAP_PRODUCT_ID_ECO_CAPTURE_OCTA_SDI = 0x00000150,
129 MWCAP_PRODUCT_ID_ECO_CAPTURE_DUAL_HDMI_M2 = 0x00000151,
130 MWCAP_PRODUCT_ID_ECO_CAPTURE_HDMI_4K_M2 = 0x00000152,
131 MWCAP_PRODUCT_ID_ECO_CAPTURE_DUAL_SDI_M2 = 0x00000153,
132 MWCAP_PRODUCT_ID_ECO_CAPTURE_QUAD_SDI_M2 = 0x00000154,
134 MWCAP_PRODUCT_ID_USB_CAPTURE_HDMI_PLUS = 0x00000204,
135 MWCAP_PRODUCT_ID_USB_CAPTURE_SDI_PLUS = 0x00000205,
136 MWCAP_PRODUCT_ID_USB_CAPTURE_HDMI = 0x00000206,
137 MWCAP_PRODUCT_ID_USB_CAPTURE_SDI = 0x00000207,
138 MWCAP_PRODUCT_ID_USB_CAPTURE_DVI = 0x00000208,
139 MWCAP_PRODUCT_ID_USB_CAPTURE_HDMI_4K = 0x00000209,
140 MWCAP_PRODUCT_ID_USB_CAPTURE_SDI_4K = 0x00000210,
141 MWCAP_PRODUCT_ID_USB_CAPTURE_AIO = 0x00000211,
142 MWCAP_PRODUCT_ID_USB_CAPTURE_AIO_4K = 0x00000212
146 typedef enum _MWCAP_VIDEO_INPUT_TYPE {
147 MWCAP_VIDEO_INPUT_TYPE_NONE = 0x00,
148 MWCAP_VIDEO_INPUT_TYPE_HDMI = 0x01,
149 MWCAP_VIDEO_INPUT_TYPE_VGA = 0x02,
150 MWCAP_VIDEO_INPUT_TYPE_SDI = 0x04,
151 MWCAP_VIDEO_INPUT_TYPE_COMPONENT = 0x08,
152 MWCAP_VIDEO_INPUT_TYPE_CVBS = 0x10,
153 MWCAP_VIDEO_INPUT_TYPE_YC = 0x20
154 } MWCAP_VIDEO_INPUT_TYPE;
156 typedef enum _MWCAP_AUDIO_INPUT_TYPE {
157 MWCAP_AUDIO_INPUT_TYPE_NONE = 0x00,
158 MWCAP_AUDIO_INPUT_TYPE_HDMI = 0x01,
159 MWCAP_AUDIO_INPUT_TYPE_SDI = 0x02,
160 MWCAP_AUDIO_INPUT_TYPE_LINE_IN = 0x04,
161 MWCAP_AUDIO_INPUT_TYPE_MIC_IN = 0x08
162 } MWCAP_AUDIO_INPUT_TYPE;
164 typedef enum _MWCAP_PCIE_LINK_TYPE {
165 MWCAP_PCIE_LINK_GEN_1 = 0x01,
166 MWCAP_PCIE_LINK_GEN_2 = 0x02,
167 MWCAP_PCIE_LINK_GEN_3 = 0x04,
168 MWCAP_PCIE_LINK_GEN_4 = 0x08
169 } MWCAP_PCIE_LINK_TYPE;
171 typedef enum _MWCAP_VIDEO_TIMING_TYPE {
172 MWCAP_VIDEO_TIMING_NONE = 0x00000000,
173 MWCAP_VIDEO_TIMING_LEGACY = 0x00000001,
174 MWCAP_VIDEO_TIMING_DMT = 0x00000002,
175 MWCAP_VIDEO_TIMING_CEA = 0x00000004,
176 MWCAP_VIDEO_TIMING_GTF = 0x00000008,
177 MWCAP_VIDEO_TIMING_CVT = 0x00000010,
178 MWCAP_VIDEO_TIMING_CVT_RB = 0x00000020,
179 MWCAP_VIDEO_TIMING_FAILSAFE = 0x00002000
180 } MWCAP_VIDEO_TIMING_TYPE;
182 typedef enum _MWCAP_VIDEO_COLOR_FORMAT {
183 MWCAP_VIDEO_COLOR_FORMAT_UNKNOWN = 0x00,
184 MWCAP_VIDEO_COLOR_FORMAT_RGB = 0x01,
185 MWCAP_VIDEO_COLOR_FORMAT_YUV601 = 0x02,
186 MWCAP_VIDEO_COLOR_FORMAT_YUV709 = 0x03,
187 MWCAP_VIDEO_COLOR_FORMAT_YUV2020 = 0x04,
188 MWCAP_VIDEO_COLOR_FORMAT_YUV2020C = 0x05
189 } MWCAP_VIDEO_COLOR_FORMAT;
191 typedef enum _MWCAP_VIDEO_QUANTIZATION_RANGE {
192 MWCAP_VIDEO_QUANTIZATION_UNKNOWN = 0x00,
193 MWCAP_VIDEO_QUANTIZATION_FULL = 0x01,
194 MWCAP_VIDEO_QUANTIZATION_LIMITED = 0x02
195 } MWCAP_VIDEO_QUANTIZATION_RANGE;
197 typedef enum _MWCAP_VIDEO_SATURATION_RANGE {
198 MWCAP_VIDEO_SATURATION_UNKNOWN = 0x00,
199 MWCAP_VIDEO_SATURATION_FULL = 0x01,
200 MWCAP_VIDEO_SATURATION_LIMITED = 0x02,
201 MWCAP_VIDEO_SATURATION_EXTENDED_GAMUT = 0x03
202 } MWCAP_VIDEO_SATURATION_RANGE;
204 typedef enum _MWCAP_VIDEO_FRAME_TYPE {
205 MWCAP_VIDEO_FRAME_2D = 0x00,
206 MWCAP_VIDEO_FRAME_3D_TOP_AND_BOTTOM_FULL = 0x01,
207 MWCAP_VIDEO_FRAME_3D_TOP_AND_BOTTOM_HALF = 0x02,
208 MWCAP_VIDEO_FRAME_3D_SIDE_BY_SIDE_FULL = 0x03,
209 MWCAP_VIDEO_FRAME_3D_SIDE_BY_SIDE_HALF = 0x04
210 } MWCAP_VIDEO_FRAME_TYPE;
212 typedef enum _MWCAP_VIDEO_DEINTERLACE_MODE {
213 MWCAP_VIDEO_DEINTERLACE_WEAVE = 0x00,
214 MWCAP_VIDEO_DEINTERLACE_BLEND = 0x01,
215 MWCAP_VIDEO_DEINTERLACE_TOP_FIELD = 0x02,
216 MWCAP_VIDEO_DEINTERLACE_BOTTOM_FIELD = 0x03
217 } MWCAP_VIDEO_DEINTERLACE_MODE;
219 typedef enum _MWCAP_VIDEO_ASPECT_RATIO_CONVERT_MODE {
220 MWCAP_VIDEO_ASPECT_RATIO_IGNORE = 0x00,
221 MWCAP_VIDEO_ASPECT_RATIO_CROPPING = 0x01,
222 MWCAP_VIDEO_ASPECT_RATIO_PADDING = 0x02
223 } MWCAP_VIDEO_ASPECT_RATIO_CONVERT_MODE;
225 typedef enum _MWCAP_VIDEO_SYNC_TYPE {
226 VIDEO_SYNC_ALL = 0x07,
227 VIDEO_SYNC_HS_VS = 0x01,
228 VIDEO_SYNC_CS = 0x02,
229 VIDEO_SYNC_EMBEDDED = 0x04
230 } MWCAP_VIDEO_SYNC_TYPE;
237 DWORD dwFrameDuration;
238 WORD wVSyncLineCount;
239 WORD wFrameLineCount;
289 #define MWCAP_DWORD_PARAMETER_FLAG_AUTO 0x01
300 CHAR chHardwareVersion;
302 DWORD dwFirmwareVersion;
303 DWORD dwDriverVersion;
304 CHAR szFamilyName[MW_FAMILY_NAME_LEN];
305 CHAR szProductName[MW_PRODUCT_NAME_LEN];
306 CHAR szFirmwareName[MW_FIRMWARE_NAME_LEN];
307 CHAR szBoardSerialNo[MW_SERIAL_NO_LEN];
318 WORD wMaxPayloadSize;
319 WORD wMaxReadRequestSize;
320 DWORD cbTotalMemorySize;
321 DWORD cbFreeMemorySize;
327 WORD wMaxInputHeight;
328 WORD wMaxOutputWidth;
329 WORD wMaxOutputHeight;
340 DWORD cbProgramBlock;
341 DWORD cbHeaderOffset;
350 typedef enum _MWCAP_LED_MODE {
351 MWCAP_LED_AUTO = 0x00000000,
352 MWCAP_LED_OFF = 0x80000000,
353 MWCAP_LED_ON = 0x80000001,
354 MWCAP_LED_BLINK = 0x80000002,
355 MWCAP_LED_DBL_BLINK = 0x80000003,
356 MWCAP_LED_BREATH = 0x80000004
362 SDI_SCANNING_FORMAT sdiScanningFormat;
363 SDI_BIT_DEPTH sdiBitDepth;
364 SDI_SAMPLING_STRUCT sdiSamplingStruct;
365 BOOLEAN bST352DataValid;
371 DWORD dwFrameDuration;
377 WORD wField0VSyncWidth;
378 WORD wField0VFrontPorch;
379 WORD wField0VBackPorch;
381 WORD wField0VTotalHeight;
382 WORD wField1VSyncWidth;
383 WORD wField1VFrontPorch;
384 WORD wField1VBackPorch;
386 WORD wField1VTotalHeight;
393 HDMI_PXIEL_ENCODING pixelEncoding;
398 BYTE bySideBySideHalfSubSampling;
404 BOOLEAN bTriLevelSync;
409 typedef enum _MWCAP_SD_VIDEO_STANDARD {
411 MWCAP_SD_VIDEO_NTSC_M,
412 MWCAP_SD_VIDEO_NTSC_433,
413 MWCAP_SD_VIDEO_PAL_M,
414 MWCAP_SD_VIDEO_PAL_60,
415 MWCAP_SD_VIDEO_PAL_COMBN,
416 MWCAP_SD_VIDEO_PAL_BGHID,
417 MWCAP_SD_VIDEO_SECAM,
418 MWCAP_SD_VIDEO_SECAM_60
419 } MWCAP_SD_VIDEO_STANDARD;
422 MWCAP_SD_VIDEO_STANDARD standard;
428 DWORD dwVideoInputType;
437 typedef enum _MWCAP_VIDEO_SIGNAL_STATE {
438 MWCAP_VIDEO_SIGNAL_NONE,
439 MWCAP_VIDEO_SIGNAL_UNSUPPORTED,
440 MWCAP_VIDEO_SIGNAL_LOCKING,
441 MWCAP_VIDEO_SIGNAL_LOCKED
442 } MWCAP_VIDEO_SIGNAL_STATE;
445 MWCAP_VIDEO_SIGNAL_STATE state;
453 DWORD dwFrameDuration;
456 BOOLEAN bSegmentedFrame;
457 MWCAP_VIDEO_FRAME_TYPE frameType;
458 MWCAP_VIDEO_COLOR_FORMAT colorFormat;
459 MWCAP_VIDEO_QUANTIZATION_RANGE quantRange;
460 MWCAP_VIDEO_SATURATION_RANGE satRange;
468 BOOLEAN bChannelStatusValid;
475 LONGLONG llExpireTime;
484 #define MWCAP_NOTIFY_INPUT_SORUCE_START_SCAN 0x0001ULL
485 #define MWCAP_NOTIFY_INPUT_SORUCE_STOP_SCAN 0x0002ULL
486 #define MWCAP_NOTIFY_INPUT_SORUCE_SCAN_CHANGE 0x0003ULL
488 #define MWCAP_NOTIFY_VIDEO_INPUT_SOURCE_CHANGE 0x0004ULL
489 #define MWCAP_NOTIFY_AUDIO_INPUT_SOURCE_CHANGE 0x0008ULL
492 #define MWCAP_NOTIFY_INPUT_SPECIFIC_CHANGE 0x0010ULL
495 #define MWCAP_NOTIFY_VIDEO_SIGNAL_CHANGE 0x0020ULL
498 #define MWCAP_NOTIFY_AUDIO_SIGNAL_CHANGE 0x0040ULL
501 #define MWCAP_NOTIFY_VIDEO_FIELD_BUFFERING 0x0080ULL
502 #define MWCAP_NOTIFY_VIDEO_FRAME_BUFFERING 0x0100ULL
503 #define MWCAP_NOTIFY_VIDEO_FIELD_BUFFERED 0x0200ULL
504 #define MWCAP_NOTIFY_VIDEO_FRAME_BUFFERED 0x0400ULL
505 #define MWCAP_NOTIFY_VIDEO_SMPTE_TIME_CODE 0x0800ULL
508 #define MWCAP_NOTIFY_AUDIO_FRAME_BUFFERED 0x1000ULL
509 #define MWCAP_NOTIFY_AUDIO_INPUT_RESET 0x2000ULL
512 #define MWCAP_NOTIFY_VIDEO_SAMPLING_PHASE_CHANGE 0x4000ULL
514 #define MWCAP_NOTIFY_LOOP_THROUGH_CHANGED 0x8000ULL
515 #define MWCAP_NOTIFY_LOOP_THROUGH_EDID_CHANGED 0x10000ULL
517 #define MWCAP_NOTIFY_NEW_SDI_ANC_PACKET 0x20000ULL
520 #define MWCAP_NOTIFY_HDMI_INFOFRAME_AVI (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_AVI))
521 #define MWCAP_NOTIFY_HDMI_INFOFRAME_AUDIO (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_AUDIO))
522 #define MWCAP_NOTIFY_HDMI_INFOFRAME_SPD (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_SPD))
523 #define MWCAP_NOTIFY_HDMI_INFOFRAME_MS (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_MS))
524 #define MWCAP_NOTIFY_HDMI_INFOFRAME_VS (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_VS))
525 #define MWCAP_NOTIFY_HDMI_INFOFRAME_ACP (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_ACP))
526 #define MWCAP_NOTIFY_HDMI_INFOFRAME_ISRC1 (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_ISRC1))
527 #define MWCAP_NOTIFY_HDMI_INFOFRAME_ISRC2 (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_ISRC2))
528 #define MWCAP_NOTIFY_HDMI_INFOFRAME_GAMUT (1ULL << (32 + MWCAP_HDMI_INFOFRAME_ID_GAMUT))
532 ULONGLONG ullEnableBits;
538 ULONGLONG ullStatusBits;
543 ULONGLONG ullEnableBits;
547 #define MWCAP_MAX_VIDEO_FRAME_COUNT 8
556 typedef enum _MWCAP_VIDEO_FRAME_STATE {
557 MWCAP_VIDEO_FRAME_STATE_INITIAL,
558 MWCAP_VIDEO_FRAME_STATE_F0_BUFFERING,
559 MWCAP_VIDEO_FRAME_STATE_F1_BUFFERING,
560 MWCAP_VIDEO_FRAME_STATE_BUFFERED
561 } MWCAP_VIDEO_FRAME_STATE;
566 BYTE iNewestBuffering;
567 BYTE iBufferingFieldIndex;
569 BYTE iNewestBuffered;
570 BYTE iBufferedFieldIndex;
572 BYTE iNewestBufferedFullFrame;
573 DWORD cBufferedFullFrames;
577 MWCAP_VIDEO_FRAME_STATE state;
580 BOOLEAN bSegmentedFrame;
581 BOOLEAN bTopFieldFirst;
582 BOOLEAN bTopFieldInverted;
589 LONGLONG allFieldStartTimes[2];
590 LONGLONG allFieldBufferedTimes[2];
599 #define MWCAP_VIDEO_MAX_NUM_OSD_RECTS 4
601 #define MWCAP_VIDEO_FRAME_ID_NEWEST_BUFFERED (-1)
602 #define MWCAP_VIDEO_FRAME_ID_NEWEST_BUFFERING (-2)
603 #define MWCAP_VIDEO_FRAME_ID_NEXT_BUFFERED (-3)
604 #define MWCAP_VIDEO_FRAME_ID_NEXT_BUFFERING (-4)
606 #define MWCAP_VIDEO_FRAME_ID_EMPTY (-100) // Used in MWCAP_VIDEO_CAPTURE_STATUS
608 #define MWCAP_VIDEO_PROCESS_FLIP 0x00000001
609 #define MWCAP_VIDEO_PROCESS_MIRROR 0x00000002
619 MWCAP_VIDEO_COLOR_FORMAT colorFormat;
620 MWCAP_VIDEO_QUANTIZATION_RANGE quantRange;
621 MWCAP_VIDEO_SATURATION_RANGE satRange;
631 MWCAP_VIDEO_DEINTERLACE_MODE deinterlaceMode;
632 MWCAP_VIDEO_ASPECT_RATIO_CONVERT_MODE aspectRatioConvertMode;
639 RECT aOSDRects[MWCAP_VIDEO_MAX_NUM_OSD_RECTS];
643 BOOLEAN bPhysicalAddress;
655 WORD cyPartialNotify;
657 DWORD dwProcessSwitchs;
666 BOOLEAN bPhysicalAddress;
674 BOOLEAN bFrameCompleted;
676 WORD cyCompletedPrev;
680 #define MWCAP_AUDIO_FRAME_SYNC_CODE 0xFECA0357
681 #define MWCAP_AUDIO_SAMPLES_PER_FRAME 192
682 #define MWCAP_AUDIO_MAX_NUM_CHANNELS 8
691 LONGLONG llTimestamp;
692 DWORD adwSamples[MWCAP_AUDIO_SAMPLES_PER_FRAME * MWCAP_AUDIO_MAX_NUM_CHANNELS];
696 typedef enum _MWCAP_HDMI_INFOFRAME_ID {
697 MWCAP_HDMI_INFOFRAME_ID_AVI,
698 MWCAP_HDMI_INFOFRAME_ID_AUDIO,
699 MWCAP_HDMI_INFOFRAME_ID_SPD,
700 MWCAP_HDMI_INFOFRAME_ID_MS,
701 MWCAP_HDMI_INFOFRAME_ID_VS,
702 MWCAP_HDMI_INFOFRAME_ID_ACP,
703 MWCAP_HDMI_INFOFRAME_ID_ISRC1,
704 MWCAP_HDMI_INFOFRAME_ID_ISRC2,
705 MWCAP_HDMI_INFOFRAME_ID_GAMUT,
706 MWCAP_HDMI_INFOFRAME_ID_VBI,
707 MWCAP_HDMI_INFOFRAME_ID_HDR,
708 MWCAP_HDMI_INFOFRAME_COUNT
709 } MWCAP_HDMI_INFOFRAME_ID;
711 typedef enum _MWCAP_HDMI_INFOFRAME_MASK {
712 MWCAP_HDMI_INFOFRAME_MASK_AVI = (1 << MWCAP_HDMI_INFOFRAME_ID_AVI),
713 MWCAP_HDMI_INFOFRAME_MASK_AUDIO = (1 << MWCAP_HDMI_INFOFRAME_ID_AUDIO),
714 MWCAP_HDMI_INFOFRAME_MASK_SPD = (1 << MWCAP_HDMI_INFOFRAME_ID_SPD),
715 MWCAP_HDMI_INFOFRAME_MASK_MS = (1 << MWCAP_HDMI_INFOFRAME_ID_MS),
716 MWCAP_HDMI_INFOFRAME_MASK_VS = (1 << MWCAP_HDMI_INFOFRAME_ID_VS),
717 MWCAP_HDMI_INFOFRAME_MASK_ACP = (1 << MWCAP_HDMI_INFOFRAME_ID_ACP),
718 MWCAP_HDMI_INFOFRAME_MASK_ISRC1 = (1 << MWCAP_HDMI_INFOFRAME_ID_ISRC1),
719 MWCAP_HDMI_INFOFRAME_MASK_ISRC2 = (1 << MWCAP_HDMI_INFOFRAME_ID_ISRC2),
720 MWCAP_HDMI_INFOFRAME_MASK_GAMUT = (1 << MWCAP_HDMI_INFOFRAME_ID_GAMUT),
721 MWCAP_HDMI_INFOFRAME_MASK_VBI = (1 << MWCAP_HDMI_INFOFRAME_ID_VBI),
722 MWCAP_HDMI_INFOFRAME_MASK_HDR = (1 << MWCAP_HDMI_INFOFRAME_ID_HDR)
723 } MWCAP_HDMI_INFOFRAME_MASK;
737 DWORD dwFrameDuration;
743 MWCAP_VIDEO_COLOR_FORMAT colorFormat;
744 MWCAP_VIDEO_QUANTIZATION_RANGE quantRange;
745 MWCAP_VIDEO_SATURATION_RANGE satRange;
749 DWORD dwProcessSwitchs;
754 MWCAP_VIDEO_COLOR_FORMAT colorFormat;
755 MWCAP_VIDEO_QUANTIZATION_RANGE quantRange;
756 MWCAP_VIDEO_SATURATION_RANGE satRange;
757 MWCAP_VIDEO_DEINTERLACE_MODE deinterlaceMode;
758 MWCAP_VIDEO_ASPECT_RATIO_CONVERT_MODE aspectRatioConvertMode;
761 #define MWCAP_VIDEO_MAX_NUM_PREFERRED_TIMINGS 8
776 MWCAP_PTR pvDestImage;
777 MWCAP_VIDEO_COLOR_FORMAT cfDest;
783 MWCAP_VIDEO_QUANTIZATION_RANGE quantRangeDest;
784 MWCAP_VIDEO_SATURATION_RANGE satRangeDest;
787 BOOLEAN bSrcPhysicalAddress;
789 MWCAP_PTR pvSrcFrame;
798 BOOLEAN bSrcBottomUp;
799 BOOLEAN bSrcPixelAlpha;
800 BOOLEAN bSrcPixelXBGR;
805 char szPNGFilePath[_MAX_PATH];
809 MWCAP_PTR pvOSDImage;
810 RECT aOSDRects[MWCAP_VIDEO_MAX_NUM_OSD_RECTS];
823 unsigned long long reserved;
826 typedef enum _MW_VIDEO_CAPTURE_MODE {
827 MW_VIDEO_CAPTURE_NORMAL = 0x00,
828 MW_VIDEO_CAPTURE_LOW_LATENCY,
829 } MW_VIDEO_CAPTURE_MODE;
831 typedef enum _MWCAP_AUDIO_CAPTURE_NODE {
832 MWCAP_AUDIO_CAPTURE_NODE_DEFAULT,
833 MWCAP_AUDIO_CAPTURE_NODE_EMBEDDED_CAPTURE,
834 MWCAP_AUDIO_CAPTURE_NODE_MICROPHONE,
835 MWCAP_AUDIO_CAPTURE_NODE_USB_CAPTURE,
836 MWCAP_AUDIO_CAPTURE_NODE_LINE_IN,
837 } MWCAP_AUDIO_CAPTURE_NODE;
839 typedef enum _MWCAP_AUDIO_NODE {
840 MWCAP_AUDIO_MICROPHONE,
841 MWCAP_AUDIO_HEADPHONE,
843 MWCAP_AUDIO_LINE_OUT,
844 MWCAP_AUDIO_EMBEDDED_CAPTURE,
845 MWCAP_AUDIO_EMBEDDED_PLAYBACK,
846 MWCAP_AUDIO_USB_CAPTURE,
847 MWCAP_AUDIO_USB_PLAYBACK
850 typedef void(*LPFN_VIDEO_CAPTURE_CALLBACK)(MWCAP_PTR pbFrame, DWORD cbFrame, DWORD cbStride,
MWCAP_VIDEO_FRAME_INFO* pFrameInfo,
void* pvContent);
852 typedef void(*LPFN_TIMER_CALLBACK)(HTIMER pTimer,
void* pvContent);
853 typedef void(*LPFN_NOTIFY_CALLBACK)(MWCAP_PTR pNotify, DWORD dwEnableBits,
void* pvContent);
855 typedef void (*VIDEO_CAPTURE_CALLBACK)(BYTE *pBuffer,
long iBufferLen,
void* pParam);
856 typedef void (*AUDIO_CAPTURE_CALLBACK)(
const BYTE * pbFrame,
int cbFrame, uint64_t u64TimeStamp,
void* pParam);
882 LONGLONG llFrameDuration;
886 MWCAP_VIDEO_COLOR_FORMAT colorFormat;
887 MWCAP_VIDEO_QUANTIZATION_RANGE quantRange;
888 MWCAP_VIDEO_SATURATION_RANGE satRange;
901 MWCAP_VIDEO_DEINTERLACE_MODE deinterlaceMode;
903 MWCAP_PTR64 pvContext;
907 MWCAP_PTR64 pvContext;
909 LONGLONG llTimestamp;
Definition: MWCaptureExtension.h:360
Definition: MWCaptureExtension.h:663
Definition: MWCaptureExtension.h:536
Definition: MWCaptureExtension.h:402
Definition: MWCaptureExtension.h:763
Definition: MWCaptureExtension.h:232
Definition: MWCaptureExtension.h:563
Definition: MWCaptureExtension.h:421
Definition: MWCaptureExtension.h:389
Definition: MWCaptureExtension.h:769
Definition: MWCaptureExtension.h:803
Definition: MWCaptureExtension.h:324
Definition: MWCaptureExtension.h:369
Definition: MWCaptureExtension.h:242
Definition: MWCaptureExtension.h:297
Definition: MWCaptureExtension.h:808
Definition: WinTypes.h:62
Definition: MWCaptureExtension.h:748
Definition: MWCaptureExtension.h:344
Definition: MWCaptureExtension.h:275
Definition: MWCaptureExtension.h:819
Definition: MWCaptureExtension.h:595
Definition: MWCaptureExtension.h:866
Definition: MWCaptureExtension.h:858
Definition: MWCaptureExtension.h:814
Definition: MWCaptureExtension.h:530
Definition: MWCaptureExtension.h:774
Definition: MWCaptureExtension.h:549
Definition: MWCaptureExtension.h:541
Definition: MWCaptureExtension.h:473
Definition: MWCaptureExtension.h:444
Definition: MWCaptureExtension.h:337
Definition: MWCaptureExtension.h:576
Definition: MWCaptureExtension.h:906
Definition: MWCaptureExtension.h:259
Definition: MWCaptureExtension.h:876
Definition: MWCaptureExtension.h:895
Definition: MWCaptureExtension.h:612
Definition: MWCaptureExtension.h:478
Definition: MWCaptureExtension.h:312
Definition: MWCaptureExtension.h:686
Definition: MWCaptureExtension.h:463
Definition: MWIEC60958.h:13
Definition: MWCaptureExtension.h:270
Definition: MWCaptureExtension.h:84
Definition: MWCaptureExtension.h:291
Definition: MWCaptureExtension.h:282
Definition: MWCaptureExtension.h:885
Definition: MWCaptureExtension.h:725
Definition: MWCaptureExtension.h:332