42411 lines
2.2 MiB
42411 lines
2.2 MiB
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (1705)
|
|
//--------------------------------------------------------------------------------
|
|
pub const MEDIASUBTYPE_None = Guid.initString("e436eb8e-524f-11ce-9f53-0020af0ba770");
|
|
pub const AVENC_H263V_LEVELCOUNT = @as(u32, 8);
|
|
pub const AVENC_H264V_LEVELCOUNT = @as(u32, 16);
|
|
pub const AVENC_H264V_MAX_MBBITS = @as(u32, 3200);
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_MPEG2 = Guid.initString("ee27417f-5e28-4e65-beea-1d26b508adc9");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2 = Guid.initString("86695f12-340e-4f04-9fd3-9253dd327460");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_H264 = Guid.initString("1b81be68-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE = Guid.initString("d79be8da-0cf1-4c81-b82a-69a4e236f43d");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_H264_STEREO = Guid.initString("f9aaccbb-c2b6-4cfc-8779-5707b1760552");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW = Guid.initString("705b9d82-76cf-49d6-b7e6-ac8872db013c");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_VC1 = Guid.initString("1b81bea3-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_VC1_D2010 = Guid.initString("1b81bea4-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE = Guid.initString("efd64d74-c9e8-41d7-a5e9-e9b0e39fa319");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC = Guid.initString("ed418a9f-010d-4eda-9ae3-9a65358d8d2e");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN = Guid.initString("5b11d51b-2f4c-4452-bcc3-09f2a1160cc0");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10 = Guid.initString("107af0e0-ef1a-4d19-aba8-67a163073d13");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_VP9 = Guid.initString("463707f8-a1d0-4585-876d-83aa6d60b89e");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2 = Guid.initString("a4c749ef-6ecf-48aa-8448-50a7a1165ff7");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_VP8 = Guid.initString("90b899ea-3a62-4705-88b3-8df04b2744e7");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0 = Guid.initString("b8be4ccb-cf53-46ba-8d59-d6b8a6da5d2a");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1 = Guid.initString("6936ff0f-45b1-4163-9cc1-646ef6946108");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2 = Guid.initString("0c5f2aa1-e541-4089-bb7b-98110a19d7c8");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2 = Guid.initString("17127009-a00f-4ce1-994e-bf4081f6f3f0");
|
|
pub const D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420 = Guid.initString("2d80bed6-9cac-4835-9e91-327bbc4f9ee8");
|
|
pub const DXVA2_ModeMPEG2_MoComp = Guid.initString("e6a9f44b-61b0-4563-9ea4-63d2a3c6fe66");
|
|
pub const DXVA2_ModeMPEG2_IDCT = Guid.initString("bf22ad00-03ea-4690-8077-473346209b7e");
|
|
pub const DXVA2_ModeMPEG2_VLD = Guid.initString("ee27417f-5e28-4e65-beea-1d26b508adc9");
|
|
pub const DXVA2_ModeMPEG1_VLD = Guid.initString("6f3ec719-3735-42cc-8063-65cc3cb36616");
|
|
pub const DXVA2_ModeMPEG2and1_VLD = Guid.initString("86695f12-340e-4f04-9fd3-9253dd327460");
|
|
pub const DXVA2_ModeH264_A = Guid.initString("1b81be64-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_B = Guid.initString("1b81be65-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_C = Guid.initString("1b81be66-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_D = Guid.initString("1b81be67-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_E = Guid.initString("1b81be68-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_F = Guid.initString("1b81be69-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeH264_VLD_WithFMOASO_NoFGT = Guid.initString("d5f04ff9-3418-45d8-9561-32a76aae2ddd");
|
|
pub const DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT = Guid.initString("d79be8da-0cf1-4c81-b82a-69a4e236f43d");
|
|
pub const DXVA2_ModeH264_VLD_Stereo_NoFGT = Guid.initString("f9aaccbb-c2b6-4cfc-8779-5707b1760552");
|
|
pub const DXVA2_ModeH264_VLD_Multiview_NoFGT = Guid.initString("705b9d82-76cf-49d6-b7e6-ac8872db013c");
|
|
pub const DXVA2_ModeWMV8_A = Guid.initString("1b81be80-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeWMV8_B = Guid.initString("1b81be81-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeWMV9_A = Guid.initString("1b81be90-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeWMV9_B = Guid.initString("1b81be91-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeWMV9_C = Guid.initString("1b81be94-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeVC1_A = Guid.initString("1b81bea0-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeVC1_B = Guid.initString("1b81bea1-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeVC1_C = Guid.initString("1b81bea2-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeVC1_D = Guid.initString("1b81bea3-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_ModeVC1_D2010 = Guid.initString("1b81bea4-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_NoEncrypt = Guid.initString("1b81bed0-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVA2_VideoProcProgressiveDevice = Guid.initString("5a54a0c9-c7ec-4bd9-8ede-f3c75dc4393b");
|
|
pub const DXVA2_VideoProcBobDevice = Guid.initString("335aa36e-7884-43a4-9c91-7f87faf3e37e");
|
|
pub const DXVA2_VideoProcSoftwareDevice = Guid.initString("4553d47f-ee7e-4e3f-9475-dbf1376c4810");
|
|
pub const DXVA2_ModeMPEG4pt2_VLD_Simple = Guid.initString("efd64d74-c9e8-41d7-a5e9-e9b0e39fa319");
|
|
pub const DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC = Guid.initString("ed418a9f-010d-4eda-9ae3-9a65358d8d2e");
|
|
pub const DXVA2_ModeMPEG4pt2_VLD_AdvSimple_GMC = Guid.initString("ab998b5b-4258-44a9-9feb-94e597a6baae");
|
|
pub const DXVA2_ModeHEVC_VLD_Main = Guid.initString("5b11d51b-2f4c-4452-bcc3-09f2a1160cc0");
|
|
pub const DXVA2_ModeHEVC_VLD_Main10 = Guid.initString("107af0e0-ef1a-4d19-aba8-67a163073d13");
|
|
pub const DXVA2_ModeVP9_VLD_Profile0 = Guid.initString("463707f8-a1d0-4585-876d-83aa6d60b89e");
|
|
pub const DXVA2_ModeVP9_VLD_10bit_Profile2 = Guid.initString("a4c749ef-6ecf-48aa-8448-50a7a1165ff7");
|
|
pub const DXVA2_ModeVP8_VLD = Guid.initString("90b899ea-3a62-4705-88b3-8df04b2744e7");
|
|
pub const DXVA2_E_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217408));
|
|
pub const DXVA2_E_NEW_VIDEO_DEVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217407));
|
|
pub const DXVA2_E_VIDEO_DEVICE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217406));
|
|
pub const DXVA2_E_NOT_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217405));
|
|
pub const MAX_SUBSTREAMS = @as(u32, 15);
|
|
pub const DXVA2_DECODE_GET_DRIVER_HANDLE = @as(u32, 1829);
|
|
pub const DXVA2_DECODE_SPECIFY_ENCRYPTED_BLOCKS = @as(u32, 1828);
|
|
pub const DXVAp_ModeMPEG2_A = Guid.initString("1b81be0a-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVAp_ModeMPEG2_C = Guid.initString("1b81be0c-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVAp_NoEncrypt = Guid.initString("1b81bed0-a0c7-11d3-b984-00c04f2e73c5");
|
|
pub const DXVAp_DeinterlaceBobDevice = Guid.initString("335aa36e-7884-43a4-9c91-7f87faf3e37e");
|
|
pub const DXVAp_DeinterlaceContainerDevice = Guid.initString("0e85cb93-3046-4ff0-aecc-d58cb5f035fd");
|
|
pub const DXVAHD_STREAM_STATE_PRIVATE_IVTC = Guid.initString("9c601e3c-0f33-414c-a739-99540ee42da5");
|
|
pub const DXVAHDControlGuid = Guid.initString("a0386e75-f70c-464c-a9ce-33c44e091623");
|
|
pub const DXVAHDETWGUID_CREATEVIDEOPROCESSOR = Guid.initString("681e3d1e-5674-4fb3-a503-2f2055e91f60");
|
|
pub const DXVAHDETWGUID_VIDEOPROCESSBLTSTATE = Guid.initString("76c94b5a-193f-4692-9484-a4d999da81a8");
|
|
pub const DXVAHDETWGUID_VIDEOPROCESSSTREAMSTATE = Guid.initString("262c0b02-209d-47ed-94d8-82ae02b84aa7");
|
|
pub const DXVAHDETWGUID_VIDEOPROCESSBLTHD = Guid.initString("bef3d435-78c7-4de3-9707-cd1b083b160a");
|
|
pub const DXVAHDETWGUID_VIDEOPROCESSBLTHD_STREAM = Guid.initString("27ae473e-a5fc-4be5-b4e3-f24994d3c495");
|
|
pub const DXVAHDETWGUID_DESTROYVIDEOPROCESSOR = Guid.initString("f943f0a0-3f16-43e0-8093-105a986aa5f1");
|
|
pub const MR_VIDEO_RENDER_SERVICE = Guid.initString("1092a86c-ab1a-459a-a336-831fbc4d11ff");
|
|
pub const MR_VIDEO_MIXER_SERVICE = Guid.initString("073cd2fc-6cf4-40b7-8859-e89552c841f8");
|
|
pub const MR_VIDEO_ACCELERATION_SERVICE = Guid.initString("efef5175-5c7d-4ce2-bbbd-34ff8bca6554");
|
|
pub const MR_BUFFER_SERVICE = Guid.initString("a562248c-9ac6-4ffc-9fba-3af8f8ad1a4d");
|
|
pub const VIDEO_ZOOM_RECT = Guid.initString("7aaa1638-1b7f-4c93-bd89-5b9c9fb6fcf0");
|
|
pub const MFEVRDLL = @as(u32, 0);
|
|
pub const MF_SDK_VERSION = @as(u32, 2);
|
|
pub const MF_API_VERSION = @as(u32, 112);
|
|
pub const MFSTARTUP_NOSOCKET = @as(u32, 1);
|
|
pub const MFSTARTUP_LITE = @as(u32, 1);
|
|
pub const MFSTARTUP_FULL = @as(u32, 0);
|
|
pub const MF_E_DXGI_DEVICE_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217408));
|
|
pub const MF_E_DXGI_NEW_VIDEO_DEVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217407));
|
|
pub const MF_E_DXGI_VIDEO_DEVICE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147217406));
|
|
pub const MF_1_BYTE_ALIGNMENT = @as(u32, 0);
|
|
pub const MF_2_BYTE_ALIGNMENT = @as(u32, 1);
|
|
pub const MF_4_BYTE_ALIGNMENT = @as(u32, 3);
|
|
pub const MF_8_BYTE_ALIGNMENT = @as(u32, 7);
|
|
pub const MF_16_BYTE_ALIGNMENT = @as(u32, 15);
|
|
pub const MF_32_BYTE_ALIGNMENT = @as(u32, 31);
|
|
pub const MF_64_BYTE_ALIGNMENT = @as(u32, 63);
|
|
pub const MF_128_BYTE_ALIGNMENT = @as(u32, 127);
|
|
pub const MF_256_BYTE_ALIGNMENT = @as(u32, 255);
|
|
pub const MF_512_BYTE_ALIGNMENT = @as(u32, 511);
|
|
pub const MF_1024_BYTE_ALIGNMENT = @as(u32, 1023);
|
|
pub const MF_2048_BYTE_ALIGNMENT = @as(u32, 2047);
|
|
pub const MF_4096_BYTE_ALIGNMENT = @as(u32, 4095);
|
|
pub const MF_8192_BYTE_ALIGNMENT = @as(u32, 8191);
|
|
pub const MF_EVENT_SESSIONCAPS = Guid.initString("7e5ebcd0-11b8-4abe-afad-10f6599a7f42");
|
|
pub const MF_EVENT_SESSIONCAPS_DELTA = Guid.initString("7e5ebcd1-11b8-4abe-afad-10f6599a7f42");
|
|
pub const MFSESSIONCAP_START = @as(u32, 1);
|
|
pub const MFSESSIONCAP_SEEK = @as(u32, 2);
|
|
pub const MFSESSIONCAP_PAUSE = @as(u32, 4);
|
|
pub const MFSESSIONCAP_RATE_FORWARD = @as(u32, 16);
|
|
pub const MFSESSIONCAP_RATE_REVERSE = @as(u32, 32);
|
|
pub const MFSESSIONCAP_DOES_NOT_USE_NETWORK = @as(u32, 64);
|
|
pub const MF_EVENT_TOPOLOGY_STATUS = Guid.initString("30c5018d-9a53-454b-ad9e-6d5f8fa7c43b");
|
|
pub const MF_EVENT_START_PRESENTATION_TIME = Guid.initString("5ad914d0-9b45-4a8d-a2c0-81d1e50bfb07");
|
|
pub const MF_EVENT_PRESENTATION_TIME_OFFSET = Guid.initString("5ad914d1-9b45-4a8d-a2c0-81d1e50bfb07");
|
|
pub const MF_EVENT_START_PRESENTATION_TIME_AT_OUTPUT = Guid.initString("5ad914d2-9b45-4a8d-a2c0-81d1e50bfb07");
|
|
pub const MF_EVENT_SOURCE_FAKE_START = Guid.initString("a8cc55a7-6b31-419f-845d-ffb351a2434b");
|
|
pub const MF_EVENT_SOURCE_PROJECTSTART = Guid.initString("a8cc55a8-6b31-419f-845d-ffb351a2434b");
|
|
pub const MF_EVENT_SOURCE_ACTUAL_START = Guid.initString("a8cc55a9-6b31-419f-845d-ffb351a2434b");
|
|
pub const MF_EVENT_SOURCE_TOPOLOGY_CANCELED = Guid.initString("db62f650-9a5e-4704-acf3-563bc6a73364");
|
|
pub const MF_EVENT_SOURCE_CHARACTERISTICS = Guid.initString("47db8490-8b22-4f52-afda-9ce1b2d3cfa8");
|
|
pub const MF_EVENT_SOURCE_CHARACTERISTICS_OLD = Guid.initString("47db8491-8b22-4f52-afda-9ce1b2d3cfa8");
|
|
pub const MF_EVENT_DO_THINNING = Guid.initString("321ea6fb-dad9-46e4-b31d-d2eae7090e30");
|
|
pub const MF_EVENT_SCRUBSAMPLE_TIME = Guid.initString("9ac712b3-dcb8-44d5-8d0c-37455a2782e3");
|
|
pub const MF_EVENT_OUTPUT_NODE = Guid.initString("830f1a8b-c060-46dd-a801-1c95dec9b107");
|
|
pub const MF_EVENT_MFT_INPUT_STREAM_ID = Guid.initString("f29c2cca-7ae6-42d2-b284-bf837cc874e2");
|
|
pub const MF_EVENT_MFT_CONTEXT = Guid.initString("b7cd31f1-899e-4b41-80c9-26a896d32977");
|
|
pub const MF_EVENT_STREAM_METADATA_KEYDATA = Guid.initString("cd59a4a1-4a3b-4bbd-8665-72a40fbea776");
|
|
pub const MF_EVENT_STREAM_METADATA_CONTENT_KEYIDS = Guid.initString("5063449d-cc29-4fc6-a75a-d247b35af85c");
|
|
pub const MF_EVENT_STREAM_METADATA_SYSTEMID = Guid.initString("1ea2ef64-ba16-4a36-8719-fe7560ba32ad");
|
|
pub const MFSampleExtension_MaxDecodeFrameSize = Guid.initString("d3cc654f-f9f3-4a13-889f-f04eb2b5b957");
|
|
pub const MFSampleExtension_AccumulatedNonRefPicPercent = Guid.initString("79ea74df-a740-445b-bc98-c9ed1f260eee");
|
|
pub const MFSampleExtension_Encryption_ProtectionScheme = Guid.initString("d054d096-28bb-45da-87ec-74f351871406");
|
|
pub const MFSampleExtension_Encryption_CryptByteBlock = Guid.initString("9d84289b-0c7f-4713-ab95-108ab42ad801");
|
|
pub const MFSampleExtension_Encryption_SkipByteBlock = Guid.initString("0d550548-8317-4ab1-845f-d06306e293e3");
|
|
pub const MFSampleExtension_Encryption_SubSample_Mapping = Guid.initString("8444f27a-69a1-48da-bd08-11cef36830d2");
|
|
pub const MFSampleExtension_Encryption_ClearSliceHeaderData = Guid.initString("5509a4f4-320d-4e6c-8d1a-94c66dd20cb0");
|
|
pub const MFSampleExtension_Encryption_HardwareProtection_KeyInfoID = Guid.initString("8cbfcceb-94a5-4de1-8231-a85e47cf81e7");
|
|
pub const MFSampleExtension_Encryption_HardwareProtection_KeyInfo = Guid.initString("b2372080-455b-4dd7-9989-1a955784b754");
|
|
pub const MFSampleExtension_Encryption_HardwareProtection_VideoDecryptorContext = Guid.initString("693470c8-e837-47a0-88cb-535b905e3582");
|
|
pub const MFSampleExtension_Encryption_Opaque_Data = Guid.initString("224d77e5-1391-4ffb-9f41-b432f68c611d");
|
|
pub const MFSampleExtension_NALULengthInfo = Guid.initString("19124e7c-ad4b-465f-bb18-20186287b6af");
|
|
pub const MFSampleExtension_Encryption_ResumeVideoOutput = Guid.initString("a435aba5-afde-4cf5-bc1c-f6acaf13949d");
|
|
pub const MFSampleExtension_Encryption_NALUTypes = Guid.initString("b0f067c7-714c-416c-8d59-5f4ddf8913b6");
|
|
pub const MFSampleExtension_Encryption_SPSPPSData = Guid.initString("aede0fa2-0e0c-453c-b7f3-de8693364d11");
|
|
pub const MFSampleExtension_Encryption_SEIData = Guid.initString("3cf0e972-4542-4687-9999-585f565fba7d");
|
|
pub const MFSampleExtension_Encryption_HardwareProtection = Guid.initString("9a2b2d2b-8270-43e3-8448-994f426e8886");
|
|
pub const MFSampleExtension_CleanPoint = Guid.initString("9cdf01d8-a0f0-43ba-b077-eaa06cbd728a");
|
|
pub const MFSampleExtension_Discontinuity = Guid.initString("9cdf01d9-a0f0-43ba-b077-eaa06cbd728a");
|
|
pub const MFSampleExtension_Token = Guid.initString("8294da66-f328-4805-b551-00deb4c57a61");
|
|
pub const MFSampleExtension_ClosedCaption_CEA708 = Guid.initString("26f09068-e744-47dc-aa03-dbf20403bde6");
|
|
pub const MFSampleExtension_ClosedCaption_CEA708_MAX_SIZE = @as(u32, 256);
|
|
pub const MFSampleExtension_DecodeTimestamp = Guid.initString("73a954d4-09e2-4861-befc-94bd97c08e6e");
|
|
pub const MFSampleExtension_VideoEncodeQP = Guid.initString("b2efe478-f979-4c66-b95e-ee2b82c82f36");
|
|
pub const MFSampleExtension_VideoEncodePictureType = Guid.initString("973704e6-cd14-483c-8f20-c9fc0928bad5");
|
|
pub const MFSampleExtension_FrameCorruption = Guid.initString("b4dd4a8c-0beb-44c4-8b75-b02b913b04f0");
|
|
pub const MFSampleExtension_DirtyRects = Guid.initString("9ba70225-b342-4e97-9126-0b566ab7ea7e");
|
|
pub const MFSampleExtension_MoveRegions = Guid.initString("e2a6c693-3a8b-4b8d-95d0-f60281a12fb7");
|
|
pub const MFSampleExtension_HDCP_OptionalHeader = Guid.initString("9a2e7390-121f-455f-8376-c97428e0b540");
|
|
pub const MFSampleExtension_HDCP_FrameCounter = Guid.initString("9d389c60-f507-4aa6-a40a-71027a02f3de");
|
|
pub const MFSampleExtension_HDCP_StreamID = Guid.initString("177e5d74-c370-4a7a-95a2-36833c01d0af");
|
|
pub const MFSampleExtension_Timestamp = Guid.initString("1e436999-69be-4c7a-9369-70068c0260cb");
|
|
pub const MFSampleExtension_RepeatFrame = Guid.initString("88be738f-0711-4f42-b458-344aed42ec2f");
|
|
pub const MFT_ENCODER_ERROR = Guid.initString("c8d1eda4-98e4-41d5-9297-44f53852f90e");
|
|
pub const MFT_GFX_DRIVER_VERSION_ID_Attribute = Guid.initString("f34b9093-05e0-4b16-993d-3e2a2cde6ad3");
|
|
pub const MFSampleExtension_DescrambleData = Guid.initString("43483be6-4903-4314-b032-2951365936fc");
|
|
pub const MFSampleExtension_SampleKeyID = Guid.initString("9ed713c8-9b87-4b26-8297-a93b0c5a8acc");
|
|
pub const MFSampleExtension_GenKeyFunc = Guid.initString("441ca1ee-6b1f-4501-903a-de87df42f6ed");
|
|
pub const MFSampleExtension_GenKeyCtx = Guid.initString("188120cb-d7da-4b59-9b3e-9252fd37301c");
|
|
pub const MFSampleExtension_PacketCrossOffsets = Guid.initString("2789671d-389f-40bb-90d9-c282f77f9abd");
|
|
pub const MFSampleExtension_Encryption_SampleID = Guid.initString("6698b84e-0afa-4330-aeb2-1c0a98d7a44d");
|
|
pub const MFSampleExtension_Encryption_KeyID = Guid.initString("76376591-795f-4da1-86ed-9d46eca109a9");
|
|
pub const MFSampleExtension_Content_KeyID = Guid.initString("c6c7f5b0-acca-415b-87d9-10441469efc6");
|
|
pub const MFSampleExtension_Encryption_SubSampleMappingSplit = Guid.initString("fe0254b9-2aa5-4edc-99f7-17e89dbf9174");
|
|
pub const MFSampleExtension_Interlaced = Guid.initString("b1d5830a-deb8-40e3-90fa-389943716461");
|
|
pub const MFSampleExtension_BottomFieldFirst = Guid.initString("941ce0a3-6ae3-4dda-9a08-a64298340617");
|
|
pub const MFSampleExtension_RepeatFirstField = Guid.initString("304d257c-7493-4fbd-b149-9228de8d9a99");
|
|
pub const MFSampleExtension_SingleField = Guid.initString("9d85f816-658b-455a-bde0-9fa7e15ab8f9");
|
|
pub const MFSampleExtension_DerivedFromTopField = Guid.initString("6852465a-ae1c-4553-8e9b-c3420fcb1637");
|
|
pub const MFSampleExtension_MeanAbsoluteDifference = Guid.initString("1cdbde11-08b4-4311-a6dd-0f9f371907aa");
|
|
pub const MFSampleExtension_LongTermReferenceFrameInfo = Guid.initString("9154733f-e1bd-41bf-81d3-fcd918f71332");
|
|
pub const MFSampleExtension_ROIRectangle = Guid.initString("3414a438-4998-4d2c-be82-be3ca0b24d43");
|
|
pub const MFSampleExtension_LastSlice = Guid.initString("2b5d5457-5547-4f07-b8c8-b4a3a9a1daac");
|
|
pub const MACROBLOCK_FLAG_SKIP = @as(u32, 1);
|
|
pub const MACROBLOCK_FLAG_DIRTY = @as(u32, 2);
|
|
pub const MACROBLOCK_FLAG_MOTION = @as(u32, 4);
|
|
pub const MACROBLOCK_FLAG_VIDEO = @as(u32, 8);
|
|
pub const MACROBLOCK_FLAG_HAS_MOTION_VECTOR = @as(u32, 16);
|
|
pub const MACROBLOCK_FLAG_HAS_QP = @as(u32, 32);
|
|
pub const MFSampleExtension_FeatureMap = Guid.initString("a032d165-46fc-400a-b449-49de53e62a6e");
|
|
pub const MFSampleExtension_ChromaOnly = Guid.initString("1eb9179c-a01f-4845-8c04-0e65a26eb04f");
|
|
pub const MFSampleExtension_PhotoThumbnail = Guid.initString("74bbc85c-c8bb-42dc-b586-da17ffd35dcc");
|
|
pub const MFSampleExtension_PhotoThumbnailMediaType = Guid.initString("61ad5420-ebf8-4143-89af-6bf25f672def");
|
|
pub const MFSampleExtension_CaptureMetadata = Guid.initString("2ebe23a8-faf5-444a-a6a2-eb810880ab5d");
|
|
pub const MFSampleExtension_MDLCacheCookie = Guid.initString("5f002af9-d8f9-41a3-b6c3-a2ad43f647ad");
|
|
pub const MF_CAPTURE_METADATA_PHOTO_FRAME_FLASH = Guid.initString("0f9dd6c6-6003-45d8-bd59-f1f53e3d04e8");
|
|
pub const MF_CAPTURE_METADATA_FRAME_RAWSTREAM = Guid.initString("9252077b-2680-49b9-ae02-b19075973b70");
|
|
pub const MF_CAPTURE_METADATA_FOCUSSTATE = Guid.initString("a87ee154-997f-465d-b91f-29d53b982b88");
|
|
pub const MF_CAPTURE_METADATA_REQUESTED_FRAME_SETTING_ID = Guid.initString("bb3716d9-8a61-47a4-8197-459c7ff174d5");
|
|
pub const MF_CAPTURE_METADATA_EXPOSURE_TIME = Guid.initString("16b9ae99-cd84-4063-879d-a28c7633729e");
|
|
pub const MF_CAPTURE_METADATA_EXPOSURE_COMPENSATION = Guid.initString("d198aa75-4b62-4345-abf3-3c31fa12c299");
|
|
pub const MF_CAPTURE_METADATA_ISO_SPEED = Guid.initString("e528a68f-b2e3-44fe-8b65-07bf4b5a13ff");
|
|
pub const MF_CAPTURE_METADATA_LENS_POSITION = Guid.initString("b5fc8e86-11d1-4e70-819b-723a89fa4520");
|
|
pub const MF_CAPTURE_METADATA_SCENE_MODE = Guid.initString("9cc3b54d-5ed3-4bae-b388-7670aef59e13");
|
|
pub const MF_CAPTURE_METADATA_FLASH = Guid.initString("4a51520b-fb36-446c-9df2-68171b9a0389");
|
|
pub const MF_CAPTURE_METADATA_FLASH_POWER = Guid.initString("9c0e0d49-0205-491a-bc9d-2d6e1f4d5684");
|
|
pub const MF_CAPTURE_METADATA_WHITEBALANCE = Guid.initString("c736fd77-0fb9-4e2e-97a2-fcd490739ee9");
|
|
pub const MF_CAPTURE_METADATA_ZOOMFACTOR = Guid.initString("e50b0b81-e501-42c2-abf2-857ecb13fa5c");
|
|
pub const MF_CAPTURE_METADATA_FACEROIS = Guid.initString("864f25a6-349f-46b1-a30e-54cc22928a47");
|
|
pub const MF_CAPTURE_METADATA_FACEROITIMESTAMPS = Guid.initString("e94d50cc-3da0-44d4-bb34-83198a741868");
|
|
pub const MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS = Guid.initString("b927a1a8-18ef-46d3-b3af-69372f94d9b2");
|
|
pub const MF_CAPTURE_METADATA_ISO_GAINS = Guid.initString("05802ac9-0e1d-41c7-a8c8-7e7369f84e1e");
|
|
pub const MF_CAPTURE_METADATA_SENSORFRAMERATE = Guid.initString("db51357e-9d3d-4962-b06d-07ce650d9a0a");
|
|
pub const MF_CAPTURE_METADATA_WHITEBALANCE_GAINS = Guid.initString("e7570c8f-2dcb-4c7c-aace-22ece7cce647");
|
|
pub const MF_CAPTURE_METADATA_HISTOGRAM = Guid.initString("85358432-2ef6-4ba9-a3fb-06d82974b895");
|
|
pub const MF_CAPTURE_METADATA_EXIF = Guid.initString("2e9575b8-8c31-4a02-8575-42b197b71592");
|
|
pub const MF_CAPTURE_METADATA_FRAME_ILLUMINATION = Guid.initString("6d688ffc-63d3-46fe-bada-5b947db0d080");
|
|
pub const MF_CAPTURE_METADATA_UVC_PAYLOADHEADER = Guid.initString("f9f88a87-e1dd-441e-95cb-42e21a64f1d9");
|
|
pub const MFSampleExtension_Depth_MinReliableDepth = Guid.initString("5f8582b2-e36b-47c8-9b87-fee1ca72c5b0");
|
|
pub const MFSampleExtension_Depth_MaxReliableDepth = Guid.initString("e45545d1-1f0f-4a32-a8a7-6101a24ea8be");
|
|
pub const MF_CAPTURE_METADATA_FIRST_SCANLINE_START_TIME_QPC = Guid.initString("6a2c49f1-e052-46b6-b2d9-73c1558709af");
|
|
pub const MF_CAPTURE_METADATA_LAST_SCANLINE_END_TIME_QPC = Guid.initString("dccadecb-c4d4-400d-b418-10e88525e1f6");
|
|
pub const MF_CAPTURE_METADATA_SCANLINE_TIME_QPC_ACCURACY = Guid.initString("4cd79c51-f765-4b09-b1e1-27d1f7ebea09");
|
|
pub const MF_CAPTURE_METADATA_SCANLINE_DIRECTION = Guid.initString("6496a3ba-1907-49e6-b0c3-123795f380a9");
|
|
pub const MFCAPTURE_METADATA_SCAN_RIGHT_LEFT = @as(u32, 1);
|
|
pub const MFCAPTURE_METADATA_SCAN_BOTTOM_TOP = @as(u32, 2);
|
|
pub const MFCAPTURE_METADATA_SCANLINE_VERTICAL = @as(u32, 4);
|
|
pub const MF_CAPTURE_METADATA_DIGITALWINDOW = Guid.initString("276f72a2-59c8-4f69-97b4-068b8c0ec044");
|
|
pub const MF_CAPTURE_METADATA_FRAME_BACKGROUND_MASK = Guid.initString("03f14dd3-75dd-433a-a8e2-1e3f5f2a50a0");
|
|
pub const MF_METADATAFACIALEXPRESSION_SMILE = @as(u32, 1);
|
|
pub const MF_METADATATIMESTAMPS_DEVICE = @as(u32, 1);
|
|
pub const MF_METADATATIMESTAMPS_PRESENTATION = @as(u32, 2);
|
|
pub const MF_HISTOGRAM_CHANNEL_Y = @as(u32, 1);
|
|
pub const MF_HISTOGRAM_CHANNEL_R = @as(u32, 2);
|
|
pub const MF_HISTOGRAM_CHANNEL_G = @as(u32, 4);
|
|
pub const MF_HISTOGRAM_CHANNEL_B = @as(u32, 8);
|
|
pub const MF_HISTOGRAM_CHANNEL_Cb = @as(u32, 16);
|
|
pub const MF_HISTOGRAM_CHANNEL_Cr = @as(u32, 32);
|
|
pub const MFT_CATEGORY_VIDEO_DECODER = Guid.initString("d6c02d4b-6833-45b4-971a-05a4b04bab91");
|
|
pub const MFT_CATEGORY_VIDEO_ENCODER = Guid.initString("f79eac7d-e545-4387-bdee-d647d7bde42a");
|
|
pub const MFT_CATEGORY_VIDEO_EFFECT = Guid.initString("12e17c21-532c-4a6e-8a1c-40825a736397");
|
|
pub const MFT_CATEGORY_MULTIPLEXER = Guid.initString("059c561e-05ae-4b61-b69d-55b61ee54a7b");
|
|
pub const MFT_CATEGORY_DEMULTIPLEXER = Guid.initString("a8700a7a-939b-44c5-99d7-76226b23b3f1");
|
|
pub const MFT_CATEGORY_AUDIO_DECODER = Guid.initString("9ea73fb4-ef7a-4559-8d5d-719d8f0426c7");
|
|
pub const MFT_CATEGORY_AUDIO_ENCODER = Guid.initString("91c64bd0-f91e-4d8c-9276-db248279d975");
|
|
pub const MFT_CATEGORY_AUDIO_EFFECT = Guid.initString("11064c48-3648-4ed0-932e-05ce8ac811b7");
|
|
pub const MFT_CATEGORY_VIDEO_PROCESSOR = Guid.initString("302ea3fc-aa5f-47f9-9f7a-c2188bb16302");
|
|
pub const MFT_CATEGORY_OTHER = Guid.initString("90175d57-b7ea-4901-aeb3-933a8747756f");
|
|
pub const MFT_CATEGORY_ENCRYPTOR = Guid.initString("b0c687be-01cd-44b5-b8b2-7c1d7e058b1f");
|
|
pub const MFT_CATEGORY_VIDEO_RENDERER_EFFECT = Guid.initString("145cd8b4-92f4-4b23-8ae7-e0df06c2da95");
|
|
pub const MFT_ENUM_VIDEO_RENDERER_EXTENSION_PROFILE = Guid.initString("62c56928-9a4e-443b-b9dc-cac830c24100");
|
|
pub const MFT_ENUM_ADAPTER_LUID = Guid.initString("1d39518c-e220-4da8-a07f-ba172552d6b1");
|
|
pub const MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE = Guid.initString("53476a11-3f13-49fb-ac42-ee2733c96741");
|
|
pub const LOCAL_D3DFMT_DEFINES = @as(u32, 1);
|
|
pub const MFVideoFormat_Base = Guid.initString("00000000-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_RGB32 = Guid.initString("00000016-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_ARGB32 = Guid.initString("00000015-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_RGB24 = Guid.initString("00000014-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_RGB555 = Guid.initString("00000018-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_RGB565 = Guid.initString("00000017-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_RGB8 = Guid.initString("00000029-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_L8 = Guid.initString("00000032-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_L16 = Guid.initString("00000051-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_D16 = Guid.initString("00000050-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_AI44 = Guid.initString("34344941-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_AYUV = Guid.initString("56555941-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_YUY2 = Guid.initString("32595559-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_YVYU = Guid.initString("55595659-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_YVU9 = Guid.initString("39555659-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_UYVY = Guid.initString("59565955-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_NV11 = Guid.initString("3131564e-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_NV12 = Guid.initString("3231564e-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_NV21 = Guid.initString("3132564e-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_YV12 = Guid.initString("32315659-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_I420 = Guid.initString("30323449-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_IYUV = Guid.initString("56555949-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y210 = Guid.initString("30313259-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y216 = Guid.initString("36313259-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y410 = Guid.initString("30313459-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y416 = Guid.initString("36313459-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y41P = Guid.initString("50313459-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y41T = Guid.initString("54313459-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Y42T = Guid.initString("54323459-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_P210 = Guid.initString("30313250-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_P216 = Guid.initString("36313250-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_P010 = Guid.initString("30313050-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_P016 = Guid.initString("36313050-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_v210 = Guid.initString("30313276-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_v216 = Guid.initString("36313276-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_v410 = Guid.initString("30313476-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MP43 = Guid.initString("3334504d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MP4S = Guid.initString("5334504d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_M4S2 = Guid.initString("3253344d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MP4V = Guid.initString("5634504d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_WMV1 = Guid.initString("31564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_WMV2 = Guid.initString("32564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_WMV3 = Guid.initString("33564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_WVC1 = Guid.initString("31435657-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MSS1 = Guid.initString("3153534d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MSS2 = Guid.initString("3253534d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MPG1 = Guid.initString("3147504d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DVSL = Guid.initString("6c737664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DVSD = Guid.initString("64737664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DVHD = Guid.initString("64687664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DV25 = Guid.initString("35327664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DV50 = Guid.initString("30357664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_DVH1 = Guid.initString("31687664-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_H264 = Guid.initString("34363248-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_H265 = Guid.initString("35363248-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_MJPG = Guid.initString("47504a4d-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_420O = Guid.initString("4f303234-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_HEVC = Guid.initString("43564548-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_HEVC_ES = Guid.initString("53564548-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_VP80 = Guid.initString("30385056-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_VP90 = Guid.initString("30395056-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_ORAW = Guid.initString("5741524f-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_H263 = Guid.initString("33363248-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_A2R10G10B10 = Guid.initString("0000001f-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_A16B16G16R16F = Guid.initString("00000071-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_VP10 = Guid.initString("30315056-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_AV1 = Guid.initString("31305641-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_Theora = Guid.initString("6f656874-0000-0010-8000-00aa00389b71");
|
|
pub const MFVideoFormat_H264_ES = Guid.initString("3f40f4f0-5622-4ff8-b6d8-a17a584bee5e");
|
|
pub const MFVideoFormat_MPEG2 = Guid.initString("e06d8026-db46-11cf-b4d1-00805f6cbbea");
|
|
pub const MFAudioFormat_Base = Guid.initString("00000000-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_PCM = Guid.initString("00000001-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_Float = Guid.initString("00000003-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_DTS = Guid.initString("00000008-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_Dolby_AC3_SPDIF = Guid.initString("00000092-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_DRM = Guid.initString("00000009-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_WMAudioV8 = Guid.initString("00000161-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_WMAudioV9 = Guid.initString("00000162-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_WMAudio_Lossless = Guid.initString("00000163-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_WMASPDIF = Guid.initString("00000164-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_MSP1 = Guid.initString("0000000a-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_MP3 = Guid.initString("00000055-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_MPEG = Guid.initString("00000050-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_AAC = Guid.initString("00001610-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_ADTS = Guid.initString("00001600-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_AMR_NB = Guid.initString("00007361-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_AMR_WB = Guid.initString("00007362-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_AMR_WP = Guid.initString("00007363-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_FLAC = Guid.initString("0000f1ac-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_ALAC = Guid.initString("00006c61-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_Opus = Guid.initString("0000704f-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_Dolby_AC4 = Guid.initString("0000ac40-0000-0010-8000-00aa00389b71");
|
|
pub const MFAudioFormat_Dolby_AC3 = Guid.initString("e06d802c-db46-11cf-b4d1-00805f6cbbea");
|
|
pub const MFAudioFormat_Dolby_DDPlus = Guid.initString("a7fb87af-2d02-42fb-a4d4-05cd93843bdd");
|
|
pub const MFAudioFormat_Dolby_AC4_V1 = Guid.initString("36b7927c-3d87-4a2a-9196-a21ad9e935e6");
|
|
pub const MFAudioFormat_Dolby_AC4_V2 = Guid.initString("7998b2a0-17dd-49b6-8dfa-9b278552a2ac");
|
|
pub const MFAudioFormat_Dolby_AC4_V1_ES = Guid.initString("9d8dccc6-d156-4fb8-979c-a85be7d21dfa");
|
|
pub const MFAudioFormat_Dolby_AC4_V2_ES = Guid.initString("7e58c9f9-b070-45f4-8ccd-a99a0417c1ac");
|
|
pub const MFAudioFormat_Vorbis = Guid.initString("8d2fd10b-5841-4a6b-8905-588fec1aded9");
|
|
pub const MFAudioFormat_DTS_RAW = Guid.initString("e06d8033-db46-11cf-b4d1-00805f6cbbea");
|
|
pub const MFAudioFormat_DTS_HD = Guid.initString("a2e58eb7-0fa9-48bb-a40c-fa0e156d0645");
|
|
pub const MFAudioFormat_DTS_XLL = Guid.initString("45b37c1b-8c70-4e59-a7be-a1e42c81c80d");
|
|
pub const MFAudioFormat_DTS_LBR = Guid.initString("c2fe6f0a-4e3c-4df1-9b60-50863091e4b9");
|
|
pub const MFAudioFormat_DTS_UHD = Guid.initString("87020117-ace3-42de-b73e-c656706263f8");
|
|
pub const MFAudioFormat_DTS_UHDY = Guid.initString("9b9cca00-91b9-4ccc-883a-8f787ac3cc86");
|
|
pub const MFAudioFormat_Float_SpatialObjects = Guid.initString("fa39cd94-bc64-4ab1-9b71-dcd09d5a7e7a");
|
|
pub const MFAudioFormat_LPCM = Guid.initString("e06d8032-db46-11cf-b4d1-00805f6cbbea");
|
|
pub const MFAudioFormat_PCM_HDCP = Guid.initString("a5e7ff01-8411-4acc-a865-5f4941288d80");
|
|
pub const MFAudioFormat_Dolby_AC3_HDCP = Guid.initString("97663a80-8ffb-4445-a6ba-792d908f497f");
|
|
pub const MFAudioFormat_AAC_HDCP = Guid.initString("419bce76-8b72-400f-adeb-84b57d63484d");
|
|
pub const MFAudioFormat_ADTS_HDCP = Guid.initString("da4963a3-14d8-4dcf-92b7-193eb84363db");
|
|
pub const MFAudioFormat_Base_HDCP = Guid.initString("3884b5bc-e277-43fd-983d-038aa8d9b605");
|
|
pub const MFVideoFormat_H264_HDCP = Guid.initString("5d0ce9dd-9817-49da-bdfd-f5f5b98f18a6");
|
|
pub const MFVideoFormat_HEVC_HDCP = Guid.initString("3cfe0fe6-05c4-47dc-9d70-4bdb2959720f");
|
|
pub const MFVideoFormat_Base_HDCP = Guid.initString("eac3b9d5-bd14-4237-8f1f-bab428e49312");
|
|
pub const MFMPEG4Format_Base = Guid.initString("00000000-767a-494d-b478-f29d25dc9037");
|
|
pub const MFSubtitleFormat_XML = Guid.initString("2006f94f-29ca-4195-b8db-00ded8ff0c97");
|
|
pub const MFSubtitleFormat_TTML = Guid.initString("73e73992-9a10-4356-9557-7194e91e3e54");
|
|
pub const MFSubtitleFormat_ATSC = Guid.initString("7fa7faa3-feae-4e16-aedf-36b9acfbb099");
|
|
pub const MFSubtitleFormat_WebVTT = Guid.initString("c886d215-f485-40bb-8db6-fadbc619a45d");
|
|
pub const MFSubtitleFormat_SRT = Guid.initString("5e467f2e-77ca-4ca5-8391-d142ed4b76c8");
|
|
pub const MFSubtitleFormat_SSA = Guid.initString("57176a1b-1a9e-4eea-abef-c61760198ac4");
|
|
pub const MFSubtitleFormat_CustomUserData = Guid.initString("1bb3d849-6614-4d80-8882-ed24aa82da92");
|
|
pub const MFSubtitleFormat_PGS = Guid.initString("71f40e4a-1278-4442-b30d-39dd1d7722bc");
|
|
pub const MFSubtitleFormat_VobSub = Guid.initString("6b8e40f4-8d2c-4ced-ad91-5960e45b4433");
|
|
pub const MF_MT_MAJOR_TYPE = Guid.initString("48eba18e-f8c9-4687-bf11-0a74c9f96a8f");
|
|
pub const MF_MT_SUBTYPE = Guid.initString("f7e34c9a-42e8-4714-b74b-cb29d72c35e5");
|
|
pub const MF_MT_ALL_SAMPLES_INDEPENDENT = Guid.initString("c9173739-5e56-461c-b713-46fb995cb95f");
|
|
pub const MF_MT_FIXED_SIZE_SAMPLES = Guid.initString("b8ebefaf-b718-4e04-b0a9-116775e3321b");
|
|
pub const MF_MT_COMPRESSED = Guid.initString("3afd0cee-18f2-4ba5-a110-8bea502e1f92");
|
|
pub const MF_MT_SAMPLE_SIZE = Guid.initString("dad3ab78-1990-408b-bce2-eba673dacc10");
|
|
pub const MF_MT_WRAPPED_TYPE = Guid.initString("4d3f7b23-d02f-4e6c-9bee-e4bf2c6c695d");
|
|
pub const MF_MT_VIDEO_3D = Guid.initString("cb5e88cf-7b5b-476b-85aa-1ca5ae187555");
|
|
pub const MF_MT_VIDEO_3D_FORMAT = Guid.initString("5315d8a0-87c5-4697-b793-6606c67c049b");
|
|
pub const MF_MT_VIDEO_3D_NUM_VIEWS = Guid.initString("bb077e8a-dcbf-42eb-af60-418df98aa495");
|
|
pub const MF_MT_VIDEO_3D_LEFT_IS_BASE = Guid.initString("6d4b7bff-5629-4404-948c-c634f4ce26d4");
|
|
pub const MF_MT_VIDEO_3D_FIRST_IS_LEFT = Guid.initString("ec298493-0ada-4ea1-a4fe-cbbd36ce9331");
|
|
pub const MFSampleExtension_3DVideo = Guid.initString("f86f97a4-dd54-4e2e-9a5e-55fc2d74a005");
|
|
pub const MFSampleExtension_3DVideo_SampleFormat = Guid.initString("08671772-e36f-4cff-97b3-d72e20987a48");
|
|
pub const MF_MT_VIDEO_ROTATION = Guid.initString("c380465d-2271-428c-9b83-ecea3b4a85c1");
|
|
pub const MF_DEVICESTREAM_MULTIPLEXED_MANAGER = Guid.initString("6ea542b0-281f-4231-a464-fe2f5022501c");
|
|
pub const MF_MEDIATYPE_MULTIPLEXED_MANAGER = Guid.initString("13c78fb5-f275-4ea0-bb5f-0249832b0d6e");
|
|
pub const MFSampleExtension_MULTIPLEXED_MANAGER = Guid.initString("8dcdee79-6b5a-4c45-8db9-20b395f02fcf");
|
|
pub const MF_MT_SECURE = Guid.initString("c5acc4fd-0304-4ecf-809f-47bc97ff63bd");
|
|
pub const MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES = Guid.initString("17145fd1-1b2b-423c-8001-2b6833ed3588");
|
|
pub const MF_MT_ALPHA_MODE = Guid.initString("5d959b0d-4cbf-4d04-919f-3f5f7f284211");
|
|
pub const MF_MT_DEPTH_MEASUREMENT = Guid.initString("fd5ac489-0917-4bb6-9d54-3122bf70144b");
|
|
pub const MF_MT_DEPTH_VALUE_UNIT = Guid.initString("21a800f5-3189-4797-beba-f13cd9a31a5e");
|
|
pub const MF_MT_VIDEO_NO_FRAME_ORDERING = Guid.initString("3f5b106f-6bc2-4ee3-b7ed-8902c18f5351");
|
|
pub const MF_MT_VIDEO_H264_NO_FMOASO = Guid.initString("ed461cd6-ec9f-416a-a8a3-26d7d31018d7");
|
|
pub const MFSampleExtension_ForwardedDecodeUnits = Guid.initString("424c754c-97c8-48d6-8777-fc41f7b60879");
|
|
pub const MFSampleExtension_TargetGlobalLuminance = Guid.initString("3f60ef36-31ef-4daf-8360-940397e41ef3");
|
|
pub const MFSampleExtension_ForwardedDecodeUnitType = Guid.initString("089e57c7-47d3-4a26-bf9c-4b64fafb5d1e");
|
|
pub const MF_MT_FORWARD_CUSTOM_NALU = Guid.initString("ed336efd-244f-428d-9153-28f399458890");
|
|
pub const MF_MT_FORWARD_CUSTOM_SEI = Guid.initString("e27362f1-b136-41d1-9594-3a7e4febf2d1");
|
|
pub const MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE = Guid.initString("8437d4b9-d448-4fcd-9b6b-839bf96c7798");
|
|
pub const MF_DECODER_FWD_CUSTOM_SEI_DECODE_ORDER = Guid.initString("f13bbe3c-36d4-410a-b985-7a951a1e6294");
|
|
pub const MF_VIDEO_RENDERER_EFFECT_APP_SERVICE_NAME = Guid.initString("c6052a80-6d9c-40a3-9db8-f027a25c9ab9");
|
|
pub const MF_MT_AUDIO_NUM_CHANNELS = Guid.initString("37e48bf5-645e-4c5b-89de-ada9e29b696a");
|
|
pub const MF_MT_AUDIO_SAMPLES_PER_SECOND = Guid.initString("5faeeae7-0290-4c31-9e8a-c534f68d9dba");
|
|
pub const MF_MT_AUDIO_FLOAT_SAMPLES_PER_SECOND = Guid.initString("fb3b724a-cfb5-4319-aefe-6e42b2406132");
|
|
pub const MF_MT_AUDIO_AVG_BYTES_PER_SECOND = Guid.initString("1aab75c8-cfef-451c-ab95-ac034b8e1731");
|
|
pub const MF_MT_AUDIO_BLOCK_ALIGNMENT = Guid.initString("322de230-9eeb-43bd-ab7a-ff412251541d");
|
|
pub const MF_MT_AUDIO_BITS_PER_SAMPLE = Guid.initString("f2deb57f-40fa-4764-aa33-ed4f2d1ff669");
|
|
pub const MF_MT_AUDIO_VALID_BITS_PER_SAMPLE = Guid.initString("d9bf8d6a-9530-4b7c-9ddf-ff6fd58bbd06");
|
|
pub const MF_MT_AUDIO_SAMPLES_PER_BLOCK = Guid.initString("aab15aac-e13a-4995-9222-501ea15c6877");
|
|
pub const MF_MT_AUDIO_CHANNEL_MASK = Guid.initString("55fb5765-644a-4caf-8479-938983bb1588");
|
|
pub const MF_MT_AUDIO_FOLDDOWN_MATRIX = Guid.initString("9d62927c-36be-4cf2-b5c4-a3926e3e8711");
|
|
pub const MF_MT_AUDIO_WMADRC_PEAKREF = Guid.initString("9d62927d-36be-4cf2-b5c4-a3926e3e8711");
|
|
pub const MF_MT_AUDIO_WMADRC_PEAKTARGET = Guid.initString("9d62927e-36be-4cf2-b5c4-a3926e3e8711");
|
|
pub const MF_MT_AUDIO_WMADRC_AVGREF = Guid.initString("9d62927f-36be-4cf2-b5c4-a3926e3e8711");
|
|
pub const MF_MT_AUDIO_WMADRC_AVGTARGET = Guid.initString("9d629280-36be-4cf2-b5c4-a3926e3e8711");
|
|
pub const MF_MT_AUDIO_PREFER_WAVEFORMATEX = Guid.initString("a901aaba-e037-458a-bdf6-545be2074042");
|
|
pub const MF_MT_AAC_PAYLOAD_TYPE = Guid.initString("bfbabe79-7434-4d1c-94f0-72a3b9e17188");
|
|
pub const MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION = Guid.initString("7632f0e6-9538-4d61-acda-ea29c8c14456");
|
|
pub const MF_MT_AUDIO_FLAC_MAX_BLOCK_SIZE = Guid.initString("8b81adae-4b5a-4d40-8022-f38d09ca3c5c");
|
|
pub const MF_MT_SPATIAL_AUDIO_MAX_DYNAMIC_OBJECTS = Guid.initString("dcfba24a-2609-4240-a721-3faea76a4df9");
|
|
pub const MF_MT_SPATIAL_AUDIO_OBJECT_METADATA_FORMAT_ID = Guid.initString("2ab71bc0-6223-4ba7-ad64-7b94b47ae792");
|
|
pub const MF_MT_SPATIAL_AUDIO_OBJECT_METADATA_LENGTH = Guid.initString("094ba8be-d723-489f-92fa-766777b34726");
|
|
pub const MF_MT_SPATIAL_AUDIO_MAX_METADATA_ITEMS = Guid.initString("11aa80b4-e0da-47c6-8060-96c1259ae50d");
|
|
pub const MF_MT_SPATIAL_AUDIO_MIN_METADATA_ITEM_OFFSET_SPACING = Guid.initString("83e96ec9-1184-417e-8254-9f269158fc06");
|
|
pub const MF_MT_SPATIAL_AUDIO_DATA_PRESENT = Guid.initString("6842f6e7-d43e-4ebb-9c9c-c96f41784863");
|
|
pub const MF_MT_FRAME_SIZE = Guid.initString("1652c33d-d6b2-4012-b834-72030849a37d");
|
|
pub const MF_MT_FRAME_RATE = Guid.initString("c459a2e8-3d2c-4e44-b132-fee5156c7bb0");
|
|
pub const MF_MT_PIXEL_ASPECT_RATIO = Guid.initString("c6376a1e-8d0a-4027-be45-6d9a0ad39bb6");
|
|
pub const MF_MT_DRM_FLAGS = Guid.initString("8772f323-355a-4cc7-bb78-6d61a048ae82");
|
|
pub const MF_MT_TIMESTAMP_CAN_BE_DTS = Guid.initString("24974215-1b7b-41e4-8625-ac469f2dedaa");
|
|
pub const MF_MT_PAD_CONTROL_FLAGS = Guid.initString("4d0e73e5-80ea-4354-a9d0-1176ceb028ea");
|
|
pub const MF_MT_SOURCE_CONTENT_HINT = Guid.initString("68aca3cc-22d0-44e6-85f8-28167197fa38");
|
|
pub const MF_MT_VIDEO_CHROMA_SITING = Guid.initString("65df2370-c773-4c33-aa64-843e068efb0c");
|
|
pub const MF_MT_INTERLACE_MODE = Guid.initString("e2724bb8-e676-4806-b4b2-a8d6efb44ccd");
|
|
pub const MF_MT_TRANSFER_FUNCTION = Guid.initString("5fb0fce9-be5c-4935-a811-ec838f8eed93");
|
|
pub const MF_MT_VIDEO_PRIMARIES = Guid.initString("dbfbe4d7-0740-4ee0-8192-850ab0e21935");
|
|
pub const MF_MT_MAX_LUMINANCE_LEVEL = Guid.initString("50253128-c110-4de4-98ae-46a324fae6da");
|
|
pub const MF_MT_MAX_FRAME_AVERAGE_LUMINANCE_LEVEL = Guid.initString("58d4bf57-6f52-4733-a195-a9e29ecf9e27");
|
|
pub const MF_MT_MAX_MASTERING_LUMINANCE = Guid.initString("d6c6b997-272f-4ca1-8d00-8042111a0ff6");
|
|
pub const MF_MT_MIN_MASTERING_LUMINANCE = Guid.initString("839a4460-4e7e-4b4f-ae79-cc08905c7b27");
|
|
pub const MF_MT_DECODER_USE_MAX_RESOLUTION = Guid.initString("4c547c24-af9a-4f38-96ad-978773cf53e7");
|
|
pub const MF_MT_DECODER_MAX_DPB_COUNT = Guid.initString("67be144c-88b7-4ca9-9628-c808d5262217");
|
|
pub const MF_MT_CUSTOM_VIDEO_PRIMARIES = Guid.initString("47537213-8cfb-4722-aa34-fbc9e24d77b8");
|
|
pub const MF_MT_YUV_MATRIX = Guid.initString("3e23d450-2c75-4d25-a00e-b91670d12327");
|
|
pub const MF_MT_VIDEO_LIGHTING = Guid.initString("53a0529c-890b-4216-8bf9-599367ad6d20");
|
|
pub const MF_MT_VIDEO_NOMINAL_RANGE = Guid.initString("c21b8ee5-b956-4071-8daf-325edf5cab11");
|
|
pub const MF_MT_GEOMETRIC_APERTURE = Guid.initString("66758743-7e5f-400d-980a-aa8596c85696");
|
|
pub const MF_MT_MINIMUM_DISPLAY_APERTURE = Guid.initString("d7388766-18fe-48c6-a177-ee894867c8c4");
|
|
pub const MF_MT_PAN_SCAN_APERTURE = Guid.initString("79614dde-9187-48fb-b8c7-4d52689de649");
|
|
pub const MF_MT_PAN_SCAN_ENABLED = Guid.initString("4b7f6bc3-8b13-40b2-a993-abf630b8204e");
|
|
pub const MF_MT_AVG_BITRATE = Guid.initString("20332624-fb0d-4d9e-bd0d-cbf6786c102e");
|
|
pub const MF_MT_AVG_BIT_ERROR_RATE = Guid.initString("799cabd6-3508-4db4-a3c7-569cd533deb1");
|
|
pub const MF_MT_MAX_KEYFRAME_SPACING = Guid.initString("c16eb52b-73a1-476f-8d62-839d6a020652");
|
|
pub const MF_MT_USER_DATA = Guid.initString("b6bc765f-4c3b-40a4-bd51-2535b66fe09d");
|
|
pub const MF_MT_OUTPUT_BUFFER_NUM = Guid.initString("a505d3ac-f930-436e-8ede-93a509ce23b2");
|
|
pub const MF_MT_REALTIME_CONTENT = Guid.initString("bb12d222-2bdb-425e-91ec-2308e189a58f");
|
|
pub const MF_MT_DEFAULT_STRIDE = Guid.initString("644b4e48-1e02-4516-b0eb-c01ca9d49ac6");
|
|
pub const MF_MT_PALETTE = Guid.initString("6d283f42-9846-4410-afd9-654d503b1a54");
|
|
pub const MF_MT_AM_FORMAT_TYPE = Guid.initString("73d1072d-1870-4174-a063-29ff4ff6c11e");
|
|
pub const MF_MT_VIDEO_PROFILE = Guid.initString("ad76a80b-2d5c-4e0b-b375-64e520137036");
|
|
pub const MF_MT_VIDEO_LEVEL = Guid.initString("96f66574-11c5-4015-8666-bff516436da7");
|
|
pub const MF_MT_MPEG_START_TIME_CODE = Guid.initString("91f67885-4333-4280-97cd-bd5a6c03a06e");
|
|
pub const MF_MT_MPEG2_PROFILE = Guid.initString("ad76a80b-2d5c-4e0b-b375-64e520137036");
|
|
pub const MF_MT_MPEG2_LEVEL = Guid.initString("96f66574-11c5-4015-8666-bff516436da7");
|
|
pub const MF_MT_MPEG2_FLAGS = Guid.initString("31e3991d-f701-4b2f-b426-8ae3bda9e04b");
|
|
pub const MF_MT_MPEG_SEQUENCE_HEADER = Guid.initString("3c036de7-3ad0-4c9e-9216-ee6d6ac21cb3");
|
|
pub const MF_MT_MPEG2_STANDARD = Guid.initString("a20af9e8-928a-4b26-aaa9-f05c74cac47c");
|
|
pub const MF_MT_MPEG2_TIMECODE = Guid.initString("5229ba10-e29d-4f80-a59c-df4f180207d2");
|
|
pub const MF_MT_MPEG2_CONTENT_PACKET = Guid.initString("825d55e4-4f12-4197-9eb3-59b6e4710f06");
|
|
pub const MF_MT_MPEG2_ONE_FRAME_PER_PACKET = Guid.initString("91a49eb5-1d20-4b42-ace8-804269bf95ed");
|
|
pub const MF_MT_MPEG2_HDCP = Guid.initString("168f1b4a-3e91-450f-aea7-e4baeadae5ba");
|
|
pub const MF_MT_H264_MAX_CODEC_CONFIG_DELAY = Guid.initString("f5929986-4c45-4fbb-bb49-6cc534d05b9b");
|
|
pub const MF_MT_H264_SUPPORTED_SLICE_MODES = Guid.initString("c8be1937-4d64-4549-8343-a8086c0bfda5");
|
|
pub const MF_MT_H264_SUPPORTED_SYNC_FRAME_TYPES = Guid.initString("89a52c01-f282-48d2-b522-22e6ae633199");
|
|
pub const MF_MT_H264_RESOLUTION_SCALING = Guid.initString("e3854272-f715-4757-ba90-1b696c773457");
|
|
pub const MF_MT_H264_SIMULCAST_SUPPORT = Guid.initString("9ea2d63d-53f0-4a34-b94e-9de49a078cb3");
|
|
pub const MF_MT_H264_SUPPORTED_RATE_CONTROL_MODES = Guid.initString("6a8ac47e-519c-4f18-9bb3-7eeaaea5594d");
|
|
pub const MF_MT_H264_MAX_MB_PER_SEC = Guid.initString("45256d30-7215-4576-9336-b0f1bcd59bb2");
|
|
pub const MF_MT_H264_SUPPORTED_USAGES = Guid.initString("60b1a998-dc01-40ce-9736-aba845a2dbdc");
|
|
pub const MF_MT_H264_CAPABILITIES = Guid.initString("bb3bd508-490a-11e0-99e4-1316dfd72085");
|
|
pub const MF_MT_H264_SVC_CAPABILITIES = Guid.initString("f8993abe-d937-4a8f-bbca-6966fe9e1152");
|
|
pub const MF_MT_H264_USAGE = Guid.initString("359ce3a5-af00-49ca-a2f4-2ac94ca82b61");
|
|
pub const MF_MT_H264_RATE_CONTROL_MODES = Guid.initString("705177d8-45cb-11e0-ac7d-b91ce0d72085");
|
|
pub const MF_MT_H264_LAYOUT_PER_STREAM = Guid.initString("85e299b2-90e3-4fe8-b2f5-c067e0bfe57a");
|
|
pub const MF_MT_IN_BAND_PARAMETER_SET = Guid.initString("75da5090-910b-4a03-896c-7b898feea5af");
|
|
pub const MF_MT_MPEG4_TRACK_TYPE = Guid.initString("54f486dd-9327-4f6d-80ab-6f709ebb4cce");
|
|
pub const MF_MT_CONTAINER_RATE_SCALING = Guid.initString("83877f5e-0444-4e28-8479-6db0989b8c09");
|
|
pub const MF_MT_DV_AAUX_SRC_PACK_0 = Guid.initString("84bd5d88-0fb8-4ac8-be4b-a8848bef98f3");
|
|
pub const MF_MT_DV_AAUX_CTRL_PACK_0 = Guid.initString("f731004e-1dd1-4515-aabe-f0c06aa536ac");
|
|
pub const MF_MT_DV_AAUX_SRC_PACK_1 = Guid.initString("720e6544-0225-4003-a651-0196563a958e");
|
|
pub const MF_MT_DV_AAUX_CTRL_PACK_1 = Guid.initString("cd1f470d-1f04-4fe0-bfb9-d07ae0386ad8");
|
|
pub const MF_MT_DV_VAUX_SRC_PACK = Guid.initString("41402d9d-7b57-43c6-b129-2cb997f15009");
|
|
pub const MF_MT_DV_VAUX_CTRL_PACK = Guid.initString("2f84e1c4-0da1-4788-938e-0dfbfbb34b48");
|
|
pub const MF_MT_ARBITRARY_HEADER = Guid.initString("9e6bd6f5-0109-4f95-84ac-9309153a19fc");
|
|
pub const MF_MT_ARBITRARY_FORMAT = Guid.initString("5a75b249-0d7d-49a1-a1c3-e0d87f0cade5");
|
|
pub const MF_MT_IMAGE_LOSS_TOLERANT = Guid.initString("ed062cf4-e34e-4922-be99-934032133d7c");
|
|
pub const MF_MT_MPEG4_SAMPLE_DESCRIPTION = Guid.initString("261e9d83-9529-4b8f-a111-8b9c950a81a9");
|
|
pub const MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY = Guid.initString("9aa7e155-b64a-4c1d-a500-455d600b6560");
|
|
pub const MF_SD_AMBISONICS_SAMPLE3D_DESCRIPTION = Guid.initString("f715cf3e-a964-4c3f-94ae-9d6ba7264641");
|
|
pub const MF_MT_ORIGINAL_4CC = Guid.initString("d7be3fe0-2bc7-492d-b843-61a1919b70c3");
|
|
pub const MF_MT_ORIGINAL_WAVE_FORMAT_TAG = Guid.initString("8cbbc843-9fd9-49c2-882f-a72586c408ad");
|
|
pub const MF_MT_FRAME_RATE_RANGE_MIN = Guid.initString("d2e7558c-dc1f-403f-9a72-d28bb1eb3b5e");
|
|
pub const MF_MT_FRAME_RATE_RANGE_MAX = Guid.initString("e3371d41-b4cf-4a05-bd4e-20b88bb2c4d6");
|
|
pub const MF_LOW_LATENCY = Guid.initString("9c27891a-ed7a-40e1-88e8-b22727a024ee");
|
|
pub const MF_VIDEO_MAX_MB_PER_SEC = Guid.initString("e3f2e203-d445-4b8c-9211-ae390d3ba017");
|
|
pub const MF_DISABLE_FRAME_CORRUPTION_INFO = Guid.initString("7086e16c-49c5-4201-882a-8538f38cf13a");
|
|
pub const MFStreamExtension_CameraExtrinsics = Guid.initString("686196d0-13e2-41d9-9638-ef032c272a52");
|
|
pub const MFSampleExtension_CameraExtrinsics = Guid.initString("6b761658-b7ec-4c3b-8225-8623cabec31d");
|
|
pub const MFStreamExtension_PinholeCameraIntrinsics = Guid.initString("dbac0455-0ec8-4aef-9c32-7a3ee3456f53");
|
|
pub const MFSampleExtension_PinholeCameraIntrinsics = Guid.initString("4ee3b6c5-6a15-4e72-9761-70c1db8b9fe3");
|
|
pub const MFMediaType_Default = Guid.initString("81a412e6-8103-4b06-857f-1862781024ac");
|
|
pub const MFMediaType_Audio = Guid.initString("73647561-0000-0010-8000-00aa00389b71");
|
|
pub const MFMediaType_Video = Guid.initString("73646976-0000-0010-8000-00aa00389b71");
|
|
pub const MFMediaType_Protected = Guid.initString("7b4b6fe6-9d04-4494-be14-7e0bd076c8e4");
|
|
pub const MFMediaType_SAMI = Guid.initString("e69669a0-3dcd-40cb-9e2e-3708387c0616");
|
|
pub const MFMediaType_Script = Guid.initString("72178c22-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFMediaType_Image = Guid.initString("72178c23-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFMediaType_HTML = Guid.initString("72178c24-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFMediaType_Binary = Guid.initString("72178c25-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFMediaType_FileTransfer = Guid.initString("72178c26-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFMediaType_Stream = Guid.initString("e436eb83-524f-11ce-9f53-0020af0ba770");
|
|
pub const MFMediaType_MultiplexedFrames = Guid.initString("6ea542b0-281f-4231-a464-fe2f5022501c");
|
|
pub const MFMediaType_Subtitle = Guid.initString("a6d13581-ed50-4e65-ae08-26065576aacc");
|
|
pub const MFMediaType_Perception = Guid.initString("597ff6f9-6ea2-4670-85b4-ea84073fe940");
|
|
pub const MFImageFormat_JPEG = Guid.initString("19e4a5aa-5662-4fc5-a0c0-1758028e1057");
|
|
pub const MFImageFormat_RGB32 = Guid.initString("00000016-0000-0010-8000-00aa00389b71");
|
|
pub const MFStreamFormat_MPEG2Transport = Guid.initString("e06d8023-db46-11cf-b4d1-00805f6cbbea");
|
|
pub const MFStreamFormat_MPEG2Program = Guid.initString("263067d1-d330-45dc-b669-34d986e4e3e1");
|
|
pub const AM_MEDIA_TYPE_REPRESENTATION = Guid.initString("e2e42ad2-132c-491e-a268-3c7c2dca181f");
|
|
pub const FORMAT_MFVideoFormat = Guid.initString("aed4ab2d-7326-43cb-9464-c879cab9c43d");
|
|
pub const MFMediaType_Metadata = Guid.initString("2c8fa20c-82bb-4782-90a0-98a2a5bd8ef8");
|
|
pub const CLSID_MFSourceResolver = Guid.initString("90eab60f-e43a-4188-bcc4-e47fdf04868c");
|
|
pub const MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY = Guid.initString("cb6fd12a-2248-4e41-ad46-e78bb90ab9fc");
|
|
pub const MF_DEVICESTREAM_ATTRIBUTE_SECURE_CAPABILITY = Guid.initString("940fd626-ea6e-4684-9840-36bd6ec9fbef");
|
|
pub const MEDIASINK_FIXED_STREAMS = @as(u32, 1);
|
|
pub const MEDIASINK_CANNOT_MATCH_CLOCK = @as(u32, 2);
|
|
pub const MEDIASINK_RATELESS = @as(u32, 4);
|
|
pub const MEDIASINK_CLOCK_REQUIRED = @as(u32, 8);
|
|
pub const MEDIASINK_CAN_PREROLL = @as(u32, 16);
|
|
pub const MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE = @as(u32, 32);
|
|
pub const MFCLOCK_FREQUENCY_HNS = @as(u32, 10000000);
|
|
pub const MFCLOCK_TOLERANCE_UNKNOWN = @as(u32, 50000);
|
|
pub const MFCLOCK_JITTER_ISR = @as(u32, 1000);
|
|
pub const MFCLOCK_JITTER_DPC = @as(u32, 4000);
|
|
pub const MFCLOCK_JITTER_PASSIVE = @as(u32, 10000);
|
|
pub const PRESENTATION_CURRENT_POSITION = @as(u64, 9223372036854775807);
|
|
pub const MF_PD_ADAPTIVE_STREAMING = Guid.initString("ea0d5d97-29f9-488b-ae6b-7d6b4136112b");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_FLAGS_CROSSPROCESS = @as(u32, 1);
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_FLAGS_NOPERSIST = @as(u32, 2);
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_FLAGS_DONT_ALLOW_FORMAT_CHANGES = @as(u32, 4);
|
|
pub const MFRR_INFO_VERSION = @as(u32, 0);
|
|
pub const MF_USER_MODE_COMPONENT_LOAD = @as(u32, 1);
|
|
pub const MF_KERNEL_MODE_COMPONENT_LOAD = @as(u32, 2);
|
|
pub const MF_GRL_LOAD_FAILED = @as(u32, 16);
|
|
pub const MF_INVALID_GRL_SIGNATURE = @as(u32, 32);
|
|
pub const MF_GRL_ABSENT = @as(u32, 4096);
|
|
pub const MF_COMPONENT_REVOKED = @as(u32, 8192);
|
|
pub const MF_COMPONENT_INVALID_EKU = @as(u32, 16384);
|
|
pub const MF_COMPONENT_CERT_REVOKED = @as(u32, 32768);
|
|
pub const MF_COMPONENT_INVALID_ROOT = @as(u32, 65536);
|
|
pub const MF_COMPONENT_HS_CERT_REVOKED = @as(u32, 131072);
|
|
pub const MF_COMPONENT_LS_CERT_REVOKED = @as(u32, 262144);
|
|
pub const MF_BOOT_DRIVER_VERIFICATION_FAILED = @as(u32, 1048576);
|
|
pub const MF_TEST_SIGNED_COMPONENT_LOADING = @as(u32, 16777216);
|
|
pub const MF_MINCRYPT_FAILURE = @as(u32, 268435456);
|
|
pub const SHA_HASH_LEN = @as(u32, 20);
|
|
pub const MFSEQUENCER_INVALID_ELEMENT_ID = @as(u32, 4294967295);
|
|
pub const MF_WRAPPED_BUFFER_SERVICE = Guid.initString("ab544072-c269-4ebc-a552-1c3b32bed5ca");
|
|
pub const CLSID_MPEG2ByteStreamPlugin = Guid.initString("40871c59-ab40-471f-8dc3-1f259d862479");
|
|
pub const MFCONTENTPROTECTIONDEVICE_FUNCTIONID_START = @as(u32, 67108864);
|
|
pub const MFCONTENTPROTECTIONDEVICE_REALTIMECLIENT_DATA_FUNCTIONID = @as(u32, 67108864);
|
|
pub const MF_UNKNOWN_DURATION = @as(u32, 0);
|
|
pub const MFStreamExtension_ExtendedCameraIntrinsics = Guid.initString("aa74b3df-9a2c-48d6-8393-5bd1c1a81e6e");
|
|
pub const MFSampleExtension_ExtendedCameraIntrinsics = Guid.initString("560bc4a5-4de0-4113-9cdc-832db9740f3d");
|
|
pub const MF_INVALID_PRESENTATION_TIME = @as(u64, 9223372036854775808);
|
|
pub const MF_MEDIATYPE_EQUAL_MAJOR_TYPES = @as(u32, 1);
|
|
pub const MF_MEDIATYPE_EQUAL_FORMAT_TYPES = @as(u32, 2);
|
|
pub const MF_MEDIATYPE_EQUAL_FORMAT_DATA = @as(u32, 4);
|
|
pub const MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA = @as(u32, 8);
|
|
pub const MFASYNC_FAST_IO_PROCESSING_CALLBACK = @as(u32, 1);
|
|
pub const MFASYNC_SIGNAL_CALLBACK = @as(u32, 2);
|
|
pub const MFASYNC_BLOCKING_CALLBACK = @as(u32, 4);
|
|
pub const MFASYNC_REPLY_CALLBACK = @as(u32, 8);
|
|
pub const MFASYNC_LOCALIZE_REMOTE_CALLBACK = @as(u32, 16);
|
|
pub const MFASYNC_CALLBACK_QUEUE_UNDEFINED = @as(u32, 0);
|
|
pub const MFASYNC_CALLBACK_QUEUE_STANDARD = @as(u32, 1);
|
|
pub const MFASYNC_CALLBACK_QUEUE_RT = @as(u32, 2);
|
|
pub const MFASYNC_CALLBACK_QUEUE_IO = @as(u32, 3);
|
|
pub const MFASYNC_CALLBACK_QUEUE_TIMER = @as(u32, 4);
|
|
pub const MFASYNC_CALLBACK_QUEUE_MULTITHREADED = @as(u32, 5);
|
|
pub const MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION = @as(u32, 7);
|
|
pub const MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK = @as(u32, 4294901760);
|
|
pub const MFASYNC_CALLBACK_QUEUE_ALL = @as(u32, 4294967295);
|
|
pub const MFBYTESTREAM_IS_READABLE = @as(u32, 1);
|
|
pub const MFBYTESTREAM_IS_WRITABLE = @as(u32, 2);
|
|
pub const MFBYTESTREAM_IS_SEEKABLE = @as(u32, 4);
|
|
pub const MFBYTESTREAM_IS_REMOTE = @as(u32, 8);
|
|
pub const MFBYTESTREAM_IS_DIRECTORY = @as(u32, 128);
|
|
pub const MFBYTESTREAM_HAS_SLOW_SEEK = @as(u32, 256);
|
|
pub const MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED = @as(u32, 512);
|
|
pub const MFBYTESTREAM_SHARE_WRITE = @as(u32, 1024);
|
|
pub const MFBYTESTREAM_DOES_NOT_USE_NETWORK = @as(u32, 2048);
|
|
pub const MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO = @as(u32, 1);
|
|
pub const MF_MEDIA_SHARING_ENGINE_INITIAL_SEEK_TIME = Guid.initString("6f3497f5-d528-4a4f-8dd7-db36657ec4c9");
|
|
pub const MF_SHUTDOWN_RENDERER_ON_ENGINE_SHUTDOWN = Guid.initString("c112d94d-6b9c-48f8-b6f9-7950ff9ab71e");
|
|
pub const MF_PREFERRED_SOURCE_URI = Guid.initString("5fc85488-436a-4db8-90af-4db402ae5c57");
|
|
pub const MF_SHARING_ENGINE_SHAREDRENDERER = Guid.initString("efa446a0-73e7-404e-8ae2-fef60af5a32b");
|
|
pub const MF_SHARING_ENGINE_CALLBACK = Guid.initString("57dc1e95-d252-43fa-9bbc-180070eefe6d");
|
|
pub const MFT_STREAMS_UNLIMITED = @as(u32, 4294967295);
|
|
pub const MFT_OUTPUT_BOUND_UPPER_UNBOUNDED = @as(u64, 9223372036854775807);
|
|
pub const OPM_GET_CURRENT_HDCP_SRM_VERSION = Guid.initString("99c5ceff-5f1d-4879-81c1-c52443c9482b");
|
|
pub const OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION = Guid.initString("0db59d74-a992-492e-a0bd-c23fda564e00");
|
|
pub const OPM_GET_ACP_AND_CGMSA_SIGNALING = Guid.initString("6629a591-3b79-4cf3-924a-11e8e7811671");
|
|
pub const OPM_GET_CONNECTOR_TYPE = Guid.initString("81d0bfd5-6afe-48c2-99c0-95a08f97c5da");
|
|
pub const OPM_GET_SUPPORTED_PROTECTION_TYPES = Guid.initString("38f2a801-9a6c-48bb-9107-b6696e6f1797");
|
|
pub const OPM_GET_VIRTUAL_PROTECTION_LEVEL = Guid.initString("b2075857-3eda-4d5d-88db-748f8c1a0549");
|
|
pub const OPM_GET_ACTUAL_PROTECTION_LEVEL = Guid.initString("1957210a-7766-452a-b99a-d27aed54f03a");
|
|
pub const OPM_GET_ACTUAL_OUTPUT_FORMAT = Guid.initString("d7bf1ba3-ad13-4f8e-af98-0dcb3ca204cc");
|
|
pub const OPM_GET_ADAPTER_BUS_TYPE = Guid.initString("c6f4d673-6174-4184-8e35-f6db5200bcba");
|
|
pub const OPM_GET_OUTPUT_ID = Guid.initString("72cb6df3-244f-40ce-b09e-20506af6302f");
|
|
pub const OPM_GET_DVI_CHARACTERISTICS = Guid.initString("a470b3bb-5dd7-4172-839c-3d3776e0ebf5");
|
|
pub const OPM_GET_CODEC_INFO = Guid.initString("4f374491-8f5f-4445-9dba-95588f6b58b4");
|
|
pub const OPM_GET_OUTPUT_HARDWARE_PROTECTION_SUPPORT = Guid.initString("3b129589-2af8-4ef0-96a2-704a845a218e");
|
|
pub const OPM_SET_PROTECTION_LEVEL = Guid.initString("9bb9327c-4eb5-4727-9f00-b42b0919c0da");
|
|
pub const OPM_SET_ACP_AND_CGMSA_SIGNALING = Guid.initString("09a631a5-d684-4c60-8e4d-d3bb0f0be3ee");
|
|
pub const OPM_SET_HDCP_SRM = Guid.initString("8b5ef5d1-c30d-44ff-84a5-ea71dce78f13");
|
|
pub const OPM_SET_PROTECTION_LEVEL_ACCORDING_TO_CSS_DVD = Guid.initString("39ce333e-4cc0-44ae-bfcc-da50b5f82e72");
|
|
pub const WM_CODEC_ONEPASS_CBR = @as(u32, 1);
|
|
pub const WM_CODEC_ONEPASS_VBR = @as(u32, 2);
|
|
pub const WM_CODEC_TWOPASS_CBR = @as(u32, 4);
|
|
pub const WM_CODEC_TWOPASS_VBR_UNCONSTRAINED = @as(u32, 8);
|
|
pub const WM_CODEC_TWOPASS_VBR_PEAKCONSTRAINED = @as(u32, 16);
|
|
pub const SYSFXUI_DONOTSHOW_LOUDNESSEQUALIZATION = @as(u32, 1);
|
|
pub const SYSFXUI_DONOTSHOW_ROOMCORRECTION = @as(u32, 2);
|
|
pub const SYSFXUI_DONOTSHOW_BASSMANAGEMENT = @as(u32, 4);
|
|
pub const SYSFXUI_DONOTSHOW_BASSBOOST = @as(u32, 8);
|
|
pub const SYSFXUI_DONOTSHOW_HEADPHONEVIRTUALIZATION = @as(u32, 16);
|
|
pub const SYSFXUI_DONOTSHOW_VIRTUALSURROUND = @as(u32, 32);
|
|
pub const SYSFXUI_DONOTSHOW_SPEAKERFILLING = @as(u32, 64);
|
|
pub const SYSFXUI_DONOTSHOW_CHANNELPHANTOMING = @as(u32, 128);
|
|
pub const AEC_MAX_SYSTEM_MODES = @as(u32, 6);
|
|
pub const WMAAECMA_E_NO_ACTIVE_RENDER_STREAM = @as(u32, 2278293514);
|
|
pub const MEDIASUBTYPE_Y41T = Guid.initString("54313459-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_Y42T = Guid.initString("54323459-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_NV11 = Guid.initString("3131564e-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_V216 = Guid.initString("36313256-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_V410 = Guid.initString("30313456-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_v210 = Guid.initString("30313276-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_I420 = Guid.initString("30323449-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WVC1 = Guid.initString("31435657-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wvc1 = Guid.initString("31637677-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMVA = Guid.initString("41564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmva = Guid.initString("61766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMVB = Guid.initString("42564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmvb = Guid.initString("62766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMVR = Guid.initString("52564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmvr = Guid.initString("72766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMVP = Guid.initString("50564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmvp = Guid.initString("70766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WVP2 = Guid.initString("32505657-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wvp2 = Guid.initString("32707677-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMV3 = Guid.initString("33564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmv3 = Guid.initString("33766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMV2 = Guid.initString("32564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmv2 = Guid.initString("32766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMV1 = Guid.initString("31564d57-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_wmv1 = Guid.initString("31766d77-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MPG4 = Guid.initString("3447504d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_mpg4 = Guid.initString("3467706d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MP42 = Guid.initString("3234504d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_mp42 = Guid.initString("3234706d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MP43 = Guid.initString("3334504d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_mp43 = Guid.initString("3334706d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MP4S = Guid.initString("5334504d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_mp4s = Guid.initString("7334706d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_M4S2 = Guid.initString("3253344d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_m4s2 = Guid.initString("3273346d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MSS1 = Guid.initString("3153534d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MSS2 = Guid.initString("3253534d-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MSAUDIO1 = Guid.initString("00000160-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMAUDIO2 = Guid.initString("00000161-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMAUDIO3 = Guid.initString("00000162-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMAUDIO_LOSSLESS = Guid.initString("00000163-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMASPDIF = Guid.initString("00000164-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_WMAUDIO4 = Guid.initString("00000168-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MPEG_ADTS_AAC = Guid.initString("00001600-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MPEG_RAW_AAC = Guid.initString("00001601-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MPEG_LOAS = Guid.initString("00001602-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_NOKIA_MPEG_ADTS_AAC = Guid.initString("00001608-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_NOKIA_MPEG_RAW_AAC = Guid.initString("00001609-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_VODAFONE_MPEG_ADTS_AAC = Guid.initString("0000160a-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_VODAFONE_MPEG_RAW_AAC = Guid.initString("0000160b-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_MPEG_HEAAC = Guid.initString("00001610-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_RAW_AAC1 = Guid.initString("000000ff-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_DVM = Guid.initString("00002000-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_DTS2 = Guid.initString("00002001-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_DOLBY_DDPLUS = Guid.initString("a7fb87af-2d02-42fb-a4d4-05cd93843bdd");
|
|
pub const MEDIASUBTYPE_DOLBY_TRUEHD = Guid.initString("eb27cec4-163e-4ca3-8b74-8e25f91b517e");
|
|
pub const MEDIASUBTYPE_DTS_HD = Guid.initString("a2e58eb7-0fa9-48bb-a40c-fa0e156d0645");
|
|
pub const MEDIASUBTYPE_DTS_HD_HRA = Guid.initString("a61ac364-ad0e-4744-89ff-213ce0df8804");
|
|
pub const MEDIASUBTYPE_h264 = Guid.initString("34363268-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_AVC1 = Guid.initString("31435641-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_X264 = Guid.initString("34363258-0000-0010-8000-00aa00389b71");
|
|
pub const MEDIASUBTYPE_x264 = Guid.initString("34363278-0000-0010-8000-00aa00389b71");
|
|
pub const MF_VIDEODSP_MODE = Guid.initString("16d720f0-768c-11de-8a39-0800200c9a66");
|
|
pub const MFSampleExtension_VideoDSPMode = Guid.initString("c12d55cb-d7d9-476d-81f3-69117f163ea0");
|
|
pub const CLSID_CTocEntry = Guid.initString("f22f5e05-585c-4def-8523-6555cfbc0cb3");
|
|
pub const CLSID_CTocEntryList = Guid.initString("3a8cccbc-0efd-43a3-b838-f38a552ba237");
|
|
pub const CLSID_CToc = Guid.initString("4fe24495-28ce-4920-a4c4-e556e1f0df2a");
|
|
pub const CLSID_CTocCollection = Guid.initString("5058292d-a244-4840-ab44-480975c4ffe4");
|
|
pub const CLSID_CTocParser = Guid.initString("499eaeea-2737-4849-8bb6-47f107eaf358");
|
|
pub const CLSID_CAsfTocParser = Guid.initString("9b77c0f2-8735-46c5-b90f-5f0b303ef6ab");
|
|
pub const CLSID_CAviTocParser = Guid.initString("3adce5cc-13c8-4573-b328-ed438eb694f9");
|
|
pub const CLSID_CFileIo = Guid.initString("11993195-1244-4840-ab44-480975c4ffe4");
|
|
pub const CLSID_CFileClient = Guid.initString("bfccd195-1244-4840-ab44-480975c4ffe4");
|
|
pub const CLSID_CClusterDetectorEx = Guid.initString("47354492-827e-4b8a-b318-c80eba1381f0");
|
|
pub const E_TOCPARSER_INVALIDASFFILE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1728053247));
|
|
pub const E_TOCPARSER_INVALIDRIFFFILE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1728053246));
|
|
pub const TOC_MAX_DESCRIPTION_SIZE = @as(u32, 65535);
|
|
pub const TOC_ENTRY_MAX_TITLE_SIZE = @as(u32, 65535);
|
|
pub const MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC = @as(u32, 65535);
|
|
pub const MFASFINDEXER_NO_FIXED_INTERVAL = @as(u32, 4294967295);
|
|
pub const MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT = @as(u64, 18446744073709551615);
|
|
pub const MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN = @as(u64, 18446744073709551615);
|
|
pub const MFASF_MAX_STREAM_NUMBER = @as(u32, 127);
|
|
pub const MFASF_INVALID_STREAM_NUMBER = @as(u32, 128);
|
|
pub const MFASF_PAYLOADEXTENSION_MAX_SIZE = @as(u32, 255);
|
|
pub const MFASF_PAYLOADEXTENSION_VARIABLE_SIZE = @as(u32, 65535);
|
|
pub const MFASF_DEFAULT_BUFFER_WINDOW_MS = @as(u32, 3000);
|
|
pub const FACILITY_MF = @as(u32, 13);
|
|
pub const FACILITY_MF_WIN32 = @as(u32, 7);
|
|
pub const MF_E_PLATFORM_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875856));
|
|
pub const MF_E_BUFFERTOOSMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875855));
|
|
pub const MF_E_INVALIDREQUEST = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875854));
|
|
pub const MF_E_INVALIDSTREAMNUMBER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875853));
|
|
pub const MF_E_INVALIDMEDIATYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875852));
|
|
pub const MF_E_NOTACCEPTING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875851));
|
|
pub const MF_E_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875850));
|
|
pub const MF_E_UNSUPPORTED_REPRESENTATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875849));
|
|
pub const MF_E_NO_MORE_TYPES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875847));
|
|
pub const MF_E_UNSUPPORTED_SERVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875846));
|
|
pub const MF_E_UNEXPECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875845));
|
|
pub const MF_E_INVALIDNAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875844));
|
|
pub const MF_E_INVALIDTYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875843));
|
|
pub const MF_E_INVALID_FILE_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875842));
|
|
pub const MF_E_INVALIDINDEX = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875841));
|
|
pub const MF_E_INVALID_TIMESTAMP = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875840));
|
|
pub const MF_E_UNSUPPORTED_SCHEME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875837));
|
|
pub const MF_E_UNSUPPORTED_BYTESTREAM_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875836));
|
|
pub const MF_E_UNSUPPORTED_TIME_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875835));
|
|
pub const MF_E_NO_SAMPLE_TIMESTAMP = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875832));
|
|
pub const MF_E_NO_SAMPLE_DURATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875831));
|
|
pub const MF_E_INVALID_STREAM_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875829));
|
|
pub const MF_E_RT_UNAVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875825));
|
|
pub const MF_E_UNSUPPORTED_RATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875824));
|
|
pub const MF_E_THINNING_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875823));
|
|
pub const MF_E_REVERSE_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875822));
|
|
pub const MF_E_UNSUPPORTED_RATE_TRANSITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875821));
|
|
pub const MF_E_RATE_CHANGE_PREEMPTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875820));
|
|
pub const MF_E_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875819));
|
|
pub const MF_E_NOT_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875818));
|
|
pub const MF_E_NO_CLOCK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875817));
|
|
pub const MF_S_MULTIPLE_BEGIN = @import("../zig.zig").typedConst(HRESULT, @as(i32, 866008));
|
|
pub const MF_E_MULTIPLE_BEGIN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875815));
|
|
pub const MF_E_MULTIPLE_SUBSCRIBERS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875814));
|
|
pub const MF_E_TIMER_ORPHANED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875813));
|
|
pub const MF_E_STATE_TRANSITION_PENDING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875812));
|
|
pub const MF_E_UNSUPPORTED_STATE_TRANSITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875811));
|
|
pub const MF_E_UNRECOVERABLE_ERROR_OCCURRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875810));
|
|
pub const MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875809));
|
|
pub const MF_E_SAMPLE_NOT_WRITABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875808));
|
|
pub const MF_E_INVALID_KEY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875806));
|
|
pub const MF_E_BAD_STARTUP_VERSION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875805));
|
|
pub const MF_E_UNSUPPORTED_CAPTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875804));
|
|
pub const MF_E_INVALID_POSITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875803));
|
|
pub const MF_E_ATTRIBUTENOTFOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875802));
|
|
pub const MF_E_PROPERTY_TYPE_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875801));
|
|
pub const MF_E_PROPERTY_TYPE_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875800));
|
|
pub const MF_E_PROPERTY_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875799));
|
|
pub const MF_E_PROPERTY_NOT_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875798));
|
|
pub const MF_E_PROPERTY_VECTOR_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875797));
|
|
pub const MF_E_PROPERTY_VECTOR_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875796));
|
|
pub const MF_E_OPERATION_CANCELLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875795));
|
|
pub const MF_E_BYTESTREAM_NOT_SEEKABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875794));
|
|
pub const MF_E_DISABLED_IN_SAFEMODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875793));
|
|
pub const MF_E_CANNOT_PARSE_BYTESTREAM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875792));
|
|
pub const MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875791));
|
|
pub const MF_E_MEDIAPROC_WRONGSTATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875790));
|
|
pub const MF_E_RT_THROUGHPUT_NOT_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875789));
|
|
pub const MF_E_RT_TOO_MANY_CLASSES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875788));
|
|
pub const MF_E_RT_WOULDBLOCK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875787));
|
|
pub const MF_E_NO_BITPUMP = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875786));
|
|
pub const MF_E_RT_OUTOFMEMORY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875785));
|
|
pub const MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875784));
|
|
pub const MF_E_INSUFFICIENT_BUFFER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860816));
|
|
pub const MF_E_CANNOT_CREATE_SINK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875782));
|
|
pub const MF_E_BYTESTREAM_UNKNOWN_LENGTH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875781));
|
|
pub const MF_E_SESSION_PAUSEWHILESTOPPED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875780));
|
|
pub const MF_S_ACTIVATE_REPLACED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 866045));
|
|
pub const MF_E_FORMAT_CHANGE_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875778));
|
|
pub const MF_E_INVALID_WORKQUEUE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875777));
|
|
pub const MF_E_DRM_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875776));
|
|
pub const MF_E_UNAUTHORIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875775));
|
|
pub const MF_E_OUT_OF_RANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875774));
|
|
pub const MF_E_INVALID_CODEC_MERIT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875773));
|
|
pub const MF_E_HW_MFT_FAILED_START_STREAMING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875772));
|
|
pub const MF_E_OPERATION_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875771));
|
|
pub const MF_E_HARDWARE_DRM_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875770));
|
|
pub const MF_E_DURATION_TOO_LONG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875769));
|
|
pub const MF_E_OPERATION_UNSUPPORTED_AT_D3D_FEATURE_LEVEL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875768));
|
|
pub const MF_E_UNSUPPORTED_MEDIATYPE_AT_D3D_FEATURE_LEVEL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072875767));
|
|
pub const MF_S_ASF_PARSEINPROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, 1074608792));
|
|
pub const MF_E_ASF_PARSINGINCOMPLETE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874856));
|
|
pub const MF_E_ASF_MISSINGDATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874855));
|
|
pub const MF_E_ASF_INVALIDDATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874854));
|
|
pub const MF_E_ASF_OPAQUEPACKET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874853));
|
|
pub const MF_E_ASF_NOINDEX = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874852));
|
|
pub const MF_E_ASF_OUTOFRANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874851));
|
|
pub const MF_E_ASF_INDEXNOTLOADED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874850));
|
|
pub const MF_E_ASF_TOO_MANY_PAYLOADS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874849));
|
|
pub const MF_E_ASF_UNSUPPORTED_STREAM_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874848));
|
|
pub const MF_E_ASF_DROPPED_PACKET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072874847));
|
|
pub const MF_E_NO_EVENTS_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873856));
|
|
pub const MF_E_INVALID_STATE_TRANSITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873854));
|
|
pub const MF_E_END_OF_STREAM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873852));
|
|
pub const MF_E_SHUTDOWN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873851));
|
|
pub const MF_E_MP3_NOTFOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873850));
|
|
pub const MF_E_MP3_OUTOFDATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873849));
|
|
pub const MF_E_MP3_NOTMP3 = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873848));
|
|
pub const MF_E_MP3_NOTSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873847));
|
|
pub const MF_E_NO_DURATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873846));
|
|
pub const MF_E_INVALID_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873844));
|
|
pub const MF_E_PROPERTY_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873843));
|
|
pub const MF_E_PROPERTY_READ_ONLY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873842));
|
|
pub const MF_E_PROPERTY_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873841));
|
|
pub const MF_E_MEDIA_SOURCE_NOT_STARTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873839));
|
|
pub const MF_E_UNSUPPORTED_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873832));
|
|
pub const MF_E_MP3_BAD_CRC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873831));
|
|
pub const MF_E_NOT_PROTECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873830));
|
|
pub const MF_E_MEDIA_SOURCE_WRONGSTATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873829));
|
|
pub const MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873828));
|
|
pub const MF_E_CANNOT_FIND_KEYFRAME_SAMPLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873827));
|
|
pub const MF_E_UNSUPPORTED_CHARACTERISTICS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873826));
|
|
pub const MF_E_NO_AUDIO_RECORDING_DEVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873825));
|
|
pub const MF_E_AUDIO_RECORDING_DEVICE_IN_USE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873824));
|
|
pub const MF_E_AUDIO_RECORDING_DEVICE_INVALIDATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873823));
|
|
pub const MF_E_VIDEO_RECORDING_DEVICE_INVALIDATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873822));
|
|
pub const MF_E_VIDEO_RECORDING_DEVICE_PREEMPTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072873821));
|
|
pub const MF_E_NETWORK_RESOURCE_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872856));
|
|
pub const MF_E_NET_WRITE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872855));
|
|
pub const MF_E_NET_READ = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872854));
|
|
pub const MF_E_NET_REQUIRE_NETWORK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872853));
|
|
pub const MF_E_NET_REQUIRE_ASYNC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872852));
|
|
pub const MF_E_NET_BWLEVEL_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872851));
|
|
pub const MF_E_NET_STREAMGROUPS_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872850));
|
|
pub const MF_E_NET_MANUALSS_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872849));
|
|
pub const MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872848));
|
|
pub const MF_E_NET_CACHESTREAM_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872847));
|
|
pub const MF_I_MANUAL_PROXY = @import("../zig.zig").typedConst(HRESULT, @as(i32, 1074610802));
|
|
pub const MF_E_NET_REQUIRE_INPUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872844));
|
|
pub const MF_E_NET_REDIRECT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872843));
|
|
pub const MF_E_NET_REDIRECT_TO_PROXY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872842));
|
|
pub const MF_E_NET_TOO_MANY_REDIRECTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872841));
|
|
pub const MF_E_NET_TIMEOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872840));
|
|
pub const MF_E_NET_CLIENT_CLOSE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872839));
|
|
pub const MF_E_NET_BAD_CONTROL_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872838));
|
|
pub const MF_E_NET_INCOMPATIBLE_SERVER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872837));
|
|
pub const MF_E_NET_UNSAFE_URL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872836));
|
|
pub const MF_E_NET_CACHE_NO_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872835));
|
|
pub const MF_E_NET_EOL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872834));
|
|
pub const MF_E_NET_BAD_REQUEST = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872833));
|
|
pub const MF_E_NET_INTERNAL_SERVER_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872832));
|
|
pub const MF_E_NET_SESSION_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872831));
|
|
pub const MF_E_NET_NOCONNECTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872830));
|
|
pub const MF_E_NET_CONNECTION_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872829));
|
|
pub const MF_E_NET_INCOMPATIBLE_PUSHSERVER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872828));
|
|
pub const MF_E_NET_SERVER_ACCESSDENIED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872827));
|
|
pub const MF_E_NET_PROXY_ACCESSDENIED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872826));
|
|
pub const MF_E_NET_CANNOTCONNECT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872825));
|
|
pub const MF_E_NET_INVALID_PUSH_TEMPLATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872824));
|
|
pub const MF_E_NET_INVALID_PUSH_PUBLISHING_POINT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872823));
|
|
pub const MF_E_NET_BUSY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872822));
|
|
pub const MF_E_NET_RESOURCE_GONE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872821));
|
|
pub const MF_E_NET_ERROR_FROM_PROXY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872820));
|
|
pub const MF_E_NET_PROXY_TIMEOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872819));
|
|
pub const MF_E_NET_SERVER_UNAVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872818));
|
|
pub const MF_E_NET_TOO_MUCH_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872817));
|
|
pub const MF_E_NET_SESSION_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872816));
|
|
pub const MF_E_OFFLINE_MODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872815));
|
|
pub const MF_E_NET_UDP_BLOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872814));
|
|
pub const MF_E_NET_UNSUPPORTED_CONFIGURATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872813));
|
|
pub const MF_E_NET_PROTOCOL_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872812));
|
|
pub const MF_E_NET_COMPANION_DRIVER_DISCONNECT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072872811));
|
|
pub const MF_E_ALREADY_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871856));
|
|
pub const MF_E_BANDWIDTH_OVERRUN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871855));
|
|
pub const MF_E_LATE_SAMPLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871854));
|
|
pub const MF_E_FLUSH_NEEDED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871853));
|
|
pub const MF_E_INVALID_PROFILE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871852));
|
|
pub const MF_E_INDEX_NOT_COMMITTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871851));
|
|
pub const MF_E_NO_INDEX = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871850));
|
|
pub const MF_E_CANNOT_INDEX_IN_PLACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871849));
|
|
pub const MF_E_MISSING_ASF_LEAKYBUCKET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871848));
|
|
pub const MF_E_INVALID_ASF_STREAMID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072871847));
|
|
pub const MF_E_STREAMSINK_REMOVED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870856));
|
|
pub const MF_E_STREAMSINKS_OUT_OF_SYNC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870854));
|
|
pub const MF_E_STREAMSINKS_FIXED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870853));
|
|
pub const MF_E_STREAMSINK_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870852));
|
|
pub const MF_E_SAMPLEALLOCATOR_CANCELED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870851));
|
|
pub const MF_E_SAMPLEALLOCATOR_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870850));
|
|
pub const MF_E_SINK_ALREADYSTOPPED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870849));
|
|
pub const MF_E_ASF_FILESINK_BITRATE_UNKNOWN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870848));
|
|
pub const MF_E_SINK_NO_STREAMS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870847));
|
|
pub const MF_S_SINK_NOT_FINALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 870978));
|
|
pub const MF_E_METADATA_TOO_LONG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870845));
|
|
pub const MF_E_SINK_NO_SAMPLES_PROCESSED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870844));
|
|
pub const MF_E_SINK_HEADERS_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072870843));
|
|
pub const MF_E_VIDEO_REN_NO_PROCAMP_HW = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869856));
|
|
pub const MF_E_VIDEO_REN_NO_DEINTERLACE_HW = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869855));
|
|
pub const MF_E_VIDEO_REN_COPYPROT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869854));
|
|
pub const MF_E_VIDEO_REN_SURFACE_NOT_SHARED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869853));
|
|
pub const MF_E_VIDEO_DEVICE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869852));
|
|
pub const MF_E_NEW_VIDEO_DEVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869851));
|
|
pub const MF_E_NO_VIDEO_SAMPLE_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869850));
|
|
pub const MF_E_NO_AUDIO_PLAYBACK_DEVICE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869756));
|
|
pub const MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869755));
|
|
pub const MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869754));
|
|
pub const MF_E_AUDIO_SERVICE_NOT_RUNNING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869753));
|
|
pub const MF_E_AUDIO_BUFFER_SIZE_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869752));
|
|
pub const MF_E_AUDIO_CLIENT_WRAPPER_SPOOF_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072869751));
|
|
pub const MF_E_TOPO_INVALID_OPTIONAL_NODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868850));
|
|
pub const MF_E_TOPO_CANNOT_FIND_DECRYPTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868847));
|
|
pub const MF_E_TOPO_CODEC_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868846));
|
|
pub const MF_E_TOPO_CANNOT_CONNECT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868845));
|
|
pub const MF_E_TOPO_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868844));
|
|
pub const MF_E_TOPO_INVALID_TIME_ATTRIBUTES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868843));
|
|
pub const MF_E_TOPO_LOOPS_IN_TOPOLOGY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868842));
|
|
pub const MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868841));
|
|
pub const MF_E_TOPO_MISSING_STREAM_DESCRIPTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868840));
|
|
pub const MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868839));
|
|
pub const MF_E_TOPO_MISSING_SOURCE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868838));
|
|
pub const MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072868837));
|
|
pub const MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072864852));
|
|
pub const MF_S_SEQUENCER_CONTEXT_CANCELED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 876973));
|
|
pub const MF_E_NO_SOURCE_IN_CACHE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072864850));
|
|
pub const MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM = @import("../zig.zig").typedConst(HRESULT, @as(i32, 876975));
|
|
pub const MF_E_TRANSFORM_TYPE_NOT_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861856));
|
|
pub const MF_E_TRANSFORM_STREAM_CHANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861855));
|
|
pub const MF_E_TRANSFORM_INPUT_REMAINING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861854));
|
|
pub const MF_E_TRANSFORM_PROFILE_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861853));
|
|
pub const MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861852));
|
|
pub const MF_E_TRANSFORM_PROFILE_TRUNCATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861851));
|
|
pub const MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861850));
|
|
pub const MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861849));
|
|
pub const MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861848));
|
|
pub const MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861847));
|
|
pub const MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861846));
|
|
pub const MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861845));
|
|
pub const MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861844));
|
|
pub const MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861843));
|
|
pub const MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861842));
|
|
pub const MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861841));
|
|
pub const MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861840));
|
|
pub const MF_E_TRANSFORM_NEED_MORE_INPUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861838));
|
|
pub const MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861837));
|
|
pub const MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861836));
|
|
pub const MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, 879989));
|
|
pub const MF_E_UNSUPPORTED_D3D_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861834));
|
|
pub const MF_E_TRANSFORM_ASYNC_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861833));
|
|
pub const MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861832));
|
|
pub const MF_E_TRANSFORM_STREAM_INVALID_RESOLUTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861831));
|
|
pub const MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861830));
|
|
pub const MF_E_TRANSFORM_EXATTRIBUTE_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072861828));
|
|
pub const MF_E_LICENSE_INCORRECT_RIGHTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860856));
|
|
pub const MF_E_LICENSE_OUTOFDATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860855));
|
|
pub const MF_E_LICENSE_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860854));
|
|
pub const MF_E_DRM_HARDWARE_INCONSISTENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860853));
|
|
pub const MF_E_NO_CONTENT_PROTECTION_MANAGER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860852));
|
|
pub const MF_E_LICENSE_RESTORE_NO_RIGHTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860851));
|
|
pub const MF_E_BACKUP_RESTRICTED_LICENSE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860850));
|
|
pub const MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860849));
|
|
pub const MF_S_PROTECTION_NOT_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 880976));
|
|
pub const MF_E_COMPONENT_REVOKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860847));
|
|
pub const MF_E_TRUST_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860846));
|
|
pub const MF_E_WMDRMOTA_NO_ACTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860845));
|
|
pub const MF_E_WMDRMOTA_ACTION_ALREADY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860844));
|
|
pub const MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860843));
|
|
pub const MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860842));
|
|
pub const MF_E_WMDRMOTA_ACTION_MISMATCH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860841));
|
|
pub const MF_E_WMDRMOTA_INVALID_POLICY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860840));
|
|
pub const MF_E_POLICY_UNSUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860839));
|
|
pub const MF_E_OPL_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860838));
|
|
pub const MF_E_TOPOLOGY_VERIFICATION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860837));
|
|
pub const MF_E_SIGNATURE_VERIFICATION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860836));
|
|
pub const MF_E_DEBUGGING_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860835));
|
|
pub const MF_E_CODE_EXPIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860834));
|
|
pub const MF_E_GRL_VERSION_TOO_LOW = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860833));
|
|
pub const MF_E_GRL_RENEWAL_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860832));
|
|
pub const MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860831));
|
|
pub const MF_E_KERNEL_UNTRUSTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860830));
|
|
pub const MF_E_PEAUTH_UNTRUSTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860829));
|
|
pub const MF_E_NON_PE_PROCESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860827));
|
|
pub const MF_E_REBOOT_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860825));
|
|
pub const MF_S_WAIT_FOR_POLICY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, 881000));
|
|
pub const MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, 881001));
|
|
pub const MF_E_GRL_INVALID_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860822));
|
|
pub const MF_E_GRL_UNRECOGNIZED_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860821));
|
|
pub const MF_E_ALL_PROCESS_RESTART_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860820));
|
|
pub const MF_E_PROCESS_RESTART_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860819));
|
|
pub const MF_E_USERMODE_UNTRUSTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860818));
|
|
pub const MF_E_PEAUTH_SESSION_NOT_STARTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860817));
|
|
pub const MF_E_PEAUTH_PUBLICKEY_REVOKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860815));
|
|
pub const MF_E_GRL_ABSENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860814));
|
|
pub const MF_S_PE_TRUSTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 881011));
|
|
pub const MF_E_PE_UNTRUSTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860812));
|
|
pub const MF_E_PEAUTH_NOT_STARTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860811));
|
|
pub const MF_E_INCOMPATIBLE_SAMPLE_PROTECTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860810));
|
|
pub const MF_E_PE_SESSIONS_MAXED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860809));
|
|
pub const MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860808));
|
|
pub const MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860807));
|
|
pub const MF_E_ITA_UNSUPPORTED_ACTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860806));
|
|
pub const MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860805));
|
|
pub const MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860804));
|
|
pub const MF_E_BAD_OPL_STRUCTURE_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860803));
|
|
pub const MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860802));
|
|
pub const MF_E_NO_PMP_HOST = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860801));
|
|
pub const MF_E_ITA_OPL_DATA_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860800));
|
|
pub const MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860799));
|
|
pub const MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860798));
|
|
pub const MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860797));
|
|
pub const MF_E_INVALID_AKE_CHANNEL_PARAMETERS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860796));
|
|
pub const MF_E_CONTENT_PROTECTION_SYSTEM_NOT_ENABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860795));
|
|
pub const MF_E_UNSUPPORTED_CONTENT_PROTECTION_SYSTEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860794));
|
|
pub const MF_E_DRM_MIGRATION_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860793));
|
|
pub const MF_E_HDCP_AUTHENTICATION_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860792));
|
|
pub const MF_E_HDCP_LINK_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072860791));
|
|
pub const MF_E_CLOCK_INVALID_CONTINUITY_KEY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072849856));
|
|
pub const MF_E_CLOCK_NO_TIME_SOURCE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072849855));
|
|
pub const MF_E_CLOCK_STATE_ALREADY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072849854));
|
|
pub const MF_E_CLOCK_NOT_SIMPLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072849853));
|
|
pub const MF_S_CLOCK_STOPPED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 891972));
|
|
pub const MF_E_CLOCK_AUDIO_DEVICE_POSITION_UNEXPECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 891973));
|
|
pub const MF_E_CLOCK_AUDIO_RENDER_POSITION_UNEXPECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 891974));
|
|
pub const MF_E_CLOCK_AUDIO_RENDER_TIME_UNEXPECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 891975));
|
|
pub const MF_E_NO_MORE_DROP_MODES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072848856));
|
|
pub const MF_E_NO_MORE_QUALITY_LEVELS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072848855));
|
|
pub const MF_E_DROPTIME_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072848854));
|
|
pub const MF_E_QUALITYKNOB_WAIT_LONGER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072848853));
|
|
pub const MF_E_QM_INVALIDSTATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072848852));
|
|
pub const MF_E_TRANSCODE_NO_CONTAINERTYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072847856));
|
|
pub const MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072847855));
|
|
pub const MF_E_TRANSCODE_NO_MATCHING_ENCODER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072847854));
|
|
pub const MF_E_TRANSCODE_INVALID_PROFILE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072847853));
|
|
pub const MF_E_ALLOCATOR_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846856));
|
|
pub const MF_E_ALLOCATOR_NOT_COMMITED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846855));
|
|
pub const MF_E_ALLOCATOR_ALREADY_COMMITED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846854));
|
|
pub const MF_E_STREAM_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846853));
|
|
pub const MF_E_INVALID_STREAM_STATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846852));
|
|
pub const MF_E_HW_STREAM_NOT_CONNECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072846851));
|
|
pub const MF_E_NO_CAPTURE_DEVICES_AVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845856));
|
|
pub const MF_E_CAPTURE_SINK_OUTPUT_NOT_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845855));
|
|
pub const MF_E_CAPTURE_SINK_MIRROR_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845854));
|
|
pub const MF_E_CAPTURE_SINK_ROTATE_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845853));
|
|
pub const MF_E_CAPTURE_ENGINE_INVALID_OP = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845852));
|
|
pub const MF_E_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845851));
|
|
pub const MF_E_CAPTURE_SOURCE_NO_INDEPENDENT_PHOTO_STREAM_PRESENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845850));
|
|
pub const MF_E_CAPTURE_SOURCE_NO_VIDEO_STREAM_PRESENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845849));
|
|
pub const MF_E_CAPTURE_SOURCE_NO_AUDIO_STREAM_PRESENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845848));
|
|
pub const MF_E_CAPTURE_SOURCE_DEVICE_EXTENDEDPROP_OP_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845847));
|
|
pub const MF_E_CAPTURE_PROPERTY_SET_DURING_PHOTO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845846));
|
|
pub const MF_E_CAPTURE_NO_SAMPLES_IN_QUEUE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845845));
|
|
pub const MF_E_HW_ACCELERATED_THUMBNAIL_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845844));
|
|
pub const MF_E_UNSUPPORTED_CAPTURE_DEVICE_PRESENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072845843));
|
|
pub const MF_E_TIMELINECONTROLLER_UNSUPPORTED_SOURCE_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072844856));
|
|
pub const MF_E_TIMELINECONTROLLER_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072844855));
|
|
pub const MF_E_TIMELINECONTROLLER_CANNOT_ATTACH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072844854));
|
|
pub const MF_E_MEDIA_EXTENSION_APPSERVICE_CONNECTION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072843856));
|
|
pub const MF_E_MEDIA_EXTENSION_APPSERVICE_REQUEST_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072843855));
|
|
pub const MF_E_MEDIA_EXTENSION_PACKAGE_INTEGRITY_CHECK_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072843854));
|
|
pub const MF_E_MEDIA_EXTENSION_PACKAGE_LICENSE_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072843853));
|
|
pub const MF_INDEX_SIZE_ERR = @as(u32, 2154823681);
|
|
pub const MF_NOT_FOUND_ERR = @as(u32, 2154823688);
|
|
pub const MF_NOT_SUPPORTED_ERR = @as(u32, 2154823689);
|
|
pub const MF_INVALID_STATE_ERR = @as(u32, 2154823691);
|
|
pub const MF_SYNTAX_ERR = @as(u32, 2154823692);
|
|
pub const MF_INVALID_ACCESS_ERR = @as(u32, 2154823695);
|
|
pub const MF_QUOTA_EXCEEDED_ERR = @as(u32, 2154823702);
|
|
pub const MF_PARSE_ERR = @as(u32, 2154823761);
|
|
pub const MF_TYPE_ERR = @as(u32, 2154840069);
|
|
pub const DEVPKEY_DeviceInterface_IsVirtualCamera = PROPERTYKEY { .fmtid = Guid.initString("6edc630d-c2e3-43b7-b2d1-20525a1af120"), .pid = 3 };
|
|
pub const g_wszSpeechFormatCaps = "SpeechFormatCap";
|
|
pub const g_wszWMCPCodecName = "_CODECNAME";
|
|
pub const g_wszWMCPSupportedVBRModes = "_SUPPORTEDVBRMODES";
|
|
pub const g_wszWMCPAudioVBRSupported = "_VBRENABLED";
|
|
pub const g_wszWMCPAudioVBRQuality = "_VBRQUALITY";
|
|
pub const g_wszWMCPMaxPasses = "_PASSESRECOMMENDED";
|
|
pub const g_wszWMCPDefaultCrisp = "_DEFAULTCRISP";
|
|
pub const COPP_ProtectionType_Unknown = @as(i32, -2147483648);
|
|
pub const COPP_ProtectionType_None = @as(i32, 0);
|
|
pub const COPP_ProtectionType_HDCP = @as(i32, 1);
|
|
pub const COPP_ProtectionType_ACP = @as(i32, 2);
|
|
pub const COPP_ProtectionType_CGMSA = @as(i32, 4);
|
|
pub const COPP_ProtectionType_Mask = @as(i32, -2147483641);
|
|
pub const COPP_ProtectionType_Reserved = @as(i32, 2147483640);
|
|
pub const MF_BYTESTREAM_ORIGIN_NAME = Guid.initString("fc358288-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_CONTENT_TYPE = Guid.initString("fc358289-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_DURATION = Guid.initString("fc35828a-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_LAST_MODIFIED_TIME = Guid.initString("fc35828b-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_IFO_FILE_URI = Guid.initString("fc35828c-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_DLNA_PROFILE_ID = Guid.initString("fc35828d-3cb6-460c-a424-b6681260375a");
|
|
pub const MF_BYTESTREAM_EFFECTIVE_URL = Guid.initString("9afa0209-89d1-42af-8456-1de6b562d691");
|
|
pub const MF_BYTESTREAM_TRANSCODED = Guid.initString("b6c5c282-4dc9-4db9-ab48-cf3b6d8bc5e0");
|
|
pub const CLSID_MFByteStreamProxyClassFactory = Guid.initString("770e8e77-4916-441c-a9a7-b342d0eebc71");
|
|
pub const MEDeviceStreamCreated = Guid.initString("0252a1cf-3540-43b4-9164-d72eb405fa40");
|
|
pub const MF_SA_D3D_AWARE = Guid.initString("eaa35c29-775e-488e-9b61-b3283e49583b");
|
|
pub const MF_SA_REQUIRED_SAMPLE_COUNT = Guid.initString("18802c61-324b-4952-abd0-176ff5c696ff");
|
|
pub const MFT_END_STREAMING_AWARE = Guid.initString("70fbc845-b07e-4089-b064-399dc6110f29");
|
|
pub const MF_SA_AUDIO_ENDPOINT_AWARE = Guid.initString("c0381701-805c-42b2-ac8d-e2b4bf21f4f8");
|
|
pub const MFT_AUDIO_DECODER_AUDIO_ENDPOINT_ID = Guid.initString("c7ccdd6e-5398-4695-8be7-51b3e95111bd");
|
|
pub const MFT_AUDIO_DECODER_SPATIAL_METADATA_CLIENT = Guid.initString("05987df4-1270-4999-925f-8e939a7c0af7");
|
|
pub const MF_DMFT_FRAME_BUFFER_INFO = Guid.initString("396ce1c9-67a9-454c-8797-95a45799d804");
|
|
pub const MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE = Guid.initString("b172d58e-fa77-4e48-8d2a-1df2d850eac2");
|
|
pub const MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT = Guid.initString("851745d5-c3d6-476d-9527-498ef2d10d18");
|
|
pub const MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE = Guid.initString("0f5523a5-1cb2-47c5-a550-2eeb84b4d14a");
|
|
pub const MFT_SUPPORT_3DVIDEO = Guid.initString("093f81b1-4f2e-4631-8168-7934032a01d3");
|
|
pub const MF_ENABLE_3DVIDEO_OUTPUT = Guid.initString("bdad7bca-0e5f-4b10-ab16-26de381b6293");
|
|
pub const MF_SA_D3D11_BINDFLAGS = Guid.initString("eacf97ad-065c-4408-bee3-fdcbfd128be2");
|
|
pub const MF_SA_D3D11_USAGE = Guid.initString("e85fe442-2ca3-486e-a9c7-109dda609880");
|
|
pub const MF_SA_D3D11_AWARE = Guid.initString("206b4fc8-fcf9-4c51-afe3-9764369e33a0");
|
|
pub const MF_SA_D3D11_SHARED = Guid.initString("7b8f32c3-6d96-4b89-9203-dd38b61414f3");
|
|
pub const MF_SA_D3D11_SHARED_WITHOUT_MUTEX = Guid.initString("39dbd44d-2e44-4931-a4c8-352d3dc42115");
|
|
pub const MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE = Guid.initString("ce06d49f-0613-4b9d-86a6-d8c4f9c10075");
|
|
pub const MF_SA_D3D11_HW_PROTECTED = Guid.initString("3a8ba9d9-92ca-4307-a391-6999dbf3b6ce");
|
|
pub const MF_SA_BUFFERS_PER_SAMPLE = Guid.initString("873c5171-1e3d-4e25-988d-b433ce041983");
|
|
pub const MF_SA_D3D11_ALLOCATE_DISPLAYABLE_RESOURCES = Guid.initString("eeface6d-2ea9-4adf-bbdf-7bbc482a1b6d");
|
|
pub const MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER = Guid.initString("ef80833f-f8fa-44d9-80d8-41ed6232670c");
|
|
pub const MFT_DECODER_QUALITY_MANAGEMENT_CUSTOM_CONTROL = Guid.initString("a24e30d7-de25-4558-bbfb-71070a2d332e");
|
|
pub const MFT_DECODER_QUALITY_MANAGEMENT_RECOVERY_WITHOUT_ARTIFACTS = Guid.initString("d8980deb-0a48-425f-8623-611db41d3810");
|
|
pub const MFT_REMUX_MARK_I_PICTURE_AS_CLEAN_POINT = Guid.initString("364e8f85-3f2e-436c-b2a2-4440a012a9e8");
|
|
pub const MFT_DECODER_FINAL_VIDEO_RESOLUTION_HINT = Guid.initString("dc2f8496-15c4-407a-b6f0-1b66ab5fbf53");
|
|
pub const MFT_ENCODER_SUPPORTS_CONFIG_EVENT = Guid.initString("86a355ae-3a77-4ec4-9f31-01149a4e92de");
|
|
pub const MFT_ENUM_HARDWARE_VENDOR_ID_Attribute = Guid.initString("3aecb0cc-035b-4bcc-8185-2b8d551ef3af");
|
|
pub const MF_TRANSFORM_ASYNC = Guid.initString("f81a699a-649a-497d-8c73-29f8fed6ad7a");
|
|
pub const MF_TRANSFORM_ASYNC_UNLOCK = Guid.initString("e5666d6b-3422-4eb6-a421-da7db1f8e207");
|
|
pub const MF_TRANSFORM_FLAGS_Attribute = Guid.initString("9359bb7e-6275-46c4-a025-1c01e45f1a86");
|
|
pub const MF_TRANSFORM_CATEGORY_Attribute = Guid.initString("ceabba49-506d-4757-a6ff-66c184987e4e");
|
|
pub const MFT_TRANSFORM_CLSID_Attribute = Guid.initString("6821c42b-65a4-4e82-99bc-9a88205ecd0c");
|
|
pub const MFT_INPUT_TYPES_Attributes = Guid.initString("4276c9b1-759d-4bf3-9cd0-0d723d138f96");
|
|
pub const MFT_OUTPUT_TYPES_Attributes = Guid.initString("8eae8cf3-a44f-4306-ba5c-bf5dda242818");
|
|
pub const MFT_ENUM_HARDWARE_URL_Attribute = Guid.initString("2fb866ac-b078-4942-ab6c-003d05cda674");
|
|
pub const MFT_FRIENDLY_NAME_Attribute = Guid.initString("314ffbae-5b41-4c95-9c19-4e7d586face3");
|
|
pub const MFT_CONNECTED_STREAM_ATTRIBUTE = Guid.initString("71eeb820-a59f-4de2-bcec-38db1dd611a4");
|
|
pub const MFT_CONNECTED_TO_HW_STREAM = Guid.initString("34e6e728-06d6-4491-a553-4795650db912");
|
|
pub const MFT_PREFERRED_OUTPUTTYPE_Attribute = Guid.initString("7e700499-396a-49ee-b1b4-f628021e8c9d");
|
|
pub const MFT_PROCESS_LOCAL_Attribute = Guid.initString("543186e4-4649-4e65-b588-4aa352aff379");
|
|
pub const MFT_PREFERRED_ENCODER_PROFILE = Guid.initString("53004909-1ef5-46d7-a18e-5a75f8b5905f");
|
|
pub const MFT_HW_TIMESTAMP_WITH_QPC_Attribute = Guid.initString("8d030fb8-cc43-4258-a22e-9210bef89be4");
|
|
pub const MFT_FIELDOFUSE_UNLOCK_Attribute = Guid.initString("8ec2e9fd-9148-410d-831e-702439461a8e");
|
|
pub const MFT_CODEC_MERIT_Attribute = Guid.initString("88a7cb15-7b07-4a34-9128-e64c6703c4d3");
|
|
pub const MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE = Guid.initString("111ea8cd-b62a-4bdb-89f6-67ffcdc2458b");
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_INFO_ATTRIBUTE = Guid.initString("6c3386ad-ec20-430d-b2a5-505c7178d9c4");
|
|
pub const MFT_POLICY_SET_AWARE = Guid.initString("5a633b19-cc39-4fa8-8ca5-59981b7a0018");
|
|
pub const MFT_USING_HARDWARE_DRM = Guid.initString("34faa77d-d79e-4957-b8ce-362b2684996c");
|
|
pub const MF_WVC1_PROG_SINGLE_SLICE_CONTENT = Guid.initString("67ec2559-0f2f-4420-a4dd-2f8ee7a5738b");
|
|
pub const MF_PROGRESSIVE_CODING_CONTENT = Guid.initString("8f020eea-1508-471f-9da6-507d7cfa40db");
|
|
pub const MF_NALU_LENGTH_SET = Guid.initString("a7911d53-12a4-4965-ae70-6eadd6ff0551");
|
|
pub const MF_NALU_LENGTH_INFORMATION = Guid.initString("19124e7c-ad4b-465f-bb18-20186287b6af");
|
|
pub const MF_USER_DATA_PAYLOAD = Guid.initString("d1d4985d-dc92-457a-b3a0-651a33a31047");
|
|
pub const MF_MPEG4SINK_SPSPPS_PASSTHROUGH = Guid.initString("5601a134-2005-4ad2-b37d-22a6c554deb2");
|
|
pub const MF_MPEG4SINK_MOOV_BEFORE_MDAT = Guid.initString("f672e3ac-e1e6-4f10-b5ec-5f3b30828816");
|
|
pub const MF_MPEG4SINK_MINIMUM_PROPERTIES_SIZE = Guid.initString("dca1ed52-450e-4a22-8c62-4ed452f7a187");
|
|
pub const MF_MPEG4SINK_MIN_FRAGMENT_DURATION = Guid.initString("a30b570c-8efd-45e8-94fe-27c84b5bdff6");
|
|
pub const MF_MPEG4SINK_MAX_CODED_SEQUENCES_PER_FRAGMENT = Guid.initString("fc1b3bd6-692d-4ce5-9299-738aa5463e9a");
|
|
pub const MF_SESSION_TOPOLOADER = Guid.initString("1e83d482-1f1c-4571-8405-88f4b2181f71");
|
|
pub const MF_SESSION_GLOBAL_TIME = Guid.initString("1e83d482-1f1c-4571-8405-88f4b2181f72");
|
|
pub const MF_SESSION_QUALITY_MANAGER = Guid.initString("1e83d482-1f1c-4571-8405-88f4b2181f73");
|
|
pub const MF_SESSION_CONTENT_PROTECTION_MANAGER = Guid.initString("1e83d482-1f1c-4571-8405-88f4b2181f74");
|
|
pub const MF_SESSION_SERVER_CONTEXT = Guid.initString("afe5b291-50fa-46e8-b9be-0c0c3ce4b3a5");
|
|
pub const MF_SESSION_REMOTE_SOURCE_MODE = Guid.initString("f4033ef4-9bb3-4378-941f-85a0856bc244");
|
|
pub const MF_SESSION_APPROX_EVENT_OCCURRENCE_TIME = Guid.initString("190e852f-6238-42d1-b5af-69ea338ef850");
|
|
pub const MF_PMP_SERVER_CONTEXT = Guid.initString("2f00c910-d2cf-4278-8b6a-d077fac3a25f");
|
|
pub const MF_TIME_FORMAT_ENTRY_RELATIVE = Guid.initString("4399f178-46d3-4504-afda-20d32e9ba360");
|
|
pub const MF_SOURCE_STREAM_SUPPORTS_HW_CONNECTION = Guid.initString("a38253aa-6314-42fd-a3ce-bb27b6859946");
|
|
pub const MF_STREAM_SINK_SUPPORTS_HW_CONNECTION = Guid.initString("9b465cbf-0597-4f9e-9f3c-b97eeef90359");
|
|
pub const MF_STREAM_SINK_SUPPORTS_ROTATION = Guid.initString("b3e96280-bd05-41a5-97ad-8a7fee24b912");
|
|
pub const MF_SINK_VIDEO_PTS = Guid.initString("2162bde7-421e-4b90-9b33-e58fbf1d58b6");
|
|
pub const MF_SINK_VIDEO_NATIVE_WIDTH = Guid.initString("e6d6a707-1505-4747-9b10-72d2d158cb3a");
|
|
pub const MF_SINK_VIDEO_NATIVE_HEIGHT = Guid.initString("f0ca6705-490c-43e8-941c-c0b3206b9a65");
|
|
pub const MF_SINK_VIDEO_DISPLAY_ASPECT_RATIO_NUMERATOR = Guid.initString("d0f33b22-b78a-4879-b455-f03ef3fa82cd");
|
|
pub const MF_SINK_VIDEO_DISPLAY_ASPECT_RATIO_DENOMINATOR = Guid.initString("6ea1eb97-1fe0-4f10-a6e4-1f4f661564e0");
|
|
pub const MF_BD_MVC_PLANE_OFFSET_METADATA = Guid.initString("62a654e4-b76c-4901-9823-2cb615d47318");
|
|
pub const MF_LUMA_KEY_ENABLE = Guid.initString("7369820f-76de-43ca-9284-47b8f37e0649");
|
|
pub const MF_LUMA_KEY_LOWER = Guid.initString("93d7b8d5-0b81-4715-aea0-8725871621e9");
|
|
pub const MF_LUMA_KEY_UPPER = Guid.initString("d09f39bb-4602-4c31-a706-a12171a5110a");
|
|
pub const MF_USER_EXTENDED_ATTRIBUTES = Guid.initString("c02abac6-feb2-4541-922f-920b43702722");
|
|
pub const MF_INDEPENDENT_STILL_IMAGE = Guid.initString("ea12af41-0710-42c9-a127-daa3e78483a5");
|
|
pub const MF_XVP_SAMPLE_LOCK_TIMEOUT = Guid.initString("aa4ddb29-5134-4363-ac72-83ec4bc10426");
|
|
pub const MF_TOPOLOGY_PROJECTSTART = Guid.initString("7ed3f802-86bb-4b3f-b7e4-7cb43afd4b80");
|
|
pub const MF_TOPOLOGY_PROJECTSTOP = Guid.initString("7ed3f803-86bb-4b3f-b7e4-7cb43afd4b80");
|
|
pub const MF_TOPOLOGY_NO_MARKIN_MARKOUT = Guid.initString("7ed3f804-86bb-4b3f-b7e4-7cb43afd4b80");
|
|
pub const MF_TOPOLOGY_DXVA_MODE = Guid.initString("1e8d34f6-f5ab-4e23-bb88-874aa3a1a74d");
|
|
pub const MF_TOPOLOGY_ENABLE_XVP_FOR_PLAYBACK = Guid.initString("1967731f-cd78-42fc-b026-0992a56e5693");
|
|
pub const MF_TOPOLOGY_STATIC_PLAYBACK_OPTIMIZATIONS = Guid.initString("b86cac42-41a6-4b79-897a-1ab0e52b4a1b");
|
|
pub const MF_TOPOLOGY_PLAYBACK_MAX_DIMS = Guid.initString("5715cf19-5768-44aa-ad6e-8721f1b0f9bb");
|
|
pub const MF_TOPOLOGY_HARDWARE_MODE = Guid.initString("d2d362fd-4e4f-4191-a579-c618b66706af");
|
|
pub const MF_TOPOLOGY_PLAYBACK_FRAMERATE = Guid.initString("c164737a-c2b1-4553-83bb-5a526072448f");
|
|
pub const MF_TOPOLOGY_DYNAMIC_CHANGE_NOT_ALLOWED = Guid.initString("d529950b-d484-4527-a9cd-b1909532b5b0");
|
|
pub const MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES = Guid.initString("6248c36d-5d0b-4f40-a0bb-b0b305f77698");
|
|
pub const MF_TOPOLOGY_START_TIME_ON_PRESENTATION_SWITCH = Guid.initString("c8cc113f-7951-4548-aad6-9ed6202e62b3");
|
|
pub const MF_DISABLE_LOCALLY_REGISTERED_PLUGINS = Guid.initString("66b16da9-add4-47e0-a16b-5af1fb483634");
|
|
pub const MF_LOCAL_PLUGIN_CONTROL_POLICY = Guid.initString("d91b0085-c86d-4f81-8822-8c68e1d7fa04");
|
|
pub const MF_TOPONODE_FLUSH = Guid.initString("494bbce8-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_DRAIN = Guid.initString("494bbce9-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_D3DAWARE = Guid.initString("494bbced-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPOLOGY_RESOLUTION_STATUS = Guid.initString("494bbcde-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_ERRORCODE = Guid.initString("494bbcee-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_CONNECT_METHOD = Guid.initString("494bbcf1-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_LOCKED = Guid.initString("494bbcf7-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_WORKQUEUE_ID = Guid.initString("494bbcf8-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_WORKQUEUE_MMCSS_CLASS = Guid.initString("494bbcf9-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_DECRYPTOR = Guid.initString("494bbcfa-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_DISCARDABLE = Guid.initString("494bbcfb-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_ERROR_MAJORTYPE = Guid.initString("494bbcfd-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_ERROR_SUBTYPE = Guid.initString("494bbcfe-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_WORKQUEUE_MMCSS_TASKID = Guid.initString("494bbcff-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY = Guid.initString("5001f840-2816-48f4-9364-ad1ef661a123");
|
|
pub const MF_TOPONODE_WORKQUEUE_ITEM_PRIORITY = Guid.initString("a1ff99be-5e97-4a53-b494-568c642c0ff3");
|
|
pub const MF_TOPONODE_MARKIN_HERE = Guid.initString("494bbd00-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_MARKOUT_HERE = Guid.initString("494bbd01-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_DECODER = Guid.initString("494bbd02-b031-4e38-97c4-d5422dd618dc");
|
|
pub const MF_TOPONODE_MEDIASTART = Guid.initString("835c58ea-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_MEDIASTOP = Guid.initString("835c58eb-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_SOURCE = Guid.initString("835c58ec-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_PRESENTATION_DESCRIPTOR = Guid.initString("835c58ed-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_STREAM_DESCRIPTOR = Guid.initString("835c58ee-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_SEQUENCE_ELEMENTID = Guid.initString("835c58ef-e075-4bc7-bcba-4de000df9ae6");
|
|
pub const MF_TOPONODE_TRANSFORM_OBJECTID = Guid.initString("88dcc0c9-293e-4e8b-9aeb-0ad64cc016b0");
|
|
pub const MF_TOPONODE_STREAMID = Guid.initString("14932f9b-9087-4bb4-8412-5167145cbe04");
|
|
pub const MF_TOPONODE_NOSHUTDOWN_ON_REMOVE = Guid.initString("14932f9c-9087-4bb4-8412-5167145cbe04");
|
|
pub const MF_TOPONODE_RATELESS = Guid.initString("14932f9d-9087-4bb4-8412-5167145cbe04");
|
|
pub const MF_TOPONODE_DISABLE_PREROLL = Guid.initString("14932f9e-9087-4bb4-8412-5167145cbe04");
|
|
pub const MF_TOPONODE_PRIMARYOUTPUT = Guid.initString("6304ef99-16b2-4ebe-9d67-e4c539b3a259");
|
|
pub const MF_PD_PMPHOST_CONTEXT = Guid.initString("6c990d31-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_APP_CONTEXT = Guid.initString("6c990d32-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_DURATION = Guid.initString("6c990d33-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_TOTAL_FILE_SIZE = Guid.initString("6c990d34-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_AUDIO_ENCODING_BITRATE = Guid.initString("6c990d35-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_VIDEO_ENCODING_BITRATE = Guid.initString("6c990d36-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_MIME_TYPE = Guid.initString("6c990d37-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_LAST_MODIFIED_TIME = Guid.initString("6c990d38-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_PLAYBACK_ELEMENT_ID = Guid.initString("6c990d39-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_PREFERRED_LANGUAGE = Guid.initString("6c990d3a-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_PLAYBACK_BOUNDARY_TIME = Guid.initString("6c990d3b-bb8e-477a-8598-0d5d96fcd88a");
|
|
pub const MF_PD_AUDIO_ISVARIABLEBITRATE = Guid.initString("33026ee0-e387-4582-ae0a-34a2ad3baa18");
|
|
pub const MF_SD_LANGUAGE = Guid.initString("00af2180-bdc2-423c-abca-f503593bc121");
|
|
pub const MF_SD_PROTECTED = Guid.initString("00af2181-bdc2-423c-abca-f503593bc121");
|
|
pub const MF_SD_STREAM_NAME = Guid.initString("4f1b099d-d314-41e5-a781-7fefaa4c501f");
|
|
pub const MF_SD_MUTUALLY_EXCLUSIVE = Guid.initString("023ef79c-388d-487f-ac17-696cd6e3c6f5");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_MIXER_CLSID = Guid.initString("ba491360-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_MIXER_ACTIVATE = Guid.initString("ba491361-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_MIXER_FLAGS = Guid.initString("ba491362-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_CLSID = Guid.initString("ba491364-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE = Guid.initString("ba491365-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS = Guid.initString("ba491366-be50-451e-95ab-6d4accc7dad8");
|
|
pub const MF_ACTIVATE_MFT_LOCKED = Guid.initString("c1f6093c-7f65-4fbd-9e39-5faec3c4fbd7");
|
|
pub const MF_ACTIVATE_VIDEO_WINDOW = Guid.initString("9a2dbbdd-f57e-4162-82b9-6831377682d3");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_FLAGS = Guid.initString("ede4b5e0-f805-4d6c-99b3-db01bf95dfab");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_SESSION_ID = Guid.initString("ede4b5e3-f805-4d6c-99b3-db01bf95dfab");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID = Guid.initString("b10aaec3-ef71-4cc3-b873-05a9a08b9f8e");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE = Guid.initString("6ba644ff-27c5-4d02-9887-c28619fdb91b");
|
|
pub const MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY = Guid.initString("a9770471-92ec-4df4-94fe-81c36f0c3a7a");
|
|
pub const MFENABLETYPE_WMDRMV1_LicenseAcquisition = Guid.initString("4ff6eeaf-0b43-4797-9b85-abf31815e7b0");
|
|
pub const MFENABLETYPE_WMDRMV7_LicenseAcquisition = Guid.initString("003306df-4a06-4884-a097-ef6d22ec84a3");
|
|
pub const MFENABLETYPE_WMDRMV7_Individualization = Guid.initString("acd2c84a-b303-4f65-bc2c-2c848d01a989");
|
|
pub const MFENABLETYPE_MF_UpdateRevocationInformation = Guid.initString("e558b0b5-b3c4-44a0-924c-50d178932385");
|
|
pub const MFENABLETYPE_MF_UpdateUntrustedComponent = Guid.initString("9879f3d6-cee2-48e6-b573-9767ab172f16");
|
|
pub const MFENABLETYPE_MF_RebootRequired = Guid.initString("6d4d3d4b-0ece-4652-8b3a-f2d24260d887");
|
|
pub const MF_METADATA_PROVIDER_SERVICE = Guid.initString("db214084-58a4-4d2e-b84f-6f755b2f7a0d");
|
|
pub const MF_PROPERTY_HANDLER_SERVICE = Guid.initString("a3face02-32b8-41dd-90e7-5fef7c8991b5");
|
|
pub const MF_RATE_CONTROL_SERVICE = Guid.initString("866fa297-b802-4bf8-9dc9-5e3b6a9f53c9");
|
|
pub const MF_TIMECODE_SERVICE = Guid.initString("a0d502a7-0eb3-4885-b1b9-9feb0d083454");
|
|
pub const MR_POLICY_VOLUME_SERVICE = Guid.initString("1abaa2ac-9d3b-47c6-ab48-c59506de784d");
|
|
pub const MR_CAPTURE_POLICY_VOLUME_SERVICE = Guid.initString("24030acd-107a-4265-975c-414e33e65f2a");
|
|
pub const MR_STREAM_VOLUME_SERVICE = Guid.initString("f8b5fa2f-32ef-46f5-b172-1321212fb2c4");
|
|
pub const MR_AUDIO_POLICY_SERVICE = Guid.initString("911fd737-6775-4ab0-a614-297862fdac88");
|
|
pub const MF_SAMPLEGRABBERSINK_SAMPLE_TIME_OFFSET = Guid.initString("62e3d776-8100-4e03-a6e8-bd3857ac9c47");
|
|
pub const MF_SAMPLEGRABBERSINK_IGNORE_CLOCK = Guid.initString("0efda2c0-2b69-4e2e-ab8d-46dcbff7d25d");
|
|
pub const MF_QUALITY_SERVICES = Guid.initString("b7e2be11-2f96-4640-b52c-282365bdf16c");
|
|
pub const MF_WORKQUEUE_SERVICES = Guid.initString("8e37d489-41e0-413a-9068-287c886d8dda");
|
|
pub const MF_QUALITY_NOTIFY_PROCESSING_LATENCY = Guid.initString("f6b44af8-604d-46fe-a95d-45479b10c9bc");
|
|
pub const MF_QUALITY_NOTIFY_SAMPLE_LAG = Guid.initString("30d15206-ed2a-4760-be17-eb4a9f12295c");
|
|
pub const MF_TIME_FORMAT_SEGMENT_OFFSET = Guid.initString("c8b8be77-869c-431d-812e-169693f65a39");
|
|
pub const MF_SOURCE_PRESENTATION_PROVIDER_SERVICE = Guid.initString("e002aadc-f4af-4ee5-9847-053edf840426");
|
|
pub const MF_TOPONODE_ATTRIBUTE_EDITOR_SERVICE = Guid.initString("65656e1a-077f-4472-83ef-316f11d5087a");
|
|
pub const MFNETSOURCE_SSLCERTIFICATE_MANAGER = Guid.initString("55e6cb27-e69b-4267-940c-2d7ec5bb8a0f");
|
|
pub const MFNETSOURCE_RESOURCE_FILTER = Guid.initString("815d0ff6-265a-4477-9e46-7b80ad80b5fb");
|
|
pub const MFNET_SAVEJOB_SERVICE = Guid.initString("b85a587f-3d02-4e52-9565-55d3ec1e7ff7");
|
|
pub const MFNETSOURCE_STATISTICS_SERVICE = Guid.initString("3cb1f275-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_STATISTICS = Guid.initString("3cb1f274-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_BUFFERINGTIME = Guid.initString("3cb1f276-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ACCELERATEDSTREAMINGDURATION = Guid.initString("3cb1f277-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_MAXUDPACCELERATEDSTREAMINGDURATION = Guid.initString("4aab2879-bbe1-4994-9ff0-5495bd250129");
|
|
pub const MFNETSOURCE_MAXBUFFERTIMEMS = Guid.initString("408b24e6-4038-4401-b5b2-fe701a9ebf10");
|
|
pub const MFNETSOURCE_CONNECTIONBANDWIDTH = Guid.initString("3cb1f278-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_CACHEENABLED = Guid.initString("3cb1f279-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_AUTORECONNECTLIMIT = Guid.initString("3cb1f27a-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_RESENDSENABLED = Guid.initString("3cb1f27b-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_THINNINGENABLED = Guid.initString("3cb1f27c-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROTOCOL = Guid.initString("3cb1f27d-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_TRANSPORT = Guid.initString("3cb1f27e-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PREVIEWMODEENABLED = Guid.initString("3cb1f27f-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_CREDENTIAL_MANAGER = Guid.initString("3cb1f280-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PPBANDWIDTH = Guid.initString("3cb1f281-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_AUTORECONNECTPROGRESS = Guid.initString("3cb1f282-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYLOCATORFACTORY = Guid.initString("3cb1f283-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_BROWSERUSERAGENT = Guid.initString("3cb1f28b-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_BROWSERWEBPAGE = Guid.initString("3cb1f28c-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PLAYERVERSION = Guid.initString("3cb1f28d-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PLAYERID = Guid.initString("3cb1f28e-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_HOSTEXE = Guid.initString("3cb1f28f-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_HOSTVERSION = Guid.initString("3cb1f291-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PLAYERUSERAGENT = Guid.initString("3cb1f292-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_CLIENTGUID = Guid.initString("60a2c4a6-f197-4c14-a5bf-88830d2458af");
|
|
pub const MFNETSOURCE_LOGURL = Guid.initString("3cb1f293-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_UDP = Guid.initString("3cb1f294-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_TCP = Guid.initString("3cb1f295-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_MSB = Guid.initString("3cb1f296-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_RTSP = Guid.initString("3cb1f298-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_HTTP = Guid.initString("3cb1f299-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_STREAMING = Guid.initString("3cb1f29c-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_DOWNLOAD = Guid.initString("3cb1f29d-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_ENABLE_PRIVATEMODE = Guid.initString("824779d8-f18b-4405-8cf1-464fb5aa8f71");
|
|
pub const MFNETSOURCE_UDP_PORT_RANGE = Guid.initString("3cb1f29a-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYINFO = Guid.initString("3cb1f29b-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_DRMNET_LICENSE_REPRESENTATION = Guid.initString("47eae1bd-bdfe-42e2-82f3-54a48c17962d");
|
|
pub const MFNETSOURCE_PROXYSETTINGS = Guid.initString("3cb1f287-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYHOSTNAME = Guid.initString("3cb1f284-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYPORT = Guid.initString("3cb1f288-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYEXCEPTIONLIST = Guid.initString("3cb1f285-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYBYPASSFORLOCAL = Guid.initString("3cb1f286-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_PROXYRERUNAUTODETECTION = Guid.initString("3cb1f289-0505-4c5d-ae71-0a556344efa1");
|
|
pub const MFNETSOURCE_STREAM_LANGUAGE = Guid.initString("9ab44318-f7cd-4f2d-8d6d-fa35b492cecb");
|
|
pub const MFNETSOURCE_LOGPARAMS = Guid.initString("64936ae8-9418-453a-8cda-3e0a668b353b");
|
|
pub const MFNETSOURCE_PEERMANAGER = Guid.initString("48b29adb-febf-45ee-a9bf-efb81c492efc");
|
|
pub const MFNETSOURCE_FRIENDLYNAME = Guid.initString("5b2a7757-bc6b-447e-aa06-0dda1c646e2f");
|
|
pub const MF_BYTESTREAMHANDLER_ACCEPTS_SHARE_WRITE = Guid.initString("a6e1f733-3001-4915-8150-1558a2180ec8");
|
|
pub const MF_BYTESTREAM_SERVICE = Guid.initString("ab025e2b-16d9-4180-a127-ba6c70156161");
|
|
pub const MF_MEDIA_PROTECTION_MANAGER_PROPERTIES = Guid.initString("38bd81a9-acea-4c73-89b2-5532c0aeca79");
|
|
pub const MFCONNECTOR_SPDIF = Guid.initString("0b94a712-ad3e-4cee-83ce-ce32e3db6522");
|
|
pub const MFCONNECTOR_UNKNOWN = Guid.initString("ac3aef5c-ce43-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_PCI = Guid.initString("ac3aef5d-ce43-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_PCIX = Guid.initString("ac3aef5e-ce43-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_PCI_Express = Guid.initString("ac3aef5f-ce43-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_AGP = Guid.initString("ac3aef60-ce43-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_VGA = Guid.initString("57cd5968-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_SVIDEO = Guid.initString("57cd5969-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_COMPOSITE = Guid.initString("57cd596a-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_COMPONENT = Guid.initString("57cd596b-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_DVI = Guid.initString("57cd596c-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_HDMI = Guid.initString("57cd596d-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_LVDS = Guid.initString("57cd596e-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_D_JPN = Guid.initString("57cd5970-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_SDI = Guid.initString("57cd5971-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_DISPLAYPORT_EXTERNAL = Guid.initString("57cd5972-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_DISPLAYPORT_EMBEDDED = Guid.initString("57cd5973-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_UDI_EXTERNAL = Guid.initString("57cd5974-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_UDI_EMBEDDED = Guid.initString("57cd5975-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_MIRACAST = Guid.initString("57cd5977-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A = Guid.initString("57cd5978-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MFCONNECTOR_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B = Guid.initString("57cd5979-ce47-11d9-92db-000bdb28ff98");
|
|
pub const MF_POLICY_ID = Guid.initString("b160c24d-c059-48f1-a901-9ee298a9a8c3");
|
|
pub const MFPROTECTION_DISABLE = Guid.initString("8cc6d81b-fec6-4d8f-964b-cfba0b0dad0d");
|
|
pub const MFPROTECTION_CONSTRICTVIDEO = Guid.initString("193370ce-c5e4-4c3a-8a66-6959b4da4442");
|
|
pub const MFPROTECTION_CONSTRICTVIDEO_NOOPM = Guid.initString("a580e8cd-c247-4957-b983-3c2eebd1ff59");
|
|
pub const MFPROTECTION_CONSTRICTAUDIO = Guid.initString("ffc99b44-df48-4e16-8e66-096892c1578a");
|
|
pub const MFPROTECTION_TRUSTEDAUDIODRIVERS = Guid.initString("65bdf3d2-0168-4816-a533-55d47b027101");
|
|
pub const MFPROTECTION_HDCP = Guid.initString("ae7cc03d-c828-4021-acb7-d578d27aaf13");
|
|
pub const MFPROTECTION_CGMSA = Guid.initString("e57e69e9-226b-4d31-b4e3-d3db008736dd");
|
|
pub const MFPROTECTION_ACP = Guid.initString("c3fd11c6-f8b7-4d20-b008-1db17d61f2da");
|
|
pub const MFPROTECTION_WMDRMOTA = Guid.initString("a267a6a1-362e-47d0-8805-4628598a23e4");
|
|
pub const MFPROTECTION_FFT = Guid.initString("462a56b2-2866-4bb6-980d-6d8d9edb1a8c");
|
|
pub const MFPROTECTION_PROTECTED_SURFACE = Guid.initString("4f5d9566-e742-4a25-8d1f-d287b5fa0ade");
|
|
pub const MFPROTECTION_DISABLE_SCREEN_SCRAPE = Guid.initString("a21179a4-b7cd-40d8-9614-8ef2371ba78d");
|
|
pub const MFPROTECTION_VIDEO_FRAMES = Guid.initString("36a59cbc-7401-4a8c-bc20-46a7c9e597f0");
|
|
pub const MFPROTECTION_HARDWARE = Guid.initString("4ee7f0c1-9ed7-424f-b6be-996b33528856");
|
|
pub const MFPROTECTION_HDCP_WITH_TYPE_ENFORCEMENT = Guid.initString("a4a585e8-ed60-442d-814d-db4d4220a06d");
|
|
pub const MFPROTECTIONATTRIBUTE_BEST_EFFORT = Guid.initString("c8e06331-75f0-4ec1-8e77-17578f773b46");
|
|
pub const MFPROTECTIONATTRIBUTE_FAIL_OVER = Guid.initString("8536abc5-38f1-4151-9cce-f55d941229ac");
|
|
pub const MFPROTECTION_GRAPHICS_TRANSFER_AES_ENCRYPTION = Guid.initString("c873de64-d8a5-49e6-88bb-fb963fd3d4ce");
|
|
pub const MFPROTECTIONATTRIBUTE_CONSTRICTVIDEO_IMAGESIZE = Guid.initString("008476fc-4b58-4d80-a790-e7297673161d");
|
|
pub const MFPROTECTIONATTRIBUTE_HDCP_SRM = Guid.initString("6f302107-3477-4468-8a08-eef9db10e20f");
|
|
pub const MF_SampleProtectionSalt = Guid.initString("5403deee-b9ee-438f-aa83-3804997e569d");
|
|
pub const MF_REMOTE_PROXY = Guid.initString("2f00c90e-d2cf-4278-8b6a-d077fac3a25f");
|
|
pub const CLSID_CreateMediaExtensionObject = Guid.initString("ef65a54d-0788-45b8-8b14-bc0f6a6b5137");
|
|
pub const MF_SAMI_SERVICE = Guid.initString("49a89ae7-b4d9-4ef2-aa5c-f65a3e05ae4e");
|
|
pub const MF_PD_SAMI_STYLELIST = Guid.initString("e0b73c7f-486d-484e-9872-4de5192a7bf8");
|
|
pub const MF_SD_SAMI_LANGUAGE = Guid.initString("36fcb98a-6cd0-44cb-acb9-a8f5600dd0bb");
|
|
pub const MF_TRANSCODE_CONTAINERTYPE = Guid.initString("150ff23f-4abc-478b-ac4f-e1916fba1cca");
|
|
pub const MFTranscodeContainerType_ASF = Guid.initString("430f6f6e-b6bf-4fc1-a0bd-9ee46eee2afb");
|
|
pub const MFTranscodeContainerType_MPEG4 = Guid.initString("dc6cd05d-b9d0-40ef-bd35-fa622c1ab28a");
|
|
pub const MFTranscodeContainerType_MP3 = Guid.initString("e438b912-83f1-4de6-9e3a-9ffbc6dd24d1");
|
|
pub const MFTranscodeContainerType_FLAC = Guid.initString("31344aa3-05a9-42b5-901b-8e9d4257f75e");
|
|
pub const MFTranscodeContainerType_3GP = Guid.initString("34c50167-4472-4f34-9ea0-c49fbacf037d");
|
|
pub const MFTranscodeContainerType_AC3 = Guid.initString("6d8d91c3-8c91-4ed1-8742-8c347d5b44d0");
|
|
pub const MFTranscodeContainerType_ADTS = Guid.initString("132fd27d-0f02-43de-a301-38fbbbb3834e");
|
|
pub const MFTranscodeContainerType_MPEG2 = Guid.initString("bfc2dbf9-7bb4-4f8f-afde-e112c44ba882");
|
|
pub const MFTranscodeContainerType_WAVE = Guid.initString("64c3453c-0f26-4741-be63-87bdf8bb935b");
|
|
pub const MFTranscodeContainerType_AVI = Guid.initString("7edfe8af-402f-4d76-a33c-619fd157d0f1");
|
|
pub const MFTranscodeContainerType_FMPEG4 = Guid.initString("9ba876f1-419f-4b77-a1e0-35959d9d4004");
|
|
pub const MFTranscodeContainerType_AMR = Guid.initString("025d5ad3-621a-475b-964d-66b1c824f079");
|
|
pub const MF_TRANSCODE_SKIP_METADATA_TRANSFER = Guid.initString("4e4469ef-b571-4959-8f83-3dcfba33a393");
|
|
pub const MF_TRANSCODE_TOPOLOGYMODE = Guid.initString("3e3df610-394a-40b2-9dea-3bab650bebf2");
|
|
pub const MF_TRANSCODE_ADJUST_PROFILE = Guid.initString("9c37c21b-060f-487c-a690-80d7f50d1c72");
|
|
pub const MF_TRANSCODE_ENCODINGPROFILE = Guid.initString("6947787c-f508-4ea9-b1e9-a1fe3a49fbc9");
|
|
pub const MF_TRANSCODE_QUALITYVSSPEED = Guid.initString("98332df8-03cd-476b-89fa-3f9e442dec9f");
|
|
pub const MF_TRANSCODE_DONOT_INSERT_ENCODER = Guid.initString("f45aa7ce-ab24-4012-a11b-dc8220201410");
|
|
pub const MF_VIDEO_PROCESSOR_ALGORITHM = Guid.initString("4a0a1e1f-272c-4fb6-9eb1-db330cbc97ca");
|
|
pub const MF_XVP_DISABLE_FRC = Guid.initString("2c0afa19-7a97-4d5a-9ee8-16d4fc518d8c");
|
|
pub const MF_XVP_CALLER_ALLOCATES_OUTPUT = Guid.initString("04a2cabc-0cab-40b1-a1b9-75bc3658f000");
|
|
pub const MF_LOCAL_MFT_REGISTRATION_SERVICE = Guid.initString("ddf5cf9c-4506-45aa-abf0-6d5d94dd1b4a");
|
|
pub const MF_WRAPPED_SAMPLE_SERVICE = Guid.initString("31f52bf2-d03e-4048-80d0-9c1046d87c61");
|
|
pub const MF_WRAPPED_OBJECT = Guid.initString("2b182c4c-d6ac-49f4-8915-f71887db70cd");
|
|
pub const CLSID_HttpSchemePlugin = Guid.initString("44cb442b-9da9-49df-b3fd-023777b16e50");
|
|
pub const CLSID_UrlmonSchemePlugin = Guid.initString("9ec4b4f9-3029-45ad-947b-344de2a249e2");
|
|
pub const CLSID_NetSchemePlugin = Guid.initString("e9f4ebab-d97b-463e-a2b1-c54ee3f9414d");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE = Guid.initString("c60ac5fe-252a-478f-a0ef-bc8fa5f7cad3");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE = Guid.initString("de7046ba-54d6-4487-a2a4-ec7c0d1bd163");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME = Guid.initString("60d0e559-52f8-4fa2-bbce-acdb34a8ec01");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE = Guid.initString("56a819ca-0c78-4de4-a0a7-3ddaba0f24d4");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY = Guid.initString("77f0ae69-c3bd-4509-941d-467e4d24899e");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK = Guid.initString("58f0aad8-22bf-4f8a-bb3d-d2c4978c6e2f");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK = Guid.initString("98d24b5e-5930-4614-b5a1-f600f9355a78");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS = Guid.initString("7dd9b730-4f2d-41d5-8f95-0cc9a912ba26");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID = Guid.initString("30da9258-feb9-47a7-a453-763a7a8e1c5f");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE = Guid.initString("bc9d118e-8c67-4a18-85d4-12d300400552");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID = Guid.initString("36689d42-a06c-40ae-84cf-f5a034067cc4");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_XADDRESS = Guid.initString("bca0be52-c327-44c7-9b7d-7fa8d9b5bcda");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_STREAM_URL = Guid.initString("9d7b40d2-3617-4043-93e3-8d6da9bb3492");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_USERNAME = Guid.initString("05d01add-949f-46eb-bc8e-8b0d2b32d79d");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_PASSWORD = Guid.initString("a0fd7e16-42d9-49df-84c0-e82c5eab8874");
|
|
pub const CLSID_FrameServerNetworkCameraSource = Guid.initString("7a213aa7-866f-414a-8c1a-275c7283a395");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID = Guid.initString("14dd9a1c-7cff-41be-b1b9-ba1ac6ecb571");
|
|
pub const MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID = Guid.initString("8ac3587a-4ae7-42d8-99e0-0a6013eef90f");
|
|
pub const MF_DEVICESTREAM_IMAGE_STREAM = Guid.initString("a7ffb865-e7b2-43b0-9f6f-9af2a0e50fc0");
|
|
pub const MF_DEVICESTREAM_INDEPENDENT_IMAGE_STREAM = Guid.initString("03eeec7e-d605-4576-8b29-6580b490d7d3");
|
|
pub const MF_DEVICESTREAM_STREAM_ID = Guid.initString("11bd5120-d124-446b-88e6-17060257fff9");
|
|
pub const MF_DEVICESTREAM_STREAM_CATEGORY = Guid.initString("2939e7b8-a62e-4579-b674-d4073dfabbba");
|
|
pub const MF_DEVICESTREAM_FRAMESERVER_SHARED = Guid.initString("1cb378e9-b279-41d4-af97-34a243e68320");
|
|
pub const MF_DEVICESTREAM_TRANSFORM_STREAM_ID = Guid.initString("e63937b7-daaf-4d49-815f-d826f8ad31e7");
|
|
pub const MF_DEVICESTREAM_EXTENSION_PLUGIN_CLSID = Guid.initString("048e6558-60c4-4173-bd5b-6a3ca2896aee");
|
|
pub const MF_DEVICEMFT_EXTENSION_PLUGIN_CLSID = Guid.initString("0844dbae-34fa-48a0-a783-8e696fb1c9a8");
|
|
pub const MF_DEVICESTREAM_EXTENSION_PLUGIN_CONNECTION_POINT = Guid.initString("37f9375c-e664-4ea4-aae4-cb6d1daca1f4");
|
|
pub const MF_DEVICESTREAM_TAKEPHOTO_TRIGGER = Guid.initString("1d180e34-538c-4fbb-a75a-859af7d261a6");
|
|
pub const MF_DEVICESTREAM_MAX_FRAME_BUFFERS = Guid.initString("1684cebe-3175-4985-882c-0efd3e8ac11e");
|
|
pub const MF_DEVICEMFT_CONNECTED_FILTER_KSCONTROL = Guid.initString("6a2c4fa6-d179-41cd-9523-822371ea40e5");
|
|
pub const MF_DEVICEMFT_CONNECTED_PIN_KSCONTROL = Guid.initString("e63310f7-b244-4ef8-9a7d-24c74e32ebd0");
|
|
pub const MF_DEVICE_THERMAL_STATE_CHANGED = Guid.initString("70ccd0af-fc9f-4deb-a875-9fecd16c5bd4");
|
|
pub const MFSampleExtension_DeviceTimestamp = Guid.initString("8f3e35e7-2dcd-4887-8622-2a58baa652b0");
|
|
pub const MFSampleExtension_Spatial_CameraViewTransform = Guid.initString("4e251fa4-830f-4770-859a-4b8d99aa809b");
|
|
pub const MFSampleExtension_Spatial_CameraCoordinateSystem = Guid.initString("9d13c82f-2199-4e67-91cd-d1a4181f2534");
|
|
pub const MFSampleExtension_Spatial_CameraProjectionTransform = Guid.initString("47f9fcb5-2a02-4f26-a477-792fdf95886a");
|
|
pub const MF_MEDIASOURCE_SERVICE = Guid.initString("f09992f7-9fba-4c4a-a37f-8c47b4e1dfe7");
|
|
pub const MF_ACCESS_CONTROLLED_MEDIASOURCE_SERVICE = Guid.initString("014a5031-2f05-4c6a-9f9c-7d0dc4eda5f4");
|
|
pub const MF_CONTENT_DECRYPTOR_SERVICE = Guid.initString("68a72927-fc7b-44ee-85f4-7c51bd55a659");
|
|
pub const MF_CONTENT_PROTECTION_DEVICE_SERVICE = Guid.initString("ff58436f-76a0-41fe-b566-10cc53962edd");
|
|
pub const MF_SD_AUDIO_ENCODER_DELAY = Guid.initString("8e85422c-73de-403f-9a35-550ad6e8b951");
|
|
pub const MF_SD_AUDIO_ENCODER_PADDING = Guid.initString("529c7f2c-ac4b-4e3f-bfc3-0902194982cb");
|
|
pub const CLSID_MSH264DecoderMFT = Guid.initString("62ce7e72-4c71-4d20-b15d-452831a87d9d");
|
|
pub const CLSID_MSH264EncoderMFT = Guid.initString("6ca50344-051a-4ded-9779-a43305165e35");
|
|
pub const CLSID_MSDDPlusDecMFT = Guid.initString("177c0afe-900b-48d4-9e4c-57add250b3d4");
|
|
pub const CLSID_MP3DecMediaObject = Guid.initString("bbeea841-0a63-4f52-a7ab-a9b3a84ed38a");
|
|
pub const CLSID_MSAACDecMFT = Guid.initString("32d186a7-218f-4c75-8876-dd77273a8999");
|
|
pub const CLSID_MSH265DecoderMFT = Guid.initString("420a51a3-d605-430c-b4fc-45274fa6c562");
|
|
pub const CLSID_WMVDecoderMFT = Guid.initString("82d353df-90bd-4382-8bc2-3f6192b76e34");
|
|
pub const CLSID_WMADecMediaObject = Guid.initString("2eeb4adf-4578-4d10-bca7-bb955f56320a");
|
|
pub const CLSID_MSMPEGAudDecMFT = Guid.initString("70707b39-b2ca-4015-abea-f8447d22d88b");
|
|
pub const CLSID_MSMPEGDecoderMFT = Guid.initString("2d709e52-123f-49b5-9cbc-9af5cde28fb9");
|
|
pub const CLSID_AudioResamplerMediaObject = Guid.initString("f447b69e-1884-4a7e-8055-346f74d6edb3");
|
|
pub const CLSID_MSVPxDecoder = Guid.initString("e3aaf548-c9a4-4c6e-234d-5ada374b0000");
|
|
pub const CLSID_MSOpusDecoder = Guid.initString("63e17c10-2d43-4c42-8fe3-8d8b63e46a6a");
|
|
pub const CLSID_VideoProcessorMFT = Guid.initString("88753b26-5b24-49bd-b2e7-0c445c78c982");
|
|
pub const MFNETSOURCE_CROSS_ORIGIN_SUPPORT = Guid.initString("9842207c-b02c-4271-a2fc-72e49308e5c2");
|
|
pub const MFNETSOURCE_HTTP_DOWNLOAD_SESSION_PROVIDER = Guid.initString("7d55081e-307d-4d6d-a663-a93be97c4b5c");
|
|
pub const MF_SD_MEDIASOURCE_STATUS = Guid.initString("1913678b-fc0f-44da-8f43-1ba3b526f4ae");
|
|
pub const MF_SD_VIDEO_SPHERICAL = Guid.initString("a51da449-3fdc-478c-bcb5-30be76595f55");
|
|
pub const MF_SD_VIDEO_SPHERICAL_FORMAT = Guid.initString("4a8fc407-6ea1-46c8-b567-6971d4a139c3");
|
|
pub const MF_SD_VIDEO_SPHERICAL_INITIAL_VIEWDIRECTION = Guid.initString("11d25a49-bb62-467f-9db1-c17165716c49");
|
|
pub const MF_MEDIASOURCE_EXPOSE_ALL_STREAMS = Guid.initString("e7f250b8-8fd9-4a09-b6c1-6a315c7c720e");
|
|
pub const MF_ST_MEDIASOURCE_COLLECTION = Guid.initString("616de972-83ad-4950-8170-630d19cbe307");
|
|
pub const MF_DEVICESTREAM_FILTER_KSCONTROL = Guid.initString("46783cca-3df5-4923-a9ef-36b7223edde0");
|
|
pub const MF_DEVICESTREAM_PIN_KSCONTROL = Guid.initString("ef3ef9a7-87f2-48ca-be02-674878918e98");
|
|
pub const MF_DEVICESTREAM_SOURCE_ATTRIBUTES = Guid.initString("2f8cb617-361b-434f-85ea-99a03e1ce4e0");
|
|
pub const MF_DEVICESTREAM_FRAMESERVER_HIDDEN = Guid.initString("f402567b-4d91-4179-96d1-74c8480c2034");
|
|
pub const MF_STF_VERSION_INFO = Guid.initString("6770bd39-ef82-44ee-a49b-934beb24aef7");
|
|
pub const MF_STF_VERSION_DATE = Guid.initString("31a165d5-df67-4095-8e44-8868fc20dbfd");
|
|
pub const MF_DEVICESTREAM_REQUIRED_CAPABILITIES = Guid.initString("6d8b957e-7cf6-43f4-af56-9c0e1e4fcbe1");
|
|
pub const MF_DEVICESTREAM_REQUIRED_SDDL = Guid.initString("331ae85d-c0d3-49ba-83ba-82a12d63cdd6");
|
|
pub const MF_DEVICEMFT_SENSORPROFILE_COLLECTION = Guid.initString("36ebdc44-b12c-441b-89f4-08b2f41a9cfc");
|
|
pub const MF_DEVICESTREAM_SENSORSTREAM_ID = Guid.initString("e35b9fe4-0659-4cad-bb51-33160be7e413");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_FILE_ID = Guid.initString("3de649b4-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_CREATION_TIME = Guid.initString("3de649b6-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_PACKETS = Guid.initString("3de649b7-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION = Guid.initString("3de649b8-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_SEND_DURATION = Guid.initString("3de649b9-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_PREROLL = Guid.initString("3de649ba-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_FLAGS = Guid.initString("3de649bb-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE = Guid.initString("3de649bc-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE = Guid.initString("3de649bd-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE = Guid.initString("3de649be-d76d-4e66-9ec9-78120fb4c7e3");
|
|
pub const CLSID_WMDRMSystemID = Guid.initString("8948bb22-11bd-4796-93e3-974d1b575678");
|
|
pub const MF_PD_ASF_CONTENTENCRYPTION_TYPE = Guid.initString("8520fe3d-277e-46ea-99e4-e30a86db12be");
|
|
pub const MF_PD_ASF_CONTENTENCRYPTION_KEYID = Guid.initString("8520fe3e-277e-46ea-99e4-e30a86db12be");
|
|
pub const MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA = Guid.initString("8520fe3f-277e-46ea-99e4-e30a86db12be");
|
|
pub const MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL = Guid.initString("8520fe40-277e-46ea-99e4-e30a86db12be");
|
|
pub const MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA = Guid.initString("62508be5-ecdf-4924-a359-72bab3397b9d");
|
|
pub const MF_PD_ASF_LANGLIST = Guid.initString("f23de43c-9977-460d-a6ec-32937f160f7d");
|
|
pub const MF_PD_ASF_LANGLIST_LEGACYORDER = Guid.initString("f23de43d-9977-460d-a6ec-32937f160f7d");
|
|
pub const MF_PD_ASF_MARKER = Guid.initString("5134330e-83a6-475e-a9d5-4fb875fb2e31");
|
|
pub const MF_PD_ASF_SCRIPT = Guid.initString("e29cd0d7-d602-4923-a7fe-73fd97ecc650");
|
|
pub const MF_PD_ASF_CODECLIST = Guid.initString("e4bb3509-c18d-4df1-bb99-7a36b3cc4119");
|
|
pub const MF_PD_ASF_METADATA_IS_VBR = Guid.initString("5fc6947a-ef60-445d-b449-442ecc78b4c1");
|
|
pub const MF_PD_ASF_METADATA_V8_VBRPEAK = Guid.initString("5fc6947b-ef60-445d-b449-442ecc78b4c1");
|
|
pub const MF_PD_ASF_METADATA_V8_BUFFERAVERAGE = Guid.initString("5fc6947c-ef60-445d-b449-442ecc78b4c1");
|
|
pub const MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS = Guid.initString("5fc6947d-ef60-445d-b449-442ecc78b4c1");
|
|
pub const MF_PD_ASF_DATA_START_OFFSET = Guid.initString("e7d5b3e7-1f29-45d3-8822-3e78fae272ed");
|
|
pub const MF_PD_ASF_DATA_LENGTH = Guid.initString("e7d5b3e8-1f29-45d3-8822-3e78fae272ed");
|
|
pub const MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX = Guid.initString("48f8a522-305d-422d-8524-2502dda33680");
|
|
pub const MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE = Guid.initString("48f8a523-305d-422d-8524-2502dda33680");
|
|
pub const MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE = Guid.initString("48f8a524-305d-422d-8524-2502dda33680");
|
|
pub const MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE = Guid.initString("48f8a525-305d-422d-8524-2502dda33680");
|
|
pub const MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE = Guid.initString("48f8a526-305d-422d-8524-2502dda33680");
|
|
pub const MF_SD_ASF_STREAMBITRATES_BITRATE = Guid.initString("a8e182ed-afc8-43d0-b0d1-f65bad9da558");
|
|
pub const MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE = Guid.initString("245e929d-c44e-4f7e-bb3c-77d4dfd27f8a");
|
|
pub const MF_PD_ASF_INFO_HAS_AUDIO = Guid.initString("80e62295-2296-4a44-b31c-d103c6fed23c");
|
|
pub const MF_PD_ASF_INFO_HAS_VIDEO = Guid.initString("80e62296-2296-4a44-b31c-d103c6fed23c");
|
|
pub const MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO = Guid.initString("80e62297-2296-4a44-b31c-d103c6fed23c");
|
|
pub const MF_ASFPROFILE_MINPACKETSIZE = Guid.initString("22587626-47de-4168-87f5-b5aa9b12a8f0");
|
|
pub const MF_ASFPROFILE_MAXPACKETSIZE = Guid.initString("22587627-47de-4168-87f5-b5aa9b12a8f0");
|
|
pub const MF_ASFSTREAMCONFIG_LEAKYBUCKET1 = Guid.initString("c69b5901-ea1a-4c9b-b692-e2a0d29a8add");
|
|
pub const MF_ASFSTREAMCONFIG_LEAKYBUCKET2 = Guid.initString("c69b5902-ea1a-4c9b-b692-e2a0d29a8add");
|
|
pub const MFASFSampleExtension_SampleDuration = Guid.initString("c6bd9450-867f-4907-83a3-c77921b733ad");
|
|
pub const MFASFSampleExtension_OutputCleanPoint = Guid.initString("f72a3c6f-6eb4-4ebc-b192-09ad9759e828");
|
|
pub const MFASFSampleExtension_SMPTE = Guid.initString("399595ec-8667-4e2d-8fdb-98814ce76c1e");
|
|
pub const MFASFSampleExtension_FileName = Guid.initString("e165ec0e-19ed-45d7-b4a7-25cbd1e28e9b");
|
|
pub const MFASFSampleExtension_ContentType = Guid.initString("d590dc20-07bc-436c-9cf7-f3bbfbf1a4dc");
|
|
pub const MFASFSampleExtension_PixelAspectRatio = Guid.initString("1b1ee554-f9ea-4bc8-821a-376b74e4c4b8");
|
|
pub const MFASFSampleExtension_Encryption_SampleID = Guid.initString("6698b84e-0afa-4330-aeb2-1c0a98d7a44d");
|
|
pub const MFASFSampleExtension_Encryption_KeyID = Guid.initString("76376591-795f-4da1-86ed-9d46eca109a9");
|
|
pub const MFASFMutexType_Language = Guid.initString("72178c2b-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFASFMutexType_Bitrate = Guid.initString("72178c2c-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFASFMutexType_Presentation = Guid.initString("72178c2d-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFASFMutexType_Unknown = Guid.initString("72178c2e-e45b-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const MFASFSPLITTER_PACKET_BOUNDARY = Guid.initString("fe584a05-e8d6-42e3-b176-f1211705fb6f");
|
|
pub const MFASFINDEXER_TYPE_TIMECODE = Guid.initString("49815231-6bad-44fd-810a-3f60984ec7fd");
|
|
pub const MF_CAPTURE_ENGINE_INITIALIZED = Guid.initString("219992bc-cf92-4531-a1ae-96e1e886c8f1");
|
|
pub const MF_CAPTURE_ENGINE_PREVIEW_STARTED = Guid.initString("a416df21-f9d3-4a74-991b-b817298952c4");
|
|
pub const MF_CAPTURE_ENGINE_PREVIEW_STOPPED = Guid.initString("13d5143c-1edd-4e50-a2ef-350a47678060");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_STARTED = Guid.initString("ac2b027b-ddf9-48a0-89be-38ab35ef45c0");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_STOPPED = Guid.initString("55e5200a-f98f-4c0d-a9ec-9eb25ed3d773");
|
|
pub const MF_CAPTURE_ENGINE_PHOTO_TAKEN = Guid.initString("3c50c445-7304-48eb-865d-bba19ba3af5c");
|
|
pub const MF_CAPTURE_SOURCE_CURRENT_DEVICE_MEDIA_TYPE_SET = Guid.initString("e7e75e4c-039c-4410-815b-8741307b63aa");
|
|
pub const MF_CAPTURE_ENGINE_ERROR = Guid.initString("46b89fc6-33cc-4399-9dad-784de77d587c");
|
|
pub const MF_CAPTURE_ENGINE_EFFECT_ADDED = Guid.initString("aa8dc7b5-a048-4e13-8ebe-f23c46c830c1");
|
|
pub const MF_CAPTURE_ENGINE_EFFECT_REMOVED = Guid.initString("c6e8db07-fb09-4a48-89c6-bf92a04222c9");
|
|
pub const MF_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED = Guid.initString("fded7521-8ed8-431a-a96b-f3e2565e981c");
|
|
pub const MF_CAPTURE_SINK_PREPARED = Guid.initString("7bfce257-12b1-4409-8c34-d445daab7578");
|
|
pub const MF_CAPTURE_ENGINE_OUTPUT_MEDIA_TYPE_SET = Guid.initString("caaad994-83ec-45e9-a30a-1f20aadb9831");
|
|
pub const MF_CAPTURE_ENGINE_CAMERA_STREAM_BLOCKED = Guid.initString("a4209417-8d39-46f3-b759-5912528f4207");
|
|
pub const MF_CAPTURE_ENGINE_CAMERA_STREAM_UNBLOCKED = Guid.initString("9be9eef0-cdaf-4717-8564-834aae66415c");
|
|
pub const MF_CAPTURE_ENGINE_D3D_MANAGER = Guid.initString("76e25e7b-d595-4283-962c-c594afd78ddf");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_UNPROCESSED_SAMPLES = Guid.initString("b467f705-7913-4894-9d42-a215fea23da9");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_UNPROCESSED_SAMPLES = Guid.initString("1cddb141-a7f4-4d58-9896-4d15a53c4efe");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_PROCESSED_SAMPLES = Guid.initString("e7b4a49e-382c-4aef-a946-aed5490b7111");
|
|
pub const MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_PROCESSED_SAMPLES = Guid.initString("9896e12a-f707-4500-b6bd-db8eb810b50f");
|
|
pub const MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY = Guid.initString("1c8077da-8466-4dc4-8b8e-276b3f85923b");
|
|
pub const MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY = Guid.initString("7e025171-cf32-4f2e-8f19-410577b73a66");
|
|
pub const MF_CAPTURE_ENGINE_DISABLE_HARDWARE_TRANSFORMS = Guid.initString("b7c42a6b-3207-4495-b4e7-81f9c35d5991");
|
|
pub const MF_CAPTURE_ENGINE_DISABLE_DXVA = Guid.initString("f9818862-179d-433f-a32f-74cbcf74466d");
|
|
pub const MF_CAPTURE_ENGINE_MEDIASOURCE_CONFIG = Guid.initString("bc6989d2-0fc1-46e1-a74f-efd36bc788de");
|
|
pub const MF_CAPTURE_ENGINE_DECODER_MFT_FIELDOFUSE_UNLOCK_Attribute = Guid.initString("2b8ad2e8-7acb-4321-a606-325c4249f4fc");
|
|
pub const MF_CAPTURE_ENGINE_ENCODER_MFT_FIELDOFUSE_UNLOCK_Attribute = Guid.initString("54c63a00-78d5-422f-aa3e-5e99ac649269");
|
|
pub const MF_CAPTURE_ENGINE_ENABLE_CAMERA_STREAMSTATE_NOTIFICATION = Guid.initString("4c808e9d-aaed-4713-90fb-cb24064ab8da");
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY = Guid.initString("8e3f5bd5-dbbf-42f0-8542-d07a3971762a");
|
|
pub const MF_CAPTURE_ENGINE_AUDIO_PROCESSING = Guid.initString("10f1be5e-7e11-410b-973d-f4b6109000fe");
|
|
pub const MF_CAPTURE_ENGINE_EVENT_GENERATOR_GUID = Guid.initString("abfa8ad5-fc6d-4911-87e0-961945f8f7ce");
|
|
pub const MF_CAPTURE_ENGINE_EVENT_STREAM_INDEX = Guid.initString("82697f44-b1cf-42eb-9753-f86d649c8865");
|
|
pub const MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE = Guid.initString("03160b7e-1c6f-4db2-ad56-a7c430f82392");
|
|
pub const MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE_INDEX = Guid.initString("3ce88613-2214-46c3-b417-82f8a313c9c3");
|
|
pub const CLSID_MFCaptureEngine = Guid.initString("efce38d3-8914-4674-a7df-ae1b3d654b8a");
|
|
pub const CLSID_MFCaptureEngineClassFactory = Guid.initString("efce38d3-8914-4674-a7df-ae1b3d654b8a");
|
|
pub const MFSampleExtension_DeviceReferenceSystemTime = Guid.initString("6523775a-ba2d-405f-b2c5-01ff88e2e8f6");
|
|
pub const MF_D3D12_SYNCHRONIZATION_OBJECT = Guid.initString("2a7c8d6a-85a6-494d-a046-06ea1a138f4b");
|
|
pub const MF_MT_D3D_RESOURCE_VERSION = Guid.initString("174f1e85-fe26-453d-b52e-5bdd4e55b944");
|
|
pub const MF_MT_D3D12_CPU_READBACK = Guid.initString("28ee9fe3-d481-46a6-b98a-7f69d5280e82");
|
|
pub const MF_MT_D3D12_TEXTURE_LAYOUT = Guid.initString("97c85caa-0beb-4ee1-9715-f22fad8c10f5");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = Guid.initString("eeac2585-3430-498c-84a2-77b1bba570f6");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = Guid.initString("b1138dc3-01d5-4c14-9bdc-cdc9336f55b9");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = Guid.initString("82c85647-5057-4960-9559-f45b8e271427");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = Guid.initString("ba06bfac-ffe3-474a-ab55-161ee4417a2e");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = Guid.initString("a6a1e439-2f96-4ab5-98dc-adf74973505d");
|
|
pub const MF_MT_D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = Guid.initString("0a4940b2-cfd6-4738-9d02-98113734015a");
|
|
pub const MF_SA_D3D12_HEAP_FLAGS = Guid.initString("496b3266-d28f-4f8c-93a7-4a596b1a31a1");
|
|
pub const MF_SA_D3D12_HEAP_TYPE = Guid.initString("56f26a76-bbc1-4ce0-bb11-e22368d874ed");
|
|
pub const MF_SA_D3D12_CLEAR_VALUE = Guid.initString("86ba9a39-0526-495d-9ab5-54ec9fad6fc3");
|
|
pub const MF_MSE_CALLBACK = Guid.initString("9063a7c0-42c5-4ffd-a8a8-6fcf9ea3d00c");
|
|
pub const MF_MSE_ACTIVELIST_CALLBACK = Guid.initString("949bda0f-4549-46d5-ad7f-b846e1ab1652");
|
|
pub const MF_MSE_BUFFERLIST_CALLBACK = Guid.initString("42e669b0-d60e-4afb-a85b-d8e5fe6bdab5");
|
|
pub const MF_MSE_VP9_SUPPORT = Guid.initString("92d78429-d88b-4ff0-8322-803efa6e9626");
|
|
pub const MF_MSE_OPUS_SUPPORT = Guid.initString("4d224cc1-8cc4-48a3-a7a7-e4c16ce6388a");
|
|
pub const MF_MEDIA_ENGINE_NEEDKEY_CALLBACK = Guid.initString("7ea80843-b6e4-432c-8ea4-7848ffe4220e");
|
|
pub const MF_MEDIA_ENGINE_CALLBACK = Guid.initString("c60381b8-83a4-41f8-a3d0-de05076849a9");
|
|
pub const MF_MEDIA_ENGINE_DXGI_MANAGER = Guid.initString("065702da-1094-486d-8617-ee7cc4ee4648");
|
|
pub const MF_MEDIA_ENGINE_EXTENSION = Guid.initString("3109fd46-060d-4b62-8dcf-faff811318d2");
|
|
pub const MF_MEDIA_ENGINE_PLAYBACK_HWND = Guid.initString("d988879b-67c9-4d92-baa7-6eadd446039d");
|
|
pub const MF_MEDIA_ENGINE_OPM_HWND = Guid.initString("a0be8ee7-0572-4f2c-a801-2a151bd3e726");
|
|
pub const MF_MEDIA_ENGINE_PLAYBACK_VISUAL = Guid.initString("6debd26f-6ab9-4d7e-b0ee-c61a73ffad15");
|
|
pub const MF_MEDIA_ENGINE_COREWINDOW = Guid.initString("fccae4dc-0b7f-41c2-9f96-4659948acddc");
|
|
pub const MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT = Guid.initString("5066893c-8cf9-42bc-8b8a-472212e52726");
|
|
pub const MF_MEDIA_ENGINE_CONTENT_PROTECTION_FLAGS = Guid.initString("e0350223-5aaf-4d76-a7c3-06de70894db4");
|
|
pub const MF_MEDIA_ENGINE_CONTENT_PROTECTION_MANAGER = Guid.initString("fdd6dfaa-bd85-4af3-9e0f-a01d539d876a");
|
|
pub const MF_MEDIA_ENGINE_AUDIO_ENDPOINT_ROLE = Guid.initString("d2cb93d1-116a-44f2-9385-f7d0fda2fb46");
|
|
pub const MF_MEDIA_ENGINE_AUDIO_CATEGORY = Guid.initString("c8d4c51d-350e-41f2-ba46-faebbb0857f6");
|
|
pub const MF_MEDIA_ENGINE_STREAM_CONTAINS_ALPHA_CHANNEL = Guid.initString("5cbfaf44-d2b2-4cfb-80a7-d429c74c789d");
|
|
pub const MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE = Guid.initString("4e0212e2-e18f-41e1-95e5-c0e7e9235bc3");
|
|
pub const MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE9 = Guid.initString("052c2d39-40c0-4188-ab86-f828273b7522");
|
|
pub const MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE10 = Guid.initString("11a47afd-6589-4124-b312-6158ec517fc3");
|
|
pub const MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE11 = Guid.initString("1cf1315f-ce3f-4035-9391-16142f775189");
|
|
pub const MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE_EDGE = Guid.initString("a6f3e465-3aca-442c-a3f0-ad6ddad839ae");
|
|
pub const MF_MEDIA_ENGINE_COMPATIBILITY_MODE = Guid.initString("3ef26ad4-dc54-45de-b9af-76c8c66bfa8e");
|
|
pub const MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WWA_EDGE = Guid.initString("15b29098-9f01-4e4d-b65a-c06c6c89da2a");
|
|
pub const MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WIN10 = Guid.initString("5b25e089-6ca7-4139-a2cb-fcaab39552a3");
|
|
pub const MF_MEDIA_ENGINE_SOURCE_RESOLVER_CONFIG_STORE = Guid.initString("0ac0c497-b3c4-48c9-9cde-bb8ca2442ca3");
|
|
pub const MF_MEDIA_ENGINE_TRACK_ID = Guid.initString("65bea312-4043-4815-8eab-44dce2ef8f2a");
|
|
pub const MF_MEDIA_ENGINE_TELEMETRY_APPLICATION_ID = Guid.initString("1e7b273b-a7e4-402a-8f51-c48e88a2cabc");
|
|
pub const MF_MEDIA_ENGINE_SYNCHRONOUS_CLOSE = Guid.initString("c3c2e12f-7e0e-4e43-b91c-dc992ccdfa5e");
|
|
pub const MF_MEDIA_ENGINE_MEDIA_PLAYER_MODE = Guid.initString("3ddd8d45-5aa1-4112-82e5-36f6a2197e6e");
|
|
pub const CLSID_MFMediaEngineClassFactory = Guid.initString("b44392da-499b-446b-a4cb-005fead0e6d5");
|
|
pub const MF_MEDIA_ENGINE_TIMEDTEXT = Guid.initString("805ea411-92e0-4e59-9b6e-5c7d7915e64f");
|
|
pub const MF_MEDIA_ENGINE_CONTINUE_ON_CODEC_ERROR = Guid.initString("dbcdb7f9-48e4-4295-b70d-d518234eeb38");
|
|
pub const MF_MEDIA_ENGINE_EME_CALLBACK = Guid.initString("494553a7-a481-4cb7-bec5-380903513731");
|
|
pub const CLSID_MPEG2DLNASink = Guid.initString("fa5fe7c5-6a1d-4b11-b41f-f959d6c76500");
|
|
pub const MF_MP2DLNA_USE_MMCSS = Guid.initString("54f3e2ee-a2a2-497d-9834-973afde521eb");
|
|
pub const MF_MP2DLNA_VIDEO_BIT_RATE = Guid.initString("e88548de-73b4-42d7-9c75-adfa0a2a6e4c");
|
|
pub const MF_MP2DLNA_AUDIO_BIT_RATE = Guid.initString("2d1c070e-2b5f-4ab3-a7e6-8d943ba8d00a");
|
|
pub const MF_MP2DLNA_ENCODE_QUALITY = Guid.initString("b52379d7-1d46-4fb6-a317-a4a5f60959f8");
|
|
pub const MF_MP2DLNA_STATISTICS = Guid.initString("75e488a3-d5ad-4898-85e0-bcce24a722d7");
|
|
pub const CLSID_MFReadWriteClassFactory = Guid.initString("48e2ed0f-98c2-4a37-bed5-166312ddd83f");
|
|
pub const CLSID_MFSourceReader = Guid.initString("1777133c-0881-411b-a577-ad545f0714c4");
|
|
pub const MF_SOURCE_READER_ASYNC_CALLBACK = Guid.initString("1e3dbeac-bb43-4c35-b507-cd644464c965");
|
|
pub const MF_SOURCE_READER_D3D_MANAGER = Guid.initString("ec822da2-e1e9-4b29-a0d8-563c719f5269");
|
|
pub const MF_SOURCE_READER_DISABLE_DXVA = Guid.initString("aa456cfd-3943-4a1e-a77d-1838c0ea2e35");
|
|
pub const MF_SOURCE_READER_MEDIASOURCE_CONFIG = Guid.initString("9085abeb-0354-48f9-abb5-200df838c68e");
|
|
pub const MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS = Guid.initString("6d23f5c8-c5d7-4a9b-9971-5d11f8bca880");
|
|
pub const MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING = Guid.initString("fb394f3d-ccf1-42ee-bbb3-f9b845d5681d");
|
|
pub const MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING = Guid.initString("0f81da2c-b537-4672-a8b2-a681b17307a3");
|
|
pub const MF_SOURCE_READER_DISABLE_CAMERA_PLUGINS = Guid.initString("9d3365dd-058f-4cfb-9f97-b314cc99c8ad");
|
|
pub const MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN = Guid.initString("56b67165-219e-456d-a22e-2d3004c7fe56");
|
|
pub const MF_SOURCE_READER_ENABLE_TRANSCODE_ONLY_TRANSFORMS = Guid.initString("dfd4f008-b5fd-4e78-ae44-62a1e67bbe27");
|
|
pub const MF_SOURCE_READER_D3D11_BIND_FLAGS = Guid.initString("33f3197b-f73a-4e14-8d85-0e4c4368788d");
|
|
pub const CLSID_MFSinkWriter = Guid.initString("a3bbfb17-8273-4e52-9e0e-9739dc887990");
|
|
pub const MF_SINK_WRITER_ASYNC_CALLBACK = Guid.initString("48cb183e-7b0b-46f4-822e-5e1d2dda4354");
|
|
pub const MF_SINK_WRITER_DISABLE_THROTTLING = Guid.initString("08b845d8-2b74-4afe-9d53-be16d2d5ae4f");
|
|
pub const MF_SINK_WRITER_D3D_MANAGER = Guid.initString("ec822da2-e1e9-4b29-a0d8-563c719f5269");
|
|
pub const MF_SINK_WRITER_ENCODER_CONFIG = Guid.initString("ad91cd04-a7cc-4ac7-99b6-a57b9a4a7c70");
|
|
pub const MF_READWRITE_DISABLE_CONVERTERS = Guid.initString("98d5b065-1374-4847-8d5d-31520fee7156");
|
|
pub const MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS = Guid.initString("a634a91c-822b-41b9-a494-4de4643612b0");
|
|
pub const MF_READWRITE_MMCSS_CLASS = Guid.initString("39384300-d0eb-40b1-87a0-3318871b5a53");
|
|
pub const MF_READWRITE_MMCSS_PRIORITY = Guid.initString("43ad19ce-f33f-4ba9-a580-e4cd12f2d144");
|
|
pub const MF_READWRITE_MMCSS_CLASS_AUDIO = Guid.initString("430847da-0890-4b0e-938c-054332c547e1");
|
|
pub const MF_READWRITE_MMCSS_PRIORITY_AUDIO = Guid.initString("273db885-2de2-4db2-a6a7-fdb66fb40b61");
|
|
pub const MF_READWRITE_D3D_OPTIONAL = Guid.initString("216479d9-3071-42ca-bb6c-4c22102e1d18");
|
|
pub const MF_MEDIASINK_AUTOFINALIZE_SUPPORTED = Guid.initString("48c131be-135a-41cb-8290-03652509c999");
|
|
pub const MF_MEDIASINK_ENABLE_AUTOFINALIZE = Guid.initString("34014265-cb7e-4cde-ac7c-effd3b3c2530");
|
|
pub const MF_READWRITE_ENABLE_AUTOFINALIZE = Guid.initString("dd7ca129-8cd1-4dc5-9dde-ce168675de61");
|
|
pub const MFP_POSITIONTYPE_100NS = Guid.initString("00000000-0000-0000-0000-000000000000");
|
|
pub const MF_MEDIA_SHARING_ENGINE_DEVICE_NAME = Guid.initString("771e05d1-862f-4299-95ac-ae81fd14f3e7");
|
|
pub const MF_MEDIA_SHARING_ENGINE_DEVICE = Guid.initString("b461c58a-7a08-4b98-99a8-70fd5f3badfd");
|
|
pub const CLSID_MFMediaSharingEngineClassFactory = Guid.initString("f8e307fb-6d45-4ad3-9993-66cd5a529659");
|
|
pub const CLSID_MFImageSharingEngineClassFactory = Guid.initString("b22c3339-87f3-4059-a0c5-037aa9707eaf");
|
|
pub const CLSID_PlayToSourceClassFactory = Guid.initString("da17539a-3dc3-42c1-a749-a183b51f085e");
|
|
pub const GUID_PlayToService = Guid.initString("f6a8ff9d-9e14-41c9-bf0f-120a2b3ce120");
|
|
pub const GUID_NativeDeviceService = Guid.initString("ef71e53c-52f4-43c5-b86a-ad6cb216a61e");
|
|
pub const MF_CONTENTDECRYPTIONMODULE_SERVICE = Guid.initString("15320c45-ff80-484a-9dcb-0df894e69a01");
|
|
pub const MF_VIRTUALCAMERA_CONFIGURATION_APP_PACKAGE_FAMILY_NAME = Guid.initString("658abe51-8044-462e-97ea-e676fd72055f");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_SOURCE_INITIALIZE = Guid.initString("e52c4dff-e46d-4d0b-bc75-ddd4c8723f96");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_SOURCE_START = Guid.initString("b1eeb989-b456-4f4a-ae40-079c28e24af8");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_SOURCE_STOP = Guid.initString("b7fe7a61-fe91-415e-8608-d37dedb1a58b");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_SOURCE_UNINITIALIZE = Guid.initString("a0ebaba7-a422-4e33-8401-b37d2800aa67");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_PIPELINE_SHUTDOWN = Guid.initString("45a81b31-43f8-4e5d-8ce2-22dce026996d");
|
|
pub const MF_FRAMESERVER_VCAMEVENT_EXTENDED_CUSTOM_EVENT = Guid.initString("6e59489c-47d3-4467-83ef-12d34e871665");
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (1492)
|
|
//--------------------------------------------------------------------------------
|
|
pub const MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS = enum(u32) {
|
|
NE = 0,
|
|
_WAIT = 1,
|
|
};
|
|
pub const MF_EVENT_FLAG_NONE = MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS.NE;
|
|
pub const MF_EVENT_FLAG_NO_WAIT = MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS._WAIT;
|
|
|
|
pub const MF_Plugin_Type = enum(i32) {
|
|
MFT = 0,
|
|
MediaSource = 1,
|
|
MFT_MatchOutputType = 2,
|
|
Other = -1,
|
|
};
|
|
pub const MF_Plugin_Type_MFT = MF_Plugin_Type.MFT;
|
|
pub const MF_Plugin_Type_MediaSource = MF_Plugin_Type.MediaSource;
|
|
pub const MF_Plugin_Type_MFT_MatchOutputType = MF_Plugin_Type.MFT_MatchOutputType;
|
|
pub const MF_Plugin_Type_Other = MF_Plugin_Type.Other;
|
|
|
|
pub const CodecAPIEventData = extern struct {
|
|
guid: Guid,
|
|
dataLength: u32,
|
|
reserved: [3]u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_ICodecAPI_Value = Guid.initString("901db4c7-31ce-41a2-85dc-8fa0bf41b8da");
|
|
pub const IID_ICodecAPI = &IID_ICodecAPI_Value;
|
|
pub const ICodecAPI = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsModifiable: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetParameterRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
ValueMin: ?*VARIANT,
|
|
ValueMax: ?*VARIANT,
|
|
SteppingDelta: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
ValueMin: ?*VARIANT,
|
|
ValueMax: ?*VARIANT,
|
|
SteppingDelta: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetParameterValues: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Values: [*]?*VARIANT,
|
|
ValuesCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Values: [*]?*VARIANT,
|
|
ValuesCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDefaultValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RegisterForEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
userData: isize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
userData: isize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnregisterForEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAllDefaults: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetValueWithNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
Api: ?*const Guid,
|
|
Value: ?*VARIANT,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAllDefaultsWithNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllSettings: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0000: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0000: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAllSettings: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0001: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0001: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAllSettingsWithNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0002: ?*IStream,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ICodecAPI,
|
|
__MIDL__ICodecAPI0002: ?*IStream,
|
|
ChangedParam: [*]?*Guid,
|
|
ChangedParamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_IsSupported(self: *const T, Api: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).IsSupported(@as(*const ICodecAPI, @ptrCast(self)), Api);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_IsModifiable(self: *const T, Api: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).IsModifiable(@as(*const ICodecAPI, @ptrCast(self)), Api);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_GetParameterRange(self: *const T, Api: ?*const Guid, ValueMin: ?*VARIANT, ValueMax: ?*VARIANT, SteppingDelta: ?*VARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).GetParameterRange(@as(*const ICodecAPI, @ptrCast(self)), Api, ValueMin, ValueMax, SteppingDelta);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_GetParameterValues(self: *const T, Api: ?*const Guid, Values: [*]?*VARIANT, ValuesCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).GetParameterValues(@as(*const ICodecAPI, @ptrCast(self)), Api, Values, ValuesCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_GetDefaultValue(self: *const T, Api: ?*const Guid, Value: ?*VARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).GetDefaultValue(@as(*const ICodecAPI, @ptrCast(self)), Api, Value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_GetValue(self: *const T, Api: ?*const Guid, Value: ?*VARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).GetValue(@as(*const ICodecAPI, @ptrCast(self)), Api, Value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetValue(self: *const T, Api: ?*const Guid, Value: ?*VARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetValue(@as(*const ICodecAPI, @ptrCast(self)), Api, Value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_RegisterForEvent(self: *const T, Api: ?*const Guid, userData: isize) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).RegisterForEvent(@as(*const ICodecAPI, @ptrCast(self)), Api, userData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_UnregisterForEvent(self: *const T, Api: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).UnregisterForEvent(@as(*const ICodecAPI, @ptrCast(self)), Api);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetAllDefaults(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetAllDefaults(@as(*const ICodecAPI, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetValueWithNotify(self: *const T, Api: ?*const Guid, Value: ?*VARIANT, ChangedParam: [*]?*Guid, ChangedParamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetValueWithNotify(@as(*const ICodecAPI, @ptrCast(self)), Api, Value, ChangedParam, ChangedParamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetAllDefaultsWithNotify(self: *const T, ChangedParam: [*]?*Guid, ChangedParamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetAllDefaultsWithNotify(@as(*const ICodecAPI, @ptrCast(self)), ChangedParam, ChangedParamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_GetAllSettings(self: *const T, __MIDL__ICodecAPI0000: ?*IStream) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).GetAllSettings(@as(*const ICodecAPI, @ptrCast(self)), __MIDL__ICodecAPI0000);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetAllSettings(self: *const T, __MIDL__ICodecAPI0001: ?*IStream) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetAllSettings(@as(*const ICodecAPI, @ptrCast(self)), __MIDL__ICodecAPI0001);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ICodecAPI_SetAllSettingsWithNotify(self: *const T, __MIDL__ICodecAPI0002: ?*IStream, ChangedParam: [*]?*Guid, ChangedParamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ICodecAPI.VTable, @ptrCast(self.vtable)).SetAllSettingsWithNotify(@as(*const ICodecAPI, @ptrCast(self)), __MIDL__ICodecAPI0002, ChangedParam, ChangedParamCount);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3DOVERLAYCAPS = extern struct {
|
|
Caps: u32,
|
|
MaxOverlayDisplayWidth: u32,
|
|
MaxOverlayDisplayHeight: u32,
|
|
};
|
|
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDirect3D9ExOverlayExtension_Value = Guid.initString("187aeb13-aaf5-4c59-876d-e059088c0df8");
|
|
pub const IID_IDirect3D9ExOverlayExtension = &IID_IDirect3D9ExOverlayExtension_Value;
|
|
pub const IDirect3D9ExOverlayExtension = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CheckDeviceOverlayType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3D9ExOverlayExtension,
|
|
Adapter: u32,
|
|
DevType: D3DDEVTYPE,
|
|
OverlayWidth: u32,
|
|
OverlayHeight: u32,
|
|
OverlayFormat: D3DFORMAT,
|
|
pDisplayMode: ?*D3DDISPLAYMODEEX,
|
|
DisplayRotation: D3DDISPLAYROTATION,
|
|
pOverlayCaps: ?*D3DOVERLAYCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3D9ExOverlayExtension,
|
|
Adapter: u32,
|
|
DevType: D3DDEVTYPE,
|
|
OverlayWidth: u32,
|
|
OverlayHeight: u32,
|
|
OverlayFormat: D3DFORMAT,
|
|
pDisplayMode: ?*D3DDISPLAYMODEEX,
|
|
DisplayRotation: D3DDISPLAYROTATION,
|
|
pOverlayCaps: ?*D3DOVERLAYCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3D9ExOverlayExtension_CheckDeviceOverlayType(self: *const T, Adapter: u32, DevType: D3DDEVTYPE, OverlayWidth: u32, OverlayHeight: u32, OverlayFormat: D3DFORMAT, pDisplayMode: ?*D3DDISPLAYMODEEX, DisplayRotation: D3DDISPLAYROTATION, pOverlayCaps: ?*D3DOVERLAYCAPS) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3D9ExOverlayExtension.VTable, @ptrCast(self.vtable)).CheckDeviceOverlayType(@as(*const IDirect3D9ExOverlayExtension, @ptrCast(self)), Adapter, DevType, OverlayWidth, OverlayHeight, OverlayFormat, pDisplayMode, DisplayRotation, pOverlayCaps);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDirect3DDevice9Video_Value = Guid.initString("26dc4561-a1ee-4ae7-96da-118a36c0ec95");
|
|
pub const IID_IDirect3DDevice9Video = &IID_IDirect3DDevice9Video_Value;
|
|
pub const IDirect3DDevice9Video = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetContentProtectionCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
pCryptoType: ?*const Guid,
|
|
pDecodeProfile: ?*const Guid,
|
|
pCaps: ?*D3DCONTENTPROTECTIONCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
pCryptoType: ?*const Guid,
|
|
pDecodeProfile: ?*const Guid,
|
|
pCaps: ?*D3DCONTENTPROTECTIONCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateAuthenticatedChannel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
|
|
ppAuthenticatedChannel: ?*?*IDirect3DAuthenticatedChannel9,
|
|
pChannelHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
|
|
ppAuthenticatedChannel: ?*?*IDirect3DAuthenticatedChannel9,
|
|
pChannelHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateCryptoSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
pCryptoType: ?*const Guid,
|
|
pDecodeProfile: ?*const Guid,
|
|
ppCryptoSession: ?*?*IDirect3DCryptoSession9,
|
|
pCryptoHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDevice9Video,
|
|
pCryptoType: ?*const Guid,
|
|
pDecodeProfile: ?*const Guid,
|
|
ppCryptoSession: ?*?*IDirect3DCryptoSession9,
|
|
pCryptoHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDevice9Video_GetContentProtectionCaps(self: *const T, pCryptoType: ?*const Guid, pDecodeProfile: ?*const Guid, pCaps: ?*D3DCONTENTPROTECTIONCAPS) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDevice9Video.VTable, @ptrCast(self.vtable)).GetContentProtectionCaps(@as(*const IDirect3DDevice9Video, @ptrCast(self)), pCryptoType, pDecodeProfile, pCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDevice9Video_CreateAuthenticatedChannel(self: *const T, ChannelType: D3DAUTHENTICATEDCHANNELTYPE, ppAuthenticatedChannel: ?*?*IDirect3DAuthenticatedChannel9, pChannelHandle: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDevice9Video.VTable, @ptrCast(self.vtable)).CreateAuthenticatedChannel(@as(*const IDirect3DDevice9Video, @ptrCast(self)), ChannelType, ppAuthenticatedChannel, pChannelHandle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDevice9Video_CreateCryptoSession(self: *const T, pCryptoType: ?*const Guid, pDecodeProfile: ?*const Guid, ppCryptoSession: ?*?*IDirect3DCryptoSession9, pCryptoHandle: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDevice9Video.VTable, @ptrCast(self.vtable)).CreateCryptoSession(@as(*const IDirect3DDevice9Video, @ptrCast(self)), pCryptoType, pDecodeProfile, ppCryptoSession, pCryptoHandle);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDirect3DAuthenticatedChannel9_Value = Guid.initString("ff24beee-da21-4beb-98b5-d2f899f98af9");
|
|
pub const IID_IDirect3DAuthenticatedChannel9 = &IID_IDirect3DAuthenticatedChannel9_Value;
|
|
pub const IDirect3DAuthenticatedChannel9 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCertificateSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
pCertificateSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
pCertificateSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
CertifacteSize: u32,
|
|
ppCertificate: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
CertifacteSize: u32,
|
|
ppCertificate: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NegotiateKeyExchange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Query: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
InputSize: u32,
|
|
pInput: ?*const anyopaque,
|
|
OutputSize: u32,
|
|
pOutput: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
InputSize: u32,
|
|
pInput: ?*const anyopaque,
|
|
OutputSize: u32,
|
|
pOutput: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Configure: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
InputSize: u32,
|
|
pInput: ?*const anyopaque,
|
|
pOutput: ?*D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DAuthenticatedChannel9,
|
|
InputSize: u32,
|
|
pInput: ?*const anyopaque,
|
|
pOutput: ?*D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DAuthenticatedChannel9_GetCertificateSize(self: *const T, pCertificateSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DAuthenticatedChannel9.VTable, @ptrCast(self.vtable)).GetCertificateSize(@as(*const IDirect3DAuthenticatedChannel9, @ptrCast(self)), pCertificateSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DAuthenticatedChannel9_GetCertificate(self: *const T, CertifacteSize: u32, ppCertificate: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DAuthenticatedChannel9.VTable, @ptrCast(self.vtable)).GetCertificate(@as(*const IDirect3DAuthenticatedChannel9, @ptrCast(self)), CertifacteSize, ppCertificate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DAuthenticatedChannel9_NegotiateKeyExchange(self: *const T, DataSize: u32, pData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DAuthenticatedChannel9.VTable, @ptrCast(self.vtable)).NegotiateKeyExchange(@as(*const IDirect3DAuthenticatedChannel9, @ptrCast(self)), DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DAuthenticatedChannel9_Query(self: *const T, InputSize: u32, pInput: ?*const anyopaque, OutputSize: u32, pOutput: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DAuthenticatedChannel9.VTable, @ptrCast(self.vtable)).Query(@as(*const IDirect3DAuthenticatedChannel9, @ptrCast(self)), InputSize, pInput, OutputSize, pOutput);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DAuthenticatedChannel9_Configure(self: *const T, InputSize: u32, pInput: ?*const anyopaque, pOutput: ?*D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DAuthenticatedChannel9.VTable, @ptrCast(self.vtable)).Configure(@as(*const IDirect3DAuthenticatedChannel9, @ptrCast(self)), InputSize, pInput, pOutput);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDirect3DCryptoSession9_Value = Guid.initString("fa0ab799-7a9c-48ca-8c5b-237e71a54434");
|
|
pub const IID_IDirect3DCryptoSession9 = &IID_IDirect3DCryptoSession9_Value;
|
|
pub const IDirect3DCryptoSession9 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCertificateSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pCertificateSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pCertificateSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
CertifacteSize: u32,
|
|
ppCertificate: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
CertifacteSize: u32,
|
|
ppCertificate: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NegotiateKeyExchange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EncryptionBlt: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pDstSurface: ?*IDirect3DSurface9,
|
|
DstSurfaceSize: u32,
|
|
pIV: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pDstSurface: ?*IDirect3DSurface9,
|
|
DstSurfaceSize: u32,
|
|
pIV: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DecryptionBlt: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pDstSurface: ?*IDirect3DSurface9,
|
|
SrcSurfaceSize: u32,
|
|
pEncryptedBlockInfo: ?*D3DENCRYPTED_BLOCK_INFO,
|
|
pContentKey: ?*anyopaque,
|
|
pIV: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pDstSurface: ?*IDirect3DSurface9,
|
|
SrcSurfaceSize: u32,
|
|
pEncryptedBlockInfo: ?*D3DENCRYPTED_BLOCK_INFO,
|
|
pContentKey: ?*anyopaque,
|
|
pIV: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSurfacePitch: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pSurfacePitch: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pSrcSurface: ?*IDirect3DSurface9,
|
|
pSurfacePitch: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StartSessionKeyRefresh: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pRandomNumber: ?*anyopaque,
|
|
RandomNumberSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pRandomNumber: ?*anyopaque,
|
|
RandomNumberSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FinishSessionKeyRefresh: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEncryptionBltKey: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pReadbackKey: ?*anyopaque,
|
|
KeySize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DCryptoSession9,
|
|
pReadbackKey: ?*anyopaque,
|
|
KeySize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_GetCertificateSize(self: *const T, pCertificateSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).GetCertificateSize(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pCertificateSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_GetCertificate(self: *const T, CertifacteSize: u32, ppCertificate: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).GetCertificate(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), CertifacteSize, ppCertificate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_NegotiateKeyExchange(self: *const T, DataSize: u32, pData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).NegotiateKeyExchange(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_EncryptionBlt(self: *const T, pSrcSurface: ?*IDirect3DSurface9, pDstSurface: ?*IDirect3DSurface9, DstSurfaceSize: u32, pIV: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).EncryptionBlt(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pSrcSurface, pDstSurface, DstSurfaceSize, pIV);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_DecryptionBlt(self: *const T, pSrcSurface: ?*IDirect3DSurface9, pDstSurface: ?*IDirect3DSurface9, SrcSurfaceSize: u32, pEncryptedBlockInfo: ?*D3DENCRYPTED_BLOCK_INFO, pContentKey: ?*anyopaque, pIV: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).DecryptionBlt(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pSrcSurface, pDstSurface, SrcSurfaceSize, pEncryptedBlockInfo, pContentKey, pIV);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_GetSurfacePitch(self: *const T, pSrcSurface: ?*IDirect3DSurface9, pSurfacePitch: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).GetSurfacePitch(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pSrcSurface, pSurfacePitch);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_StartSessionKeyRefresh(self: *const T, pRandomNumber: ?*anyopaque, RandomNumberSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).StartSessionKeyRefresh(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pRandomNumber, RandomNumberSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_FinishSessionKeyRefresh(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).FinishSessionKeyRefresh(@as(*const IDirect3DCryptoSession9, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DCryptoSession9_GetEncryptionBltKey(self: *const T, pReadbackKey: ?*anyopaque, KeySize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DCryptoSession9.VTable, @ptrCast(self.vtable)).GetEncryptionBltKey(@as(*const IDirect3DCryptoSession9, @ptrCast(self)), pReadbackKey, KeySize);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_FIELD_TYPE = enum(i32) {
|
|
NONE = 0,
|
|
INTERLACED_TOP_FIELD_FIRST = 1,
|
|
INTERLACED_BOTTOM_FIELD_FIRST = 2,
|
|
};
|
|
pub const D3D12_VIDEO_FIELD_TYPE_NONE = D3D12_VIDEO_FIELD_TYPE.NONE;
|
|
pub const D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = D3D12_VIDEO_FIELD_TYPE.INTERLACED_TOP_FIELD_FIRST;
|
|
pub const D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = D3D12_VIDEO_FIELD_TYPE.INTERLACED_BOTTOM_FIELD_FIRST;
|
|
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT = enum(i32) {
|
|
NONE = 0,
|
|
MONO = 1,
|
|
HORIZONTAL = 2,
|
|
VERTICAL = 3,
|
|
SEPARATE = 4,
|
|
};
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = D3D12_VIDEO_FRAME_STEREO_FORMAT.NONE;
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = D3D12_VIDEO_FRAME_STEREO_FORMAT.MONO;
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = D3D12_VIDEO_FRAME_STEREO_FORMAT.HORIZONTAL;
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = D3D12_VIDEO_FRAME_STEREO_FORMAT.VERTICAL;
|
|
pub const D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = D3D12_VIDEO_FRAME_STEREO_FORMAT.SEPARATE;
|
|
|
|
pub const D3D12_VIDEO_FORMAT = extern struct {
|
|
Format: DXGI_FORMAT,
|
|
ColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_SAMPLE = extern struct {
|
|
Width: u32,
|
|
Height: u32,
|
|
Format: D3D12_VIDEO_FORMAT,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE = enum(i32) {
|
|
NONE = 0,
|
|
FIELD_BASED = 1,
|
|
};
|
|
pub const D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE.NONE;
|
|
pub const D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE.FIELD_BASED;
|
|
|
|
pub const D3D12_FEATURE_VIDEO = enum(i32) {
|
|
DECODE_SUPPORT = 0,
|
|
DECODE_PROFILES = 1,
|
|
DECODE_FORMATS = 2,
|
|
DECODE_CONVERSION_SUPPORT = 3,
|
|
PROCESS_SUPPORT = 5,
|
|
PROCESS_MAX_INPUT_STREAMS = 6,
|
|
PROCESS_REFERENCE_INFO = 7,
|
|
DECODER_HEAP_SIZE = 8,
|
|
PROCESSOR_SIZE = 9,
|
|
DECODE_PROFILE_COUNT = 10,
|
|
DECODE_FORMAT_COUNT = 11,
|
|
ARCHITECTURE = 17,
|
|
DECODE_HISTOGRAM = 18,
|
|
FEATURE_AREA_SUPPORT = 19,
|
|
MOTION_ESTIMATOR = 20,
|
|
MOTION_ESTIMATOR_SIZE = 21,
|
|
EXTENSION_COMMAND_COUNT = 22,
|
|
EXTENSION_COMMANDS = 23,
|
|
EXTENSION_COMMAND_PARAMETER_COUNT = 24,
|
|
EXTENSION_COMMAND_PARAMETERS = 25,
|
|
EXTENSION_COMMAND_SUPPORT = 26,
|
|
EXTENSION_COMMAND_SIZE = 27,
|
|
DECODE_PROTECTED_RESOURCES = 28,
|
|
PROCESS_PROTECTED_RESOURCES = 29,
|
|
MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,
|
|
DECODER_HEAP_SIZE1 = 31,
|
|
PROCESSOR_SIZE1 = 32,
|
|
};
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_SUPPORT = D3D12_FEATURE_VIDEO.DECODE_SUPPORT;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_PROFILES = D3D12_FEATURE_VIDEO.DECODE_PROFILES;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_FORMATS = D3D12_FEATURE_VIDEO.DECODE_FORMATS;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = D3D12_FEATURE_VIDEO.DECODE_CONVERSION_SUPPORT;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = D3D12_FEATURE_VIDEO.PROCESS_SUPPORT;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = D3D12_FEATURE_VIDEO.PROCESS_MAX_INPUT_STREAMS;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = D3D12_FEATURE_VIDEO.PROCESS_REFERENCE_INFO;
|
|
pub const D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = D3D12_FEATURE_VIDEO.DECODER_HEAP_SIZE;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = D3D12_FEATURE_VIDEO.PROCESSOR_SIZE;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = D3D12_FEATURE_VIDEO.DECODE_PROFILE_COUNT;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = D3D12_FEATURE_VIDEO.DECODE_FORMAT_COUNT;
|
|
pub const D3D12_FEATURE_VIDEO_ARCHITECTURE = D3D12_FEATURE_VIDEO.ARCHITECTURE;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = D3D12_FEATURE_VIDEO.DECODE_HISTOGRAM;
|
|
pub const D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = D3D12_FEATURE_VIDEO.FEATURE_AREA_SUPPORT;
|
|
pub const D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = D3D12_FEATURE_VIDEO.MOTION_ESTIMATOR;
|
|
pub const D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = D3D12_FEATURE_VIDEO.MOTION_ESTIMATOR_SIZE;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = D3D12_FEATURE_VIDEO.EXTENSION_COMMAND_COUNT;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = D3D12_FEATURE_VIDEO.EXTENSION_COMMANDS;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = D3D12_FEATURE_VIDEO.EXTENSION_COMMAND_PARAMETER_COUNT;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = D3D12_FEATURE_VIDEO.EXTENSION_COMMAND_PARAMETERS;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = D3D12_FEATURE_VIDEO.EXTENSION_COMMAND_SUPPORT;
|
|
pub const D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = D3D12_FEATURE_VIDEO.EXTENSION_COMMAND_SIZE;
|
|
pub const D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = D3D12_FEATURE_VIDEO.DECODE_PROTECTED_RESOURCES;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = D3D12_FEATURE_VIDEO.PROCESS_PROTECTED_RESOURCES;
|
|
pub const D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = D3D12_FEATURE_VIDEO.MOTION_ESTIMATOR_PROTECTED_RESOURCES;
|
|
pub const D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = D3D12_FEATURE_VIDEO.DECODER_HEAP_SIZE1;
|
|
pub const D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = D3D12_FEATURE_VIDEO.PROCESSOR_SIZE1;
|
|
|
|
pub const D3D12_BITSTREAM_ENCRYPTION_TYPE = enum(i32) {
|
|
E = 0,
|
|
};
|
|
pub const D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = D3D12_BITSTREAM_ENCRYPTION_TYPE.E;
|
|
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION = extern struct {
|
|
DecodeProfile: Guid,
|
|
BitstreamEncryption: D3D12_BITSTREAM_ENCRYPTION_TYPE,
|
|
InterlaceType: D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODER_DESC = extern struct {
|
|
NodeMask: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODER_HEAP_DESC = extern struct {
|
|
NodeMask: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
DecodeWidth: u32,
|
|
DecodeHeight: u32,
|
|
Format: DXGI_FORMAT,
|
|
FrameRate: DXGI_RATIONAL,
|
|
BitRate: u32,
|
|
MaxDecodePictureBufferCount: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_SIZE_RANGE = extern struct {
|
|
MaxWidth: u32,
|
|
MaxHeight: u32,
|
|
MinWidth: u32,
|
|
MinHeight: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_FILTER = enum(i32) {
|
|
BRIGHTNESS = 0,
|
|
CONTRAST = 1,
|
|
HUE = 2,
|
|
SATURATION = 3,
|
|
NOISE_REDUCTION = 4,
|
|
EDGE_ENHANCEMENT = 5,
|
|
ANAMORPHIC_SCALING = 6,
|
|
STEREO_ADJUSTMENT = 7,
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = D3D12_VIDEO_PROCESS_FILTER.BRIGHTNESS;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_CONTRAST = D3D12_VIDEO_PROCESS_FILTER.CONTRAST;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_HUE = D3D12_VIDEO_PROCESS_FILTER.HUE;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_SATURATION = D3D12_VIDEO_PROCESS_FILTER.SATURATION;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = D3D12_VIDEO_PROCESS_FILTER.NOISE_REDUCTION;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = D3D12_VIDEO_PROCESS_FILTER.EDGE_ENHANCEMENT;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = D3D12_VIDEO_PROCESS_FILTER.ANAMORPHIC_SCALING;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = D3D12_VIDEO_PROCESS_FILTER.STEREO_ADJUSTMENT;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
BRIGHTNESS = 1,
|
|
CONTRAST = 2,
|
|
HUE = 4,
|
|
SATURATION = 8,
|
|
NOISE_REDUCTION = 16,
|
|
EDGE_ENHANCEMENT = 32,
|
|
ANAMORPHIC_SCALING = 64,
|
|
STEREO_ADJUSTMENT = 128,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
BRIGHTNESS: u1 = 0,
|
|
CONTRAST: u1 = 0,
|
|
HUE: u1 = 0,
|
|
SATURATION: u1 = 0,
|
|
NOISE_REDUCTION: u1 = 0,
|
|
EDGE_ENHANCEMENT: u1 = 0,
|
|
ANAMORPHIC_SCALING: u1 = 0,
|
|
STEREO_ADJUSTMENT: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_FILTER_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_FILTER_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.NONE) else 0)
|
|
| (if (o.BRIGHTNESS == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.BRIGHTNESS) else 0)
|
|
| (if (o.CONTRAST == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.CONTRAST) else 0)
|
|
| (if (o.HUE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.HUE) else 0)
|
|
| (if (o.SATURATION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.SATURATION) else 0)
|
|
| (if (o.NOISE_REDUCTION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.NOISE_REDUCTION) else 0)
|
|
| (if (o.EDGE_ENHANCEMENT == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.EDGE_ENHANCEMENT) else 0)
|
|
| (if (o.ANAMORPHIC_SCALING == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.ANAMORPHIC_SCALING) else 0)
|
|
| (if (o.STEREO_ADJUSTMENT == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FILTER_FLAGS.STEREO_ADJUSTMENT) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = D3D12_VIDEO_PROCESS_FILTER_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = D3D12_VIDEO_PROCESS_FILTER_FLAGS.BRIGHTNESS;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = D3D12_VIDEO_PROCESS_FILTER_FLAGS.CONTRAST;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = D3D12_VIDEO_PROCESS_FILTER_FLAGS.HUE;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = D3D12_VIDEO_PROCESS_FILTER_FLAGS.SATURATION;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = D3D12_VIDEO_PROCESS_FILTER_FLAGS.NOISE_REDUCTION;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = D3D12_VIDEO_PROCESS_FILTER_FLAGS.EDGE_ENHANCEMENT;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = D3D12_VIDEO_PROCESS_FILTER_FLAGS.ANAMORPHIC_SCALING;
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = D3D12_VIDEO_PROCESS_FILTER_FLAGS.STEREO_ADJUSTMENT;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
BOB = 1,
|
|
CUSTOM = 2147483648,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
BOB: u1 = 0,
|
|
CUSTOM: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.NONE) else 0)
|
|
| (if (o.BOB == 1) @intFromEnum(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.BOB) else 0)
|
|
| (if (o.CUSTOM == 1) @intFromEnum(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.CUSTOM) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.BOB;
|
|
pub const D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS.CUSTOM;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_BLENDING = extern struct {
|
|
Enable: BOOL,
|
|
Alpha: f32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_LUMA_KEY = extern struct {
|
|
Enable: BOOL,
|
|
Lower: f32,
|
|
Upper: f32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC = extern struct {
|
|
Format: DXGI_FORMAT,
|
|
ColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
SourceAspectRatio: DXGI_RATIONAL,
|
|
DestinationAspectRatio: DXGI_RATIONAL,
|
|
FrameRate: DXGI_RATIONAL,
|
|
SourceSizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
DestinationSizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
EnableOrientation: BOOL,
|
|
FilterFlags: D3D12_VIDEO_PROCESS_FILTER_FLAGS,
|
|
StereoFormat: D3D12_VIDEO_FRAME_STEREO_FORMAT,
|
|
FieldType: D3D12_VIDEO_FIELD_TYPE,
|
|
DeinterlaceMode: D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS,
|
|
EnableAlphaBlending: BOOL,
|
|
LumaKey: D3D12_VIDEO_PROCESS_LUMA_KEY,
|
|
NumPastFrames: u32,
|
|
NumFutureFrames: u32,
|
|
EnableAutoProcessing: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE = enum(i32) {
|
|
OPAQUE = 0,
|
|
BACKGROUND = 1,
|
|
DESTINATION = 2,
|
|
SOURCE_STREAM = 3,
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE.OPAQUE;
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE.BACKGROUND;
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE.DESTINATION;
|
|
pub const D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE.SOURCE_STREAM;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC = extern struct {
|
|
Format: DXGI_FORMAT,
|
|
ColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
AlphaFillMode: D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE,
|
|
AlphaFillModeSourceStreamIndex: u32,
|
|
BackgroundColor: [4]f32,
|
|
FrameRate: DXGI_RATIONAL,
|
|
EnableStereo: BOOL,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecoderHeap_Value = Guid.initString("0946b7c9-ebf6-4047-bb73-8683e27dbb1f");
|
|
pub const IID_ID3D12VideoDecoderHeap = &IID_ID3D12VideoDecoderHeap_Value;
|
|
pub const ID3D12VideoDecoderHeap = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecoderHeap_GetDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_DECODER_HEAP_DESC {
|
|
return @as(*const ID3D12VideoDecoderHeap.VTable, @ptrCast(self.vtable)).GetDesc(@as(*const ID3D12VideoDecoderHeap, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDevice_Value = Guid.initString("1f052807-0b46-4acc-8a89-364f793718a4");
|
|
pub const IID_ID3D12VideoDevice = &IID_ID3D12VideoDevice_Value;
|
|
pub const ID3D12VideoDevice = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CheckFeatureSupport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice,
|
|
FeatureVideo: D3D12_FEATURE_VIDEO,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pFeatureSupportData: ?*anyopaque,
|
|
FeatureSupportDataSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice,
|
|
FeatureVideo: D3D12_FEATURE_VIDEO,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pFeatureSupportData: ?*anyopaque,
|
|
FeatureSupportDataSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoDecoder: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice,
|
|
pDesc: ?*const D3D12_VIDEO_DECODER_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice,
|
|
pDesc: ?*const D3D12_VIDEO_DECODER_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoDecoderHeap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice,
|
|
pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice,
|
|
pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoProcessor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice,
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice,
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice_CheckFeatureSupport(self: *const T, FeatureVideo: D3D12_FEATURE_VIDEO, pFeatureSupportData: ?*anyopaque, FeatureSupportDataSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice.VTable, @ptrCast(self.vtable)).CheckFeatureSupport(@as(*const ID3D12VideoDevice, @ptrCast(self)), FeatureVideo, pFeatureSupportData, FeatureSupportDataSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice_CreateVideoDecoder(self: *const T, pDesc: ?*const D3D12_VIDEO_DECODER_DESC, riid: ?*const Guid, ppVideoDecoder: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice.VTable, @ptrCast(self.vtable)).CreateVideoDecoder(@as(*const ID3D12VideoDevice, @ptrCast(self)), pDesc, riid, ppVideoDecoder);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice_CreateVideoDecoderHeap(self: *const T, pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC, riid: ?*const Guid, ppVideoDecoderHeap: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice.VTable, @ptrCast(self.vtable)).CreateVideoDecoderHeap(@as(*const ID3D12VideoDevice, @ptrCast(self)), pVideoDecoderHeapDesc, riid, ppVideoDecoderHeap);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice_CreateVideoProcessor(self: *const T, NodeMask: u32, pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC, NumInputStreamDescs: u32, pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC, riid: ?*const Guid, ppVideoProcessor: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice.VTable, @ptrCast(self.vtable)).CreateVideoProcessor(@as(*const ID3D12VideoDevice, @ptrCast(self)), NodeMask, pOutputStreamDesc, NumInputStreamDescs, pInputStreamDescs, riid, ppVideoProcessor);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecoder_Value = Guid.initString("c59b6bdc-7720-4074-a136-17a156037470");
|
|
pub const IID_ID3D12VideoDecoder = &IID_ID3D12VideoDecoder_Value;
|
|
pub const ID3D12VideoDecoder = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_DECODER_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_DECODER_DESC,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecoder_GetDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_DECODER_DESC {
|
|
return @as(*const ID3D12VideoDecoder.VTable, @ptrCast(self.vtable)).GetDesc(@as(*const ID3D12VideoDecoder, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_TIER = enum(i32) {
|
|
NOT_SUPPORTED = 0,
|
|
@"1" = 1,
|
|
@"2" = 2,
|
|
@"3" = 3,
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = D3D12_VIDEO_DECODE_TIER.NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_DECODE_TIER_1 = D3D12_VIDEO_DECODE_TIER.@"1";
|
|
pub const D3D12_VIDEO_DECODE_TIER_2 = D3D12_VIDEO_DECODE_TIER.@"2";
|
|
pub const D3D12_VIDEO_DECODE_TIER_3 = D3D12_VIDEO_DECODE_TIER.@"3";
|
|
|
|
pub const D3D12_VIDEO_DECODE_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
SUPPORTED = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
SUPPORTED: u1 = 0,
|
|
}) D3D12_VIDEO_DECODE_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_DECODE_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_DECODE_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_DECODE_SUPPORT_FLAGS.SUPPORTED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = D3D12_VIDEO_DECODE_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = D3D12_VIDEO_DECODE_SUPPORT_FLAGS.SUPPORTED;
|
|
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 1,
|
|
POST_PROCESSING_SUPPORTED = 2,
|
|
REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 4,
|
|
ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 8,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED: u1 = 0,
|
|
POST_PROCESSING_SUPPORTED: u1 = 0,
|
|
REFERENCE_ONLY_ALLOCATIONS_REQUIRED: u1 = 0,
|
|
ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME: u1 = 0,
|
|
}) D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS {
|
|
return @as(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.NONE) else 0)
|
|
| (if (o.HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED) else 0)
|
|
| (if (o.POST_PROCESSING_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.POST_PROCESSING_SUPPORTED) else 0)
|
|
| (if (o.REFERENCE_ONLY_ALLOCATIONS_REQUIRED == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.REFERENCE_ONLY_ALLOCATIONS_REQUIRED) else 0)
|
|
| (if (o.ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED;
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.POST_PROCESSING_SUPPORTED;
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.REFERENCE_ONLY_ALLOCATIONS_REQUIRED;
|
|
pub const D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME;
|
|
|
|
pub const D3D12_VIDEO_DECODE_STATUS = enum(i32) {
|
|
OK = 0,
|
|
CONTINUE = 1,
|
|
CONTINUE_SKIP_DISPLAY = 2,
|
|
RESTART = 3,
|
|
RATE_EXCEEDED = 4,
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_STATUS_OK = D3D12_VIDEO_DECODE_STATUS.OK;
|
|
pub const D3D12_VIDEO_DECODE_STATUS_CONTINUE = D3D12_VIDEO_DECODE_STATUS.CONTINUE;
|
|
pub const D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = D3D12_VIDEO_DECODE_STATUS.CONTINUE_SKIP_DISPLAY;
|
|
pub const D3D12_VIDEO_DECODE_STATUS_RESTART = D3D12_VIDEO_DECODE_STATUS.RESTART;
|
|
pub const D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = D3D12_VIDEO_DECODE_STATUS.RATE_EXCEEDED;
|
|
|
|
pub const D3D12_VIDEO_DECODE_ARGUMENT_TYPE = enum(i32) {
|
|
PICTURE_PARAMETERS = 0,
|
|
INVERSE_QUANTIZATION_MATRIX = 1,
|
|
SLICE_CONTROL = 2,
|
|
MAX_VALID = 3,
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = D3D12_VIDEO_DECODE_ARGUMENT_TYPE.PICTURE_PARAMETERS;
|
|
pub const D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = D3D12_VIDEO_DECODE_ARGUMENT_TYPE.INVERSE_QUANTIZATION_MATRIX;
|
|
pub const D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = D3D12_VIDEO_DECODE_ARGUMENT_TYPE.SLICE_CONTROL;
|
|
pub const D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = D3D12_VIDEO_DECODE_ARGUMENT_TYPE.MAX_VALID;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
Width: u32,
|
|
Height: u32,
|
|
DecodeFormat: DXGI_FORMAT,
|
|
FrameRate: DXGI_RATIONAL,
|
|
BitRate: u32,
|
|
SupportFlags: D3D12_VIDEO_DECODE_SUPPORT_FLAGS,
|
|
ConfigurationFlags: D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS,
|
|
DecodeTier: D3D12_VIDEO_DECODE_TIER,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT = extern struct {
|
|
NodeIndex: u32,
|
|
ProfileCount: u32,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES = extern struct {
|
|
NodeIndex: u32,
|
|
ProfileCount: u32,
|
|
pProfiles: ?*Guid,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT = extern struct {
|
|
NodeIndex: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
FormatCount: u32,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS = extern struct {
|
|
NodeIndex: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
FormatCount: u32,
|
|
pOutputFormats: ?*DXGI_FORMAT,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE = extern struct {
|
|
IOCoherent: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT = enum(i32) {
|
|
Y = 0,
|
|
U = 1,
|
|
V = 2,
|
|
// R = 0, this enum value conflicts with Y
|
|
// G = 1, this enum value conflicts with U
|
|
// B = 2, this enum value conflicts with V
|
|
A = 3,
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.Y;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.U;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.V;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.Y;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.U;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.V;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT.A;
|
|
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
Y = 1,
|
|
U = 2,
|
|
V = 4,
|
|
// R = 1, this enum value conflicts with Y
|
|
// G = 2, this enum value conflicts with U
|
|
// B = 4, this enum value conflicts with V
|
|
A = 8,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
Y: u1 = 0,
|
|
U: u1 = 0,
|
|
V: u1 = 0,
|
|
A: u1 = 0,
|
|
}) D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS {
|
|
return @as(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.NONE) else 0)
|
|
| (if (o.Y == 1) @intFromEnum(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.Y) else 0)
|
|
| (if (o.U == 1) @intFromEnum(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.U) else 0)
|
|
| (if (o.V == 1) @intFromEnum(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.V) else 0)
|
|
| (if (o.A == 1) @intFromEnum(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.A) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.Y;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.U;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.V;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.Y;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.U;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.V;
|
|
pub const D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.A;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM = extern struct {
|
|
NodeIndex: u32,
|
|
DecodeProfile: Guid,
|
|
Width: u32,
|
|
Height: u32,
|
|
DecodeFormat: DXGI_FORMAT,
|
|
Components: D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS,
|
|
BinCount: u32,
|
|
CounterBitDepth: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
SUPPORTED = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
SUPPORTED: u1 = 0,
|
|
}) D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS.SUPPORTED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS.SUPPORTED;
|
|
|
|
pub const D3D12_VIDEO_SCALE_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
POW2_ONLY = 1,
|
|
EVEN_DIMENSIONS_ONLY = 2,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
POW2_ONLY: u1 = 0,
|
|
EVEN_DIMENSIONS_ONLY: u1 = 0,
|
|
}) D3D12_VIDEO_SCALE_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_SCALE_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_SCALE_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.POW2_ONLY == 1) @intFromEnum(D3D12_VIDEO_SCALE_SUPPORT_FLAGS.POW2_ONLY) else 0)
|
|
| (if (o.EVEN_DIMENSIONS_ONLY == 1) @intFromEnum(D3D12_VIDEO_SCALE_SUPPORT_FLAGS.EVEN_DIMENSIONS_ONLY) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = D3D12_VIDEO_SCALE_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = D3D12_VIDEO_SCALE_SUPPORT_FLAGS.POW2_ONLY;
|
|
pub const D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = D3D12_VIDEO_SCALE_SUPPORT_FLAGS.EVEN_DIMENSIONS_ONLY;
|
|
|
|
pub const D3D12_VIDEO_SCALE_SUPPORT = extern struct {
|
|
OutputSizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
Flags: D3D12_VIDEO_SCALE_SUPPORT_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
DecodeSample: D3D12_VIDEO_SAMPLE,
|
|
OutputFormat: D3D12_VIDEO_FORMAT,
|
|
FrameRate: DXGI_RATIONAL,
|
|
BitRate: u32,
|
|
SupportFlags: D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS,
|
|
ScaleSupport: D3D12_VIDEO_SCALE_SUPPORT,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE = extern struct {
|
|
VideoDecoderHeapDesc: D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE = extern struct {
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: ?*const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS = extern struct {
|
|
Status: u64,
|
|
NumMacroblocksAffected: u64,
|
|
FrameRate: DXGI_RATIONAL,
|
|
BitRate: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_FRAME_ARGUMENT = extern struct {
|
|
Type: D3D12_VIDEO_DECODE_ARGUMENT_TYPE,
|
|
Size: u32,
|
|
pData: ?*anyopaque,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_REFERENCE_FRAMES = extern struct {
|
|
NumTexture2Ds: u32,
|
|
ppTexture2Ds: ?*?*ID3D12Resource,
|
|
pSubresources: ?*u32,
|
|
ppHeaps: ?*?*ID3D12VideoDecoderHeap,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM = extern struct {
|
|
pBuffer: ?*ID3D12Resource,
|
|
Offset: u64,
|
|
Size: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS = extern struct {
|
|
Enable: BOOL,
|
|
pReferenceTexture2D: ?*ID3D12Resource,
|
|
ReferenceSubresource: u32,
|
|
OutputColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
DecodeColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS = extern struct {
|
|
NumFrameArguments: u32,
|
|
FrameArguments: [10]D3D12_VIDEO_DECODE_FRAME_ARGUMENT,
|
|
ReferenceFrames: D3D12_VIDEO_DECODE_REFERENCE_FRAMES,
|
|
CompressedBitstream: D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM,
|
|
pHeap: ?*ID3D12VideoDecoderHeap,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS = extern struct {
|
|
pOutputTexture2D: ?*ID3D12Resource,
|
|
OutputSubresource: u32,
|
|
ConversionArguments: D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoProcessor_Value = Guid.initString("304fdb32-bede-410a-8545-943ac6a46138");
|
|
pub const IID_ID3D12VideoProcessor = &IID_ID3D12VideoProcessor_Value;
|
|
pub const ID3D12VideoProcessor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetNodeMask: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetNumInputStreamDescs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetInputStreamDescs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStreamDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessor_GetNodeMask(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const ID3D12VideoProcessor.VTable, @ptrCast(self.vtable)).GetNodeMask(@as(*const ID3D12VideoProcessor, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessor_GetNumInputStreamDescs(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const ID3D12VideoProcessor.VTable, @ptrCast(self.vtable)).GetNumInputStreamDescs(@as(*const ID3D12VideoProcessor, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessor_GetInputStreamDescs(self: *const T, NumInputStreamDescs: u32, pInputStreamDescs: [*]D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoProcessor.VTable, @ptrCast(self.vtable)).GetInputStreamDescs(@as(*const ID3D12VideoProcessor, @ptrCast(self)), NumInputStreamDescs, pInputStreamDescs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessor_GetOutputStreamDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC {
|
|
return @as(*const ID3D12VideoProcessor.VTable, @ptrCast(self.vtable)).GetOutputStreamDesc(@as(*const ID3D12VideoProcessor, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
ALPHA_FILL = 1,
|
|
LUMA_KEY = 2,
|
|
STEREO = 4,
|
|
ROTATION = 8,
|
|
FLIP = 16,
|
|
ALPHA_BLENDING = 32,
|
|
PIXEL_ASPECT_RATIO = 64,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
ALPHA_FILL: u1 = 0,
|
|
LUMA_KEY: u1 = 0,
|
|
STEREO: u1 = 0,
|
|
ROTATION: u1 = 0,
|
|
FLIP: u1 = 0,
|
|
ALPHA_BLENDING: u1 = 0,
|
|
PIXEL_ASPECT_RATIO: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_FEATURE_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_FEATURE_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.NONE) else 0)
|
|
| (if (o.ALPHA_FILL == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ALPHA_FILL) else 0)
|
|
| (if (o.LUMA_KEY == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.LUMA_KEY) else 0)
|
|
| (if (o.STEREO == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.STEREO) else 0)
|
|
| (if (o.ROTATION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ROTATION) else 0)
|
|
| (if (o.FLIP == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.FLIP) else 0)
|
|
| (if (o.ALPHA_BLENDING == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ALPHA_BLENDING) else 0)
|
|
| (if (o.PIXEL_ASPECT_RATIO == 1) @intFromEnum(D3D12_VIDEO_PROCESS_FEATURE_FLAGS.PIXEL_ASPECT_RATIO) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ALPHA_FILL;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.LUMA_KEY;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.STEREO;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ROTATION;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.FLIP;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.ALPHA_BLENDING;
|
|
pub const D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = D3D12_VIDEO_PROCESS_FEATURE_FLAGS.PIXEL_ASPECT_RATIO;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
DENOISE = 1,
|
|
DERINGING = 2,
|
|
EDGE_ENHANCEMENT = 4,
|
|
COLOR_CORRECTION = 8,
|
|
FLESH_TONE_MAPPING = 16,
|
|
IMAGE_STABILIZATION = 32,
|
|
SUPER_RESOLUTION = 64,
|
|
ANAMORPHIC_SCALING = 128,
|
|
CUSTOM = 2147483648,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
DENOISE: u1 = 0,
|
|
DERINGING: u1 = 0,
|
|
EDGE_ENHANCEMENT: u1 = 0,
|
|
COLOR_CORRECTION: u1 = 0,
|
|
FLESH_TONE_MAPPING: u1 = 0,
|
|
IMAGE_STABILIZATION: u1 = 0,
|
|
SUPER_RESOLUTION: u1 = 0,
|
|
ANAMORPHIC_SCALING: u1 = 0,
|
|
CUSTOM: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.NONE) else 0)
|
|
| (if (o.DENOISE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.DENOISE) else 0)
|
|
| (if (o.DERINGING == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.DERINGING) else 0)
|
|
| (if (o.EDGE_ENHANCEMENT == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.EDGE_ENHANCEMENT) else 0)
|
|
| (if (o.COLOR_CORRECTION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.COLOR_CORRECTION) else 0)
|
|
| (if (o.FLESH_TONE_MAPPING == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.FLESH_TONE_MAPPING) else 0)
|
|
| (if (o.IMAGE_STABILIZATION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.IMAGE_STABILIZATION) else 0)
|
|
| (if (o.SUPER_RESOLUTION == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.SUPER_RESOLUTION) else 0)
|
|
| (if (o.ANAMORPHIC_SCALING == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.ANAMORPHIC_SCALING) else 0)
|
|
| (if (o.CUSTOM == 1) @intFromEnum(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.CUSTOM) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.DENOISE;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.DERINGING;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.EDGE_ENHANCEMENT;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.COLOR_CORRECTION;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.FLESH_TONE_MAPPING;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.IMAGE_STABILIZATION;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.SUPER_RESOLUTION;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.ANAMORPHIC_SCALING;
|
|
pub const D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS.CUSTOM;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION = enum(i32) {
|
|
DEFAULT = 0,
|
|
FLIP_HORIZONTAL = 1,
|
|
CLOCKWISE_90 = 2,
|
|
CLOCKWISE_90_FLIP_HORIZONTAL = 3,
|
|
CLOCKWISE_180 = 4,
|
|
FLIP_VERTICAL = 5,
|
|
CLOCKWISE_270 = 6,
|
|
CLOCKWISE_270_FLIP_HORIZONTAL = 7,
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = D3D12_VIDEO_PROCESS_ORIENTATION.DEFAULT;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = D3D12_VIDEO_PROCESS_ORIENTATION.FLIP_HORIZONTAL;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = D3D12_VIDEO_PROCESS_ORIENTATION.CLOCKWISE_90;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = D3D12_VIDEO_PROCESS_ORIENTATION.CLOCKWISE_90_FLIP_HORIZONTAL;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = D3D12_VIDEO_PROCESS_ORIENTATION.CLOCKWISE_180;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = D3D12_VIDEO_PROCESS_ORIENTATION.FLIP_VERTICAL;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = D3D12_VIDEO_PROCESS_ORIENTATION.CLOCKWISE_270;
|
|
pub const D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = D3D12_VIDEO_PROCESS_ORIENTATION.CLOCKWISE_270_FLIP_HORIZONTAL;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
FRAME_DISCONTINUITY = 1,
|
|
FRAME_REPEAT = 2,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
FRAME_DISCONTINUITY: u1 = 0,
|
|
FRAME_REPEAT: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.NONE) else 0)
|
|
| (if (o.FRAME_DISCONTINUITY == 1) @intFromEnum(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.FRAME_DISCONTINUITY) else 0)
|
|
| (if (o.FRAME_REPEAT == 1) @intFromEnum(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.FRAME_REPEAT) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.FRAME_DISCONTINUITY;
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.FRAME_REPEAT;
|
|
|
|
pub const D3D12_VIDEO_PROCESS_FILTER_RANGE = extern struct {
|
|
Minimum: i32,
|
|
Maximum: i32,
|
|
Default: i32,
|
|
Multiplier: f32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
SUPPORTED = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
SUPPORTED: u1 = 0,
|
|
}) D3D12_VIDEO_PROCESS_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS.SUPPORTED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = D3D12_VIDEO_PROCESS_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = D3D12_VIDEO_PROCESS_SUPPORT_FLAGS.SUPPORTED;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
InputSample: D3D12_VIDEO_SAMPLE,
|
|
InputFieldType: D3D12_VIDEO_FIELD_TYPE,
|
|
InputStereoFormat: D3D12_VIDEO_FRAME_STEREO_FORMAT,
|
|
InputFrameRate: DXGI_RATIONAL,
|
|
OutputFormat: D3D12_VIDEO_FORMAT,
|
|
OutputStereoFormat: D3D12_VIDEO_FRAME_STEREO_FORMAT,
|
|
OutputFrameRate: DXGI_RATIONAL,
|
|
SupportFlags: D3D12_VIDEO_PROCESS_SUPPORT_FLAGS,
|
|
ScaleSupport: D3D12_VIDEO_SCALE_SUPPORT,
|
|
FeatureSupport: D3D12_VIDEO_PROCESS_FEATURE_FLAGS,
|
|
DeinterlaceSupport: D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS,
|
|
AutoProcessingSupport: D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS,
|
|
FilterSupport: D3D12_VIDEO_PROCESS_FILTER_FLAGS,
|
|
FilterRangeSupport: [32]D3D12_VIDEO_PROCESS_FILTER_RANGE,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS = extern struct {
|
|
NodeIndex: u32,
|
|
MaxInputStreams: u32,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO = extern struct {
|
|
NodeIndex: u32,
|
|
DeinterlaceMode: D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS,
|
|
Filters: D3D12_VIDEO_PROCESS_FILTER_FLAGS,
|
|
FeatureSupport: D3D12_VIDEO_PROCESS_FEATURE_FLAGS,
|
|
InputFrameRate: DXGI_RATIONAL,
|
|
OutputFrameRate: DXGI_RATIONAL,
|
|
EnableAutoProcessing: BOOL,
|
|
PastFrames: u32,
|
|
FutureFrames: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_REFERENCE_SET = extern struct {
|
|
NumPastFrames: u32,
|
|
ppPastFrames: ?*?*ID3D12Resource,
|
|
pPastSubresources: ?*u32,
|
|
NumFutureFrames: u32,
|
|
ppFutureFrames: ?*?*ID3D12Resource,
|
|
pFutureSubresources: ?*u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_TRANSFORM = extern struct {
|
|
SourceRectangle: RECT,
|
|
DestinationRectangle: RECT,
|
|
Orientation: D3D12_VIDEO_PROCESS_ORIENTATION,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE = extern struct {
|
|
OutputIndex: u32,
|
|
InputFrameOrField: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM = extern struct {
|
|
pTexture2D: ?*ID3D12Resource,
|
|
Subresource: u32,
|
|
ReferenceSet: D3D12_VIDEO_PROCESS_REFERENCE_SET,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS = extern struct {
|
|
InputStream: [2]D3D12_VIDEO_PROCESS_INPUT_STREAM,
|
|
Transform: D3D12_VIDEO_PROCESS_TRANSFORM,
|
|
Flags: D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS,
|
|
RateInfo: D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE,
|
|
FilterLevels: [32]i32,
|
|
AlphaBlending: D3D12_VIDEO_PROCESS_ALPHA_BLENDING,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_OUTPUT_STREAM = extern struct {
|
|
pTexture2D: ?*ID3D12Resource,
|
|
Subresource: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS = extern struct {
|
|
OutputStream: [2]D3D12_VIDEO_PROCESS_OUTPUT_STREAM,
|
|
TargetRectangle: RECT,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecodeCommandList_Value = Guid.initString("3b60536e-ad29-4e64-a269-f853837e5e53");
|
|
pub const IID_ID3D12VideoDecodeCommandList = &IID_ID3D12VideoDecodeCommandList_Value;
|
|
pub const ID3D12VideoDecodeCommandList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12CommandList.VTable,
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResourceBarrier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
DiscardResource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResolveQueryData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetPredication: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
DecodeFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pDecoder: ?*ID3D12VideoDecoder,
|
|
pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS,
|
|
pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
pDecoder: ?*ID3D12VideoDecoder,
|
|
pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS,
|
|
pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
WriteBufferImmediate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12CommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).Close(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_Reset(self: *const T, pAllocator: ?*ID3D12CommandAllocator) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).Reset(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pAllocator);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_ClearState(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).ClearState(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_ResourceBarrier(self: *const T, NumBarriers: u32, pBarriers: [*]const D3D12_RESOURCE_BARRIER) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).ResourceBarrier(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), NumBarriers, pBarriers);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_DiscardResource(self: *const T, pResource: ?*ID3D12Resource, pRegion: ?*const D3D12_DISCARD_REGION) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).DiscardResource(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pResource, pRegion);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_BeginQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).BeginQuery(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_EndQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).EndQuery(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_ResolveQueryData(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, StartIndex: u32, NumQueries: u32, pDestinationBuffer: ?*ID3D12Resource, AlignedDestinationBufferOffset: u64) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).ResolveQueryData(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_SetPredication(self: *const T, pBuffer: ?*ID3D12Resource, AlignedBufferOffset: u64, Operation: D3D12_PREDICATION_OP) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).SetPredication(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pBuffer, AlignedBufferOffset, Operation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_SetMarker(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).SetMarker(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_BeginEvent(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).BeginEvent(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_EndEvent(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).EndEvent(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_DecodeFrame(self: *const T, pDecoder: ?*ID3D12VideoDecoder, pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS, pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).DecodeFrame(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), pDecoder, pOutputArguments, pInputArguments);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList_WriteBufferImmediate(self: *const T, Count: u32, pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList.VTable, @ptrCast(self.vtable)).WriteBufferImmediate(@as(*const ID3D12VideoDecodeCommandList, @ptrCast(self)), Count, pParams, pModes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoProcessCommandList_Value = Guid.initString("aeb2543a-167f-4682-acc8-d159ed4a6209");
|
|
pub const IID_ID3D12VideoProcessCommandList = &IID_ID3D12VideoProcessCommandList_Value;
|
|
pub const ID3D12VideoProcessCommandList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12CommandList.VTable,
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResourceBarrier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
DiscardResource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResolveQueryData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetPredication: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ProcessFrames: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pVideoProcessor: ?*ID3D12VideoProcessor,
|
|
pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS,
|
|
NumInputStreams: u32,
|
|
pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
pVideoProcessor: ?*ID3D12VideoProcessor,
|
|
pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS,
|
|
NumInputStreams: u32,
|
|
pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
WriteBufferImmediate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12CommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).Close(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_Reset(self: *const T, pAllocator: ?*ID3D12CommandAllocator) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).Reset(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pAllocator);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_ClearState(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).ClearState(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_ResourceBarrier(self: *const T, NumBarriers: u32, pBarriers: [*]const D3D12_RESOURCE_BARRIER) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).ResourceBarrier(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), NumBarriers, pBarriers);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_DiscardResource(self: *const T, pResource: ?*ID3D12Resource, pRegion: ?*const D3D12_DISCARD_REGION) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).DiscardResource(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pResource, pRegion);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_BeginQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).BeginQuery(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_EndQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).EndQuery(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_ResolveQueryData(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, StartIndex: u32, NumQueries: u32, pDestinationBuffer: ?*ID3D12Resource, AlignedDestinationBufferOffset: u64) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).ResolveQueryData(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_SetPredication(self: *const T, pBuffer: ?*ID3D12Resource, AlignedBufferOffset: u64, Operation: D3D12_PREDICATION_OP) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).SetPredication(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pBuffer, AlignedBufferOffset, Operation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_SetMarker(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).SetMarker(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_BeginEvent(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).BeginEvent(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_EndEvent(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).EndEvent(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_ProcessFrames(self: *const T, pVideoProcessor: ?*ID3D12VideoProcessor, pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS, NumInputStreams: u32, pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).ProcessFrames(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), pVideoProcessor, pOutputArguments, NumInputStreams, pInputArguments);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList_WriteBufferImmediate(self: *const T, Count: u32, pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList.VTable, @ptrCast(self.vtable)).WriteBufferImmediate(@as(*const ID3D12VideoProcessCommandList, @ptrCast(self)), Count, pParams, pModes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM = extern struct {
|
|
Offset: u64,
|
|
pBuffer: ?*ID3D12Resource,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 = extern struct {
|
|
Enable: BOOL,
|
|
pReferenceTexture2D: ?*ID3D12Resource,
|
|
ReferenceSubresource: u32,
|
|
OutputColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
DecodeColorSpace: DXGI_COLOR_SPACE_TYPE,
|
|
OutputWidth: u32,
|
|
OutputHeight: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 = extern struct {
|
|
pOutputTexture2D: ?*ID3D12Resource,
|
|
OutputSubresource: u32,
|
|
ConversionArguments: D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1,
|
|
Histograms: [4]D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecodeCommandList1_Value = Guid.initString("d52f011b-b56e-453c-a05a-a7f311c8f472");
|
|
pub const IID_ID3D12VideoDecodeCommandList1 = &IID_ID3D12VideoDecodeCommandList1_Value;
|
|
pub const ID3D12VideoDecodeCommandList1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDecodeCommandList.VTable,
|
|
DecodeFrame1: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList1,
|
|
pDecoder: ?*ID3D12VideoDecoder,
|
|
pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1,
|
|
pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList1,
|
|
pDecoder: ?*ID3D12VideoDecoder,
|
|
pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1,
|
|
pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDecodeCommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList1_DecodeFrame1(self: *const T, pDecoder: ?*ID3D12VideoDecoder, pOutputArguments: ?*const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1, pInputArguments: ?*const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList1.VTable, @ptrCast(self.vtable)).DecodeFrame1(@as(*const ID3D12VideoDecodeCommandList1, @ptrCast(self)), pDecoder, pOutputArguments, pInputArguments);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 = extern struct {
|
|
InputStream: [2]D3D12_VIDEO_PROCESS_INPUT_STREAM,
|
|
Transform: D3D12_VIDEO_PROCESS_TRANSFORM,
|
|
Flags: D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS,
|
|
RateInfo: D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE,
|
|
FilterLevels: [32]i32,
|
|
AlphaBlending: D3D12_VIDEO_PROCESS_ALPHA_BLENDING,
|
|
FieldType: D3D12_VIDEO_FIELD_TYPE,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoProcessCommandList1_Value = Guid.initString("542c5c4d-7596-434f-8c93-4efa6766f267");
|
|
pub const IID_ID3D12VideoProcessCommandList1 = &IID_ID3D12VideoProcessCommandList1_Value;
|
|
pub const ID3D12VideoProcessCommandList1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoProcessCommandList.VTable,
|
|
ProcessFrames1: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList1,
|
|
pVideoProcessor: ?*ID3D12VideoProcessor,
|
|
pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS,
|
|
NumInputStreams: u32,
|
|
pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList1,
|
|
pVideoProcessor: ?*ID3D12VideoProcessor,
|
|
pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS,
|
|
NumInputStreams: u32,
|
|
pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoProcessCommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList1_ProcessFrames1(self: *const T, pVideoProcessor: ?*ID3D12VideoProcessor, pOutputArguments: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS, NumInputStreams: u32, pInputArguments: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList1.VTable, @ptrCast(self.vtable)).ProcessFrames1(@as(*const ID3D12VideoProcessCommandList1, @ptrCast(self)), pVideoProcessor, pOutputArguments, NumInputStreams, pInputArguments);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE = enum(i32) {
|
|
@"8X8" = 0,
|
|
@"16X16" = 1,
|
|
};
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE.@"8X8";
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE.@"16X16";
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
@"8X8" = 1,
|
|
@"16X16" = 2,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
@"8X8": u1 = 0,
|
|
@"16X16": u1 = 0,
|
|
}) D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS {
|
|
return @as(D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.NONE) else 0)
|
|
| (if (o.@"8X8" == 1) @intFromEnum(D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.@"8X8") else 0)
|
|
| (if (o.@"16X16" == 1) @intFromEnum(D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.@"16X16") else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.@"8X8";
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.@"16X16";
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION = enum(i32) {
|
|
L = 0,
|
|
};
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION.L;
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
QUARTER_PEL = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
QUARTER_PEL: u1 = 0,
|
|
}) D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS {
|
|
return @as(D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS.NONE) else 0)
|
|
| (if (o.QUARTER_PEL == 1) @intFromEnum(D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS.QUARTER_PEL) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS.QUARTER_PEL;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
VideoDecodeSupport: BOOL,
|
|
VideoProcessSupport: BOOL,
|
|
VideoEncodeSupport: BOOL,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR = extern struct {
|
|
NodeIndex: u32,
|
|
InputFormat: DXGI_FORMAT,
|
|
BlockSizeFlags: D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS,
|
|
PrecisionFlags: D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS,
|
|
SizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE = extern struct {
|
|
NodeIndex: u32,
|
|
InputFormat: DXGI_FORMAT,
|
|
BlockSize: D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE,
|
|
Precision: D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION,
|
|
SizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
Protected: BOOL,
|
|
MotionVectorHeapMemoryPoolL0Size: u64,
|
|
MotionVectorHeapMemoryPoolL1Size: u64,
|
|
MotionEstimatorMemoryPoolL0Size: u64,
|
|
MotionEstimatorMemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_DESC = extern struct {
|
|
NodeMask: u32,
|
|
InputFormat: DXGI_FORMAT,
|
|
BlockSize: D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE,
|
|
Precision: D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION,
|
|
SizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoMotionEstimator_Value = Guid.initString("33fdae0e-098b-428f-87bb-34b695de08f8");
|
|
pub const IID_ID3D12VideoMotionEstimator = &IID_ID3D12VideoMotionEstimator_Value;
|
|
pub const ID3D12VideoMotionEstimator = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoMotionEstimator,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_MOTION_ESTIMATOR_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoMotionEstimator,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_MOTION_ESTIMATOR_DESC,
|
|
},
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoMotionEstimator,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoMotionEstimator,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoMotionEstimator_GetDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_MOTION_ESTIMATOR_DESC {
|
|
return @as(*const ID3D12VideoMotionEstimator.VTable, @ptrCast(self.vtable)).GetDesc(@as(*const ID3D12VideoMotionEstimator, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoMotionEstimator_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoMotionEstimator.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoMotionEstimator, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC = extern struct {
|
|
NodeMask: u32,
|
|
InputFormat: DXGI_FORMAT,
|
|
BlockSize: D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE,
|
|
Precision: D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION,
|
|
SizeRange: D3D12_VIDEO_SIZE_RANGE,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoMotionVectorHeap_Value = Guid.initString("5be17987-743a-4061-834b-23d22daea505");
|
|
pub const IID_ID3D12VideoMotionVectorHeap = &IID_ID3D12VideoMotionVectorHeap_Value;
|
|
pub const ID3D12VideoMotionVectorHeap = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoMotionVectorHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoMotionVectorHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC,
|
|
},
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoMotionVectorHeap,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoMotionVectorHeap,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoMotionVectorHeap_GetDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC {
|
|
return @as(*const ID3D12VideoMotionVectorHeap.VTable, @ptrCast(self.vtable)).GetDesc(@as(*const ID3D12VideoMotionVectorHeap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoMotionVectorHeap.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoMotionVectorHeap, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDevice1_Value = Guid.initString("981611ad-a144-4c83-9890-f30e26d658ab");
|
|
pub const IID_ID3D12VideoDevice1 = &IID_ID3D12VideoDevice1_Value;
|
|
pub const ID3D12VideoDevice1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDevice.VTable,
|
|
CreateVideoMotionEstimator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice1,
|
|
pDesc: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoMotionEstimator: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice1,
|
|
pDesc: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoMotionEstimator: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoMotionVectorHeap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice1,
|
|
pDesc: ?*const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoMotionVectorHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice1,
|
|
pDesc: ?*const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoMotionVectorHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDevice.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice1_CreateVideoMotionEstimator(self: *const T, pDesc: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_DESC, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoMotionEstimator: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice1.VTable, @ptrCast(self.vtable)).CreateVideoMotionEstimator(@as(*const ID3D12VideoDevice1, @ptrCast(self)), pDesc, pProtectedResourceSession, riid, ppVideoMotionEstimator);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice1_CreateVideoMotionVectorHeap(self: *const T, pDesc: ?*const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoMotionVectorHeap: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice1.VTable, @ptrCast(self.vtable)).CreateVideoMotionVectorHeap(@as(*const ID3D12VideoDevice1, @ptrCast(self)), pDesc, pProtectedResourceSession, riid, ppVideoMotionVectorHeap);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_RESOURCE_COORDINATE = extern struct {
|
|
X: u64,
|
|
Y: u32,
|
|
Z: u32,
|
|
SubresourceIndex: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT = extern struct {
|
|
pMotionVectorHeap: ?*ID3D12VideoMotionVectorHeap,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT = extern struct {
|
|
pInputTexture2D: ?*ID3D12Resource,
|
|
InputSubresourceIndex: u32,
|
|
pReferenceTexture2D: ?*ID3D12Resource,
|
|
ReferenceSubresourceIndex: u32,
|
|
pHintMotionVectorHeap: ?*ID3D12VideoMotionVectorHeap,
|
|
};
|
|
|
|
pub const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT = extern struct {
|
|
pMotionVectorTexture2D: ?*ID3D12Resource,
|
|
MotionVectorCoordinate: D3D12_RESOURCE_COORDINATE,
|
|
};
|
|
|
|
pub const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT = extern struct {
|
|
pMotionVectorHeap: ?*ID3D12VideoMotionVectorHeap,
|
|
PixelWidth: u32,
|
|
PixelHeight: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoEncodeCommandList_Value = Guid.initString("8455293a-0cbd-4831-9b39-fbdbab724723");
|
|
pub const IID_ID3D12VideoEncodeCommandList = &IID_ID3D12VideoEncodeCommandList_Value;
|
|
pub const ID3D12VideoEncodeCommandList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12CommandList.VTable,
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pAllocator: ?*ID3D12CommandAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResourceBarrier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
NumBarriers: u32,
|
|
pBarriers: [*]const D3D12_RESOURCE_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
DiscardResource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pResource: ?*ID3D12Resource,
|
|
pRegion: ?*const D3D12_DISCARD_REGION,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndQuery: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResolveQueryData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pQueryHeap: ?*ID3D12QueryHeap,
|
|
Type: D3D12_QUERY_TYPE,
|
|
StartIndex: u32,
|
|
NumQueries: u32,
|
|
pDestinationBuffer: ?*ID3D12Resource,
|
|
AlignedDestinationBufferOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetPredication: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pBuffer: ?*ID3D12Resource,
|
|
AlignedBufferOffset: u64,
|
|
Operation: D3D12_PREDICATION_OP,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
BeginEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Metadata: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
Size: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EndEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
EstimateMotion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pMotionEstimator: ?*ID3D12VideoMotionEstimator,
|
|
pOutputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT,
|
|
pInputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pMotionEstimator: ?*ID3D12VideoMotionEstimator,
|
|
pOutputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT,
|
|
pInputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResolveMotionVectorHeap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pOutputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT,
|
|
pInputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pOutputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT,
|
|
pInputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
WriteBufferImmediate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
Count: u32,
|
|
pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER,
|
|
pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
SetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12CommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).Close(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_Reset(self: *const T, pAllocator: ?*ID3D12CommandAllocator) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).Reset(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pAllocator);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_ClearState(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).ClearState(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_ResourceBarrier(self: *const T, NumBarriers: u32, pBarriers: [*]const D3D12_RESOURCE_BARRIER) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).ResourceBarrier(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), NumBarriers, pBarriers);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_DiscardResource(self: *const T, pResource: ?*ID3D12Resource, pRegion: ?*const D3D12_DISCARD_REGION) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).DiscardResource(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pResource, pRegion);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_BeginQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).BeginQuery(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_EndQuery(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, Index: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).EndQuery(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pQueryHeap, Type, Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_ResolveQueryData(self: *const T, pQueryHeap: ?*ID3D12QueryHeap, Type: D3D12_QUERY_TYPE, StartIndex: u32, NumQueries: u32, pDestinationBuffer: ?*ID3D12Resource, AlignedDestinationBufferOffset: u64) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).ResolveQueryData(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_SetPredication(self: *const T, pBuffer: ?*ID3D12Resource, AlignedBufferOffset: u64, Operation: D3D12_PREDICATION_OP) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).SetPredication(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pBuffer, AlignedBufferOffset, Operation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_SetMarker(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).SetMarker(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_BeginEvent(self: *const T, Metadata: u32, pData: ?*const anyopaque, Size: u32) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).BeginEvent(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), Metadata, pData, Size);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_EndEvent(self: *const T) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).EndEvent(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_EstimateMotion(self: *const T, pMotionEstimator: ?*ID3D12VideoMotionEstimator, pOutputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT, pInputArguments: ?*const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).EstimateMotion(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pMotionEstimator, pOutputArguments, pInputArguments);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(self: *const T, pOutputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT, pInputArguments: ?*const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).ResolveMotionVectorHeap(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pOutputArguments, pInputArguments);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_WriteBufferImmediate(self: *const T, Count: u32, pParams: [*]const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pModes: ?[*]const D3D12_WRITEBUFFERIMMEDIATE_MODE) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).WriteBufferImmediate(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), Count, pParams, pModes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList_SetProtectedResourceSession(self: *const T, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList.VTable, @ptrCast(self.vtable)).SetProtectedResourceSession(@as(*const ID3D12VideoEncodeCommandList, @ptrCast(self)), pProtectedResourceSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
SUPPORTED = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
SUPPORTED: u1 = 0,
|
|
}) D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS.SUPPORTED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS.SUPPORTED;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES = extern struct {
|
|
NodeIndex: u32,
|
|
Configuration: D3D12_VIDEO_DECODE_CONFIGURATION,
|
|
SupportFlags: D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES = extern struct {
|
|
NodeIndex: u32,
|
|
SupportFlags: D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = extern struct {
|
|
NodeIndex: u32,
|
|
SupportFlags: D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 = extern struct {
|
|
VideoDecoderHeapDesc: D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
Protected: BOOL,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 = extern struct {
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: ?*const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
Protected: BOOL,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE = enum(i32) {
|
|
CREATION = 0,
|
|
INITIALIZATION = 1,
|
|
EXECUTION = 2,
|
|
CAPS_INPUT = 3,
|
|
CAPS_OUTPUT = 4,
|
|
DEVICE_EXECUTE_INPUT = 5,
|
|
DEVICE_EXECUTE_OUTPUT = 6,
|
|
};
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.CREATION;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.INITIALIZATION;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.EXECUTION;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.CAPS_INPUT;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.CAPS_OUTPUT;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.DEVICE_EXECUTE_INPUT;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE.DEVICE_EXECUTE_OUTPUT;
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE = enum(i32) {
|
|
UINT8 = 0,
|
|
UINT16 = 1,
|
|
UINT32 = 2,
|
|
UINT64 = 3,
|
|
SINT8 = 4,
|
|
SINT16 = 5,
|
|
SINT32 = 6,
|
|
SINT64 = 7,
|
|
FLOAT = 8,
|
|
DOUBLE = 9,
|
|
RESOURCE = 10,
|
|
};
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.UINT8;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.UINT16;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.UINT32;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.UINT64;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.SINT8;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.SINT16;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.SINT32;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.SINT64;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.FLOAT;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.DOUBLE;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE.RESOURCE;
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
READ = 1,
|
|
WRITE = 2,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
READ: u1 = 0,
|
|
WRITE: u1 = 0,
|
|
}) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS {
|
|
return @as(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.NONE) else 0)
|
|
| (if (o.READ == 1) @intFromEnum(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.READ) else 0)
|
|
| (if (o.WRITE == 1) @intFromEnum(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.WRITE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.READ;
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.WRITE;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT = extern struct {
|
|
NodeIndex: u32,
|
|
CommandCount: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_INFO = extern struct {
|
|
CommandId: Guid,
|
|
Name: ?[*:0]const u16,
|
|
CommandListSupportFlags: D3D12_COMMAND_LIST_SUPPORT_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS = extern struct {
|
|
NodeIndex: u32,
|
|
CommandCount: u32,
|
|
pCommandInfos: ?*D3D12_VIDEO_EXTENSION_COMMAND_INFO,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = extern struct {
|
|
CommandId: Guid,
|
|
Stage: D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE,
|
|
ParameterCount: u32,
|
|
ParameterPacking: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO = extern struct {
|
|
Name: ?[*:0]const u16,
|
|
Type: D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE,
|
|
Flags: D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS = extern struct {
|
|
CommandId: Guid,
|
|
Stage: D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE,
|
|
ParameterCount: u32,
|
|
pParameterInfos: ?*D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
CommandId: Guid,
|
|
pInputData: ?*const anyopaque,
|
|
InputDataSizeInBytes: usize,
|
|
pOutputData: ?*anyopaque,
|
|
OutputDataSizeInBytes: usize,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE = extern struct {
|
|
NodeIndex: u32,
|
|
CommandId: Guid,
|
|
pCreationParameters: ?*const anyopaque,
|
|
CreationParametersSizeInBytes: usize,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_EXTENSION_COMMAND_DESC = extern struct {
|
|
NodeMask: u32,
|
|
CommandId: Guid,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecoder1_Value = Guid.initString("79a2e5fb-ccd2-469a-9fde-195d10951f7e");
|
|
pub const IID_ID3D12VideoDecoder1 = &IID_ID3D12VideoDecoder1_Value;
|
|
pub const ID3D12VideoDecoder1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDecoder.VTable,
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecoder1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecoder1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDecoder.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecoder1_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDecoder1.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoDecoder1, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecoderHeap1_Value = Guid.initString("da1d98c5-539f-41b2-bf6b-1198a03b6d26");
|
|
pub const IID_ID3D12VideoDecoderHeap1 = &IID_ID3D12VideoDecoderHeap1_Value;
|
|
pub const ID3D12VideoDecoderHeap1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDecoderHeap.VTable,
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecoderHeap1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecoderHeap1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDecoderHeap.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecoderHeap1_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDecoderHeap1.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoDecoderHeap1, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoProcessor1_Value = Guid.initString("f3cfe615-553f-425c-86d8-ee8c1b1fb01c");
|
|
pub const IID_ID3D12VideoProcessor1 = &IID_ID3D12VideoProcessor1_Value;
|
|
pub const ID3D12VideoProcessor1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoProcessor.VTable,
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessor1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessor1,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoProcessor.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessor1_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoProcessor1.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoProcessor1, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoExtensionCommand_Value = Guid.initString("554e41e8-ae8e-4a8c-b7d2-5b4f274a30e4");
|
|
pub const IID_ID3D12VideoExtensionCommand = &IID_ID3D12VideoExtensionCommand_Value;
|
|
pub const ID3D12VideoExtensionCommand = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetDesc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoExtensionCommand,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_EXTENSION_COMMAND_DESC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoExtensionCommand,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_EXTENSION_COMMAND_DESC,
|
|
},
|
|
GetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoExtensionCommand,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoExtensionCommand,
|
|
riid: ?*const Guid,
|
|
ppProtectedSession: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoExtensionCommand_GetDesc(self: *const T) callconv(.Inline) D3D12_VIDEO_EXTENSION_COMMAND_DESC {
|
|
return @as(*const ID3D12VideoExtensionCommand.VTable, @ptrCast(self.vtable)).GetDesc(@as(*const ID3D12VideoExtensionCommand, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoExtensionCommand_GetProtectedResourceSession(self: *const T, riid: ?*const Guid, ppProtectedSession: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoExtensionCommand.VTable, @ptrCast(self.vtable)).GetProtectedResourceSession(@as(*const ID3D12VideoExtensionCommand, @ptrCast(self)), riid, ppProtectedSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDevice2_Value = Guid.initString("f019ac49-f838-4a95-9b17-579437c8f513");
|
|
pub const IID_ID3D12VideoDevice2 = &IID_ID3D12VideoDevice2_Value;
|
|
pub const ID3D12VideoDevice2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDevice1.VTable,
|
|
CreateVideoDecoder1: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pDesc: ?*const D3D12_VIDEO_DECODER_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pDesc: ?*const D3D12_VIDEO_DECODER_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoDecoderHeap1: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoDecoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoProcessor1: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
NodeMask: u32,
|
|
pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC,
|
|
NumInputStreamDescs: u32,
|
|
pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pDesc: ?*const D3D12_VIDEO_EXTENSION_COMMAND_DESC,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pCreationParameters: ?*const anyopaque,
|
|
CreationParametersDataSizeInBytes: usize,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoExtensionCommand: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pDesc: ?*const D3D12_VIDEO_EXTENSION_COMMAND_DESC,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pCreationParameters: ?*const anyopaque,
|
|
CreationParametersDataSizeInBytes: usize,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
riid: ?*const Guid,
|
|
ppVideoExtensionCommand: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ExecuteExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
pOutputData: ?*anyopaque,
|
|
OutputDataSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
pOutputData: ?*anyopaque,
|
|
OutputDataSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDevice1.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice2_CreateVideoDecoder1(self: *const T, pDesc: ?*const D3D12_VIDEO_DECODER_DESC, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoDecoder: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice2.VTable, @ptrCast(self.vtable)).CreateVideoDecoder1(@as(*const ID3D12VideoDevice2, @ptrCast(self)), pDesc, pProtectedResourceSession, riid, ppVideoDecoder);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice2_CreateVideoDecoderHeap1(self: *const T, pVideoDecoderHeapDesc: ?*const D3D12_VIDEO_DECODER_HEAP_DESC, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoDecoderHeap: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice2.VTable, @ptrCast(self.vtable)).CreateVideoDecoderHeap1(@as(*const ID3D12VideoDevice2, @ptrCast(self)), pVideoDecoderHeapDesc, pProtectedResourceSession, riid, ppVideoDecoderHeap);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice2_CreateVideoProcessor1(self: *const T, NodeMask: u32, pOutputStreamDesc: ?*const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC, NumInputStreamDescs: u32, pInputStreamDescs: [*]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoProcessor: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice2.VTable, @ptrCast(self.vtable)).CreateVideoProcessor1(@as(*const ID3D12VideoDevice2, @ptrCast(self)), NodeMask, pOutputStreamDesc, NumInputStreamDescs, pInputStreamDescs, pProtectedResourceSession, riid, ppVideoProcessor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice2_CreateVideoExtensionCommand(self: *const T, pDesc: ?*const D3D12_VIDEO_EXTENSION_COMMAND_DESC, pCreationParameters: ?*const anyopaque, CreationParametersDataSizeInBytes: usize, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession, riid: ?*const Guid, ppVideoExtensionCommand: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice2.VTable, @ptrCast(self.vtable)).CreateVideoExtensionCommand(@as(*const ID3D12VideoDevice2, @ptrCast(self)), pDesc, pCreationParameters, CreationParametersDataSizeInBytes, pProtectedResourceSession, riid, ppVideoExtensionCommand);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice2_ExecuteExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pExecutionParameters: ?*const anyopaque, ExecutionParametersSizeInBytes: usize, pOutputData: ?*anyopaque, OutputDataSizeInBytes: usize) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice2.VTable, @ptrCast(self.vtable)).ExecuteExtensionCommand(@as(*const ID3D12VideoDevice2, @ptrCast(self)), pExtensionCommand, pExecutionParameters, ExecutionParametersSizeInBytes, pOutputData, OutputDataSizeInBytes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDecodeCommandList2_Value = Guid.initString("6e120880-c114-4153-8036-d247051e1729");
|
|
pub const IID_ID3D12VideoDecodeCommandList2 = &IID_ID3D12VideoDecodeCommandList2_Value;
|
|
pub const ID3D12VideoDecodeCommandList2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDecodeCommandList1.VTable,
|
|
SetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
InitializeExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ExecuteExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDecodeCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDecodeCommandList1.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(self: *const T, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList2.VTable, @ptrCast(self.vtable)).SetProtectedResourceSession(@as(*const ID3D12VideoDecodeCommandList2, @ptrCast(self)), pProtectedResourceSession);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pInitializationParameters: ?*const anyopaque, InitializationParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList2.VTable, @ptrCast(self.vtable)).InitializeExtensionCommand(@as(*const ID3D12VideoDecodeCommandList2, @ptrCast(self)), pExtensionCommand, pInitializationParameters, InitializationParametersSizeInBytes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pExecutionParameters: ?*const anyopaque, ExecutionParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoDecodeCommandList2.VTable, @ptrCast(self.vtable)).ExecuteExtensionCommand(@as(*const ID3D12VideoDecodeCommandList2, @ptrCast(self)), pExtensionCommand, pExecutionParameters, ExecutionParametersSizeInBytes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoProcessCommandList2_Value = Guid.initString("db525ae4-6ad6-473c-baa7-59b2e37082e4");
|
|
pub const IID_ID3D12VideoProcessCommandList2 = &IID_ID3D12VideoProcessCommandList2_Value;
|
|
pub const ID3D12VideoProcessCommandList2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoProcessCommandList1.VTable,
|
|
SetProtectedResourceSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pProtectedResourceSession: ?*ID3D12ProtectedResourceSession,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
InitializeExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ExecuteExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoProcessCommandList2,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoProcessCommandList1.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList2_SetProtectedResourceSession(self: *const T, pProtectedResourceSession: ?*ID3D12ProtectedResourceSession) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList2.VTable, @ptrCast(self.vtable)).SetProtectedResourceSession(@as(*const ID3D12VideoProcessCommandList2, @ptrCast(self)), pProtectedResourceSession);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList2_InitializeExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pInitializationParameters: ?*const anyopaque, InitializationParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList2.VTable, @ptrCast(self.vtable)).InitializeExtensionCommand(@as(*const ID3D12VideoProcessCommandList2, @ptrCast(self)), pExtensionCommand, pInitializationParameters, InitializationParametersSizeInBytes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pExecutionParameters: ?*const anyopaque, ExecutionParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoProcessCommandList2.VTable, @ptrCast(self.vtable)).ExecuteExtensionCommand(@as(*const ID3D12VideoProcessCommandList2, @ptrCast(self)), pExtensionCommand, pExecutionParameters, ExecutionParametersSizeInBytes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoEncodeCommandList1_Value = Guid.initString("94971eca-2bdb-4769-88cf-3675ea757ebc");
|
|
pub const IID_ID3D12VideoEncodeCommandList1 = &IID_ID3D12VideoEncodeCommandList1_Value;
|
|
pub const ID3D12VideoEncodeCommandList1 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoEncodeCommandList.VTable,
|
|
InitializeExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList1,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList1,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pInitializationParameters: ?*const anyopaque,
|
|
InitializationParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ExecuteExtensionCommand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList1,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList1,
|
|
pExtensionCommand: ?*ID3D12VideoExtensionCommand,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pExecutionParameters: ?*const anyopaque,
|
|
ExecutionParametersSizeInBytes: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoEncodeCommandList.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pInitializationParameters: ?*const anyopaque, InitializationParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList1.VTable, @ptrCast(self.vtable)).InitializeExtensionCommand(@as(*const ID3D12VideoEncodeCommandList1, @ptrCast(self)), pExtensionCommand, pInitializationParameters, InitializationParametersSizeInBytes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(self: *const T, pExtensionCommand: ?*ID3D12VideoExtensionCommand, pExecutionParameters: ?*const anyopaque, ExecutionParametersSizeInBytes: usize) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList1.VTable, @ptrCast(self.vtable)).ExecuteExtensionCommand(@as(*const ID3D12VideoEncodeCommandList1, @ptrCast(self)), pExtensionCommand, pExecutionParameters, ExecutionParametersSizeInBytes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE = enum(i32) {
|
|
ABSOLUTE_QP_MAP = 0,
|
|
CQP = 1,
|
|
CBR = 2,
|
|
VBR = 3,
|
|
QVBR = 4,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE.ABSOLUTE_QP_MAP;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE.CQP;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE.CBR;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE.VBR;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE.QVBR;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
ENABLE_DELTA_QP = 1,
|
|
ENABLE_FRAME_ANALYSIS = 2,
|
|
ENABLE_QP_RANGE = 4,
|
|
ENABLE_INITIAL_QP = 8,
|
|
ENABLE_MAX_FRAME_SIZE = 16,
|
|
ENABLE_VBV_SIZES = 32,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
ENABLE_DELTA_QP: u1 = 0,
|
|
ENABLE_FRAME_ANALYSIS: u1 = 0,
|
|
ENABLE_QP_RANGE: u1 = 0,
|
|
ENABLE_INITIAL_QP: u1 = 0,
|
|
ENABLE_MAX_FRAME_SIZE: u1 = 0,
|
|
ENABLE_VBV_SIZES: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.NONE) else 0)
|
|
| (if (o.ENABLE_DELTA_QP == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_DELTA_QP) else 0)
|
|
| (if (o.ENABLE_FRAME_ANALYSIS == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_FRAME_ANALYSIS) else 0)
|
|
| (if (o.ENABLE_QP_RANGE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_QP_RANGE) else 0)
|
|
| (if (o.ENABLE_INITIAL_QP == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_INITIAL_QP) else 0)
|
|
| (if (o.ENABLE_MAX_FRAME_SIZE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_MAX_FRAME_SIZE) else 0)
|
|
| (if (o.ENABLE_VBV_SIZES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_VBV_SIZES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_DELTA_QP;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_FRAME_ANALYSIS;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_QP_RANGE;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_INITIAL_QP;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_MAX_FRAME_SIZE;
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.ENABLE_VBV_SIZES;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP = extern struct {
|
|
ConstantQP_FullIntracodedFrame: u32,
|
|
ConstantQP_InterPredictedFrame_PrevRefOnly: u32,
|
|
ConstantQP_InterPredictedFrame_BiDirectionalRef: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR = extern struct {
|
|
InitialQP: u32,
|
|
MinQP: u32,
|
|
MaxQP: u32,
|
|
MaxFrameBitSize: u64,
|
|
TargetBitRate: u64,
|
|
VBVCapacity: u64,
|
|
InitialVBVFullness: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR = extern struct {
|
|
InitialQP: u32,
|
|
MinQP: u32,
|
|
MaxQP: u32,
|
|
MaxFrameBitSize: u64,
|
|
TargetAvgBitRate: u64,
|
|
PeakBitRate: u64,
|
|
VBVCapacity: u64,
|
|
InitialVBVFullness: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR = extern struct {
|
|
InitialQP: u32,
|
|
MinQP: u32,
|
|
MaxQP: u32,
|
|
MaxFrameBitSize: u64,
|
|
TargetAvgBitRate: u64,
|
|
PeakBitRate: u64,
|
|
ConstantQualityTarget: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pConfiguration_CQP: ?*const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP,
|
|
pConfiguration_CBR: ?*const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR,
|
|
pConfiguration_VBR: ?*const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR,
|
|
pConfiguration_QVBR: ?*const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RATE_CONTROL = extern struct {
|
|
Mode: D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE,
|
|
Flags: D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS,
|
|
ConfigParams: D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS,
|
|
TargetFrameRate: DXGI_RATIONAL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC = enum(i32) {
|
|
@"264" = 0,
|
|
EVC = 1,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_H264 = D3D12_VIDEO_ENCODER_CODEC.@"264";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_HEVC = D3D12_VIDEO_ENCODER_CODEC.EVC;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
IsSupported: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_H264 = enum(i32) {
|
|
MAIN = 0,
|
|
HIGH = 1,
|
|
HIGH_10 = 2,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = D3D12_VIDEO_ENCODER_PROFILE_H264.MAIN;
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = D3D12_VIDEO_ENCODER_PROFILE_H264.HIGH;
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = D3D12_VIDEO_ENCODER_PROFILE_H264.HIGH_10;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_HEVC = enum(i32) {
|
|
N = 0,
|
|
@"10" = 1,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = D3D12_VIDEO_ENCODER_PROFILE_HEVC.N;
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = D3D12_VIDEO_ENCODER_PROFILE_HEVC.@"10";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PROFILE_DESC = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264Profile: ?*D3D12_VIDEO_ENCODER_PROFILE_H264,
|
|
pHEVCProfile: ?*D3D12_VIDEO_ENCODER_PROFILE_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264 = enum(i32) {
|
|
@"1" = 0,
|
|
@"1b" = 1,
|
|
@"11" = 2,
|
|
@"12" = 3,
|
|
@"13" = 4,
|
|
@"2" = 5,
|
|
@"21" = 6,
|
|
@"22" = 7,
|
|
@"3" = 8,
|
|
@"31" = 9,
|
|
@"32" = 10,
|
|
@"4" = 11,
|
|
@"41" = 12,
|
|
@"42" = 13,
|
|
@"5" = 14,
|
|
@"51" = 15,
|
|
@"52" = 16,
|
|
@"6" = 17,
|
|
@"61" = 18,
|
|
@"62" = 19,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_1 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"1";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_1b = D3D12_VIDEO_ENCODER_LEVELS_H264.@"1b";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_11 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"11";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_12 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"12";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_13 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"13";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_2 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"2";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_21 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"21";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_22 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"22";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_3 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"3";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_31 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"31";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_32 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"32";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_4 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"4";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_41 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"41";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_42 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"42";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_5 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"5";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_51 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"51";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_52 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"52";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_6 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"6";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_61 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"61";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_H264_62 = D3D12_VIDEO_ENCODER_LEVELS_H264.@"62";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_TIER_HEVC = enum(i32) {
|
|
MAIN = 0,
|
|
HIGH = 1,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = D3D12_VIDEO_ENCODER_TIER_HEVC.MAIN;
|
|
pub const D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = D3D12_VIDEO_ENCODER_TIER_HEVC.HIGH;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC = enum(i32) {
|
|
@"1" = 0,
|
|
@"2" = 1,
|
|
@"21" = 2,
|
|
@"3" = 3,
|
|
@"31" = 4,
|
|
@"4" = 5,
|
|
@"41" = 6,
|
|
@"5" = 7,
|
|
@"51" = 8,
|
|
@"52" = 9,
|
|
@"6" = 10,
|
|
@"61" = 11,
|
|
@"62" = 12,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"1";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"2";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"21";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"3";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"31";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"4";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"41";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"5";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"51";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"52";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"6";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"61";
|
|
pub const D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = D3D12_VIDEO_ENCODER_LEVELS_HEVC.@"62";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC = extern struct {
|
|
Level: D3D12_VIDEO_ENCODER_LEVELS_HEVC,
|
|
Tier: D3D12_VIDEO_ENCODER_TIER_HEVC,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_LEVEL_SETTING = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264LevelSetting: ?*D3D12_VIDEO_ENCODER_LEVELS_H264,
|
|
pHEVCLevelSetting: ?*D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
IsSupported: BOOL,
|
|
MinSupportedLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
MaxSupportedLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC = extern struct {
|
|
Width: u32,
|
|
Height: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC = extern struct {
|
|
WidthRatio: u32,
|
|
HeightRatio: u32,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
ResolutionRatiosCount: u32,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
ResolutionRatiosCount: u32,
|
|
IsSupported: BOOL,
|
|
MinResolutionSupported: D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
MaxResolutionSupported: D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
ResolutionWidthMultipleRequirement: u32,
|
|
ResolutionHeightMultipleRequirement: u32,
|
|
pResolutionRatios: ?*D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
Format: DXGI_FORMAT,
|
|
IsSupported: BOOL,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
RateControlMode: D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE,
|
|
IsSupported: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE = enum(i32) {
|
|
NONE = 0,
|
|
ROW_BASED = 1,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE.ROW_BASED;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
Level: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
IntraRefreshMode: D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE,
|
|
IsSupported: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = enum(i32) {
|
|
FULL_FRAME = 0,
|
|
BYTES_PER_SUBREGION = 1,
|
|
SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2,
|
|
UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3,
|
|
UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE.FULL_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE.BYTES_PER_SUBREGION;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE.SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE.UNIFORM_PARTITIONING_ROWS_PER_SUBREGION;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE.UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
Level: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
SubregionMode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE,
|
|
IsSupported: BOOL,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_HEAP_FLAGS = enum(u32) {
|
|
E = 0,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
E: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_HEAP_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_HEAP_FLAGS, @enumFromInt(
|
|
(if (o.E == 1) @intFromEnum(D3D12_VIDEO_ENCODER_HEAP_FLAGS.E) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = D3D12_VIDEO_ENCODER_HEAP_FLAGS.E;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_HEAP_DESC = extern struct {
|
|
NodeMask: u32,
|
|
Flags: D3D12_VIDEO_ENCODER_HEAP_FLAGS,
|
|
EncodeCodec: D3D12_VIDEO_ENCODER_CODEC,
|
|
EncodeProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
EncodeLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
ResolutionsListCount: u32,
|
|
pResolutionList: ?*const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE = extern struct {
|
|
HeapDesc: D3D12_VIDEO_ENCODER_HEAP_DESC,
|
|
IsSupported: BOOL,
|
|
MemoryPoolL0Size: u64,
|
|
MemoryPoolL1Size: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
CABAC_ENCODING_SUPPORT = 1,
|
|
INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 2,
|
|
BFRAME_LTR_COMBINED_SUPPORT = 4,
|
|
ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 8,
|
|
DIRECT_SPATIAL_ENCODING_SUPPORT = 16,
|
|
DIRECT_TEMPORAL_ENCODING_SUPPORT = 32,
|
|
CONSTRAINED_INTRAPREDICTION_SUPPORT = 64,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
CABAC_ENCODING_SUPPORT: u1 = 0,
|
|
INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT: u1 = 0,
|
|
BFRAME_LTR_COMBINED_SUPPORT: u1 = 0,
|
|
ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT: u1 = 0,
|
|
DIRECT_SPATIAL_ENCODING_SUPPORT: u1 = 0,
|
|
DIRECT_TEMPORAL_ENCODING_SUPPORT: u1 = 0,
|
|
CONSTRAINED_INTRAPREDICTION_SUPPORT: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.NONE) else 0)
|
|
| (if (o.CABAC_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.CABAC_ENCODING_SUPPORT) else 0)
|
|
| (if (o.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT) else 0)
|
|
| (if (o.BFRAME_LTR_COMBINED_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.BFRAME_LTR_COMBINED_SUPPORT) else 0)
|
|
| (if (o.ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT) else 0)
|
|
| (if (o.DIRECT_SPATIAL_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.DIRECT_SPATIAL_ENCODING_SUPPORT) else 0)
|
|
| (if (o.DIRECT_TEMPORAL_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.DIRECT_TEMPORAL_ENCODING_SUPPORT) else 0)
|
|
| (if (o.CONSTRAINED_INTRAPREDICTION_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.CONSTRAINED_INTRAPREDICTION_SUPPORT) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.CABAC_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.BFRAME_LTR_COMBINED_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.DIRECT_SPATIAL_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.DIRECT_TEMPORAL_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.CONSTRAINED_INTRAPREDICTION_SUPPORT;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES = enum(i32) {
|
|
@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED" = 0,
|
|
@"1_DISABLE_ALL_SLICE_BLOCK_EDGES" = 1,
|
|
@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS" = 2,
|
|
@"3_USE_TWO_STAGE_DEBLOCKING" = 3,
|
|
@"4_DISABLE_CHROMA_BLOCK_EDGES" = 4,
|
|
@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES" = 5,
|
|
@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING" = 6,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"1_DISABLE_ALL_SLICE_BLOCK_EDGES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"3_USE_TWO_STAGE_DEBLOCKING";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"4_DISABLE_CHROMA_BLOCK_EDGES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES.@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED" = 1,
|
|
@"1_DISABLE_ALL_SLICE_BLOCK_EDGES" = 2,
|
|
@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS" = 4,
|
|
@"3_USE_TWO_STAGE_DEBLOCKING" = 8,
|
|
@"4_DISABLE_CHROMA_BLOCK_EDGES" = 16,
|
|
@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES" = 32,
|
|
@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING" = 64,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED": u1 = 0,
|
|
@"1_DISABLE_ALL_SLICE_BLOCK_EDGES": u1 = 0,
|
|
@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS": u1 = 0,
|
|
@"3_USE_TWO_STAGE_DEBLOCKING": u1 = 0,
|
|
@"4_DISABLE_CHROMA_BLOCK_EDGES": u1 = 0,
|
|
@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES": u1 = 0,
|
|
@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING": u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.NONE) else 0)
|
|
| (if (o.@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED") else 0)
|
|
| (if (o.@"1_DISABLE_ALL_SLICE_BLOCK_EDGES" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"1_DISABLE_ALL_SLICE_BLOCK_EDGES") else 0)
|
|
| (if (o.@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS") else 0)
|
|
| (if (o.@"3_USE_TWO_STAGE_DEBLOCKING" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"3_USE_TWO_STAGE_DEBLOCKING") else 0)
|
|
| (if (o.@"4_DISABLE_CHROMA_BLOCK_EDGES" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"4_DISABLE_CHROMA_BLOCK_EDGES") else 0)
|
|
| (if (o.@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES") else 0)
|
|
| (if (o.@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING" == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING") else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_1_DISABLE_ALL_SLICE_BLOCK_EDGES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"1_DISABLE_ALL_SLICE_BLOCK_EDGES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"2_DISABLE_SLICE_BOUNDARIES_BLOCKS";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_3_USE_TWO_STAGE_DEBLOCKING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"3_USE_TWO_STAGE_DEBLOCKING";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_4_DISABLE_CHROMA_BLOCK_EDGES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"4_DISABLE_CHROMA_BLOCK_EDGES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.@"6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 = extern struct {
|
|
SupportFlags: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS,
|
|
DisableDeblockingFilterSupportedModes: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
BFRAME_LTR_COMBINED_SUPPORT = 1,
|
|
INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 2,
|
|
CONSTRAINED_INTRAPREDICTION_SUPPORT = 4,
|
|
SAO_FILTER_SUPPORT = 8,
|
|
ASYMETRIC_MOTION_PARTITION_SUPPORT = 16,
|
|
ASYMETRIC_MOTION_PARTITION_REQUIRED = 32,
|
|
TRANSFORM_SKIP_SUPPORT = 64,
|
|
DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 128,
|
|
P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 256,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
BFRAME_LTR_COMBINED_SUPPORT: u1 = 0,
|
|
INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT: u1 = 0,
|
|
CONSTRAINED_INTRAPREDICTION_SUPPORT: u1 = 0,
|
|
SAO_FILTER_SUPPORT: u1 = 0,
|
|
ASYMETRIC_MOTION_PARTITION_SUPPORT: u1 = 0,
|
|
ASYMETRIC_MOTION_PARTITION_REQUIRED: u1 = 0,
|
|
TRANSFORM_SKIP_SUPPORT: u1 = 0,
|
|
DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT: u1 = 0,
|
|
P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.NONE) else 0)
|
|
| (if (o.BFRAME_LTR_COMBINED_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.BFRAME_LTR_COMBINED_SUPPORT) else 0)
|
|
| (if (o.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT) else 0)
|
|
| (if (o.CONSTRAINED_INTRAPREDICTION_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.CONSTRAINED_INTRAPREDICTION_SUPPORT) else 0)
|
|
| (if (o.SAO_FILTER_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.SAO_FILTER_SUPPORT) else 0)
|
|
| (if (o.ASYMETRIC_MOTION_PARTITION_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.ASYMETRIC_MOTION_PARTITION_SUPPORT) else 0)
|
|
| (if (o.ASYMETRIC_MOTION_PARTITION_REQUIRED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.ASYMETRIC_MOTION_PARTITION_REQUIRED) else 0)
|
|
| (if (o.TRANSFORM_SKIP_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.TRANSFORM_SKIP_SUPPORT) else 0)
|
|
| (if (o.DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT) else 0)
|
|
| (if (o.P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.BFRAME_LTR_COMBINED_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.CONSTRAINED_INTRAPREDICTION_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.SAO_FILTER_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.ASYMETRIC_MOTION_PARTITION_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.ASYMETRIC_MOTION_PARTITION_REQUIRED;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.TRANSFORM_SKIP_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE = enum(i32) {
|
|
@"8x8" = 0,
|
|
@"16x16" = 1,
|
|
@"32x32" = 2,
|
|
@"64x64" = 3,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE.@"8x8";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE.@"16x16";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE.@"32x32";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE.@"64x64";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE = enum(i32) {
|
|
@"4x4" = 0,
|
|
@"8x8" = 1,
|
|
@"16x16" = 2,
|
|
@"32x32" = 3,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE.@"4x4";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE.@"8x8";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE.@"16x16";
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE.@"32x32";
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC = extern struct {
|
|
SupportFlags: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS,
|
|
MinLumaCodingUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE,
|
|
MaxLumaCodingUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE,
|
|
MinLumaTransformUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE,
|
|
MaxLumaTransformUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE,
|
|
max_transform_hierarchy_depth_inter: u8,
|
|
max_transform_hierarchy_depth_intra: u8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264Support: ?*D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264,
|
|
pHEVCSupport: ?*D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
IsSupported: BOOL,
|
|
CodecSupportLimits: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 = extern struct {
|
|
MaxL0ReferencesForP: u32,
|
|
MaxL0ReferencesForB: u32,
|
|
MaxL1ReferencesForB: u32,
|
|
MaxLongTermReferences: u32,
|
|
MaxDPBCapacity: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC = extern struct {
|
|
MaxL0ReferencesForP: u32,
|
|
MaxL0ReferencesForB: u32,
|
|
MaxL1ReferencesForB: u32,
|
|
MaxLongTermReferences: u32,
|
|
MaxDPBCapacity: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264Support: ?*D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264,
|
|
pHEVCSupport: ?*D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
IsSupported: BOOL,
|
|
PictureSupport: D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
GENERAL_SUPPORT_OK = 1,
|
|
RATE_CONTROL_RECONFIGURATION_AVAILABLE = 2,
|
|
RESOLUTION_RECONFIGURATION_AVAILABLE = 4,
|
|
RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 8,
|
|
RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 16,
|
|
RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 32,
|
|
RATE_CONTROL_DELTA_QP_AVAILABLE = 64,
|
|
SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 128,
|
|
RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 256,
|
|
RATE_CONTROL_INITIAL_QP_AVAILABLE = 512,
|
|
RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 1024,
|
|
SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 2048,
|
|
MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 4096,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
GENERAL_SUPPORT_OK: u1 = 0,
|
|
RATE_CONTROL_RECONFIGURATION_AVAILABLE: u1 = 0,
|
|
RESOLUTION_RECONFIGURATION_AVAILABLE: u1 = 0,
|
|
RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE: u1 = 0,
|
|
RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE: u1 = 0,
|
|
RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS: u1 = 0,
|
|
RATE_CONTROL_DELTA_QP_AVAILABLE: u1 = 0,
|
|
SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE: u1 = 0,
|
|
RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE: u1 = 0,
|
|
RATE_CONTROL_INITIAL_QP_AVAILABLE: u1 = 0,
|
|
RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE: u1 = 0,
|
|
SEQUENCE_GOP_RECONFIGURATION_AVAILABLE: u1 = 0,
|
|
MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_SUPPORT_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.NONE) else 0)
|
|
| (if (o.GENERAL_SUPPORT_OK == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.GENERAL_SUPPORT_OK) else 0)
|
|
| (if (o.RATE_CONTROL_RECONFIGURATION_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_RECONFIGURATION_AVAILABLE) else 0)
|
|
| (if (o.RESOLUTION_RECONFIGURATION_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RESOLUTION_RECONFIGURATION_AVAILABLE) else 0)
|
|
| (if (o.RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE) else 0)
|
|
| (if (o.RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE) else 0)
|
|
| (if (o.RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS) else 0)
|
|
| (if (o.RATE_CONTROL_DELTA_QP_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_DELTA_QP_AVAILABLE) else 0)
|
|
| (if (o.SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE) else 0)
|
|
| (if (o.RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE) else 0)
|
|
| (if (o.RATE_CONTROL_INITIAL_QP_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_INITIAL_QP_AVAILABLE) else 0)
|
|
| (if (o.RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE) else 0)
|
|
| (if (o.SEQUENCE_GOP_RECONFIGURATION_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.SEQUENCE_GOP_RECONFIGURATION_AVAILABLE) else 0)
|
|
| (if (o.MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.GENERAL_SUPPORT_OK;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_RECONFIGURATION_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RESOLUTION_RECONFIGURATION_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_DELTA_QP_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_INITIAL_QP_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.SEQUENCE_GOP_RECONFIGURATION_AVAILABLE;
|
|
pub const D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
USE_CONSTRAINED_INTRAPREDICTION = 1,
|
|
USE_ADAPTIVE_8x8_TRANSFORM = 2,
|
|
ENABLE_CABAC_ENCODING = 4,
|
|
ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 8,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
USE_CONSTRAINED_INTRAPREDICTION: u1 = 0,
|
|
USE_ADAPTIVE_8x8_TRANSFORM: u1 = 0,
|
|
ENABLE_CABAC_ENCODING: u1 = 0,
|
|
ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.NONE) else 0)
|
|
| (if (o.USE_CONSTRAINED_INTRAPREDICTION == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.USE_CONSTRAINED_INTRAPREDICTION) else 0)
|
|
| (if (o.USE_ADAPTIVE_8x8_TRANSFORM == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.USE_ADAPTIVE_8x8_TRANSFORM) else 0)
|
|
| (if (o.ENABLE_CABAC_ENCODING == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.ENABLE_CABAC_ENCODING) else 0)
|
|
| (if (o.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.USE_CONSTRAINED_INTRAPREDICTION;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.USE_ADAPTIVE_8x8_TRANSFORM;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.ENABLE_CABAC_ENCODING;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES = enum(i32) {
|
|
DISABLED = 0,
|
|
TEMPORAL = 1,
|
|
SPATIAL = 2,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES.DISABLED;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES.TEMPORAL;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES.SPATIAL;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 = extern struct {
|
|
ConfigurationFlags: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS,
|
|
DirectModeConfig: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES,
|
|
DisableDeblockingFilterConfig: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
DISABLE_LOOP_FILTER_ACROSS_SLICES = 1,
|
|
ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 2,
|
|
ENABLE_SAO_FILTER = 4,
|
|
ENABLE_LONG_TERM_REFERENCES = 8,
|
|
USE_ASYMETRIC_MOTION_PARTITION = 16,
|
|
ENABLE_TRANSFORM_SKIPPING = 32,
|
|
USE_CONSTRAINED_INTRAPREDICTION = 64,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
DISABLE_LOOP_FILTER_ACROSS_SLICES: u1 = 0,
|
|
ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES: u1 = 0,
|
|
ENABLE_SAO_FILTER: u1 = 0,
|
|
ENABLE_LONG_TERM_REFERENCES: u1 = 0,
|
|
USE_ASYMETRIC_MOTION_PARTITION: u1 = 0,
|
|
ENABLE_TRANSFORM_SKIPPING: u1 = 0,
|
|
USE_CONSTRAINED_INTRAPREDICTION: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.NONE) else 0)
|
|
| (if (o.DISABLE_LOOP_FILTER_ACROSS_SLICES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.DISABLE_LOOP_FILTER_ACROSS_SLICES) else 0)
|
|
| (if (o.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES) else 0)
|
|
| (if (o.ENABLE_SAO_FILTER == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_SAO_FILTER) else 0)
|
|
| (if (o.ENABLE_LONG_TERM_REFERENCES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_LONG_TERM_REFERENCES) else 0)
|
|
| (if (o.USE_ASYMETRIC_MOTION_PARTITION == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.USE_ASYMETRIC_MOTION_PARTITION) else 0)
|
|
| (if (o.ENABLE_TRANSFORM_SKIPPING == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_TRANSFORM_SKIPPING) else 0)
|
|
| (if (o.USE_CONSTRAINED_INTRAPREDICTION == 1) @intFromEnum(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.USE_CONSTRAINED_INTRAPREDICTION) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.DISABLE_LOOP_FILTER_ACROSS_SLICES;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_SAO_FILTER;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_LONG_TERM_REFERENCES;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.USE_ASYMETRIC_MOTION_PARTITION;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.ENABLE_TRANSFORM_SKIPPING;
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.USE_CONSTRAINED_INTRAPREDICTION;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC = extern struct {
|
|
ConfigurationFlags: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS,
|
|
MinLumaCodingUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE,
|
|
MaxLumaCodingUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE,
|
|
MinLumaTransformUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE,
|
|
MaxLumaTransformUnitSize: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE,
|
|
max_transform_hierarchy_depth_inter: u8,
|
|
max_transform_hierarchy_depth_intra: u8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264Config: ?*D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264,
|
|
pHEVCConfig: ?*D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_INTRA_REFRESH = extern struct {
|
|
Mode: D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE,
|
|
IntraRefreshDuration: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE = enum(i32) {
|
|
MAXIMUM = 0,
|
|
FULL_PIXEL = 1,
|
|
HALF_PIXEL = 2,
|
|
QUARTER_PIXEL = 3,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE.MAXIMUM;
|
|
pub const D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE.FULL_PIXEL;
|
|
pub const D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE.HALF_PIXEL;
|
|
pub const D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE.QUARTER_PIXEL;
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS = extern struct {
|
|
MaxSubregionsNumber: u32,
|
|
MaxIntraRefreshFrameDuration: u32,
|
|
SubregionBlockPixelsSize: u32,
|
|
QPMapRegionPixelsSize: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
CODEC_NOT_SUPPORTED = 1,
|
|
INPUT_FORMAT_NOT_SUPPORTED = 8,
|
|
CODEC_CONFIGURATION_NOT_SUPPORTED = 16,
|
|
RATE_CONTROL_MODE_NOT_SUPPORTED = 32,
|
|
RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 64,
|
|
INTRA_REFRESH_MODE_NOT_SUPPORTED = 128,
|
|
SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 256,
|
|
RESOLUTION_NOT_SUPPORTED_IN_LIST = 512,
|
|
GOP_STRUCTURE_NOT_SUPPORTED = 2048,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
CODEC_NOT_SUPPORTED: u1 = 0,
|
|
INPUT_FORMAT_NOT_SUPPORTED: u1 = 0,
|
|
CODEC_CONFIGURATION_NOT_SUPPORTED: u1 = 0,
|
|
RATE_CONTROL_MODE_NOT_SUPPORTED: u1 = 0,
|
|
RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED: u1 = 0,
|
|
INTRA_REFRESH_MODE_NOT_SUPPORTED: u1 = 0,
|
|
SUBREGION_LAYOUT_MODE_NOT_SUPPORTED: u1 = 0,
|
|
RESOLUTION_NOT_SUPPORTED_IN_LIST: u1 = 0,
|
|
GOP_STRUCTURE_NOT_SUPPORTED: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_VALIDATION_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.NONE) else 0)
|
|
| (if (o.CODEC_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.CODEC_NOT_SUPPORTED) else 0)
|
|
| (if (o.INPUT_FORMAT_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.INPUT_FORMAT_NOT_SUPPORTED) else 0)
|
|
| (if (o.CODEC_CONFIGURATION_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.CODEC_CONFIGURATION_NOT_SUPPORTED) else 0)
|
|
| (if (o.RATE_CONTROL_MODE_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RATE_CONTROL_MODE_NOT_SUPPORTED) else 0)
|
|
| (if (o.RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED) else 0)
|
|
| (if (o.INTRA_REFRESH_MODE_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.INTRA_REFRESH_MODE_NOT_SUPPORTED) else 0)
|
|
| (if (o.SUBREGION_LAYOUT_MODE_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.SUBREGION_LAYOUT_MODE_NOT_SUPPORTED) else 0)
|
|
| (if (o.RESOLUTION_NOT_SUPPORTED_IN_LIST == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RESOLUTION_NOT_SUPPORTED_IN_LIST) else 0)
|
|
| (if (o.GOP_STRUCTURE_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.GOP_STRUCTURE_NOT_SUPPORTED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.CODEC_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.INPUT_FORMAT_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.CODEC_CONFIGURATION_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RATE_CONTROL_MODE_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.INTRA_REFRESH_MODE_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.SUBREGION_LAYOUT_MODE_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.RESOLUTION_NOT_SUPPORTED_IN_LIST;
|
|
pub const D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.GOP_STRUCTURE_NOT_SUPPORTED;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 = extern struct {
|
|
GOPLength: u32,
|
|
PPicturePeriod: u32,
|
|
pic_order_cnt_type: u8,
|
|
log2_max_frame_num_minus4: u8,
|
|
log2_max_pic_order_cnt_lsb_minus4: u8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC = extern struct {
|
|
GOPLength: u32,
|
|
PPicturePeriod: u32,
|
|
log2_max_pic_order_cnt_lsb_minus4: u8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264GroupOfPictures: ?*D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264,
|
|
pHEVCGroupOfPictures: ?*D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
InputFormat: DXGI_FORMAT,
|
|
CodecConfiguration: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION,
|
|
CodecGopSequence: D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE,
|
|
RateControl: D3D12_VIDEO_ENCODER_RATE_CONTROL,
|
|
IntraRefresh: D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE,
|
|
SubregionFrameEncoding: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE,
|
|
ResolutionsListCount: u32,
|
|
pResolutionList: ?*const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
MaxReferenceFramesInDPB: u32,
|
|
ValidationFlags: D3D12_VIDEO_ENCODER_VALIDATION_FLAGS,
|
|
SupportFlags: D3D12_VIDEO_ENCODER_SUPPORT_FLAGS,
|
|
SuggestedProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
SuggestedLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
pResolutionDependentSupport: ?*D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS,
|
|
};
|
|
|
|
pub const D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = extern struct {
|
|
NodeIndex: u32,
|
|
Codec: D3D12_VIDEO_ENCODER_CODEC,
|
|
Profile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
InputFormat: DXGI_FORMAT,
|
|
PictureTargetResolution: D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
IsSupported: BOOL,
|
|
CompressedBitstreamBufferAccessAlignment: u32,
|
|
EncoderMetadataBufferAccessAlignment: u32,
|
|
MaxEncoderOutputMetadataBufferSize: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_FLAGS = enum(u32) {
|
|
E = 0,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
E: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_FLAGS, @enumFromInt(
|
|
(if (o.E == 1) @intFromEnum(D3D12_VIDEO_ENCODER_FLAGS.E) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_FLAG_NONE = D3D12_VIDEO_ENCODER_FLAGS.E;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_DESC = extern struct {
|
|
NodeMask: u32,
|
|
Flags: D3D12_VIDEO_ENCODER_FLAGS,
|
|
EncodeCodec: D3D12_VIDEO_ENCODER_CODEC,
|
|
EncodeProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
InputFormat: DXGI_FORMAT,
|
|
CodecConfiguration: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION,
|
|
MaxMotionEstimationPrecision: D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoEncoder_Value = Guid.initString("2e0d212d-8df9-44a6-a770-bb289b182737");
|
|
pub const IID_ID3D12VideoEncoder = &IID_ID3D12VideoEncoder_Value;
|
|
pub const ID3D12VideoEncoder = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetNodeMask: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetEncoderFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_FLAGS,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_FLAGS,
|
|
},
|
|
GetCodec: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_CODEC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_CODEC,
|
|
},
|
|
GetCodecProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCodecConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
dstCodecConfig: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
dstCodecConfig: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) DXGI_FORMAT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) DXGI_FORMAT,
|
|
},
|
|
GetMaxMotionEstimationPrecision: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoder,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetNodeMask(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetNodeMask(@as(*const ID3D12VideoEncoder, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetEncoderFlags(self: *const T) callconv(.Inline) D3D12_VIDEO_ENCODER_FLAGS {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetEncoderFlags(@as(*const ID3D12VideoEncoder, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetCodec(self: *const T) callconv(.Inline) D3D12_VIDEO_ENCODER_CODEC {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetCodec(@as(*const ID3D12VideoEncoder, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetCodecProfile(self: *const T, dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetCodecProfile(@as(*const ID3D12VideoEncoder, @ptrCast(self)), dstProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetCodecConfiguration(self: *const T, dstCodecConfig: D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetCodecConfiguration(@as(*const ID3D12VideoEncoder, @ptrCast(self)), dstCodecConfig);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetInputFormat(self: *const T) callconv(.Inline) DXGI_FORMAT {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetInputFormat(@as(*const ID3D12VideoEncoder, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(self: *const T) callconv(.Inline) D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE {
|
|
return @as(*const ID3D12VideoEncoder.VTable, @ptrCast(self.vtable)).GetMaxMotionEstimationPrecision(@as(*const ID3D12VideoEncoder, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoEncoderHeap_Value = Guid.initString("22b35d96-876a-44c0-b25e-fb8c9c7f1c4a");
|
|
pub const IID_ID3D12VideoEncoderHeap = &IID_ID3D12VideoEncoderHeap_Value;
|
|
pub const ID3D12VideoEncoderHeap = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12Pageable.VTable,
|
|
GetNodeMask: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetEncoderHeapFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_HEAP_FLAGS,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_HEAP_FLAGS,
|
|
},
|
|
GetCodec: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_CODEC,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) D3D12_VIDEO_ENCODER_CODEC,
|
|
},
|
|
GetCodecProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCodecLevel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
dstLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
dstLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetResolutionListCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetResolutionList: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
ResolutionsListCount: u32,
|
|
pResolutionList: [*]D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncoderHeap,
|
|
ResolutionsListCount: u32,
|
|
pResolutionList: [*]D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12Pageable.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetNodeMask(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetNodeMask(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetEncoderHeapFlags(self: *const T) callconv(.Inline) D3D12_VIDEO_ENCODER_HEAP_FLAGS {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetEncoderHeapFlags(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetCodec(self: *const T) callconv(.Inline) D3D12_VIDEO_ENCODER_CODEC {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetCodec(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetCodecProfile(self: *const T, dstProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetCodecProfile(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)), dstProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetCodecLevel(self: *const T, dstLevel: D3D12_VIDEO_ENCODER_LEVEL_SETTING) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetCodecLevel(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)), dstLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetResolutionListCount(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetResolutionListCount(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncoderHeap_GetResolutionList(self: *const T, ResolutionsListCount: u32, pResolutionList: [*]D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoEncoderHeap.VTable, @ptrCast(self.vtable)).GetResolutionList(@as(*const ID3D12VideoEncoderHeap, @ptrCast(self)), ResolutionsListCount, pResolutionList);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoDevice3_Value = Guid.initString("4243adb4-3a32-4666-973c-0ccc5625dc44");
|
|
pub const IID_ID3D12VideoDevice3 = &IID_ID3D12VideoDevice3_Value;
|
|
pub const ID3D12VideoDevice3 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoDevice2.VTable,
|
|
CreateVideoEncoder: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice3,
|
|
pDesc: ?*const D3D12_VIDEO_ENCODER_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoEncoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice3,
|
|
pDesc: ?*const D3D12_VIDEO_ENCODER_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoEncoder: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoEncoderHeap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoDevice3,
|
|
pDesc: ?*const D3D12_VIDEO_ENCODER_HEAP_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoEncoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoDevice3,
|
|
pDesc: ?*const D3D12_VIDEO_ENCODER_HEAP_DESC,
|
|
riid: ?*const Guid,
|
|
ppVideoEncoderHeap: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoDevice2.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice3_CreateVideoEncoder(self: *const T, pDesc: ?*const D3D12_VIDEO_ENCODER_DESC, riid: ?*const Guid, ppVideoEncoder: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice3.VTable, @ptrCast(self.vtable)).CreateVideoEncoder(@as(*const ID3D12VideoDevice3, @ptrCast(self)), pDesc, riid, ppVideoEncoder);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoDevice3_CreateVideoEncoderHeap(self: *const T, pDesc: ?*const D3D12_VIDEO_ENCODER_HEAP_DESC, riid: ?*const Guid, ppVideoEncoderHeap: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const ID3D12VideoDevice3.VTable, @ptrCast(self.vtable)).CreateVideoEncoderHeap(@as(*const ID3D12VideoDevice3, @ptrCast(self)), pDesc, riid, ppVideoEncoderHeap);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 = enum(i32) {
|
|
I_FRAME = 0,
|
|
P_FRAME = 1,
|
|
B_FRAME = 2,
|
|
IDR_FRAME = 3,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_H264.I_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_H264.P_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_H264.B_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_H264.IDR_FRAME;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 = extern struct {
|
|
ReconstructedPictureResourceIndex: u32,
|
|
IsLongTermReference: BOOL,
|
|
LongTermPictureIdx: u32,
|
|
PictureOrderCountNumber: u32,
|
|
FrameDecodingOrderNumber: u32,
|
|
TemporalLayerIndex: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
REQUEST_INTRA_CONSTRAINED_SLICES = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
REQUEST_INTRA_CONSTRAINED_SLICES: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS.NONE) else 0)
|
|
| (if (o.REQUEST_INTRA_CONSTRAINED_SLICES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS.REQUEST_INTRA_CONSTRAINED_SLICES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS.REQUEST_INTRA_CONSTRAINED_SLICES;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION = extern struct {
|
|
memory_management_control_operation: u8,
|
|
difference_of_pic_nums_minus1: u32,
|
|
long_term_pic_num: u32,
|
|
long_term_frame_idx: u32,
|
|
max_long_term_frame_idx_plus1: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION = extern struct {
|
|
modification_of_pic_nums_idc: u8,
|
|
abs_diff_pic_num_minus1: u32,
|
|
long_term_pic_num: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 = extern struct {
|
|
Flags: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS,
|
|
FrameType: D3D12_VIDEO_ENCODER_FRAME_TYPE_H264,
|
|
pic_parameter_set_id: u32,
|
|
idr_pic_id: u32,
|
|
PictureOrderCountNumber: u32,
|
|
FrameDecodingOrderNumber: u32,
|
|
TemporalLayerIndex: u32,
|
|
List0ReferenceFramesCount: u32,
|
|
pList0ReferenceFrames: ?*u32,
|
|
List1ReferenceFramesCount: u32,
|
|
pList1ReferenceFrames: ?*u32,
|
|
ReferenceFramesReconPictureDescriptorsCount: u32,
|
|
pReferenceFramesReconPictureDescriptors: ?*D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264,
|
|
adaptive_ref_pic_marking_mode_flag: u8,
|
|
RefPicMarkingOperationsCommandsCount: u32,
|
|
pRefPicMarkingOperationsCommands: ?*D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION,
|
|
List0RefPicModificationsCount: u32,
|
|
pList0RefPicModifications: ?*D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION,
|
|
List1RefPicModificationsCount: u32,
|
|
pList1RefPicModifications: ?*D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION,
|
|
QPMapValuesCount: u32,
|
|
pRateControlQPMap: ?*i8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC = enum(i32) {
|
|
I_FRAME = 0,
|
|
P_FRAME = 1,
|
|
B_FRAME = 2,
|
|
IDR_FRAME = 3,
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC.I_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC.P_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC.B_FRAME;
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC.IDR_FRAME;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC = extern struct {
|
|
ReconstructedPictureResourceIndex: u32,
|
|
IsRefUsedByCurrentPic: BOOL,
|
|
IsLongTermReference: BOOL,
|
|
PictureOrderCountNumber: u32,
|
|
TemporalLayerIndex: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
REQUEST_INTRA_CONSTRAINED_SLICES = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
REQUEST_INTRA_CONSTRAINED_SLICES: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS.NONE) else 0)
|
|
| (if (o.REQUEST_INTRA_CONSTRAINED_SLICES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS.REQUEST_INTRA_CONSTRAINED_SLICES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS.REQUEST_INTRA_CONSTRAINED_SLICES;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC = extern struct {
|
|
Flags: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS,
|
|
FrameType: D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC,
|
|
slice_pic_parameter_set_id: u32,
|
|
PictureOrderCountNumber: u32,
|
|
TemporalLayerIndex: u32,
|
|
List0ReferenceFramesCount: u32,
|
|
pList0ReferenceFrames: ?*u32,
|
|
List1ReferenceFramesCount: u32,
|
|
pList1ReferenceFrames: ?*u32,
|
|
ReferenceFramesReconPictureDescriptorsCount: u32,
|
|
pReferenceFramesReconPictureDescriptors: ?*D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC,
|
|
List0RefPicModificationsCount: u32,
|
|
pList0RefPicModifications: ?*u32,
|
|
List1RefPicModificationsCount: u32,
|
|
pList1RefPicModifications: ?*u32,
|
|
QPMapValuesCount: u32,
|
|
pRateControlQPMap: ?*i8,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pH264PicData: ?*D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264,
|
|
pHEVCPicData: ?*D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODE_REFERENCE_FRAMES = extern struct {
|
|
NumTexture2Ds: u32,
|
|
ppTexture2Ds: ?*?*ID3D12Resource,
|
|
pSubresources: ?*u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
USED_AS_REFERENCE_PICTURE = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
USED_AS_REFERENCE_PICTURE: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS.NONE) else 0)
|
|
| (if (o.USED_AS_REFERENCE_PICTURE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS.USED_AS_REFERENCE_PICTURE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS.USED_AS_REFERENCE_PICTURE;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC = extern struct {
|
|
IntraRefreshFrameIndex: u32,
|
|
Flags: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS,
|
|
PictureControlCodecData: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA,
|
|
ReferenceFrames: D3D12_VIDEO_ENCODE_REFERENCE_FRAMES,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
RESOLUTION_CHANGE = 1,
|
|
RATE_CONTROL_CHANGE = 2,
|
|
SUBREGION_LAYOUT_CHANGE = 4,
|
|
REQUEST_INTRA_REFRESH = 8,
|
|
GOP_SEQUENCE_CHANGE = 16,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
RESOLUTION_CHANGE: u1 = 0,
|
|
RATE_CONTROL_CHANGE: u1 = 0,
|
|
SUBREGION_LAYOUT_CHANGE: u1 = 0,
|
|
REQUEST_INTRA_REFRESH: u1 = 0,
|
|
GOP_SEQUENCE_CHANGE: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.NONE) else 0)
|
|
| (if (o.RESOLUTION_CHANGE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.RESOLUTION_CHANGE) else 0)
|
|
| (if (o.RATE_CONTROL_CHANGE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.RATE_CONTROL_CHANGE) else 0)
|
|
| (if (o.SUBREGION_LAYOUT_CHANGE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.SUBREGION_LAYOUT_CHANGE) else 0)
|
|
| (if (o.REQUEST_INTRA_REFRESH == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.REQUEST_INTRA_REFRESH) else 0)
|
|
| (if (o.GOP_SEQUENCE_CHANGE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.GOP_SEQUENCE_CHANGE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.NONE;
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.RESOLUTION_CHANGE;
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.RATE_CONTROL_CHANGE;
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.SUBREGION_LAYOUT_CHANGE;
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.REQUEST_INTRA_REFRESH;
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.GOP_SEQUENCE_CHANGE;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES = extern struct {
|
|
Anonymous: extern union {
|
|
MaxBytesPerSlice: u32,
|
|
NumberOfCodingUnitsPerSlice: u32,
|
|
NumberOfRowsPerSlice: u32,
|
|
NumberOfSlicesPerFrame: u32,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA = extern struct {
|
|
DataSize: u32,
|
|
Anonymous: extern union {
|
|
pSlicesPartition_H264: ?*const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES,
|
|
pSlicesPartition_HEVC: ?*const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES,
|
|
},
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC = extern struct {
|
|
Flags: D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS,
|
|
IntraRefreshConfig: D3D12_VIDEO_ENCODER_INTRA_REFRESH,
|
|
RateControl: D3D12_VIDEO_ENCODER_RATE_CONTROL,
|
|
PictureTargetResolution: D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
SelectedLayoutMode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE,
|
|
FrameSubregionsLayoutData: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA,
|
|
CodecGopSequence: D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS = extern struct {
|
|
SequenceControlDesc: D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC,
|
|
PictureControlDesc: D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC,
|
|
pInputFrame: ?*ID3D12Resource,
|
|
InputFrameSubresource: u32,
|
|
CurrentFrameBitstreamMetadataSize: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM = extern struct {
|
|
pBuffer: ?*ID3D12Resource,
|
|
FrameStartOffset: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE = extern struct {
|
|
pReconstructedPicture: ?*ID3D12Resource,
|
|
ReconstructedPictureSubresource: u32,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA = extern struct {
|
|
bSize: u64,
|
|
bStartOffset: u64,
|
|
bHeaderSize: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS = enum(u32) {
|
|
NO_ERROR = 0,
|
|
CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 1,
|
|
SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 2,
|
|
INVALID_REFERENCE_PICTURES = 4,
|
|
RECONFIGURATION_REQUEST_NOT_SUPPORTED = 8,
|
|
INVALID_METADATA_BUFFER_SOURCE = 16,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NO_ERROR: u1 = 0,
|
|
CODEC_PICTURE_CONTROL_NOT_SUPPORTED: u1 = 0,
|
|
SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED: u1 = 0,
|
|
INVALID_REFERENCE_PICTURES: u1 = 0,
|
|
RECONFIGURATION_REQUEST_NOT_SUPPORTED: u1 = 0,
|
|
INVALID_METADATA_BUFFER_SOURCE: u1 = 0,
|
|
}) D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS {
|
|
return @as(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS, @enumFromInt(
|
|
(if (o.NO_ERROR == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.NO_ERROR) else 0)
|
|
| (if (o.CODEC_PICTURE_CONTROL_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.CODEC_PICTURE_CONTROL_NOT_SUPPORTED) else 0)
|
|
| (if (o.SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED) else 0)
|
|
| (if (o.INVALID_REFERENCE_PICTURES == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.INVALID_REFERENCE_PICTURES) else 0)
|
|
| (if (o.RECONFIGURATION_REQUEST_NOT_SUPPORTED == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.RECONFIGURATION_REQUEST_NOT_SUPPORTED) else 0)
|
|
| (if (o.INVALID_METADATA_BUFFER_SOURCE == 1) @intFromEnum(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.INVALID_METADATA_BUFFER_SOURCE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.NO_ERROR;
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.CODEC_PICTURE_CONTROL_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.INVALID_REFERENCE_PICTURES;
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.RECONFIGURATION_REQUEST_NOT_SUPPORTED;
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.INVALID_METADATA_BUFFER_SOURCE;
|
|
|
|
pub const D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS = extern struct {
|
|
AverageQP: u64,
|
|
IntraCodingUnitsCount: u64,
|
|
InterCodingUnitsCount: u64,
|
|
SkipCodingUnitsCount: u64,
|
|
AverageMotionEstimationXDirection: u64,
|
|
AverageMotionEstimationYDirection: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_OUTPUT_METADATA = extern struct {
|
|
EncodeErrorFlags: u64,
|
|
EncodeStats: D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS,
|
|
EncodedBitstreamWrittenBytesCount: u64,
|
|
WrittenSubregionsCount: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER = extern struct {
|
|
pBuffer: ?*ID3D12Resource,
|
|
Offset: u64,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS = extern struct {
|
|
EncoderCodec: D3D12_VIDEO_ENCODER_CODEC,
|
|
EncoderProfile: D3D12_VIDEO_ENCODER_PROFILE_DESC,
|
|
EncoderInputFormat: DXGI_FORMAT,
|
|
EncodedPictureEffectiveResolution: D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC,
|
|
HWLayoutMetadata: D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS = extern struct {
|
|
ResolvedLayoutMetadata: D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER,
|
|
};
|
|
|
|
pub const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS = extern struct {
|
|
Bitstream: D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM,
|
|
ReconstructedPicture: D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE,
|
|
EncoderOutputMetadata: D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER,
|
|
};
|
|
|
|
// This COM type is Agile, not sure what that means
|
|
const IID_ID3D12VideoEncodeCommandList2_Value = Guid.initString("895491e2-e701-46a9-9a1f-8d3480ed867a");
|
|
pub const IID_ID3D12VideoEncodeCommandList2 = &IID_ID3D12VideoEncodeCommandList2_Value;
|
|
pub const ID3D12VideoEncodeCommandList2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: ID3D12VideoEncodeCommandList1.VTable,
|
|
EncodeFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList2,
|
|
pEncoder: ?*ID3D12VideoEncoder,
|
|
pHeap: ?*ID3D12VideoEncoderHeap,
|
|
pInputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS,
|
|
pOutputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList2,
|
|
pEncoder: ?*ID3D12VideoEncoder,
|
|
pHeap: ?*ID3D12VideoEncoderHeap,
|
|
pInputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS,
|
|
pOutputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
ResolveEncoderOutputMetadata: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ID3D12VideoEncodeCommandList2,
|
|
pInputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS,
|
|
pOutputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const ID3D12VideoEncodeCommandList2,
|
|
pInputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS,
|
|
pOutputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace ID3D12VideoEncodeCommandList1.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList2_EncodeFrame(self: *const T, pEncoder: ?*ID3D12VideoEncoder, pHeap: ?*ID3D12VideoEncoderHeap, pInputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS, pOutputArguments: ?*const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList2.VTable, @ptrCast(self.vtable)).EncodeFrame(@as(*const ID3D12VideoEncodeCommandList2, @ptrCast(self)), pEncoder, pHeap, pInputArguments, pOutputArguments);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(self: *const T, pInputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS, pOutputArguments: ?*const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS) callconv(.Inline) void {
|
|
return @as(*const ID3D12VideoEncodeCommandList2.VTable, @ptrCast(self.vtable)).ResolveEncoderOutputMetadata(@as(*const ID3D12VideoEncodeCommandList2, @ptrCast(self)), pInputArguments, pOutputArguments);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const CLSID_CMpeg4DecMediaObject_Value = Guid.initString("f371728a-6052-4d47-827c-d039335dfe0a");
|
|
pub const CLSID_CMpeg4DecMediaObject = &CLSID_CMpeg4DecMediaObject_Value;
|
|
|
|
const CLSID_CMpeg43DecMediaObject_Value = Guid.initString("cba9e78b-49a3-49ea-93d4-6bcba8c4de07");
|
|
pub const CLSID_CMpeg43DecMediaObject = &CLSID_CMpeg43DecMediaObject_Value;
|
|
|
|
const CLSID_CMpeg4sDecMediaObject_Value = Guid.initString("2a11bae2-fe6e-4249-864b-9e9ed6e8dbc2");
|
|
pub const CLSID_CMpeg4sDecMediaObject = &CLSID_CMpeg4sDecMediaObject_Value;
|
|
|
|
const CLSID_CMpeg4sDecMFT_Value = Guid.initString("5686a0d9-fe39-409f-9dff-3fdbc849f9f5");
|
|
pub const CLSID_CMpeg4sDecMFT = &CLSID_CMpeg4sDecMFT_Value;
|
|
|
|
const CLSID_CZuneM4S2DecMediaObject_Value = Guid.initString("c56fc25c-0fc6-404a-9503-b10bf51a8ab9");
|
|
pub const CLSID_CZuneM4S2DecMediaObject = &CLSID_CZuneM4S2DecMediaObject_Value;
|
|
|
|
const CLSID_CMpeg4EncMediaObject_Value = Guid.initString("24f258d8-c651-4042-93e4-ca654abb682c");
|
|
pub const CLSID_CMpeg4EncMediaObject = &CLSID_CMpeg4EncMediaObject_Value;
|
|
|
|
const CLSID_CMpeg4sEncMediaObject_Value = Guid.initString("6ec5a7be-d81e-4f9e-ada3-cd1bf262b6d8");
|
|
pub const CLSID_CMpeg4sEncMediaObject = &CLSID_CMpeg4sEncMediaObject_Value;
|
|
|
|
const CLSID_CMSSCDecMediaObject_Value = Guid.initString("7bafb3b1-d8f4-4279-9253-27da423108de");
|
|
pub const CLSID_CMSSCDecMediaObject = &CLSID_CMSSCDecMediaObject_Value;
|
|
|
|
const CLSID_CMSSCEncMediaObject_Value = Guid.initString("8cb9cc06-d139-4ae6-8bb4-41e612e141d5");
|
|
pub const CLSID_CMSSCEncMediaObject = &CLSID_CMSSCEncMediaObject_Value;
|
|
|
|
const CLSID_CMSSCEncMediaObject2_Value = Guid.initString("f7ffe0a0-a4f5-44b5-949e-15ed2bc66f9d");
|
|
pub const CLSID_CMSSCEncMediaObject2 = &CLSID_CMSSCEncMediaObject2_Value;
|
|
|
|
const CLSID_CWMADecMediaObject_Value = Guid.initString("2eeb4adf-4578-4d10-bca7-bb955f56320a");
|
|
pub const CLSID_CWMADecMediaObject = &CLSID_CWMADecMediaObject_Value;
|
|
|
|
const CLSID_CWMAEncMediaObject_Value = Guid.initString("70f598e9-f4ab-495a-99e2-a7c4d3d89abf");
|
|
pub const CLSID_CWMAEncMediaObject = &CLSID_CWMAEncMediaObject_Value;
|
|
|
|
const CLSID_CWMATransMediaObject_Value = Guid.initString("edcad9cb-3127-40df-b527-0152ccb3f6f5");
|
|
pub const CLSID_CWMATransMediaObject = &CLSID_CWMATransMediaObject_Value;
|
|
|
|
const CLSID_CWMSPDecMediaObject_Value = Guid.initString("874131cb-4ecc-443b-8948-746b89595d20");
|
|
pub const CLSID_CWMSPDecMediaObject = &CLSID_CWMSPDecMediaObject_Value;
|
|
|
|
const CLSID_CWMSPEncMediaObject_Value = Guid.initString("67841b03-c689-4188-ad3f-4c9ebeec710b");
|
|
pub const CLSID_CWMSPEncMediaObject = &CLSID_CWMSPEncMediaObject_Value;
|
|
|
|
const CLSID_CWMSPEncMediaObject2_Value = Guid.initString("1f1f4e1a-2252-4063-84bb-eee75f8856d5");
|
|
pub const CLSID_CWMSPEncMediaObject2 = &CLSID_CWMSPEncMediaObject2_Value;
|
|
|
|
const CLSID_CWMTDecMediaObject_Value = Guid.initString("f9dbc64e-2dd0-45dd-9b52-66642ef94431");
|
|
pub const CLSID_CWMTDecMediaObject = &CLSID_CWMTDecMediaObject_Value;
|
|
|
|
const CLSID_CWMTEncMediaObject_Value = Guid.initString("60b67652-e46b-4e44-8609-f74bffdc083c");
|
|
pub const CLSID_CWMTEncMediaObject = &CLSID_CWMTEncMediaObject_Value;
|
|
|
|
const CLSID_CWMVDecMediaObject_Value = Guid.initString("82d353df-90bd-4382-8bc2-3f6192b76e34");
|
|
pub const CLSID_CWMVDecMediaObject = &CLSID_CWMVDecMediaObject_Value;
|
|
|
|
const CLSID_CWMVEncMediaObject2_Value = Guid.initString("96b57cdd-8966-410c-bb1f-c97eea765c04");
|
|
pub const CLSID_CWMVEncMediaObject2 = &CLSID_CWMVEncMediaObject2_Value;
|
|
|
|
const CLSID_CWMVXEncMediaObject_Value = Guid.initString("7e320092-596a-41b2-bbeb-175d10504eb6");
|
|
pub const CLSID_CWMVXEncMediaObject = &CLSID_CWMVXEncMediaObject_Value;
|
|
|
|
const CLSID_CWMV9EncMediaObject_Value = Guid.initString("d23b90d0-144f-46bd-841d-59e4eb19dc59");
|
|
pub const CLSID_CWMV9EncMediaObject = &CLSID_CWMV9EncMediaObject_Value;
|
|
|
|
const CLSID_CWVC1DecMediaObject_Value = Guid.initString("c9bfbccf-e60e-4588-a3df-5a03b1fd9585");
|
|
pub const CLSID_CWVC1DecMediaObject = &CLSID_CWVC1DecMediaObject_Value;
|
|
|
|
const CLSID_CWVC1EncMediaObject_Value = Guid.initString("44653d0d-8cca-41e7-baca-884337b747ac");
|
|
pub const CLSID_CWVC1EncMediaObject = &CLSID_CWVC1EncMediaObject_Value;
|
|
|
|
const CLSID_CDeColorConvMediaObject_Value = Guid.initString("49034c05-f43c-400f-84c1-90a683195a3a");
|
|
pub const CLSID_CDeColorConvMediaObject = &CLSID_CDeColorConvMediaObject_Value;
|
|
|
|
const CLSID_CDVDecoderMediaObject_Value = Guid.initString("e54709c5-1e17-4c8d-94e7-478940433584");
|
|
pub const CLSID_CDVDecoderMediaObject = &CLSID_CDVDecoderMediaObject_Value;
|
|
|
|
const CLSID_CDVEncoderMediaObject_Value = Guid.initString("c82ae729-c327-4cce-914d-8171fefebefb");
|
|
pub const CLSID_CDVEncoderMediaObject = &CLSID_CDVEncoderMediaObject_Value;
|
|
|
|
const CLSID_CMpeg2DecMediaObject_Value = Guid.initString("863d66cd-cdce-4617-b47f-c8929cfc28a6");
|
|
pub const CLSID_CMpeg2DecMediaObject = &CLSID_CMpeg2DecMediaObject_Value;
|
|
|
|
const CLSID_CPK_DS_MPEG2Decoder_Value = Guid.initString("9910c5cd-95c9-4e06-865a-efa1c8016bf4");
|
|
pub const CLSID_CPK_DS_MPEG2Decoder = &CLSID_CPK_DS_MPEG2Decoder_Value;
|
|
|
|
const CLSID_CAC3DecMediaObject_Value = Guid.initString("03d7c802-ecfa-47d9-b268-5fb3e310dee4");
|
|
pub const CLSID_CAC3DecMediaObject = &CLSID_CAC3DecMediaObject_Value;
|
|
|
|
const CLSID_CPK_DS_AC3Decoder_Value = Guid.initString("6c9c69d6-0ffc-4481-afdb-cdf1c79c6f3e");
|
|
pub const CLSID_CPK_DS_AC3Decoder = &CLSID_CPK_DS_AC3Decoder_Value;
|
|
|
|
const CLSID_CMP3DecMediaObject_Value = Guid.initString("bbeea841-0a63-4f52-a7ab-a9b3a84ed38a");
|
|
pub const CLSID_CMP3DecMediaObject = &CLSID_CMP3DecMediaObject_Value;
|
|
|
|
const CLSID_CResamplerMediaObject_Value = Guid.initString("f447b69e-1884-4a7e-8055-346f74d6edb3");
|
|
pub const CLSID_CResamplerMediaObject = &CLSID_CResamplerMediaObject_Value;
|
|
|
|
const CLSID_CResizerMediaObject_Value = Guid.initString("d3ec8b8b-7728-4fd8-9fe0-7b67d19f73a3");
|
|
pub const CLSID_CResizerMediaObject = &CLSID_CResizerMediaObject_Value;
|
|
|
|
const CLSID_CInterlaceMediaObject_Value = Guid.initString("b5a89c80-4901-407b-9abc-90d9a644bb46");
|
|
pub const CLSID_CInterlaceMediaObject = &CLSID_CInterlaceMediaObject_Value;
|
|
|
|
const CLSID_CWMAudioLFXAPO_Value = Guid.initString("62dc1a93-ae24-464c-a43e-452f824c4250");
|
|
pub const CLSID_CWMAudioLFXAPO = &CLSID_CWMAudioLFXAPO_Value;
|
|
|
|
const CLSID_CWMAudioGFXAPO_Value = Guid.initString("637c490d-eee3-4c0a-973f-371958802da2");
|
|
pub const CLSID_CWMAudioGFXAPO = &CLSID_CWMAudioGFXAPO_Value;
|
|
|
|
const CLSID_CWMAudioCAPXLFXAPO_Value = Guid.initString("c9453e73-8c5c-4463-9984-af8bab2f5447");
|
|
pub const CLSID_CWMAudioCAPXLFXAPO = &CLSID_CWMAudioCAPXLFXAPO_Value;
|
|
|
|
const CLSID_CWMAudioCAPXGFXAPO_Value = Guid.initString("13ab3ebd-137e-4903-9d89-60be8277fd17");
|
|
pub const CLSID_CWMAudioCAPXGFXAPO = &CLSID_CWMAudioCAPXGFXAPO_Value;
|
|
|
|
const CLSID_CWMAudioSpdTxDMO_Value = Guid.initString("5210f8e4-b0bb-47c3-a8d9-7b2282cc79ed");
|
|
pub const CLSID_CWMAudioSpdTxDMO = &CLSID_CWMAudioSpdTxDMO_Value;
|
|
|
|
const CLSID_CWMAudioAEC_Value = Guid.initString("745057c7-f353-4f2d-a7ee-58434477730e");
|
|
pub const CLSID_CWMAudioAEC = &CLSID_CWMAudioAEC_Value;
|
|
|
|
const CLSID_CClusterDetectorDmo_Value = Guid.initString("36e820c4-165a-4521-863c-619e1160d4d4");
|
|
pub const CLSID_CClusterDetectorDmo = &CLSID_CClusterDetectorDmo_Value;
|
|
|
|
const CLSID_CColorControlDmo_Value = Guid.initString("798059f0-89ca-4160-b325-aeb48efe4f9a");
|
|
pub const CLSID_CColorControlDmo = &CLSID_CColorControlDmo_Value;
|
|
|
|
const CLSID_CColorConvertDMO_Value = Guid.initString("98230571-0087-4204-b020-3282538e57d3");
|
|
pub const CLSID_CColorConvertDMO = &CLSID_CColorConvertDMO_Value;
|
|
|
|
const CLSID_CColorLegalizerDmo_Value = Guid.initString("fdfaa753-e48e-4e33-9c74-98a27fc6726a");
|
|
pub const CLSID_CColorLegalizerDmo = &CLSID_CColorLegalizerDmo_Value;
|
|
|
|
const CLSID_CFrameInterpDMO_Value = Guid.initString("0a7cfe1b-6ab5-4334-9ed8-3f97cb37daa1");
|
|
pub const CLSID_CFrameInterpDMO = &CLSID_CFrameInterpDMO_Value;
|
|
|
|
const CLSID_CFrameRateConvertDmo_Value = Guid.initString("01f36ce2-0907-4d8b-979d-f151be91c883");
|
|
pub const CLSID_CFrameRateConvertDmo = &CLSID_CFrameRateConvertDmo_Value;
|
|
|
|
const CLSID_CResizerDMO_Value = Guid.initString("1ea1ea14-48f4-4054-ad1a-e8aee10ac805");
|
|
pub const CLSID_CResizerDMO = &CLSID_CResizerDMO_Value;
|
|
|
|
const CLSID_CShotDetectorDmo_Value = Guid.initString("56aefacd-110c-4397-9292-b0a0c61b6750");
|
|
pub const CLSID_CShotDetectorDmo = &CLSID_CShotDetectorDmo_Value;
|
|
|
|
const CLSID_CSmpteTransformsDmo_Value = Guid.initString("bde6388b-da25-485d-ba7f-fabc28b20318");
|
|
pub const CLSID_CSmpteTransformsDmo = &CLSID_CSmpteTransformsDmo_Value;
|
|
|
|
const CLSID_CThumbnailGeneratorDmo_Value = Guid.initString("559c6bad-1ea8-4963-a087-8a6810f9218b");
|
|
pub const CLSID_CThumbnailGeneratorDmo = &CLSID_CThumbnailGeneratorDmo_Value;
|
|
|
|
const CLSID_CTocGeneratorDmo_Value = Guid.initString("4dda1941-77a0-4fb1-a518-e2185041d70c");
|
|
pub const CLSID_CTocGeneratorDmo = &CLSID_CTocGeneratorDmo_Value;
|
|
|
|
const CLSID_CMPEGAACDecMediaObject_Value = Guid.initString("8dde1772-edad-41c3-b4be-1f30fb4ee0d6");
|
|
pub const CLSID_CMPEGAACDecMediaObject = &CLSID_CMPEGAACDecMediaObject_Value;
|
|
|
|
const CLSID_CNokiaAACDecMediaObject_Value = Guid.initString("3cb2bde4-4e29-4c44-a73e-2d7c2c46d6ec");
|
|
pub const CLSID_CNokiaAACDecMediaObject = &CLSID_CNokiaAACDecMediaObject_Value;
|
|
|
|
const CLSID_CVodafoneAACDecMediaObject_Value = Guid.initString("7f36f942-dcf3-4d82-9289-5b1820278f7c");
|
|
pub const CLSID_CVodafoneAACDecMediaObject = &CLSID_CVodafoneAACDecMediaObject_Value;
|
|
|
|
const CLSID_CZuneAACCCDecMediaObject_Value = Guid.initString("a74e98f2-52d6-4b4e-885b-e0a6ca4f187a");
|
|
pub const CLSID_CZuneAACCCDecMediaObject = &CLSID_CZuneAACCCDecMediaObject_Value;
|
|
|
|
const CLSID_CNokiaAACCCDecMediaObject_Value = Guid.initString("eabf7a6f-ccba-4d60-8620-b152cc977263");
|
|
pub const CLSID_CNokiaAACCCDecMediaObject = &CLSID_CNokiaAACCCDecMediaObject_Value;
|
|
|
|
const CLSID_CVodafoneAACCCDecMediaObject_Value = Guid.initString("7e76bf7f-c993-4e26-8fab-470a70c0d59c");
|
|
pub const CLSID_CVodafoneAACCCDecMediaObject = &CLSID_CVodafoneAACCCDecMediaObject_Value;
|
|
|
|
const CLSID_CMPEG2EncoderDS_Value = Guid.initString("5f5aff4a-2f7f-4279-88c2-cd88eb39d144");
|
|
pub const CLSID_CMPEG2EncoderDS = &CLSID_CMPEG2EncoderDS_Value;
|
|
|
|
const CLSID_CMPEG2EncoderVideoDS_Value = Guid.initString("42150cd9-ca9a-4ea5-9939-30ee037f6e74");
|
|
pub const CLSID_CMPEG2EncoderVideoDS = &CLSID_CMPEG2EncoderVideoDS_Value;
|
|
|
|
const CLSID_CMPEG2EncoderAudioDS_Value = Guid.initString("acd453bc-c58a-44d1-bbf5-bfb325be2d78");
|
|
pub const CLSID_CMPEG2EncoderAudioDS = &CLSID_CMPEG2EncoderAudioDS_Value;
|
|
|
|
const CLSID_CMPEG2AudDecoderDS_Value = Guid.initString("e1f1a0b8-beee-490d-ba7c-066c40b5e2b9");
|
|
pub const CLSID_CMPEG2AudDecoderDS = &CLSID_CMPEG2AudDecoderDS_Value;
|
|
|
|
const CLSID_CMPEG2VidDecoderDS_Value = Guid.initString("212690fb-83e5-4526-8fd7-74478b7939cd");
|
|
pub const CLSID_CMPEG2VidDecoderDS = &CLSID_CMPEG2VidDecoderDS_Value;
|
|
|
|
const CLSID_CDTVAudDecoderDS_Value = Guid.initString("8e269032-fe03-4753-9b17-18253c21722e");
|
|
pub const CLSID_CDTVAudDecoderDS = &CLSID_CDTVAudDecoderDS_Value;
|
|
|
|
const CLSID_CDTVVidDecoderDS_Value = Guid.initString("64777dc8-4e24-4beb-9d19-60a35be1daaf");
|
|
pub const CLSID_CDTVVidDecoderDS = &CLSID_CDTVVidDecoderDS_Value;
|
|
|
|
const CLSID_CMSAC3Enc_Value = Guid.initString("c6b400e2-20a7-4e58-a2fe-24619682ce6c");
|
|
pub const CLSID_CMSAC3Enc = &CLSID_CMSAC3Enc_Value;
|
|
|
|
const CLSID_CMSH264DecoderMFT_Value = Guid.initString("62ce7e72-4c71-4d20-b15d-452831a87d9d");
|
|
pub const CLSID_CMSH264DecoderMFT = &CLSID_CMSH264DecoderMFT_Value;
|
|
|
|
const CLSID_CMSH263EncoderMFT_Value = Guid.initString("bc47fcfe-98a0-4f27-bb07-698af24f2b38");
|
|
pub const CLSID_CMSH263EncoderMFT = &CLSID_CMSH263EncoderMFT_Value;
|
|
|
|
const CLSID_CMSH264EncoderMFT_Value = Guid.initString("6ca50344-051a-4ded-9779-a43305165e35");
|
|
pub const CLSID_CMSH264EncoderMFT = &CLSID_CMSH264EncoderMFT_Value;
|
|
|
|
const CLSID_CMSH265EncoderMFT_Value = Guid.initString("f2f84074-8bca-40bd-9159-e880f673dd3b");
|
|
pub const CLSID_CMSH265EncoderMFT = &CLSID_CMSH265EncoderMFT_Value;
|
|
|
|
const CLSID_CMSVPXEncoderMFT_Value = Guid.initString("aeb6c755-2546-4881-82cc-e15ae5ebff3d");
|
|
pub const CLSID_CMSVPXEncoderMFT = &CLSID_CMSVPXEncoderMFT_Value;
|
|
|
|
const CLSID_CMSH264RemuxMFT_Value = Guid.initString("05a47ebb-8bf0-4cbf-ad2f-3b71d75866f5");
|
|
pub const CLSID_CMSH264RemuxMFT = &CLSID_CMSH264RemuxMFT_Value;
|
|
|
|
const CLSID_CMSAACDecMFT_Value = Guid.initString("32d186a7-218f-4c75-8876-dd77273a8999");
|
|
pub const CLSID_CMSAACDecMFT = &CLSID_CMSAACDecMFT_Value;
|
|
|
|
const CLSID_AACMFTEncoder_Value = Guid.initString("93af0c51-2275-45d2-a35b-f2ba21caed00");
|
|
pub const CLSID_AACMFTEncoder = &CLSID_AACMFTEncoder_Value;
|
|
|
|
const CLSID_CMSDDPlusDecMFT_Value = Guid.initString("177c0afe-900b-48d4-9e4c-57add250b3d4");
|
|
pub const CLSID_CMSDDPlusDecMFT = &CLSID_CMSDDPlusDecMFT_Value;
|
|
|
|
const CLSID_CMPEG2VideoEncoderMFT_Value = Guid.initString("e6335f02-80b7-4dc4-adfa-dfe7210d20d5");
|
|
pub const CLSID_CMPEG2VideoEncoderMFT = &CLSID_CMPEG2VideoEncoderMFT_Value;
|
|
|
|
const CLSID_CMPEG2AudioEncoderMFT_Value = Guid.initString("46a4dd5c-73f8-4304-94df-308f760974f4");
|
|
pub const CLSID_CMPEG2AudioEncoderMFT = &CLSID_CMPEG2AudioEncoderMFT_Value;
|
|
|
|
const CLSID_CMSMPEGDecoderMFT_Value = Guid.initString("2d709e52-123f-49b5-9cbc-9af5cde28fb9");
|
|
pub const CLSID_CMSMPEGDecoderMFT = &CLSID_CMSMPEGDecoderMFT_Value;
|
|
|
|
const CLSID_CMSMPEGAudDecMFT_Value = Guid.initString("70707b39-b2ca-4015-abea-f8447d22d88b");
|
|
pub const CLSID_CMSMPEGAudDecMFT = &CLSID_CMSMPEGAudDecMFT_Value;
|
|
|
|
const CLSID_CMSDolbyDigitalEncMFT_Value = Guid.initString("ac3315c9-f481-45d7-826c-0b406c1f64b8");
|
|
pub const CLSID_CMSDolbyDigitalEncMFT = &CLSID_CMSDolbyDigitalEncMFT_Value;
|
|
|
|
const CLSID_MP3ACMCodecWrapper_Value = Guid.initString("11103421-354c-4cca-a7a3-1aff9a5b6701");
|
|
pub const CLSID_MP3ACMCodecWrapper = &CLSID_MP3ACMCodecWrapper_Value;
|
|
|
|
const CLSID_ALawCodecWrapper_Value = Guid.initString("36cb6e0c-78c1-42b2-9943-846262f31786");
|
|
pub const CLSID_ALawCodecWrapper = &CLSID_ALawCodecWrapper_Value;
|
|
|
|
const CLSID_MULawCodecWrapper_Value = Guid.initString("92b66080-5e2d-449e-90c4-c41f268e5514");
|
|
pub const CLSID_MULawCodecWrapper = &CLSID_MULawCodecWrapper_Value;
|
|
|
|
const CLSID_CMSVideoDSPMFT_Value = Guid.initString("51571744-7fe4-4ff2-a498-2dc34ff74f1b");
|
|
pub const CLSID_CMSVideoDSPMFT = &CLSID_CMSVideoDSPMFT_Value;
|
|
|
|
const CLSID_VorbisDecoderMFT_Value = Guid.initString("1a198ef2-60e5-4ea8-90d8-da1f2832c288");
|
|
pub const CLSID_VorbisDecoderMFT = &CLSID_VorbisDecoderMFT_Value;
|
|
|
|
const CLSID_CMSFLACDecMFT_Value = Guid.initString("6b0b3e6b-a2c5-4514-8055-afe8a95242d9");
|
|
pub const CLSID_CMSFLACDecMFT = &CLSID_CMSFLACDecMFT_Value;
|
|
|
|
const CLSID_CMSFLACEncMFT_Value = Guid.initString("128509e9-c44e-45dc-95e9-c255b8f466a6");
|
|
pub const CLSID_CMSFLACEncMFT = &CLSID_CMSFLACEncMFT_Value;
|
|
|
|
const CLSID_MFFLACBytestreamHandler_Value = Guid.initString("0e41cfb8-0506-40f4-a516-77cc23642d91");
|
|
pub const CLSID_MFFLACBytestreamHandler = &CLSID_MFFLACBytestreamHandler_Value;
|
|
|
|
const CLSID_MFFLACSinkClassFactory_Value = Guid.initString("7d39c56f-6075-47c9-9bae-8cf9e531b5f5");
|
|
pub const CLSID_MFFLACSinkClassFactory = &CLSID_MFFLACSinkClassFactory_Value;
|
|
|
|
const CLSID_CMSALACDecMFT_Value = Guid.initString("c0cd7d12-31fc-4bbc-b363-7322ee3e1879");
|
|
pub const CLSID_CMSALACDecMFT = &CLSID_CMSALACDecMFT_Value;
|
|
|
|
const CLSID_CMSALACEncMFT_Value = Guid.initString("9ab6a28c-748e-4b6a-bfff-cc443b8e8fb4");
|
|
pub const CLSID_CMSALACEncMFT = &CLSID_CMSALACEncMFT_Value;
|
|
|
|
const CLSID_CMSOpusDecMFT_Value = Guid.initString("63e17c10-2d43-4c42-8fe3-8d8b63e46a6a");
|
|
pub const CLSID_CMSOpusDecMFT = &CLSID_CMSOpusDecMFT_Value;
|
|
|
|
const CLSID_MSAMRNBDecoder_Value = Guid.initString("265011ae-5481-4f77-a295-abb6ffe8d63e");
|
|
pub const CLSID_MSAMRNBDecoder = &CLSID_MSAMRNBDecoder_Value;
|
|
|
|
const CLSID_MSAMRNBEncoder_Value = Guid.initString("2fae8afe-04a3-423a-a814-85db454712b0");
|
|
pub const CLSID_MSAMRNBEncoder = &CLSID_MSAMRNBEncoder_Value;
|
|
|
|
const CLSID_MFAMRNBByteStreamHandler_Value = Guid.initString("efe6208a-0a2c-49fa-8a01-3768b559b6da");
|
|
pub const CLSID_MFAMRNBByteStreamHandler = &CLSID_MFAMRNBByteStreamHandler_Value;
|
|
|
|
const CLSID_MFAMRNBSinkClassFactory_Value = Guid.initString("b0271158-70d2-4c5b-9f94-76f549d90fdf");
|
|
pub const CLSID_MFAMRNBSinkClassFactory = &CLSID_MFAMRNBSinkClassFactory_Value;
|
|
|
|
pub const WMT_PROP_DATATYPE = enum(i32) {
|
|
DWORD = 0,
|
|
STRING = 1,
|
|
BINARY = 2,
|
|
BOOL = 3,
|
|
QWORD = 4,
|
|
WORD = 5,
|
|
GUID = 6,
|
|
};
|
|
pub const WMT_PROP_TYPE_DWORD = WMT_PROP_DATATYPE.DWORD;
|
|
pub const WMT_PROP_TYPE_STRING = WMT_PROP_DATATYPE.STRING;
|
|
pub const WMT_PROP_TYPE_BINARY = WMT_PROP_DATATYPE.BINARY;
|
|
pub const WMT_PROP_TYPE_BOOL = WMT_PROP_DATATYPE.BOOL;
|
|
pub const WMT_PROP_TYPE_QWORD = WMT_PROP_DATATYPE.QWORD;
|
|
pub const WMT_PROP_TYPE_WORD = WMT_PROP_DATATYPE.WORD;
|
|
pub const WMT_PROP_TYPE_GUID = WMT_PROP_DATATYPE.GUID;
|
|
|
|
const IID_IWMValidate_Value = Guid.initString("cee3def2-3808-414d-be66-fafd472210bc");
|
|
pub const IID_IWMValidate = &IID_IWMValidate_Value;
|
|
pub const IWMValidate = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetIdentifier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMValidate,
|
|
guidValidationID: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMValidate,
|
|
guidValidationID: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMValidate_SetIdentifier(self: *const T, guidValidationID: Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMValidate.VTable, @ptrCast(self.vtable)).SetIdentifier(@as(*const IWMValidate, @ptrCast(self)), guidValidationID);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IValidateBinding_Value = Guid.initString("04a578b2-e778-422a-a805-b3ee54d90bd9");
|
|
pub const IID_IValidateBinding = &IID_IValidateBinding_Value;
|
|
pub const IValidateBinding = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetIdentifier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IValidateBinding,
|
|
guidLicensorID: Guid,
|
|
pbEphemeron: [*:0]u8,
|
|
cbEphemeron: u32,
|
|
ppbBlobValidationID: [*]?*u8,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IValidateBinding,
|
|
guidLicensorID: Guid,
|
|
pbEphemeron: [*:0]u8,
|
|
cbEphemeron: u32,
|
|
ppbBlobValidationID: [*]?*u8,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IValidateBinding_GetIdentifier(self: *const T, guidLicensorID: Guid, pbEphemeron: [*:0]u8, cbEphemeron: u32, ppbBlobValidationID: [*]?*u8, pcbBlobSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IValidateBinding.VTable, @ptrCast(self.vtable)).GetIdentifier(@as(*const IValidateBinding, @ptrCast(self)), guidLicensorID, pbEphemeron, cbEphemeron, ppbBlobValidationID, pcbBlobSize);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMVideoDecoderHurryup_Value = Guid.initString("352bb3bd-2d4d-4323-9e71-dcdcfbd53ca6");
|
|
pub const IID_IWMVideoDecoderHurryup = &IID_IWMVideoDecoderHurryup_Value;
|
|
pub const IWMVideoDecoderHurryup = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetHurryup: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoDecoderHurryup,
|
|
lHurryup: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoDecoderHurryup,
|
|
lHurryup: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetHurryup: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoDecoderHurryup,
|
|
plHurryup: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoDecoderHurryup,
|
|
plHurryup: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoDecoderHurryup_SetHurryup(self: *const T, lHurryup: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoDecoderHurryup.VTable, @ptrCast(self.vtable)).SetHurryup(@as(*const IWMVideoDecoderHurryup, @ptrCast(self)), lHurryup);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoDecoderHurryup_GetHurryup(self: *const T, plHurryup: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoDecoderHurryup.VTable, @ptrCast(self.vtable)).GetHurryup(@as(*const IWMVideoDecoderHurryup, @ptrCast(self)), plHurryup);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMVideoForceKeyFrame_Value = Guid.initString("9f8496be-5b9a-41b9-a9e8-f21cd80596c2");
|
|
pub const IID_IWMVideoForceKeyFrame = &IID_IWMVideoForceKeyFrame_Value;
|
|
pub const IWMVideoForceKeyFrame = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetKeyFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoForceKeyFrame,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoForceKeyFrame,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoForceKeyFrame_SetKeyFrame(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoForceKeyFrame.VTable, @ptrCast(self.vtable)).SetKeyFrame(@as(*const IWMVideoForceKeyFrame, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMCodecStrings_Value = Guid.initString("a7b2504b-e58a-47fb-958b-cac7165a057d");
|
|
pub const IID_IWMCodecStrings = &IID_IWMCodecStrings_Value;
|
|
pub const IWMCodecStrings = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecStrings,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
cchLength: u32,
|
|
szName: ?[*:0]u16,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecStrings,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
cchLength: u32,
|
|
szName: ?[*:0]u16,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDescription: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecStrings,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
cchLength: u32,
|
|
szDescription: ?[*:0]u16,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecStrings,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
cchLength: u32,
|
|
szDescription: ?[*:0]u16,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecStrings_GetName(self: *const T, pmt: ?*DMO_MEDIA_TYPE, cchLength: u32, szName: ?[*:0]u16, pcchLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecStrings.VTable, @ptrCast(self.vtable)).GetName(@as(*const IWMCodecStrings, @ptrCast(self)), pmt, cchLength, szName, pcchLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecStrings_GetDescription(self: *const T, pmt: ?*DMO_MEDIA_TYPE, cchLength: u32, szDescription: ?[*:0]u16, pcchLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecStrings.VTable, @ptrCast(self.vtable)).GetDescription(@as(*const IWMCodecStrings, @ptrCast(self)), pmt, cchLength, szDescription, pcchLength);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMCodecProps_Value = Guid.initString("2573e11a-f01a-4fdd-a98d-63b8e0ba9589");
|
|
pub const IID_IWMCodecProps = &IID_IWMCodecProps_Value;
|
|
pub const IWMCodecProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetFormatProp: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecProps,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
pszName: ?[*:0]const u16,
|
|
pType: ?*WMT_PROP_DATATYPE,
|
|
pValue: ?*u8,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecProps,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
pszName: ?[*:0]const u16,
|
|
pType: ?*WMT_PROP_DATATYPE,
|
|
pValue: ?*u8,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCodecProp: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecProps,
|
|
dwFormat: u32,
|
|
pszName: ?[*:0]const u16,
|
|
pType: ?*WMT_PROP_DATATYPE,
|
|
pValue: ?*u8,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecProps,
|
|
dwFormat: u32,
|
|
pszName: ?[*:0]const u16,
|
|
pType: ?*WMT_PROP_DATATYPE,
|
|
pValue: ?*u8,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecProps_GetFormatProp(self: *const T, pmt: ?*DMO_MEDIA_TYPE, pszName: ?[*:0]const u16, pType: ?*WMT_PROP_DATATYPE, pValue: ?*u8, pdwSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecProps.VTable, @ptrCast(self.vtable)).GetFormatProp(@as(*const IWMCodecProps, @ptrCast(self)), pmt, pszName, pType, pValue, pdwSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecProps_GetCodecProp(self: *const T, dwFormat: u32, pszName: ?[*:0]const u16, pType: ?*WMT_PROP_DATATYPE, pValue: ?*u8, pdwSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecProps.VTable, @ptrCast(self.vtable)).GetCodecProp(@as(*const IWMCodecProps, @ptrCast(self)), dwFormat, pszName, pType, pValue, pdwSize);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMCodecLeakyBucket_Value = Guid.initString("a81ba647-6227-43b7-b231-c7b15135dd7d");
|
|
pub const IID_IWMCodecLeakyBucket = &IID_IWMCodecLeakyBucket_Value;
|
|
pub const IWMCodecLeakyBucket = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetBufferSizeBits: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
ulBufferSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
ulBufferSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBufferSizeBits: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
pulBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
pulBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBufferFullnessBits: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
ulBufferFullness: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
ulBufferFullness: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBufferFullnessBits: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
pulBufferFullness: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecLeakyBucket,
|
|
pulBufferFullness: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecLeakyBucket_SetBufferSizeBits(self: *const T, ulBufferSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecLeakyBucket.VTable, @ptrCast(self.vtable)).SetBufferSizeBits(@as(*const IWMCodecLeakyBucket, @ptrCast(self)), ulBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecLeakyBucket_GetBufferSizeBits(self: *const T, pulBufferSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecLeakyBucket.VTable, @ptrCast(self.vtable)).GetBufferSizeBits(@as(*const IWMCodecLeakyBucket, @ptrCast(self)), pulBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecLeakyBucket_SetBufferFullnessBits(self: *const T, ulBufferFullness: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecLeakyBucket.VTable, @ptrCast(self.vtable)).SetBufferFullnessBits(@as(*const IWMCodecLeakyBucket, @ptrCast(self)), ulBufferFullness);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecLeakyBucket_GetBufferFullnessBits(self: *const T, pulBufferFullness: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecLeakyBucket.VTable, @ptrCast(self.vtable)).GetBufferFullnessBits(@as(*const IWMCodecLeakyBucket, @ptrCast(self)), pulBufferFullness);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMCodecOutputTimestamp_Value = Guid.initString("b72adf95-7adc-4a72-bc05-577d8ea6bf68");
|
|
pub const IID_IWMCodecOutputTimestamp = &IID_IWMCodecOutputTimestamp_Value;
|
|
pub const IWMCodecOutputTimestamp = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetNextOutputTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecOutputTimestamp,
|
|
prtTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecOutputTimestamp,
|
|
prtTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecOutputTimestamp_GetNextOutputTime(self: *const T, prtTime: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecOutputTimestamp.VTable, @ptrCast(self.vtable)).GetNextOutputTime(@as(*const IWMCodecOutputTimestamp, @ptrCast(self)), prtTime);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMVideoDecoderReconBuffer_Value = Guid.initString("45bda2ac-88e2-4923-98ba-3949080711a3");
|
|
pub const IID_IWMVideoDecoderReconBuffer = &IID_IWMVideoDecoderReconBuffer_Value;
|
|
pub const IWMVideoDecoderReconBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetReconstructedVideoFrameSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetReconstructedVideoFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pBuf: ?*IMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pBuf: ?*IMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetReconstructedVideoFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pBuf: ?*IMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMVideoDecoderReconBuffer,
|
|
pBuf: ?*IMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoDecoderReconBuffer_GetReconstructedVideoFrameSize(self: *const T, pdwSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoDecoderReconBuffer.VTable, @ptrCast(self.vtable)).GetReconstructedVideoFrameSize(@as(*const IWMVideoDecoderReconBuffer, @ptrCast(self)), pdwSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoDecoderReconBuffer_GetReconstructedVideoFrame(self: *const T, pBuf: ?*IMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoDecoderReconBuffer.VTable, @ptrCast(self.vtable)).GetReconstructedVideoFrame(@as(*const IWMVideoDecoderReconBuffer, @ptrCast(self)), pBuf);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMVideoDecoderReconBuffer_SetReconstructedVideoFrame(self: *const T, pBuf: ?*IMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMVideoDecoderReconBuffer.VTable, @ptrCast(self.vtable)).SetReconstructedVideoFrame(@as(*const IWMVideoDecoderReconBuffer, @ptrCast(self)), pBuf);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMCodecPrivateData_Value = Guid.initString("73f0be8e-57f7-4f01-aa66-9f57340cfe0e");
|
|
pub const IID_IWMCodecPrivateData = &IID_IWMCodecPrivateData_Value;
|
|
pub const IWMCodecPrivateData = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetPartialOutputType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecPrivateData,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecPrivateData,
|
|
pmt: ?*DMO_MEDIA_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPrivateData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMCodecPrivateData,
|
|
pbData: ?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMCodecPrivateData,
|
|
pbData: ?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecPrivateData_SetPartialOutputType(self: *const T, pmt: ?*DMO_MEDIA_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecPrivateData.VTable, @ptrCast(self.vtable)).SetPartialOutputType(@as(*const IWMCodecPrivateData, @ptrCast(self)), pmt);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMCodecPrivateData_GetPrivateData(self: *const T, pbData: ?*u8, pcbData: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMCodecPrivateData.VTable, @ptrCast(self.vtable)).GetPrivateData(@as(*const IWMCodecPrivateData, @ptrCast(self)), pbData, pcbData);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMSampleExtensionSupport_Value = Guid.initString("9bca9884-0604-4c2a-87da-793ff4d586c3");
|
|
pub const IID_IWMSampleExtensionSupport = &IID_IWMSampleExtensionSupport_Value;
|
|
pub const IWMSampleExtensionSupport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetUseSampleExtensions: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMSampleExtensionSupport,
|
|
fUseExtensions: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMSampleExtensionSupport,
|
|
fUseExtensions: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMSampleExtensionSupport_SetUseSampleExtensions(self: *const T, fUseExtensions: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMSampleExtensionSupport.VTable, @ptrCast(self.vtable)).SetUseSampleExtensions(@as(*const IWMSampleExtensionSupport, @ptrCast(self)), fUseExtensions);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMResamplerProps_Value = Guid.initString("e7e9984f-f09f-4da4-903f-6e2e0efe56b5");
|
|
pub const IID_IWMResamplerProps = &IID_IWMResamplerProps_Value;
|
|
pub const IWMResamplerProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetHalfFilterLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResamplerProps,
|
|
lhalfFilterLen: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResamplerProps,
|
|
lhalfFilterLen: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUserChannelMtx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResamplerProps,
|
|
userChannelMtx: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResamplerProps,
|
|
userChannelMtx: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResamplerProps_SetHalfFilterLength(self: *const T, lhalfFilterLen: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResamplerProps.VTable, @ptrCast(self.vtable)).SetHalfFilterLength(@as(*const IWMResamplerProps, @ptrCast(self)), lhalfFilterLen);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResamplerProps_SetUserChannelMtx(self: *const T, userChannelMtx: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResamplerProps.VTable, @ptrCast(self.vtable)).SetUserChannelMtx(@as(*const IWMResamplerProps, @ptrCast(self)), userChannelMtx);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMResizerProps_Value = Guid.initString("57665d4c-0414-4faa-905b-10e546f81c33");
|
|
pub const IID_IWMResizerProps = &IID_IWMResizerProps_Value;
|
|
pub const IWMResizerProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetResizerQuality: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResizerProps,
|
|
lquality: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResizerProps,
|
|
lquality: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInterlaceMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResizerProps,
|
|
lmode: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResizerProps,
|
|
lmode: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetClipRegion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: i32,
|
|
lClipOriYSrc: i32,
|
|
lClipWidthSrc: i32,
|
|
lClipHeightSrc: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: i32,
|
|
lClipOriYSrc: i32,
|
|
lClipWidthSrc: i32,
|
|
lClipHeightSrc: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFullCropRegion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: i32,
|
|
lClipOriYSrc: i32,
|
|
lClipWidthSrc: i32,
|
|
lClipHeightSrc: i32,
|
|
lClipOriXDst: i32,
|
|
lClipOriYDst: i32,
|
|
lClipWidthDst: i32,
|
|
lClipHeightDst: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: i32,
|
|
lClipOriYSrc: i32,
|
|
lClipWidthSrc: i32,
|
|
lClipHeightSrc: i32,
|
|
lClipOriXDst: i32,
|
|
lClipOriYDst: i32,
|
|
lClipWidthDst: i32,
|
|
lClipHeightDst: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFullCropRegion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: ?*i32,
|
|
lClipOriYSrc: ?*i32,
|
|
lClipWidthSrc: ?*i32,
|
|
lClipHeightSrc: ?*i32,
|
|
lClipOriXDst: ?*i32,
|
|
lClipOriYDst: ?*i32,
|
|
lClipWidthDst: ?*i32,
|
|
lClipHeightDst: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMResizerProps,
|
|
lClipOriXSrc: ?*i32,
|
|
lClipOriYSrc: ?*i32,
|
|
lClipWidthSrc: ?*i32,
|
|
lClipHeightSrc: ?*i32,
|
|
lClipOriXDst: ?*i32,
|
|
lClipOriYDst: ?*i32,
|
|
lClipWidthDst: ?*i32,
|
|
lClipHeightDst: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResizerProps_SetResizerQuality(self: *const T, lquality: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResizerProps.VTable, @ptrCast(self.vtable)).SetResizerQuality(@as(*const IWMResizerProps, @ptrCast(self)), lquality);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResizerProps_SetInterlaceMode(self: *const T, lmode: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResizerProps.VTable, @ptrCast(self.vtable)).SetInterlaceMode(@as(*const IWMResizerProps, @ptrCast(self)), lmode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResizerProps_SetClipRegion(self: *const T, lClipOriXSrc: i32, lClipOriYSrc: i32, lClipWidthSrc: i32, lClipHeightSrc: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResizerProps.VTable, @ptrCast(self.vtable)).SetClipRegion(@as(*const IWMResizerProps, @ptrCast(self)), lClipOriXSrc, lClipOriYSrc, lClipWidthSrc, lClipHeightSrc);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResizerProps_SetFullCropRegion(self: *const T, lClipOriXSrc: i32, lClipOriYSrc: i32, lClipWidthSrc: i32, lClipHeightSrc: i32, lClipOriXDst: i32, lClipOriYDst: i32, lClipWidthDst: i32, lClipHeightDst: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResizerProps.VTable, @ptrCast(self.vtable)).SetFullCropRegion(@as(*const IWMResizerProps, @ptrCast(self)), lClipOriXSrc, lClipOriYSrc, lClipWidthSrc, lClipHeightSrc, lClipOriXDst, lClipOriYDst, lClipWidthDst, lClipHeightDst);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMResizerProps_GetFullCropRegion(self: *const T, lClipOriXSrc: ?*i32, lClipOriYSrc: ?*i32, lClipWidthSrc: ?*i32, lClipHeightSrc: ?*i32, lClipOriXDst: ?*i32, lClipOriYDst: ?*i32, lClipWidthDst: ?*i32, lClipHeightDst: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMResizerProps.VTable, @ptrCast(self.vtable)).GetFullCropRegion(@as(*const IWMResizerProps, @ptrCast(self)), lClipOriXSrc, lClipOriYSrc, lClipWidthSrc, lClipHeightSrc, lClipOriXDst, lClipOriYDst, lClipWidthDst, lClipHeightDst);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IWMColorLegalizerProps_Value = Guid.initString("776c93b3-b72d-4508-b6d0-208785f553e7");
|
|
pub const IID_IWMColorLegalizerProps = &IID_IWMColorLegalizerProps_Value;
|
|
pub const IWMColorLegalizerProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetColorLegalizerQuality: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMColorLegalizerProps,
|
|
lquality: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMColorLegalizerProps,
|
|
lquality: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMColorLegalizerProps_SetColorLegalizerQuality(self: *const T, lquality: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMColorLegalizerProps.VTable, @ptrCast(self.vtable)).SetColorLegalizerQuality(@as(*const IWMColorLegalizerProps, @ptrCast(self)), lquality);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IWMInterlaceProps_Value = Guid.initString("7b12e5d1-bd22-48ea-bc06-98e893221c89");
|
|
pub const IID_IWMInterlaceProps = &IID_IWMInterlaceProps_Value;
|
|
pub const IWMInterlaceProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetProcessType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMInterlaceProps,
|
|
iProcessType: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMInterlaceProps,
|
|
iProcessType: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInitInverseTeleCinePattern: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMInterlaceProps,
|
|
iInitPattern: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMInterlaceProps,
|
|
iInitPattern: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetLastFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMInterlaceProps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMInterlaceProps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMInterlaceProps_SetProcessType(self: *const T, iProcessType: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMInterlaceProps.VTable, @ptrCast(self.vtable)).SetProcessType(@as(*const IWMInterlaceProps, @ptrCast(self)), iProcessType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMInterlaceProps_SetInitInverseTeleCinePattern(self: *const T, iInitPattern: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMInterlaceProps.VTable, @ptrCast(self.vtable)).SetInitInverseTeleCinePattern(@as(*const IWMInterlaceProps, @ptrCast(self)), iInitPattern);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMInterlaceProps_SetLastFrame(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMInterlaceProps.VTable, @ptrCast(self.vtable)).SetLastFrame(@as(*const IWMInterlaceProps, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IWMFrameInterpProps_Value = Guid.initString("4c06bb9b-626c-4614-8329-cc6a21b93fa0");
|
|
pub const IID_IWMFrameInterpProps = &IID_IWMFrameInterpProps_Value;
|
|
pub const IWMFrameInterpProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetFrameRateIn: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMFrameInterpProps,
|
|
lFrameRate: i32,
|
|
lScale: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMFrameInterpProps,
|
|
lFrameRate: i32,
|
|
lScale: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFrameRateOut: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMFrameInterpProps,
|
|
lFrameRate: i32,
|
|
lScale: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMFrameInterpProps,
|
|
lFrameRate: i32,
|
|
lScale: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFrameInterpEnabled: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMFrameInterpProps,
|
|
bFIEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMFrameInterpProps,
|
|
bFIEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetComplexityLevel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMFrameInterpProps,
|
|
iComplexity: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMFrameInterpProps,
|
|
iComplexity: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMFrameInterpProps_SetFrameRateIn(self: *const T, lFrameRate: i32, lScale: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMFrameInterpProps.VTable, @ptrCast(self.vtable)).SetFrameRateIn(@as(*const IWMFrameInterpProps, @ptrCast(self)), lFrameRate, lScale);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMFrameInterpProps_SetFrameRateOut(self: *const T, lFrameRate: i32, lScale: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMFrameInterpProps.VTable, @ptrCast(self.vtable)).SetFrameRateOut(@as(*const IWMFrameInterpProps, @ptrCast(self)), lFrameRate, lScale);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMFrameInterpProps_SetFrameInterpEnabled(self: *const T, bFIEnabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMFrameInterpProps.VTable, @ptrCast(self.vtable)).SetFrameInterpEnabled(@as(*const IWMFrameInterpProps, @ptrCast(self)), bFIEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMFrameInterpProps_SetComplexityLevel(self: *const T, iComplexity: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMFrameInterpProps.VTable, @ptrCast(self.vtable)).SetComplexityLevel(@as(*const IWMFrameInterpProps, @ptrCast(self)), iComplexity);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
const IID_IWMColorConvProps_Value = Guid.initString("e6a49e22-c099-421d-aad3-c061fb4ae85b");
|
|
pub const IID_IWMColorConvProps = &IID_IWMColorConvProps_Value;
|
|
pub const IWMColorConvProps = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMColorConvProps,
|
|
lMode: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMColorConvProps,
|
|
lMode: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFullCroppingParam: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IWMColorConvProps,
|
|
lSrcCropLeft: i32,
|
|
lSrcCropTop: i32,
|
|
lDstCropLeft: i32,
|
|
lDstCropTop: i32,
|
|
lCropWidth: i32,
|
|
lCropHeight: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IWMColorConvProps,
|
|
lSrcCropLeft: i32,
|
|
lSrcCropTop: i32,
|
|
lDstCropLeft: i32,
|
|
lDstCropTop: i32,
|
|
lCropWidth: i32,
|
|
lCropHeight: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMColorConvProps_SetMode(self: *const T, lMode: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMColorConvProps.VTable, @ptrCast(self.vtable)).SetMode(@as(*const IWMColorConvProps, @ptrCast(self)), lMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IWMColorConvProps_SetFullCroppingParam(self: *const T, lSrcCropLeft: i32, lSrcCropTop: i32, lDstCropLeft: i32, lDstCropTop: i32, lCropWidth: i32, lCropHeight: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IWMColorConvProps.VTable, @ptrCast(self.vtable)).SetFullCroppingParam(@as(*const IWMColorConvProps, @ptrCast(self)), lSrcCropLeft, lSrcCropTop, lDstCropLeft, lDstCropTop, lCropWidth, lCropHeight);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const WMV_DYNAMIC_FLAGS = enum(i32) {
|
|
BITRATE = 1,
|
|
RESOLUTION = 2,
|
|
COMPLEXITY = 4,
|
|
};
|
|
pub const WMV_DYNAMIC_BITRATE = WMV_DYNAMIC_FLAGS.BITRATE;
|
|
pub const WMV_DYNAMIC_RESOLUTION = WMV_DYNAMIC_FLAGS.RESOLUTION;
|
|
pub const WMV_DYNAMIC_COMPLEXITY = WMV_DYNAMIC_FLAGS.COMPLEXITY;
|
|
|
|
pub const MF_AUVRHP_ROOMMODEL = enum(i32) {
|
|
SMALLROOM = 0,
|
|
MEDIUMROOM = 1,
|
|
BIGROOM = 2,
|
|
CUSTUMIZEDROOM = 3,
|
|
};
|
|
pub const VRHP_SMALLROOM = MF_AUVRHP_ROOMMODEL.SMALLROOM;
|
|
pub const VRHP_MEDIUMROOM = MF_AUVRHP_ROOMMODEL.MEDIUMROOM;
|
|
pub const VRHP_BIGROOM = MF_AUVRHP_ROOMMODEL.BIGROOM;
|
|
pub const VRHP_CUSTUMIZEDROOM = MF_AUVRHP_ROOMMODEL.CUSTUMIZEDROOM;
|
|
|
|
pub const AEC_SYSTEM_MODE = enum(i32) {
|
|
SINGLE_CHANNEL_AEC = 0,
|
|
ADAPTIVE_ARRAY_ONLY = 1,
|
|
OPTIBEAM_ARRAY_ONLY = 2,
|
|
ADAPTIVE_ARRAY_AND_AEC = 3,
|
|
OPTIBEAM_ARRAY_AND_AEC = 4,
|
|
SINGLE_CHANNEL_NSAGC = 5,
|
|
MODE_NOT_SET = 6,
|
|
};
|
|
pub const SINGLE_CHANNEL_AEC = AEC_SYSTEM_MODE.SINGLE_CHANNEL_AEC;
|
|
pub const ADAPTIVE_ARRAY_ONLY = AEC_SYSTEM_MODE.ADAPTIVE_ARRAY_ONLY;
|
|
pub const OPTIBEAM_ARRAY_ONLY = AEC_SYSTEM_MODE.OPTIBEAM_ARRAY_ONLY;
|
|
pub const ADAPTIVE_ARRAY_AND_AEC = AEC_SYSTEM_MODE.ADAPTIVE_ARRAY_AND_AEC;
|
|
pub const OPTIBEAM_ARRAY_AND_AEC = AEC_SYSTEM_MODE.OPTIBEAM_ARRAY_AND_AEC;
|
|
pub const SINGLE_CHANNEL_NSAGC = AEC_SYSTEM_MODE.SINGLE_CHANNEL_NSAGC;
|
|
pub const MODE_NOT_SET = AEC_SYSTEM_MODE.MODE_NOT_SET;
|
|
|
|
pub const AecQualityMetrics_Struct = extern struct {
|
|
i64Timestamp: i64,
|
|
ConvergenceFlag: u8,
|
|
MicClippedFlag: u8,
|
|
MicSilenceFlag: u8,
|
|
PstvFeadbackFlag: u8,
|
|
SpkClippedFlag: u8,
|
|
SpkMuteFlag: u8,
|
|
GlitchFlag: u8,
|
|
DoubleTalkFlag: u8,
|
|
uGlitchCount: u32,
|
|
uMicClipCount: u32,
|
|
fDuration: f32,
|
|
fTSVariance: f32,
|
|
fTSDriftRate: f32,
|
|
fVoiceLevel: f32,
|
|
fNoiseLevel: f32,
|
|
fERLE: f32,
|
|
fAvgERLE: f32,
|
|
dwReserved: u32,
|
|
};
|
|
|
|
pub const AEC_VAD_MODE = enum(i32) {
|
|
DISABLED = 0,
|
|
NORMAL = 1,
|
|
FOR_AGC = 2,
|
|
FOR_SILENCE_SUPPRESSION = 3,
|
|
};
|
|
pub const AEC_VAD_DISABLED = AEC_VAD_MODE.DISABLED;
|
|
pub const AEC_VAD_NORMAL = AEC_VAD_MODE.NORMAL;
|
|
pub const AEC_VAD_FOR_AGC = AEC_VAD_MODE.FOR_AGC;
|
|
pub const AEC_VAD_FOR_SILENCE_SUPPRESSION = AEC_VAD_MODE.FOR_SILENCE_SUPPRESSION;
|
|
|
|
pub const AEC_INPUT_STREAM = enum(i32) {
|
|
CAPTURE_STREAM = 0,
|
|
REFERENCE_STREAM = 1,
|
|
};
|
|
pub const AEC_CAPTURE_STREAM = AEC_INPUT_STREAM.CAPTURE_STREAM;
|
|
pub const AEC_REFERENCE_STREAM = AEC_INPUT_STREAM.REFERENCE_STREAM;
|
|
|
|
pub const MIC_ARRAY_MODE = enum(i32) {
|
|
SINGLE_CHAN = 0,
|
|
SIMPLE_SUM = 256,
|
|
SINGLE_BEAM = 512,
|
|
FIXED_BEAM = 1024,
|
|
EXTERN_BEAM = 2048,
|
|
};
|
|
pub const MICARRAY_SINGLE_CHAN = MIC_ARRAY_MODE.SINGLE_CHAN;
|
|
pub const MICARRAY_SIMPLE_SUM = MIC_ARRAY_MODE.SIMPLE_SUM;
|
|
pub const MICARRAY_SINGLE_BEAM = MIC_ARRAY_MODE.SINGLE_BEAM;
|
|
pub const MICARRAY_FIXED_BEAM = MIC_ARRAY_MODE.FIXED_BEAM;
|
|
pub const MICARRAY_EXTERN_BEAM = MIC_ARRAY_MODE.EXTERN_BEAM;
|
|
|
|
pub const MFVideoDSPMode = enum(i32) {
|
|
Passthrough = 1,
|
|
Stabilization = 4,
|
|
};
|
|
pub const MFVideoDSPMode_Passthrough = MFVideoDSPMode.Passthrough;
|
|
pub const MFVideoDSPMode_Stabilization = MFVideoDSPMode.Stabilization;
|
|
|
|
pub const TOC_DESCRIPTOR = extern struct {
|
|
guidID: Guid,
|
|
wStreamNumber: u16,
|
|
guidType: Guid,
|
|
wLanguageIndex: u16,
|
|
};
|
|
|
|
pub const TOC_ENTRY_DESCRIPTOR = extern struct {
|
|
qwStartTime: u64,
|
|
qwEndTime: u64,
|
|
qwStartPacketOffset: u64,
|
|
qwEndPacketOffset: u64,
|
|
qwRepresentativeFrameTime: u64,
|
|
};
|
|
|
|
pub const TOC_POS_TYPE = enum(i32) {
|
|
INHEADER = 0,
|
|
TOPLEVELOBJECT = 1,
|
|
};
|
|
pub const TOC_POS_INHEADER = TOC_POS_TYPE.INHEADER;
|
|
pub const TOC_POS_TOPLEVELOBJECT = TOC_POS_TYPE.TOPLEVELOBJECT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_ITocEntry_Value = Guid.initString("f22f5e06-585c-4def-8523-6555cfbc0cb3");
|
|
pub const IID_ITocEntry = &IID_ITocEntry_Value;
|
|
pub const ITocEntry = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetTitle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pwszTitle: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pwszTitle: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTitle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pwTitleSize: ?*u16,
|
|
pwszTitle: ?[*:0]u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pwTitleSize: ?*u16,
|
|
pwszTitle: ?[*:0]u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pDescriptor: ?*TOC_ENTRY_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pDescriptor: ?*TOC_ENTRY_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pDescriptor: ?*TOC_ENTRY_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pDescriptor: ?*TOC_ENTRY_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSubEntries: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
dwNumSubEntries: u32,
|
|
pwSubEntryIndices: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
dwNumSubEntries: u32,
|
|
pwSubEntryIndices: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSubEntries: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pdwNumSubEntries: ?*u32,
|
|
pwSubEntryIndices: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pdwNumSubEntries: ?*u32,
|
|
pwSubEntryIndices: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDescriptionData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
dwDescriptionDataSize: u32,
|
|
pbtDescriptionData: ?*u8,
|
|
pguidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
dwDescriptionDataSize: u32,
|
|
pbtDescriptionData: ?*u8,
|
|
pguidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDescriptionData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntry,
|
|
pdwDescriptionDataSize: ?*u32,
|
|
pbtDescriptionData: ?*u8,
|
|
pGuidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntry,
|
|
pdwDescriptionDataSize: ?*u32,
|
|
pbtDescriptionData: ?*u8,
|
|
pGuidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_SetTitle(self: *const T, pwszTitle: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).SetTitle(@as(*const ITocEntry, @ptrCast(self)), pwszTitle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_GetTitle(self: *const T, pwTitleSize: ?*u16, pwszTitle: ?[*:0]u16) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).GetTitle(@as(*const ITocEntry, @ptrCast(self)), pwTitleSize, pwszTitle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_SetDescriptor(self: *const T, pDescriptor: ?*TOC_ENTRY_DESCRIPTOR) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).SetDescriptor(@as(*const ITocEntry, @ptrCast(self)), pDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_GetDescriptor(self: *const T, pDescriptor: ?*TOC_ENTRY_DESCRIPTOR) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).GetDescriptor(@as(*const ITocEntry, @ptrCast(self)), pDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_SetSubEntries(self: *const T, dwNumSubEntries: u32, pwSubEntryIndices: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).SetSubEntries(@as(*const ITocEntry, @ptrCast(self)), dwNumSubEntries, pwSubEntryIndices);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_GetSubEntries(self: *const T, pdwNumSubEntries: ?*u32, pwSubEntryIndices: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).GetSubEntries(@as(*const ITocEntry, @ptrCast(self)), pdwNumSubEntries, pwSubEntryIndices);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_SetDescriptionData(self: *const T, dwDescriptionDataSize: u32, pbtDescriptionData: ?*u8, pguidType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).SetDescriptionData(@as(*const ITocEntry, @ptrCast(self)), dwDescriptionDataSize, pbtDescriptionData, pguidType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntry_GetDescriptionData(self: *const T, pdwDescriptionDataSize: ?*u32, pbtDescriptionData: ?*u8, pGuidType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntry.VTable, @ptrCast(self.vtable)).GetDescriptionData(@as(*const ITocEntry, @ptrCast(self)), pdwDescriptionDataSize, pbtDescriptionData, pGuidType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_ITocEntryList_Value = Guid.initString("3a8cccbd-0efd-43a3-b838-f38a552ba237");
|
|
pub const IID_ITocEntryList = &IID_ITocEntryList_Value;
|
|
pub const ITocEntryList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetEntryCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntryList,
|
|
pdwEntryCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntryList,
|
|
pdwEntryCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
ppEntry: ?*?*ITocEntry,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
ppEntry: ?*?*ITocEntry,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntry: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntryList,
|
|
pEntry: ?*ITocEntry,
|
|
pdwEntryIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntryList,
|
|
pEntry: ?*ITocEntry,
|
|
pdwEntryIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
pEntry: ?*ITocEntry,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
pEntry: ?*ITocEntry,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocEntryList,
|
|
dwEntryIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntryList_GetEntryCount(self: *const T, pdwEntryCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntryList.VTable, @ptrCast(self.vtable)).GetEntryCount(@as(*const ITocEntryList, @ptrCast(self)), pdwEntryCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntryList_GetEntryByIndex(self: *const T, dwEntryIndex: u32, ppEntry: ?*?*ITocEntry) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntryList.VTable, @ptrCast(self.vtable)).GetEntryByIndex(@as(*const ITocEntryList, @ptrCast(self)), dwEntryIndex, ppEntry);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntryList_AddEntry(self: *const T, pEntry: ?*ITocEntry, pdwEntryIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntryList.VTable, @ptrCast(self.vtable)).AddEntry(@as(*const ITocEntryList, @ptrCast(self)), pEntry, pdwEntryIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntryList_AddEntryByIndex(self: *const T, dwEntryIndex: u32, pEntry: ?*ITocEntry) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntryList.VTable, @ptrCast(self.vtable)).AddEntryByIndex(@as(*const ITocEntryList, @ptrCast(self)), dwEntryIndex, pEntry);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocEntryList_RemoveEntryByIndex(self: *const T, dwEntryIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocEntryList.VTable, @ptrCast(self.vtable)).RemoveEntryByIndex(@as(*const ITocEntryList, @ptrCast(self)), dwEntryIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IToc_Value = Guid.initString("d6f05441-a919-423b-91a0-89d5b4a8ab77");
|
|
pub const IID_IToc = &IID_IToc_Value;
|
|
pub const IToc = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pDescriptor: ?*TOC_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pDescriptor: ?*TOC_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pDescriptor: ?*TOC_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pDescriptor: ?*TOC_DESCRIPTOR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDescription: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pwszDescription: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pwszDescription: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDescription: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pwDescriptionSize: ?*u16,
|
|
pwszDescription: ?[*:0]u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pwDescriptionSize: ?*u16,
|
|
pwszDescription: ?[*:0]u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetContext: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
dwContextSize: u32,
|
|
pbtContext: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
dwContextSize: u32,
|
|
pbtContext: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetContext: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pdwContextSize: ?*u32,
|
|
pbtContext: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pdwContextSize: ?*u32,
|
|
pbtContext: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEntryListCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pwCount: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pwCount: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEntryListByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
ppEntryList: ?*?*ITocEntryList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
ppEntryList: ?*?*ITocEntryList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntryList: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
pEntryList: ?*ITocEntryList,
|
|
pwEntryListIndex: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
pEntryList: ?*ITocEntryList,
|
|
pwEntryListIndex: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntryListByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
pEntryList: ?*ITocEntryList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
pEntryList: ?*ITocEntryList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveEntryListByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IToc,
|
|
wEntryListIndex: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_SetDescriptor(self: *const T, pDescriptor: ?*TOC_DESCRIPTOR) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).SetDescriptor(@as(*const IToc, @ptrCast(self)), pDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_GetDescriptor(self: *const T, pDescriptor: ?*TOC_DESCRIPTOR) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).GetDescriptor(@as(*const IToc, @ptrCast(self)), pDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_SetDescription(self: *const T, pwszDescription: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).SetDescription(@as(*const IToc, @ptrCast(self)), pwszDescription);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_GetDescription(self: *const T, pwDescriptionSize: ?*u16, pwszDescription: ?[*:0]u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).GetDescription(@as(*const IToc, @ptrCast(self)), pwDescriptionSize, pwszDescription);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_SetContext(self: *const T, dwContextSize: u32, pbtContext: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).SetContext(@as(*const IToc, @ptrCast(self)), dwContextSize, pbtContext);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_GetContext(self: *const T, pdwContextSize: ?*u32, pbtContext: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).GetContext(@as(*const IToc, @ptrCast(self)), pdwContextSize, pbtContext);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_GetEntryListCount(self: *const T, pwCount: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).GetEntryListCount(@as(*const IToc, @ptrCast(self)), pwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_GetEntryListByIndex(self: *const T, wEntryListIndex: u16, ppEntryList: ?*?*ITocEntryList) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).GetEntryListByIndex(@as(*const IToc, @ptrCast(self)), wEntryListIndex, ppEntryList);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_AddEntryList(self: *const T, pEntryList: ?*ITocEntryList, pwEntryListIndex: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).AddEntryList(@as(*const IToc, @ptrCast(self)), pEntryList, pwEntryListIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_AddEntryListByIndex(self: *const T, wEntryListIndex: u16, pEntryList: ?*ITocEntryList) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).AddEntryListByIndex(@as(*const IToc, @ptrCast(self)), wEntryListIndex, pEntryList);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IToc_RemoveEntryListByIndex(self: *const T, wEntryListIndex: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IToc.VTable, @ptrCast(self.vtable)).RemoveEntryListByIndex(@as(*const IToc, @ptrCast(self)), wEntryListIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_ITocCollection_Value = Guid.initString("23fee831-ae96-42df-b170-25a04847a3ca");
|
|
pub const IID_ITocCollection = &IID_ITocCollection_Value;
|
|
pub const ITocCollection = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetEntryCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocCollection,
|
|
pdwEntryCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocCollection,
|
|
pdwEntryCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
ppToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
ppToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntry: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocCollection,
|
|
pToc: ?*IToc,
|
|
pdwEntryIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocCollection,
|
|
pToc: ?*IToc,
|
|
pdwEntryIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
pToc: ?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
pToc: ?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveEntryByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocCollection,
|
|
dwEntryIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocCollection_GetEntryCount(self: *const T, pdwEntryCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocCollection.VTable, @ptrCast(self.vtable)).GetEntryCount(@as(*const ITocCollection, @ptrCast(self)), pdwEntryCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocCollection_GetEntryByIndex(self: *const T, dwEntryIndex: u32, ppToc: ?*?*IToc) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocCollection.VTable, @ptrCast(self.vtable)).GetEntryByIndex(@as(*const ITocCollection, @ptrCast(self)), dwEntryIndex, ppToc);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocCollection_AddEntry(self: *const T, pToc: ?*IToc, pdwEntryIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocCollection.VTable, @ptrCast(self.vtable)).AddEntry(@as(*const ITocCollection, @ptrCast(self)), pToc, pdwEntryIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocCollection_AddEntryByIndex(self: *const T, dwEntryIndex: u32, pToc: ?*IToc) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocCollection.VTable, @ptrCast(self.vtable)).AddEntryByIndex(@as(*const ITocCollection, @ptrCast(self)), dwEntryIndex, pToc);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocCollection_RemoveEntryByIndex(self: *const T, dwEntryIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocCollection.VTable, @ptrCast(self.vtable)).RemoveEntryByIndex(@as(*const ITocCollection, @ptrCast(self)), dwEntryIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_ITocParser_Value = Guid.initString("ecfb9a55-9298-4f49-887f-0b36206599d2");
|
|
pub const IID_ITocParser = &IID_ITocParser_Value;
|
|
pub const ITocParser = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Init: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTocCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
pdwTocCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
pdwTocCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTocByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
dwTocIndex: u32,
|
|
ppToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
dwTocIndex: u32,
|
|
ppToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTocByType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
guidTocType: Guid,
|
|
ppTocs: ?*?*ITocCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
guidTocType: Guid,
|
|
ppTocs: ?*?*ITocCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddToc: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
pToc: ?*IToc,
|
|
pdwTocIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
pToc: ?*IToc,
|
|
pdwTocIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveTocByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
dwTocIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
dwTocIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveTocByType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
guidTocType: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
enumTocPosType: TOC_POS_TYPE,
|
|
guidTocType: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Commit: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const ITocParser,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const ITocParser,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_Init(self: *const T, pwszFileName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).Init(@as(*const ITocParser, @ptrCast(self)), pwszFileName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_GetTocCount(self: *const T, enumTocPosType: TOC_POS_TYPE, pdwTocCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).GetTocCount(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, pdwTocCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_GetTocByIndex(self: *const T, enumTocPosType: TOC_POS_TYPE, dwTocIndex: u32, ppToc: ?*?*IToc) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).GetTocByIndex(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, dwTocIndex, ppToc);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_GetTocByType(self: *const T, enumTocPosType: TOC_POS_TYPE, guidTocType: Guid, ppTocs: ?*?*ITocCollection) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).GetTocByType(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, guidTocType, ppTocs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_AddToc(self: *const T, enumTocPosType: TOC_POS_TYPE, pToc: ?*IToc, pdwTocIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).AddToc(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, pToc, pdwTocIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_RemoveTocByIndex(self: *const T, enumTocPosType: TOC_POS_TYPE, dwTocIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).RemoveTocByIndex(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, dwTocIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_RemoveTocByType(self: *const T, enumTocPosType: TOC_POS_TYPE, guidTocType: Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).RemoveTocByType(@as(*const ITocParser, @ptrCast(self)), enumTocPosType, guidTocType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn ITocParser_Commit(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const ITocParser.VTable, @ptrCast(self.vtable)).Commit(@as(*const ITocParser, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const FILE_OPENMODE = enum(i32) {
|
|
FAIL_IF_NOT_EXIST = 0,
|
|
FAIL_IF_EXIST = 1,
|
|
RESET_IF_EXIST = 2,
|
|
APPEND_IF_EXIST = 3,
|
|
DELETE_IF_EXIST = 4,
|
|
};
|
|
pub const OPENMODE_FAIL_IF_NOT_EXIST = FILE_OPENMODE.FAIL_IF_NOT_EXIST;
|
|
pub const OPENMODE_FAIL_IF_EXIST = FILE_OPENMODE.FAIL_IF_EXIST;
|
|
pub const OPENMODE_RESET_IF_EXIST = FILE_OPENMODE.RESET_IF_EXIST;
|
|
pub const OPENMODE_APPEND_IF_EXIST = FILE_OPENMODE.APPEND_IF_EXIST;
|
|
pub const OPENMODE_DELETE_IF_EXIST = FILE_OPENMODE.DELETE_IF_EXIST;
|
|
|
|
pub const SEEK_ORIGIN = enum(i32) {
|
|
Begin = 0,
|
|
Current = 1,
|
|
};
|
|
pub const _msoBegin = SEEK_ORIGIN.Begin;
|
|
pub const _msoCurrent = SEEK_ORIGIN.Current;
|
|
|
|
pub const FILE_ACCESSMODE = enum(i32) {
|
|
READ = 1,
|
|
WRITE = 2,
|
|
READWRITE = 3,
|
|
WRITE_EXCLUSIVE = 4,
|
|
};
|
|
pub const ACCESSMODE_READ = FILE_ACCESSMODE.READ;
|
|
pub const ACCESSMODE_WRITE = FILE_ACCESSMODE.WRITE;
|
|
pub const ACCESSMODE_READWRITE = FILE_ACCESSMODE.READWRITE;
|
|
pub const ACCESSMODE_WRITE_EXCLUSIVE = FILE_ACCESSMODE.WRITE_EXCLUSIVE;
|
|
|
|
const IID_IFileIo_Value = Guid.initString("11993196-1244-4840-ab44-480975c4ffe4");
|
|
pub const IID_IFileIo = &IID_IFileIo_Value;
|
|
pub const IFileIo = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
eAccessMode: FILE_ACCESSMODE,
|
|
eOpenMode: FILE_OPENMODE,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
eAccessMode: FILE_ACCESSMODE,
|
|
eOpenMode: FILE_OPENMODE,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
pqwLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
pqwLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
qwLength: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
qwLength: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
pqwPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
pqwPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
qwPosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
qwPosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsEndOfStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
pbEndOfStream: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
pbEndOfStream: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Read: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
pbt: ?*u8,
|
|
ul: u32,
|
|
pulRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
pbt: ?*u8,
|
|
ul: u32,
|
|
pulRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Write: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
pbt: ?*u8,
|
|
ul: u32,
|
|
pulWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
pbt: ?*u8,
|
|
ul: u32,
|
|
pulWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Seek: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
eSeekOrigin: SEEK_ORIGIN,
|
|
qwSeekOffset: u64,
|
|
dwSeekFlags: u32,
|
|
pqwCurrentPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
eSeekOrigin: SEEK_ORIGIN,
|
|
qwSeekOffset: u64,
|
|
dwSeekFlags: u32,
|
|
pqwCurrentPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_Initialize(self: *const T, eAccessMode: FILE_ACCESSMODE, eOpenMode: FILE_OPENMODE, pwszFileName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IFileIo, @ptrCast(self)), eAccessMode, eOpenMode, pwszFileName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_GetLength(self: *const T, pqwLength: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IFileIo, @ptrCast(self)), pqwLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_SetLength(self: *const T, qwLength: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).SetLength(@as(*const IFileIo, @ptrCast(self)), qwLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_GetCurrentPosition(self: *const T, pqwPosition: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).GetCurrentPosition(@as(*const IFileIo, @ptrCast(self)), pqwPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_SetCurrentPosition(self: *const T, qwPosition: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).SetCurrentPosition(@as(*const IFileIo, @ptrCast(self)), qwPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_IsEndOfStream(self: *const T, pbEndOfStream: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).IsEndOfStream(@as(*const IFileIo, @ptrCast(self)), pbEndOfStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_Read(self: *const T, pbt: ?*u8, ul: u32, pulRead: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).Read(@as(*const IFileIo, @ptrCast(self)), pbt, ul, pulRead);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_Write(self: *const T, pbt: ?*u8, ul: u32, pulWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).Write(@as(*const IFileIo, @ptrCast(self)), pbt, ul, pulWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_Seek(self: *const T, eSeekOrigin: SEEK_ORIGIN, qwSeekOffset: u64, dwSeekFlags: u32, pqwCurrentPosition: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).Seek(@as(*const IFileIo, @ptrCast(self)), eSeekOrigin, qwSeekOffset, dwSeekFlags, pqwCurrentPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileIo_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileIo.VTable, @ptrCast(self.vtable)).Close(@as(*const IFileIo, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IFileClient_Value = Guid.initString("bfccd196-1244-4840-ab44-480975c4ffe4");
|
|
pub const IID_IFileClient = &IID_IFileClient_Value;
|
|
pub const IFileClient = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetObjectDiskSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileClient,
|
|
pqwSize: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileClient,
|
|
pqwSize: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Write: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileClient,
|
|
pFio: ?*IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileClient,
|
|
pFio: ?*IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Read: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IFileClient,
|
|
pFio: ?*IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IFileClient,
|
|
pFio: ?*IFileIo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileClient_GetObjectDiskSize(self: *const T, pqwSize: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileClient.VTable, @ptrCast(self.vtable)).GetObjectDiskSize(@as(*const IFileClient, @ptrCast(self)), pqwSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileClient_Write(self: *const T, pFio: ?*IFileIo) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileClient.VTable, @ptrCast(self.vtable)).Write(@as(*const IFileClient, @ptrCast(self)), pFio);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IFileClient_Read(self: *const T, pFio: ?*IFileIo) callconv(.Inline) HRESULT {
|
|
return @as(*const IFileClient.VTable, @ptrCast(self.vtable)).Read(@as(*const IFileClient, @ptrCast(self)), pFio);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IClusterDetector_Value = Guid.initString("3f07f7b7-c680-41d9-9423-915107ec9ff9");
|
|
pub const IID_IClusterDetector = &IID_IClusterDetector_Value;
|
|
pub const IClusterDetector = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IClusterDetector,
|
|
wBaseEntryLevel: u16,
|
|
wClusterEntryLevel: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IClusterDetector,
|
|
wBaseEntryLevel: u16,
|
|
wClusterEntryLevel: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Detect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IClusterDetector,
|
|
dwMaxNumClusters: u32,
|
|
fMinClusterDuration: f32,
|
|
fMaxClusterDuration: f32,
|
|
pSrcToc: ?*IToc,
|
|
ppDstToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IClusterDetector,
|
|
dwMaxNumClusters: u32,
|
|
fMinClusterDuration: f32,
|
|
fMaxClusterDuration: f32,
|
|
pSrcToc: ?*IToc,
|
|
ppDstToc: ?*?*IToc,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IClusterDetector_Initialize(self: *const T, wBaseEntryLevel: u16, wClusterEntryLevel: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IClusterDetector.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IClusterDetector, @ptrCast(self)), wBaseEntryLevel, wClusterEntryLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IClusterDetector_Detect(self: *const T, dwMaxNumClusters: u32, fMinClusterDuration: f32, fMaxClusterDuration: f32, pSrcToc: ?*IToc, ppDstToc: ?*?*IToc) callconv(.Inline) HRESULT {
|
|
return @as(*const IClusterDetector.VTable, @ptrCast(self.vtable)).Detect(@as(*const IClusterDetector, @ptrCast(self)), dwMaxNumClusters, fMinClusterDuration, fMaxClusterDuration, pSrcToc, ppDstToc);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const DXVA_AYUVsample2 = extern struct {
|
|
bCrValue: u8,
|
|
bCbValue: u8,
|
|
bY_Value: u8,
|
|
bSampleAlpha8: u8,
|
|
};
|
|
|
|
pub const DXVA_BufferDescription = extern struct {
|
|
dwTypeIndex: u32 align(1),
|
|
dwBufferIndex: u32 align(1),
|
|
dwDataOffset: u32 align(1),
|
|
dwDataSize: u32 align(1),
|
|
dwFirstMBaddress: u32 align(1),
|
|
dwNumMBsInBuffer: u32 align(1),
|
|
dwWidth: u32 align(1),
|
|
dwHeight: u32 align(1),
|
|
dwStride: u32 align(1),
|
|
dwReservedBits: u32 align(1),
|
|
};
|
|
|
|
pub const DXVA_ConfigPictureDecode = extern struct {
|
|
dwFunction: u32 align(1),
|
|
dwReservedBits: [3]u32 align(1),
|
|
guidConfigBitstreamEncryption: Guid align(1),
|
|
guidConfigMBcontrolEncryption: Guid align(1),
|
|
guidConfigResidDiffEncryption: Guid align(1),
|
|
bConfigBitstreamRaw: u8 align(1),
|
|
bConfigMBcontrolRasterOrder: u8 align(1),
|
|
bConfigResidDiffHost: u8 align(1),
|
|
bConfigSpatialResid8: u8 align(1),
|
|
bConfigResid8Subtraction: u8 align(1),
|
|
bConfigSpatialHost8or9Clipping: u8 align(1),
|
|
bConfigSpatialResidInterleaved: u8 align(1),
|
|
bConfigIntraResidUnsigned: u8 align(1),
|
|
bConfigResidDiffAccelerator: u8 align(1),
|
|
bConfigHostInverseScan: u8 align(1),
|
|
bConfigSpecificIDCT: u8 align(1),
|
|
bConfig4GroupedCoefs: u8 align(1),
|
|
};
|
|
|
|
pub const DXVA_PictureParameters = extern struct {
|
|
wDecodedPictureIndex: u16 align(1),
|
|
wDeblockedPictureIndex: u16 align(1),
|
|
wForwardRefPictureIndex: u16 align(1),
|
|
wBackwardRefPictureIndex: u16 align(1),
|
|
wPicWidthInMBminus1: u16 align(1),
|
|
wPicHeightInMBminus1: u16 align(1),
|
|
bMacroblockWidthMinus1: u8 align(1),
|
|
bMacroblockHeightMinus1: u8 align(1),
|
|
bBlockWidthMinus1: u8 align(1),
|
|
bBlockHeightMinus1: u8 align(1),
|
|
bBPPminus1: u8 align(1),
|
|
bPicStructure: u8 align(1),
|
|
bSecondField: u8 align(1),
|
|
bPicIntra: u8 align(1),
|
|
bPicBackwardPrediction: u8 align(1),
|
|
bBidirectionalAveragingMode: u8 align(1),
|
|
bMVprecisionAndChromaRelation: u8 align(1),
|
|
bChromaFormat: u8 align(1),
|
|
bPicScanFixed: u8 align(1),
|
|
bPicScanMethod: u8 align(1),
|
|
bPicReadbackRequests: u8 align(1),
|
|
bRcontrol: u8 align(1),
|
|
bPicSpatialResid8: u8 align(1),
|
|
bPicOverflowBlocks: u8 align(1),
|
|
bPicExtrapolation: u8 align(1),
|
|
bPicDeblocked: u8 align(1),
|
|
bPicDeblockConfined: u8 align(1),
|
|
bPic4MVallowed: u8 align(1),
|
|
bPicOBMC: u8 align(1),
|
|
bPicBinPB: u8 align(1),
|
|
bMV_RPS: u8 align(1),
|
|
bReservedBits: u8 align(1),
|
|
wBitstreamFcodes: u16 align(1),
|
|
wBitstreamPCEelements: u16 align(1),
|
|
bBitstreamConcealmentNeed: u8 align(1),
|
|
bBitstreamConcealmentMethod: u8 align(1),
|
|
};
|
|
|
|
pub const DXVAUncompDataInfo = extern struct {
|
|
UncompWidth: u32,
|
|
UncompHeight: u32,
|
|
UncompFormat: D3DFORMAT,
|
|
};
|
|
|
|
pub const DXVACompBufferInfo = extern struct {
|
|
NumCompBuffers: u32,
|
|
WidthToCreate: u32,
|
|
HeightToCreate: u32,
|
|
BytesToAllocate: u32,
|
|
Usage: u32,
|
|
Pool: D3DPOOL,
|
|
Format: D3DFORMAT,
|
|
};
|
|
|
|
pub const DXVABufferInfo = extern struct {
|
|
pCompSurface: ?*anyopaque,
|
|
DataOffset: u32,
|
|
DataSize: u32,
|
|
};
|
|
|
|
pub const DXVA_SampleFormat = enum(i32) {
|
|
FormatMask = 255,
|
|
Unknown = 0,
|
|
PreviousFrame = 1,
|
|
ProgressiveFrame = 2,
|
|
FieldInterleavedEvenFirst = 3,
|
|
FieldInterleavedOddFirst = 4,
|
|
FieldSingleEven = 5,
|
|
FieldSingleOdd = 6,
|
|
SubStream = 7,
|
|
};
|
|
pub const DXVA_SampleFormatMask = DXVA_SampleFormat.FormatMask;
|
|
pub const DXVA_SampleUnknown = DXVA_SampleFormat.Unknown;
|
|
pub const DXVA_SamplePreviousFrame = DXVA_SampleFormat.PreviousFrame;
|
|
pub const DXVA_SampleProgressiveFrame = DXVA_SampleFormat.ProgressiveFrame;
|
|
pub const DXVA_SampleFieldInterleavedEvenFirst = DXVA_SampleFormat.FieldInterleavedEvenFirst;
|
|
pub const DXVA_SampleFieldInterleavedOddFirst = DXVA_SampleFormat.FieldInterleavedOddFirst;
|
|
pub const DXVA_SampleFieldSingleEven = DXVA_SampleFormat.FieldSingleEven;
|
|
pub const DXVA_SampleFieldSingleOdd = DXVA_SampleFormat.FieldSingleOdd;
|
|
pub const DXVA_SampleSubStream = DXVA_SampleFormat.SubStream;
|
|
|
|
pub const DXVA_VideoTransferFunction = enum(i32) {
|
|
Shift = 27,
|
|
Mask = -134217728,
|
|
_Unknown = 0,
|
|
_10 = 1,
|
|
_18 = 2,
|
|
_20 = 3,
|
|
_22 = 4,
|
|
_22_709 = 5,
|
|
_22_240M = 6,
|
|
_22_8bit_sRGB = 7,
|
|
_28 = 8,
|
|
};
|
|
pub const DXVA_VideoTransFuncShift = DXVA_VideoTransferFunction.Shift;
|
|
pub const DXVA_VideoTransFuncMask = DXVA_VideoTransferFunction.Mask;
|
|
pub const DXVA_VideoTransFunc_Unknown = DXVA_VideoTransferFunction._Unknown;
|
|
pub const DXVA_VideoTransFunc_10 = DXVA_VideoTransferFunction._10;
|
|
pub const DXVA_VideoTransFunc_18 = DXVA_VideoTransferFunction._18;
|
|
pub const DXVA_VideoTransFunc_20 = DXVA_VideoTransferFunction._20;
|
|
pub const DXVA_VideoTransFunc_22 = DXVA_VideoTransferFunction._22;
|
|
pub const DXVA_VideoTransFunc_22_709 = DXVA_VideoTransferFunction._22_709;
|
|
pub const DXVA_VideoTransFunc_22_240M = DXVA_VideoTransferFunction._22_240M;
|
|
pub const DXVA_VideoTransFunc_22_8bit_sRGB = DXVA_VideoTransferFunction._22_8bit_sRGB;
|
|
pub const DXVA_VideoTransFunc_28 = DXVA_VideoTransferFunction._28;
|
|
|
|
pub const DXVA_VideoPrimaries = enum(i32) {
|
|
Shift = 22,
|
|
Mask = 130023424,
|
|
_Unknown = 0,
|
|
_reserved = 1,
|
|
_BT709 = 2,
|
|
_BT470_2_SysM = 3,
|
|
_BT470_2_SysBG = 4,
|
|
_SMPTE170M = 5,
|
|
_SMPTE240M = 6,
|
|
_EBU3213 = 7,
|
|
_SMPTE_C = 8,
|
|
};
|
|
pub const DXVA_VideoPrimariesShift = DXVA_VideoPrimaries.Shift;
|
|
pub const DXVA_VideoPrimariesMask = DXVA_VideoPrimaries.Mask;
|
|
pub const DXVA_VideoPrimaries_Unknown = DXVA_VideoPrimaries._Unknown;
|
|
pub const DXVA_VideoPrimaries_reserved = DXVA_VideoPrimaries._reserved;
|
|
pub const DXVA_VideoPrimaries_BT709 = DXVA_VideoPrimaries._BT709;
|
|
pub const DXVA_VideoPrimaries_BT470_2_SysM = DXVA_VideoPrimaries._BT470_2_SysM;
|
|
pub const DXVA_VideoPrimaries_BT470_2_SysBG = DXVA_VideoPrimaries._BT470_2_SysBG;
|
|
pub const DXVA_VideoPrimaries_SMPTE170M = DXVA_VideoPrimaries._SMPTE170M;
|
|
pub const DXVA_VideoPrimaries_SMPTE240M = DXVA_VideoPrimaries._SMPTE240M;
|
|
pub const DXVA_VideoPrimaries_EBU3213 = DXVA_VideoPrimaries._EBU3213;
|
|
pub const DXVA_VideoPrimaries_SMPTE_C = DXVA_VideoPrimaries._SMPTE_C;
|
|
|
|
pub const DXVA_VideoLighting = enum(i32) {
|
|
Shift = 18,
|
|
Mask = 3932160,
|
|
_Unknown = 0,
|
|
_bright = 1,
|
|
_office = 2,
|
|
_dim = 3,
|
|
_dark = 4,
|
|
};
|
|
pub const DXVA_VideoLightingShift = DXVA_VideoLighting.Shift;
|
|
pub const DXVA_VideoLightingMask = DXVA_VideoLighting.Mask;
|
|
pub const DXVA_VideoLighting_Unknown = DXVA_VideoLighting._Unknown;
|
|
pub const DXVA_VideoLighting_bright = DXVA_VideoLighting._bright;
|
|
pub const DXVA_VideoLighting_office = DXVA_VideoLighting._office;
|
|
pub const DXVA_VideoLighting_dim = DXVA_VideoLighting._dim;
|
|
pub const DXVA_VideoLighting_dark = DXVA_VideoLighting._dark;
|
|
|
|
pub const DXVA_VideoTransferMatrix = enum(i32) {
|
|
Shift = 15,
|
|
Mask = 229376,
|
|
_Unknown = 0,
|
|
_BT709 = 1,
|
|
_BT601 = 2,
|
|
_SMPTE240M = 3,
|
|
};
|
|
pub const DXVA_VideoTransferMatrixShift = DXVA_VideoTransferMatrix.Shift;
|
|
pub const DXVA_VideoTransferMatrixMask = DXVA_VideoTransferMatrix.Mask;
|
|
pub const DXVA_VideoTransferMatrix_Unknown = DXVA_VideoTransferMatrix._Unknown;
|
|
pub const DXVA_VideoTransferMatrix_BT709 = DXVA_VideoTransferMatrix._BT709;
|
|
pub const DXVA_VideoTransferMatrix_BT601 = DXVA_VideoTransferMatrix._BT601;
|
|
pub const DXVA_VideoTransferMatrix_SMPTE240M = DXVA_VideoTransferMatrix._SMPTE240M;
|
|
|
|
pub const DXVA_NominalRange = enum(i32) {
|
|
Shift = 12,
|
|
Mask = 28672,
|
|
_Unknown = 0,
|
|
_Normal = 1,
|
|
_Wide = 2,
|
|
// _0_255 = 1, this enum value conflicts with _Normal
|
|
// _16_235 = 2, this enum value conflicts with _Wide
|
|
_48_208 = 3,
|
|
};
|
|
pub const DXVA_NominalRangeShift = DXVA_NominalRange.Shift;
|
|
pub const DXVA_NominalRangeMask = DXVA_NominalRange.Mask;
|
|
pub const DXVA_NominalRange_Unknown = DXVA_NominalRange._Unknown;
|
|
pub const DXVA_NominalRange_Normal = DXVA_NominalRange._Normal;
|
|
pub const DXVA_NominalRange_Wide = DXVA_NominalRange._Wide;
|
|
pub const DXVA_NominalRange_0_255 = DXVA_NominalRange._Normal;
|
|
pub const DXVA_NominalRange_16_235 = DXVA_NominalRange._Wide;
|
|
pub const DXVA_NominalRange_48_208 = DXVA_NominalRange._48_208;
|
|
|
|
pub const DXVA_VideoChromaSubsampling = enum(i32) {
|
|
Shift = 8,
|
|
Mask = 3840,
|
|
_Unknown = 0,
|
|
// _ProgressiveChroma = 8, this enum value conflicts with Shift
|
|
_Horizontally_Cosited = 4,
|
|
_Vertically_Cosited = 2,
|
|
_Vertically_AlignedChromaPlanes = 1,
|
|
_MPEG2 = 5,
|
|
// _MPEG1 = 1, this enum value conflicts with _Vertically_AlignedChromaPlanes
|
|
_DV_PAL = 6,
|
|
_Cosited = 7,
|
|
};
|
|
pub const DXVA_VideoChromaSubsamplingShift = DXVA_VideoChromaSubsampling.Shift;
|
|
pub const DXVA_VideoChromaSubsamplingMask = DXVA_VideoChromaSubsampling.Mask;
|
|
pub const DXVA_VideoChromaSubsampling_Unknown = DXVA_VideoChromaSubsampling._Unknown;
|
|
pub const DXVA_VideoChromaSubsampling_ProgressiveChroma = DXVA_VideoChromaSubsampling.Shift;
|
|
pub const DXVA_VideoChromaSubsampling_Horizontally_Cosited = DXVA_VideoChromaSubsampling._Horizontally_Cosited;
|
|
pub const DXVA_VideoChromaSubsampling_Vertically_Cosited = DXVA_VideoChromaSubsampling._Vertically_Cosited;
|
|
pub const DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = DXVA_VideoChromaSubsampling._Vertically_AlignedChromaPlanes;
|
|
pub const DXVA_VideoChromaSubsampling_MPEG2 = DXVA_VideoChromaSubsampling._MPEG2;
|
|
pub const DXVA_VideoChromaSubsampling_MPEG1 = DXVA_VideoChromaSubsampling._Vertically_AlignedChromaPlanes;
|
|
pub const DXVA_VideoChromaSubsampling_DV_PAL = DXVA_VideoChromaSubsampling._DV_PAL;
|
|
pub const DXVA_VideoChromaSubsampling_Cosited = DXVA_VideoChromaSubsampling._Cosited;
|
|
|
|
pub const DXVA_ExtendedFormat = extern struct {
|
|
_bitfield: u32,
|
|
};
|
|
|
|
pub const DXVA_Frequency = extern struct {
|
|
Numerator: u32,
|
|
Denominator: u32,
|
|
};
|
|
|
|
pub const DXVA_VideoDesc = extern struct {
|
|
Size: u32,
|
|
SampleWidth: u32,
|
|
SampleHeight: u32,
|
|
SampleFormat: u32,
|
|
d3dFormat: D3DFORMAT,
|
|
InputSampleFreq: DXVA_Frequency,
|
|
OutputFrameFreq: DXVA_Frequency,
|
|
};
|
|
|
|
pub const DXVA_VideoProcessCaps = enum(i32) {
|
|
None = 0,
|
|
YUV2RGB = 1,
|
|
StretchX = 2,
|
|
StretchY = 4,
|
|
AlphaBlend = 8,
|
|
SubRects = 16,
|
|
SubStreams = 32,
|
|
SubStreamsExtended = 64,
|
|
YUV2RGBExtended = 128,
|
|
AlphaBlendExtended = 256,
|
|
};
|
|
pub const DXVA_VideoProcess_None = DXVA_VideoProcessCaps.None;
|
|
pub const DXVA_VideoProcess_YUV2RGB = DXVA_VideoProcessCaps.YUV2RGB;
|
|
pub const DXVA_VideoProcess_StretchX = DXVA_VideoProcessCaps.StretchX;
|
|
pub const DXVA_VideoProcess_StretchY = DXVA_VideoProcessCaps.StretchY;
|
|
pub const DXVA_VideoProcess_AlphaBlend = DXVA_VideoProcessCaps.AlphaBlend;
|
|
pub const DXVA_VideoProcess_SubRects = DXVA_VideoProcessCaps.SubRects;
|
|
pub const DXVA_VideoProcess_SubStreams = DXVA_VideoProcessCaps.SubStreams;
|
|
pub const DXVA_VideoProcess_SubStreamsExtended = DXVA_VideoProcessCaps.SubStreamsExtended;
|
|
pub const DXVA_VideoProcess_YUV2RGBExtended = DXVA_VideoProcessCaps.YUV2RGBExtended;
|
|
pub const DXVA_VideoProcess_AlphaBlendExtended = DXVA_VideoProcessCaps.AlphaBlendExtended;
|
|
|
|
pub const DXVA_DeinterlaceTech = enum(i32) {
|
|
Unknown = 0,
|
|
BOBLineReplicate = 1,
|
|
BOBVerticalStretch = 2,
|
|
BOBVerticalStretch4Tap = 256,
|
|
MedianFiltering = 4,
|
|
EdgeFiltering = 16,
|
|
FieldAdaptive = 32,
|
|
PixelAdaptive = 64,
|
|
MotionVectorSteered = 128,
|
|
};
|
|
pub const DXVA_DeinterlaceTech_Unknown = DXVA_DeinterlaceTech.Unknown;
|
|
pub const DXVA_DeinterlaceTech_BOBLineReplicate = DXVA_DeinterlaceTech.BOBLineReplicate;
|
|
pub const DXVA_DeinterlaceTech_BOBVerticalStretch = DXVA_DeinterlaceTech.BOBVerticalStretch;
|
|
pub const DXVA_DeinterlaceTech_BOBVerticalStretch4Tap = DXVA_DeinterlaceTech.BOBVerticalStretch4Tap;
|
|
pub const DXVA_DeinterlaceTech_MedianFiltering = DXVA_DeinterlaceTech.MedianFiltering;
|
|
pub const DXVA_DeinterlaceTech_EdgeFiltering = DXVA_DeinterlaceTech.EdgeFiltering;
|
|
pub const DXVA_DeinterlaceTech_FieldAdaptive = DXVA_DeinterlaceTech.FieldAdaptive;
|
|
pub const DXVA_DeinterlaceTech_PixelAdaptive = DXVA_DeinterlaceTech.PixelAdaptive;
|
|
pub const DXVA_DeinterlaceTech_MotionVectorSteered = DXVA_DeinterlaceTech.MotionVectorSteered;
|
|
|
|
pub const DXVA_VideoSample = extern struct {
|
|
rtStart: i64,
|
|
rtEnd: i64,
|
|
SampleFormat: DXVA_SampleFormat,
|
|
lpDDSSrcSurface: ?*anyopaque,
|
|
};
|
|
|
|
pub const DXVA_SampleFlags = enum(i32) {
|
|
sMask = 15,
|
|
_Palette_Changed = 1,
|
|
_SrcRect_Changed = 2,
|
|
_DstRect_Changed = 4,
|
|
_ColorData_Changed = 8,
|
|
};
|
|
pub const DXVA_SampleFlagsMask = DXVA_SampleFlags.sMask;
|
|
pub const DXVA_SampleFlag_Palette_Changed = DXVA_SampleFlags._Palette_Changed;
|
|
pub const DXVA_SampleFlag_SrcRect_Changed = DXVA_SampleFlags._SrcRect_Changed;
|
|
pub const DXVA_SampleFlag_DstRect_Changed = DXVA_SampleFlags._DstRect_Changed;
|
|
pub const DXVA_SampleFlag_ColorData_Changed = DXVA_SampleFlags._ColorData_Changed;
|
|
|
|
pub const DXVA_DestinationFlags = enum(i32) {
|
|
Mask = 15,
|
|
_Background_Changed = 1,
|
|
_TargetRect_Changed = 2,
|
|
_ColorData_Changed = 4,
|
|
_Alpha_Changed = 8,
|
|
};
|
|
pub const DXVA_DestinationFlagMask = DXVA_DestinationFlags.Mask;
|
|
pub const DXVA_DestinationFlag_Background_Changed = DXVA_DestinationFlags._Background_Changed;
|
|
pub const DXVA_DestinationFlag_TargetRect_Changed = DXVA_DestinationFlags._TargetRect_Changed;
|
|
pub const DXVA_DestinationFlag_ColorData_Changed = DXVA_DestinationFlags._ColorData_Changed;
|
|
pub const DXVA_DestinationFlag_Alpha_Changed = DXVA_DestinationFlags._Alpha_Changed;
|
|
|
|
|
|
pub const DXVA_DeinterlaceCaps = extern struct {
|
|
Size: u32,
|
|
NumPreviousOutputFrames: u32,
|
|
InputPool: u32,
|
|
NumForwardRefSamples: u32,
|
|
NumBackwardRefSamples: u32,
|
|
d3dOutputFormat: D3DFORMAT,
|
|
VideoProcessingCaps: DXVA_VideoProcessCaps,
|
|
DeinterlaceTechnology: DXVA_DeinterlaceTech,
|
|
};
|
|
|
|
|
|
|
|
pub const DXVA_DeinterlaceBlt = extern struct {
|
|
Size: u32,
|
|
Reserved: u32,
|
|
rtTarget: i64,
|
|
DstRect: RECT,
|
|
SrcRect: RECT,
|
|
NumSourceSurfaces: u32,
|
|
Alpha: f32,
|
|
Source: [32]DXVA_VideoSample,
|
|
};
|
|
|
|
pub const DXVA_DeinterlaceBltEx = extern struct {
|
|
Size: u32,
|
|
BackgroundColor: DXVA_AYUVsample2,
|
|
rcTarget: RECT,
|
|
rtTarget: i64,
|
|
NumSourceSurfaces: u32,
|
|
Alpha: f32,
|
|
Source: [32]DXVA_VideoSample2,
|
|
DestinationFormat: u32,
|
|
DestinationFlags: u32,
|
|
};
|
|
|
|
pub const DXVA_DeinterlaceQueryAvailableModes = extern struct {
|
|
Size: u32,
|
|
NumGuids: u32,
|
|
Guids: [32]Guid,
|
|
};
|
|
|
|
pub const DXVA_DeinterlaceQueryModeCaps = extern struct {
|
|
Size: u32,
|
|
Guid: Guid,
|
|
VideoDesc: DXVA_VideoDesc,
|
|
};
|
|
|
|
pub const DXVA_ProcAmpControlProp = enum(i32) {
|
|
None = 0,
|
|
Brightness = 1,
|
|
Contrast = 2,
|
|
Hue = 4,
|
|
Saturation = 8,
|
|
};
|
|
pub const DXVA_ProcAmp_None = DXVA_ProcAmpControlProp.None;
|
|
pub const DXVA_ProcAmp_Brightness = DXVA_ProcAmpControlProp.Brightness;
|
|
pub const DXVA_ProcAmp_Contrast = DXVA_ProcAmpControlProp.Contrast;
|
|
pub const DXVA_ProcAmp_Hue = DXVA_ProcAmpControlProp.Hue;
|
|
pub const DXVA_ProcAmp_Saturation = DXVA_ProcAmpControlProp.Saturation;
|
|
|
|
pub const DXVA_ProcAmpControlCaps = extern struct {
|
|
Size: u32,
|
|
InputPool: u32,
|
|
d3dOutputFormat: D3DFORMAT,
|
|
ProcAmpControlProps: u32,
|
|
VideoProcessingCaps: u32,
|
|
};
|
|
|
|
pub const DXVA_ProcAmpControlQueryRange = extern struct {
|
|
Size: u32,
|
|
ProcAmpControlProp: DXVA_ProcAmpControlProp,
|
|
VideoDesc: DXVA_VideoDesc,
|
|
};
|
|
|
|
pub const DXVA_VideoPropertyRange = extern struct {
|
|
MinValue: f32,
|
|
MaxValue: f32,
|
|
DefaultValue: f32,
|
|
StepSize: f32,
|
|
};
|
|
|
|
pub const DXVA_ProcAmpControlBlt = extern struct {
|
|
Size: u32,
|
|
DstRect: RECT,
|
|
SrcRect: RECT,
|
|
Alpha: f32,
|
|
Brightness: f32,
|
|
Contrast: f32,
|
|
Hue: f32,
|
|
Saturation: f32,
|
|
};
|
|
|
|
pub const DXVA_COPPSignature = extern struct {
|
|
Signature: [256]u8,
|
|
};
|
|
|
|
pub const DXVA_COPPCommand = extern struct {
|
|
macKDI: Guid,
|
|
guidCommandID: Guid,
|
|
dwSequence: u32,
|
|
cbSizeData: u32,
|
|
CommandData: [4056]u8,
|
|
};
|
|
|
|
pub const DXVA_COPPStatusInput = extern struct {
|
|
rApp: Guid,
|
|
guidStatusRequestID: Guid,
|
|
dwSequence: u32,
|
|
cbSizeData: u32,
|
|
StatusData: [4056]u8,
|
|
};
|
|
|
|
pub const DXVA_COPPStatusOutput = extern struct {
|
|
macKDI: Guid,
|
|
cbSizeData: u32,
|
|
COPPStatus: [4076]u8,
|
|
};
|
|
|
|
const CLSID_CODECAPI_AVEncCommonFormatConstraint_Value = Guid.initString("57cbb9b8-116f-4951-b40c-c2a035ed8f17");
|
|
pub const CLSID_CODECAPI_AVEncCommonFormatConstraint = &CLSID_CODECAPI_AVEncCommonFormatConstraint_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatUnSpecified_Value = Guid.initString("af46a35a-6024-4525-a48a-094b97f5b3c2");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatUnSpecified = &CLSID_CODECAPI_GUID_AVEncCommonFormatUnSpecified_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_V_Value = Guid.initString("cc9598c4-e7fe-451d-b1ca-761bc840b7f3");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_V = &CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_V_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_DashVR_Value = Guid.initString("e55199d6-044c-4dae-a488-531ed306235b");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_DashVR = &CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_DashVR_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_PlusVR_Value = Guid.initString("e74c6f2e-ec37-478d-9af4-a5e135b6271c");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_PlusVR = &CLSID_CODECAPI_GUID_AVEncCommonFormatDVD_PlusVR_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatVCD_Value = Guid.initString("95035bf7-9d90-40ff-ad5c-5cf8cf71ca1d");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatVCD = &CLSID_CODECAPI_GUID_AVEncCommonFormatVCD_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatSVCD_Value = Guid.initString("51d85818-8220-448c-8066-d69bed16c9ad");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatSVCD = &CLSID_CODECAPI_GUID_AVEncCommonFormatSVCD_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatATSC_Value = Guid.initString("8d7b897c-a019-4670-aa76-2edcac7ac296");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatATSC = &CLSID_CODECAPI_GUID_AVEncCommonFormatATSC_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatDVB_Value = Guid.initString("71830d8f-6c33-430d-844b-c2705baae6db");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatDVB = &CLSID_CODECAPI_GUID_AVEncCommonFormatDVB_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatMP3_Value = Guid.initString("349733cd-eb08-4dc2-8197-e49835ef828b");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatMP3 = &CLSID_CODECAPI_GUID_AVEncCommonFormatMP3_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatHighMAT_Value = Guid.initString("1eabe760-fb2b-4928-90d1-78db88eee889");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatHighMAT = &CLSID_CODECAPI_GUID_AVEncCommonFormatHighMAT_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncCommonFormatHighMPV_Value = Guid.initString("a2d25db8-b8f9-42c2-8bc7-0b93cf604788");
|
|
pub const CLSID_CODECAPI_GUID_AVEncCommonFormatHighMPV = &CLSID_CODECAPI_GUID_AVEncCommonFormatHighMPV_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCodecType_Value = Guid.initString("08af4ac1-f3f2-4c74-9dcf-37f2ec79f826");
|
|
pub const CLSID_CODECAPI_AVEncCodecType = &CLSID_CODECAPI_AVEncCodecType_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncMPEG1Video_Value = Guid.initString("c8dafefe-da1e-4774-b27d-11830c16b1fe");
|
|
pub const CLSID_CODECAPI_GUID_AVEncMPEG1Video = &CLSID_CODECAPI_GUID_AVEncMPEG1Video_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncMPEG2Video_Value = Guid.initString("046dc19a-6677-4aaa-a31d-c1ab716f4560");
|
|
pub const CLSID_CODECAPI_GUID_AVEncMPEG2Video = &CLSID_CODECAPI_GUID_AVEncMPEG2Video_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncMPEG1Audio_Value = Guid.initString("d4dd1362-cd4a-4cd6-8138-b94db4542b04");
|
|
pub const CLSID_CODECAPI_GUID_AVEncMPEG1Audio = &CLSID_CODECAPI_GUID_AVEncMPEG1Audio_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncMPEG2Audio_Value = Guid.initString("ee4cbb1f-9c3f-4770-92b5-fcb7c2a8d381");
|
|
pub const CLSID_CODECAPI_GUID_AVEncMPEG2Audio = &CLSID_CODECAPI_GUID_AVEncMPEG2Audio_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncWMV_Value = Guid.initString("4e0fef9b-1d43-41bd-b8bd-4d7bf7457a2a");
|
|
pub const CLSID_CODECAPI_GUID_AVEncWMV = &CLSID_CODECAPI_GUID_AVEncWMV_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEndMPEG4Video_Value = Guid.initString("dd37b12a-9503-4f8b-b8d0-324a00c0a1cf");
|
|
pub const CLSID_CODECAPI_GUID_AVEndMPEG4Video = &CLSID_CODECAPI_GUID_AVEndMPEG4Video_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncH264Video_Value = Guid.initString("95044eab-31b3-47de-8e75-38a42bb03e28");
|
|
pub const CLSID_CODECAPI_GUID_AVEncH264Video = &CLSID_CODECAPI_GUID_AVEncH264Video_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDV_Value = Guid.initString("09b769c7-3329-44fb-8954-fa30937d3d5a");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDV = &CLSID_CODECAPI_GUID_AVEncDV_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncWMAPro_Value = Guid.initString("1955f90c-33f7-4a68-ab81-53f5657125c4");
|
|
pub const CLSID_CODECAPI_GUID_AVEncWMAPro = &CLSID_CODECAPI_GUID_AVEncWMAPro_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncWMALossless_Value = Guid.initString("55ca7265-23d8-4761-9031-b74fbe12f4c1");
|
|
pub const CLSID_CODECAPI_GUID_AVEncWMALossless = &CLSID_CODECAPI_GUID_AVEncWMALossless_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncWMAVoice_Value = Guid.initString("13ed18cb-50e8-4276-a288-a6aa228382d9");
|
|
pub const CLSID_CODECAPI_GUID_AVEncWMAVoice = &CLSID_CODECAPI_GUID_AVEncWMAVoice_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDolbyDigitalPro_Value = Guid.initString("f5be76cc-0ff8-40eb-9cb1-bba94004d44f");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDolbyDigitalPro = &CLSID_CODECAPI_GUID_AVEncDolbyDigitalPro_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDolbyDigitalConsumer_Value = Guid.initString("c1a7bf6c-0059-4bfa-94ef-ef747a768d52");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDolbyDigitalConsumer = &CLSID_CODECAPI_GUID_AVEncDolbyDigitalConsumer_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDolbyDigitalPlus_Value = Guid.initString("698d1b80-f7dd-415c-971c-42492a2056c6");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDolbyDigitalPlus = &CLSID_CODECAPI_GUID_AVEncDolbyDigitalPlus_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDTSHD_Value = Guid.initString("2052e630-469d-4bfb-80ca-1d656e7e918f");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDTSHD = &CLSID_CODECAPI_GUID_AVEncDTSHD_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncDTS_Value = Guid.initString("45fbcaa2-5e6e-4ab0-8893-5903bee93acf");
|
|
pub const CLSID_CODECAPI_GUID_AVEncDTS = &CLSID_CODECAPI_GUID_AVEncDTS_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncMLP_Value = Guid.initString("05f73e29-f0d1-431e-a41c-a47432ec5a66");
|
|
pub const CLSID_CODECAPI_GUID_AVEncMLP = &CLSID_CODECAPI_GUID_AVEncMLP_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncPCM_Value = Guid.initString("844be7f4-26cf-4779-b386-cc05d187990c");
|
|
pub const CLSID_CODECAPI_GUID_AVEncPCM = &CLSID_CODECAPI_GUID_AVEncPCM_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVEncSDDS_Value = Guid.initString("1dc1b82f-11c8-4c71-b7b6-ee3eb9bc2b94");
|
|
pub const CLSID_CODECAPI_GUID_AVEncSDDS = &CLSID_CODECAPI_GUID_AVEncSDDS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonRateControlMode_Value = Guid.initString("1c0608e9-370c-4710-8a58-cb6181c42423");
|
|
pub const CLSID_CODECAPI_AVEncCommonRateControlMode = &CLSID_CODECAPI_AVEncCommonRateControlMode_Value;
|
|
|
|
pub const eAVEncCommonRateControlMode = enum(i32) {
|
|
CBR = 0,
|
|
PeakConstrainedVBR = 1,
|
|
UnconstrainedVBR = 2,
|
|
Quality = 3,
|
|
LowDelayVBR = 4,
|
|
GlobalVBR = 5,
|
|
GlobalLowDelayVBR = 6,
|
|
};
|
|
pub const eAVEncCommonRateControlMode_CBR = eAVEncCommonRateControlMode.CBR;
|
|
pub const eAVEncCommonRateControlMode_PeakConstrainedVBR = eAVEncCommonRateControlMode.PeakConstrainedVBR;
|
|
pub const eAVEncCommonRateControlMode_UnconstrainedVBR = eAVEncCommonRateControlMode.UnconstrainedVBR;
|
|
pub const eAVEncCommonRateControlMode_Quality = eAVEncCommonRateControlMode.Quality;
|
|
pub const eAVEncCommonRateControlMode_LowDelayVBR = eAVEncCommonRateControlMode.LowDelayVBR;
|
|
pub const eAVEncCommonRateControlMode_GlobalVBR = eAVEncCommonRateControlMode.GlobalVBR;
|
|
pub const eAVEncCommonRateControlMode_GlobalLowDelayVBR = eAVEncCommonRateControlMode.GlobalLowDelayVBR;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonLowLatency_Value = Guid.initString("9d3ecd55-89e8-490a-970a-0c9548d5a56e");
|
|
pub const CLSID_CODECAPI_AVEncCommonLowLatency = &CLSID_CODECAPI_AVEncCommonLowLatency_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonMultipassMode_Value = Guid.initString("22533d4c-47e1-41b5-9352-a2b7780e7ac4");
|
|
pub const CLSID_CODECAPI_AVEncCommonMultipassMode = &CLSID_CODECAPI_AVEncCommonMultipassMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonPassStart_Value = Guid.initString("6a67739f-4eb5-4385-9928-f276a939ef95");
|
|
pub const CLSID_CODECAPI_AVEncCommonPassStart = &CLSID_CODECAPI_AVEncCommonPassStart_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonPassEnd_Value = Guid.initString("0e3d01bc-c85c-467d-8b60-c41012ee3bf6");
|
|
pub const CLSID_CODECAPI_AVEncCommonPassEnd = &CLSID_CODECAPI_AVEncCommonPassEnd_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonRealTime_Value = Guid.initString("143a0ff6-a131-43da-b81e-98fbb8ec378e");
|
|
pub const CLSID_CODECAPI_AVEncCommonRealTime = &CLSID_CODECAPI_AVEncCommonRealTime_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonQuality_Value = Guid.initString("fcbf57a3-7ea5-4b0c-9644-69b40c39c391");
|
|
pub const CLSID_CODECAPI_AVEncCommonQuality = &CLSID_CODECAPI_AVEncCommonQuality_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonQualityVsSpeed_Value = Guid.initString("98332df8-03cd-476b-89fa-3f9e442dec9f");
|
|
pub const CLSID_CODECAPI_AVEncCommonQualityVsSpeed = &CLSID_CODECAPI_AVEncCommonQualityVsSpeed_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonTranscodeEncodingProfile_Value = Guid.initString("6947787c-f508-4ea9-b1e9-a1fe3a49fbc9");
|
|
pub const CLSID_CODECAPI_AVEncCommonTranscodeEncodingProfile = &CLSID_CODECAPI_AVEncCommonTranscodeEncodingProfile_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonMeanBitRate_Value = Guid.initString("f7222374-2144-4815-b550-a37f8e12ee52");
|
|
pub const CLSID_CODECAPI_AVEncCommonMeanBitRate = &CLSID_CODECAPI_AVEncCommonMeanBitRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonMeanBitRateInterval_Value = Guid.initString("bfaa2f0c-cb82-4bc0-8474-f06a8a0d0258");
|
|
pub const CLSID_CODECAPI_AVEncCommonMeanBitRateInterval = &CLSID_CODECAPI_AVEncCommonMeanBitRateInterval_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonMaxBitRate_Value = Guid.initString("9651eae4-39b9-4ebf-85ef-d7f444ec7465");
|
|
pub const CLSID_CODECAPI_AVEncCommonMaxBitRate = &CLSID_CODECAPI_AVEncCommonMaxBitRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonMinBitRate_Value = Guid.initString("101405b2-2083-4034-a806-efbeddd7c9ff");
|
|
pub const CLSID_CODECAPI_AVEncCommonMinBitRate = &CLSID_CODECAPI_AVEncCommonMinBitRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonBufferSize_Value = Guid.initString("0db96574-b6a4-4c8b-8106-3773de0310cd");
|
|
pub const CLSID_CODECAPI_AVEncCommonBufferSize = &CLSID_CODECAPI_AVEncCommonBufferSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonBufferInLevel_Value = Guid.initString("d9c5c8db-fc74-4064-94e9-cd19f947ed45");
|
|
pub const CLSID_CODECAPI_AVEncCommonBufferInLevel = &CLSID_CODECAPI_AVEncCommonBufferInLevel_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonBufferOutLevel_Value = Guid.initString("ccae7f49-d0bc-4e3d-a57e-fb5740140069");
|
|
pub const CLSID_CODECAPI_AVEncCommonBufferOutLevel = &CLSID_CODECAPI_AVEncCommonBufferOutLevel_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonStreamEndHandling_Value = Guid.initString("6aad30af-6ba8-4ccc-8fca-18d19beaeb1c");
|
|
pub const CLSID_CODECAPI_AVEncCommonStreamEndHandling = &CLSID_CODECAPI_AVEncCommonStreamEndHandling_Value;
|
|
|
|
pub const eAVEncCommonStreamEndHandling = enum(i32) {
|
|
DiscardPartial = 0,
|
|
EnsureComplete = 1,
|
|
};
|
|
pub const eAVEncCommonStreamEndHandling_DiscardPartial = eAVEncCommonStreamEndHandling.DiscardPartial;
|
|
pub const eAVEncCommonStreamEndHandling_EnsureComplete = eAVEncCommonStreamEndHandling.EnsureComplete;
|
|
|
|
const CLSID_CODECAPI_AVEncStatCommonCompletedPasses_Value = Guid.initString("3e5de533-9df7-438c-854f-9f7dd3683d34");
|
|
pub const CLSID_CODECAPI_AVEncStatCommonCompletedPasses = &CLSID_CODECAPI_AVEncStatCommonCompletedPasses_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputFrameRate_Value = Guid.initString("ea85e7c3-9567-4d99-87c4-02c1c278ca7c");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputFrameRate = &CLSID_CODECAPI_AVEncVideoOutputFrameRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputFrameRateConversion_Value = Guid.initString("8c068bf4-369a-4ba3-82fd-b2518fb3396e");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputFrameRateConversion = &CLSID_CODECAPI_AVEncVideoOutputFrameRateConversion_Value;
|
|
|
|
pub const eAVEncVideoOutputFrameRateConversion = enum(i32) {
|
|
Disable = 0,
|
|
Enable = 1,
|
|
Alias = 2,
|
|
};
|
|
pub const eAVEncVideoOutputFrameRateConversion_Disable = eAVEncVideoOutputFrameRateConversion.Disable;
|
|
pub const eAVEncVideoOutputFrameRateConversion_Enable = eAVEncVideoOutputFrameRateConversion.Enable;
|
|
pub const eAVEncVideoOutputFrameRateConversion_Alias = eAVEncVideoOutputFrameRateConversion.Alias;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoPixelAspectRatio_Value = Guid.initString("3cdc718f-b3e9-4eb6-a57f-cf1f1b321b87");
|
|
pub const CLSID_CODECAPI_AVEncVideoPixelAspectRatio = &CLSID_CODECAPI_AVEncVideoPixelAspectRatio_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoAcceleration_MPEG2_Value = Guid.initString("f7db8a2e-4f48-4ee8-ae31-8b6ebe558ae2");
|
|
pub const CLSID_CODECAPI_AVDecVideoAcceleration_MPEG2 = &CLSID_CODECAPI_AVDecVideoAcceleration_MPEG2_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoAcceleration_H264_Value = Guid.initString("f7db8a2f-4f48-4ee8-ae31-8b6ebe558ae2");
|
|
pub const CLSID_CODECAPI_AVDecVideoAcceleration_H264 = &CLSID_CODECAPI_AVDecVideoAcceleration_H264_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoAcceleration_VC1_Value = Guid.initString("f7db8a30-4f48-4ee8-ae31-8b6ebe558ae2");
|
|
pub const CLSID_CODECAPI_AVDecVideoAcceleration_VC1 = &CLSID_CODECAPI_AVDecVideoAcceleration_VC1_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoProcDeinterlaceCSC_Value = Guid.initString("f7db8a31-4f48-4ee8-ae31-8b6ebe558ae2");
|
|
pub const CLSID_CODECAPI_AVDecVideoProcDeinterlaceCSC = &CLSID_CODECAPI_AVDecVideoProcDeinterlaceCSC_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoThumbnailGenerationMode_Value = Guid.initString("2efd8eee-1150-4328-9cf5-66dce933fcf4");
|
|
pub const CLSID_CODECAPI_AVDecVideoThumbnailGenerationMode = &CLSID_CODECAPI_AVDecVideoThumbnailGenerationMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoMaxCodedWidth_Value = Guid.initString("5ae557b8-77af-41f5-9fa6-4db2fe1d4bca");
|
|
pub const CLSID_CODECAPI_AVDecVideoMaxCodedWidth = &CLSID_CODECAPI_AVDecVideoMaxCodedWidth_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoMaxCodedHeight_Value = Guid.initString("7262a16a-d2dc-4e75-9ba8-65c0c6d32b13");
|
|
pub const CLSID_CODECAPI_AVDecVideoMaxCodedHeight = &CLSID_CODECAPI_AVDecVideoMaxCodedHeight_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecNumWorkerThreads_Value = Guid.initString("9561c3e8-ea9e-4435-9b1e-a93e691894d8");
|
|
pub const CLSID_CODECAPI_AVDecNumWorkerThreads = &CLSID_CODECAPI_AVDecNumWorkerThreads_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecSoftwareDynamicFormatChange_Value = Guid.initString("862e2f0a-507b-47ff-af47-01e2624298b7");
|
|
pub const CLSID_CODECAPI_AVDecSoftwareDynamicFormatChange = &CLSID_CODECAPI_AVDecSoftwareDynamicFormatChange_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecDisableVideoPostProcessing_Value = Guid.initString("f8749193-667a-4f2c-a9e8-5d4af924f08f");
|
|
pub const CLSID_CODECAPI_AVDecDisableVideoPostProcessing = &CLSID_CODECAPI_AVDecDisableVideoPostProcessing_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoDropPicWithMissingRef_Value = Guid.initString("f8226383-14c2-4567-9734-5004e96ff887");
|
|
pub const CLSID_CODECAPI_AVDecVideoDropPicWithMissingRef = &CLSID_CODECAPI_AVDecVideoDropPicWithMissingRef_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoSoftwareDeinterlaceMode_Value = Guid.initString("0c08d1ce-9ced-4540-bae3-ceb380141109");
|
|
pub const CLSID_CODECAPI_AVDecVideoSoftwareDeinterlaceMode = &CLSID_CODECAPI_AVDecVideoSoftwareDeinterlaceMode_Value;
|
|
|
|
pub const eAVDecVideoSoftwareDeinterlaceMode = enum(i32) {
|
|
NoDeinterlacing = 0,
|
|
ProgressiveDeinterlacing = 1,
|
|
BOBDeinterlacing = 2,
|
|
SmartBOBDeinterlacing = 3,
|
|
};
|
|
pub const eAVDecVideoSoftwareDeinterlaceMode_NoDeinterlacing = eAVDecVideoSoftwareDeinterlaceMode.NoDeinterlacing;
|
|
pub const eAVDecVideoSoftwareDeinterlaceMode_ProgressiveDeinterlacing = eAVDecVideoSoftwareDeinterlaceMode.ProgressiveDeinterlacing;
|
|
pub const eAVDecVideoSoftwareDeinterlaceMode_BOBDeinterlacing = eAVDecVideoSoftwareDeinterlaceMode.BOBDeinterlacing;
|
|
pub const eAVDecVideoSoftwareDeinterlaceMode_SmartBOBDeinterlacing = eAVDecVideoSoftwareDeinterlaceMode.SmartBOBDeinterlacing;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoFastDecodeMode_Value = Guid.initString("6b529f7d-d3b1-49c6-a999-9ec6911bedbf");
|
|
pub const CLSID_CODECAPI_AVDecVideoFastDecodeMode = &CLSID_CODECAPI_AVDecVideoFastDecodeMode_Value;
|
|
|
|
pub const eAVFastDecodeMode = enum(i32) {
|
|
Compliant = 0,
|
|
OptimalLF = 1,
|
|
DisableLF = 2,
|
|
Fastest = 32,
|
|
};
|
|
pub const eVideoDecodeCompliant = eAVFastDecodeMode.Compliant;
|
|
pub const eVideoDecodeOptimalLF = eAVFastDecodeMode.OptimalLF;
|
|
pub const eVideoDecodeDisableLF = eAVFastDecodeMode.DisableLF;
|
|
pub const eVideoDecodeFastest = eAVFastDecodeMode.Fastest;
|
|
|
|
const CLSID_CODECAPI_AVLowLatencyMode_Value = Guid.initString("9c27891a-ed7a-40e1-88e8-b22727a024ee");
|
|
pub const CLSID_CODECAPI_AVLowLatencyMode = &CLSID_CODECAPI_AVLowLatencyMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoH264ErrorConcealment_Value = Guid.initString("ececace8-3436-462c-9294-cd7bacd758a9");
|
|
pub const CLSID_CODECAPI_AVDecVideoH264ErrorConcealment = &CLSID_CODECAPI_AVDecVideoH264ErrorConcealment_Value;
|
|
|
|
pub const eAVDecVideoH264ErrorConcealment = enum(i32) {
|
|
Drop = 0,
|
|
Basic = 1,
|
|
Advanced = 2,
|
|
DXVASetBlack = 3,
|
|
};
|
|
pub const eErrorConcealmentTypeDrop = eAVDecVideoH264ErrorConcealment.Drop;
|
|
pub const eErrorConcealmentTypeBasic = eAVDecVideoH264ErrorConcealment.Basic;
|
|
pub const eErrorConcealmentTypeAdvanced = eAVDecVideoH264ErrorConcealment.Advanced;
|
|
pub const eErrorConcealmentTypeDXVASetBlack = eAVDecVideoH264ErrorConcealment.DXVASetBlack;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoMPEG2ErrorConcealment_Value = Guid.initString("9d2bfe18-728d-48d2-b358-bc7e436c6674");
|
|
pub const CLSID_CODECAPI_AVDecVideoMPEG2ErrorConcealment = &CLSID_CODECAPI_AVDecVideoMPEG2ErrorConcealment_Value;
|
|
|
|
pub const eAVDecVideoMPEG2ErrorConcealment = enum(i32) {
|
|
ff = 0,
|
|
n = 1,
|
|
};
|
|
pub const eErrorConcealmentOff = eAVDecVideoMPEG2ErrorConcealment.ff;
|
|
pub const eErrorConcealmentOn = eAVDecVideoMPEG2ErrorConcealment.n;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoCodecType_Value = Guid.initString("434528e5-21f0-46b6-b62c-9b1b6b658cd1");
|
|
pub const CLSID_CODECAPI_AVDecVideoCodecType = &CLSID_CODECAPI_AVDecVideoCodecType_Value;
|
|
|
|
pub const eAVDecVideoCodecType = enum(i32) {
|
|
NOTPLAYING = 0,
|
|
MPEG2 = 1,
|
|
H264 = 2,
|
|
};
|
|
pub const eAVDecVideoCodecType_NOTPLAYING = eAVDecVideoCodecType.NOTPLAYING;
|
|
pub const eAVDecVideoCodecType_MPEG2 = eAVDecVideoCodecType.MPEG2;
|
|
pub const eAVDecVideoCodecType_H264 = eAVDecVideoCodecType.H264;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoDXVAMode_Value = Guid.initString("f758f09e-7337-4ae7-8387-73dc2d54e67d");
|
|
pub const CLSID_CODECAPI_AVDecVideoDXVAMode = &CLSID_CODECAPI_AVDecVideoDXVAMode_Value;
|
|
|
|
pub const eAVDecVideoDXVAMode = enum(i32) {
|
|
NOTPLAYING = 0,
|
|
SW = 1,
|
|
MC = 2,
|
|
IDCT = 3,
|
|
VLD = 4,
|
|
};
|
|
pub const eAVDecVideoDXVAMode_NOTPLAYING = eAVDecVideoDXVAMode.NOTPLAYING;
|
|
pub const eAVDecVideoDXVAMode_SW = eAVDecVideoDXVAMode.SW;
|
|
pub const eAVDecVideoDXVAMode_MC = eAVDecVideoDXVAMode.MC;
|
|
pub const eAVDecVideoDXVAMode_IDCT = eAVDecVideoDXVAMode.IDCT;
|
|
pub const eAVDecVideoDXVAMode_VLD = eAVDecVideoDXVAMode.VLD;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoDXVABusEncryption_Value = Guid.initString("42153c8b-fd0b-4765-a462-ddd9e8bcc388");
|
|
pub const CLSID_CODECAPI_AVDecVideoDXVABusEncryption = &CLSID_CODECAPI_AVDecVideoDXVABusEncryption_Value;
|
|
|
|
pub const eAVDecVideoDXVABusEncryption = enum(i32) {
|
|
NONE = 0,
|
|
PRIVATE = 1,
|
|
AES = 2,
|
|
};
|
|
pub const eAVDecVideoDXVABusEncryption_NONE = eAVDecVideoDXVABusEncryption.NONE;
|
|
pub const eAVDecVideoDXVABusEncryption_PRIVATE = eAVDecVideoDXVABusEncryption.PRIVATE;
|
|
pub const eAVDecVideoDXVABusEncryption_AES = eAVDecVideoDXVABusEncryption.AES;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoForceSourceScanType_Value = Guid.initString("1ef2065f-058a-4765-a4fc-8a864c103012");
|
|
pub const CLSID_CODECAPI_AVEncVideoForceSourceScanType = &CLSID_CODECAPI_AVEncVideoForceSourceScanType_Value;
|
|
|
|
pub const eAVEncVideoSourceScanType = enum(i32) {
|
|
Automatic = 0,
|
|
Interlaced = 1,
|
|
Progressive = 2,
|
|
};
|
|
pub const eAVEncVideoSourceScan_Automatic = eAVEncVideoSourceScanType.Automatic;
|
|
pub const eAVEncVideoSourceScan_Interlaced = eAVEncVideoSourceScanType.Interlaced;
|
|
pub const eAVEncVideoSourceScan_Progressive = eAVEncVideoSourceScanType.Progressive;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoNoOfFieldsToEncode_Value = Guid.initString("61e4bbe2-4ee0-40e7-80ab-51ddeebe6291");
|
|
pub const CLSID_CODECAPI_AVEncVideoNoOfFieldsToEncode = &CLSID_CODECAPI_AVEncVideoNoOfFieldsToEncode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoNoOfFieldsToSkip_Value = Guid.initString("a97e1240-1427-4c16-a7f7-3dcfd8ba4cc5");
|
|
pub const CLSID_CODECAPI_AVEncVideoNoOfFieldsToSkip = &CLSID_CODECAPI_AVEncVideoNoOfFieldsToSkip_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoEncodeDimension_Value = Guid.initString("1074df28-7e0f-47a4-a453-cdd73870f5ce");
|
|
pub const CLSID_CODECAPI_AVEncVideoEncodeDimension = &CLSID_CODECAPI_AVEncVideoEncodeDimension_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoEncodeOffsetOrigin_Value = Guid.initString("6bc098fe-a71a-4454-852e-4d2ddeb2cd24");
|
|
pub const CLSID_CODECAPI_AVEncVideoEncodeOffsetOrigin = &CLSID_CODECAPI_AVEncVideoEncodeOffsetOrigin_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoDisplayDimension_Value = Guid.initString("de053668-f4ec-47a9-86d0-836770f0c1d5");
|
|
pub const CLSID_CODECAPI_AVEncVideoDisplayDimension = &CLSID_CODECAPI_AVEncVideoDisplayDimension_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputScanType_Value = Guid.initString("460b5576-842e-49ab-a62d-b36f7312c9db");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputScanType = &CLSID_CODECAPI_AVEncVideoOutputScanType_Value;
|
|
|
|
pub const eAVEncVideoOutputScanType = enum(i32) {
|
|
Progressive = 0,
|
|
Interlaced = 1,
|
|
SameAsInput = 2,
|
|
Automatic = 3,
|
|
};
|
|
pub const eAVEncVideoOutputScan_Progressive = eAVEncVideoOutputScanType.Progressive;
|
|
pub const eAVEncVideoOutputScan_Interlaced = eAVEncVideoOutputScanType.Interlaced;
|
|
pub const eAVEncVideoOutputScan_SameAsInput = eAVEncVideoOutputScanType.SameAsInput;
|
|
pub const eAVEncVideoOutputScan_Automatic = eAVEncVideoOutputScanType.Automatic;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInverseTelecineEnable_Value = Guid.initString("2ea9098b-e76d-4ccd-a030-d3b889c1b64c");
|
|
pub const CLSID_CODECAPI_AVEncVideoInverseTelecineEnable = &CLSID_CODECAPI_AVEncVideoInverseTelecineEnable_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInverseTelecineThreshold_Value = Guid.initString("40247d84-e895-497f-b44c-b74560acfe27");
|
|
pub const CLSID_CODECAPI_AVEncVideoInverseTelecineThreshold = &CLSID_CODECAPI_AVEncVideoInverseTelecineThreshold_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoSourceFilmContent_Value = Guid.initString("1791c64b-ccfc-4827-a0ed-2557793b2b1c");
|
|
pub const CLSID_CODECAPI_AVEncVideoSourceFilmContent = &CLSID_CODECAPI_AVEncVideoSourceFilmContent_Value;
|
|
|
|
pub const eAVEncVideoFilmContent = enum(i32) {
|
|
VideoOnly = 0,
|
|
FilmOnly = 1,
|
|
Mixed = 2,
|
|
};
|
|
pub const eAVEncVideoFilmContent_VideoOnly = eAVEncVideoFilmContent.VideoOnly;
|
|
pub const eAVEncVideoFilmContent_FilmOnly = eAVEncVideoFilmContent.FilmOnly;
|
|
pub const eAVEncVideoFilmContent_Mixed = eAVEncVideoFilmContent.Mixed;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoSourceIsBW_Value = Guid.initString("42ffc49b-1812-4fdc-8d24-7054c521e6eb");
|
|
pub const CLSID_CODECAPI_AVEncVideoSourceIsBW = &CLSID_CODECAPI_AVEncVideoSourceIsBW_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoFieldSwap_Value = Guid.initString("fefd7569-4e0a-49f2-9f2b-360ea48c19a2");
|
|
pub const CLSID_CODECAPI_AVEncVideoFieldSwap = &CLSID_CODECAPI_AVEncVideoFieldSwap_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputChromaResolution_Value = Guid.initString("bb0cec33-16f1-47b0-8a88-37815bee1739");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputChromaResolution = &CLSID_CODECAPI_AVEncVideoInputChromaResolution_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputChromaResolution_Value = Guid.initString("6097b4c9-7c1d-4e64-bfcc-9e9765318ae7");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputChromaResolution = &CLSID_CODECAPI_AVEncVideoOutputChromaResolution_Value;
|
|
|
|
pub const eAVEncVideoChromaResolution = enum(i32) {
|
|
SameAsSource = 0,
|
|
@"444" = 1,
|
|
@"422" = 2,
|
|
@"420" = 3,
|
|
@"411" = 4,
|
|
};
|
|
pub const eAVEncVideoChromaResolution_SameAsSource = eAVEncVideoChromaResolution.SameAsSource;
|
|
pub const eAVEncVideoChromaResolution_444 = eAVEncVideoChromaResolution.@"444";
|
|
pub const eAVEncVideoChromaResolution_422 = eAVEncVideoChromaResolution.@"422";
|
|
pub const eAVEncVideoChromaResolution_420 = eAVEncVideoChromaResolution.@"420";
|
|
pub const eAVEncVideoChromaResolution_411 = eAVEncVideoChromaResolution.@"411";
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputChromaSubsampling_Value = Guid.initString("a8e73a39-4435-4ec3-a6ea-98300f4b36f7");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputChromaSubsampling = &CLSID_CODECAPI_AVEncVideoInputChromaSubsampling_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputChromaSubsampling_Value = Guid.initString("fa561c6c-7d17-44f0-83c9-32ed12e96343");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputChromaSubsampling = &CLSID_CODECAPI_AVEncVideoOutputChromaSubsampling_Value;
|
|
|
|
pub const eAVEncVideoChromaSubsampling = enum(i32) {
|
|
SameAsSource = 0,
|
|
ProgressiveChroma = 8,
|
|
Horizontally_Cosited = 4,
|
|
Vertically_Cosited = 2,
|
|
Vertically_AlignedChromaPlanes = 1,
|
|
};
|
|
pub const eAVEncVideoChromaSubsamplingFormat_SameAsSource = eAVEncVideoChromaSubsampling.SameAsSource;
|
|
pub const eAVEncVideoChromaSubsamplingFormat_ProgressiveChroma = eAVEncVideoChromaSubsampling.ProgressiveChroma;
|
|
pub const eAVEncVideoChromaSubsamplingFormat_Horizontally_Cosited = eAVEncVideoChromaSubsampling.Horizontally_Cosited;
|
|
pub const eAVEncVideoChromaSubsamplingFormat_Vertically_Cosited = eAVEncVideoChromaSubsampling.Vertically_Cosited;
|
|
pub const eAVEncVideoChromaSubsamplingFormat_Vertically_AlignedChromaPlanes = eAVEncVideoChromaSubsampling.Vertically_AlignedChromaPlanes;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputColorPrimaries_Value = Guid.initString("c24d783f-7ce6-4278-90ab-28a4f1e5f86c");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputColorPrimaries = &CLSID_CODECAPI_AVEncVideoInputColorPrimaries_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputColorPrimaries_Value = Guid.initString("be95907c-9d04-4921-8985-a6d6d87d1a6c");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputColorPrimaries = &CLSID_CODECAPI_AVEncVideoOutputColorPrimaries_Value;
|
|
|
|
pub const eAVEncVideoColorPrimaries = enum(i32) {
|
|
SameAsSource = 0,
|
|
Reserved = 1,
|
|
BT709 = 2,
|
|
BT470_2_SysM = 3,
|
|
BT470_2_SysBG = 4,
|
|
SMPTE170M = 5,
|
|
SMPTE240M = 6,
|
|
EBU3231 = 7,
|
|
SMPTE_C = 8,
|
|
};
|
|
pub const eAVEncVideoColorPrimaries_SameAsSource = eAVEncVideoColorPrimaries.SameAsSource;
|
|
pub const eAVEncVideoColorPrimaries_Reserved = eAVEncVideoColorPrimaries.Reserved;
|
|
pub const eAVEncVideoColorPrimaries_BT709 = eAVEncVideoColorPrimaries.BT709;
|
|
pub const eAVEncVideoColorPrimaries_BT470_2_SysM = eAVEncVideoColorPrimaries.BT470_2_SysM;
|
|
pub const eAVEncVideoColorPrimaries_BT470_2_SysBG = eAVEncVideoColorPrimaries.BT470_2_SysBG;
|
|
pub const eAVEncVideoColorPrimaries_SMPTE170M = eAVEncVideoColorPrimaries.SMPTE170M;
|
|
pub const eAVEncVideoColorPrimaries_SMPTE240M = eAVEncVideoColorPrimaries.SMPTE240M;
|
|
pub const eAVEncVideoColorPrimaries_EBU3231 = eAVEncVideoColorPrimaries.EBU3231;
|
|
pub const eAVEncVideoColorPrimaries_SMPTE_C = eAVEncVideoColorPrimaries.SMPTE_C;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputColorTransferFunction_Value = Guid.initString("8c056111-a9c3-4b08-a0a0-ce13f8a27c75");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputColorTransferFunction = &CLSID_CODECAPI_AVEncVideoInputColorTransferFunction_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputColorTransferFunction_Value = Guid.initString("4a7f884a-ea11-460d-bf57-b88bc75900de");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputColorTransferFunction = &CLSID_CODECAPI_AVEncVideoOutputColorTransferFunction_Value;
|
|
|
|
pub const eAVEncVideoColorTransferFunction = enum(i32) {
|
|
SameAsSource = 0,
|
|
@"10" = 1,
|
|
@"18" = 2,
|
|
@"20" = 3,
|
|
@"22" = 4,
|
|
@"22_709" = 5,
|
|
@"22_240M" = 6,
|
|
@"22_8bit_sRGB" = 7,
|
|
@"28" = 8,
|
|
};
|
|
pub const eAVEncVideoColorTransferFunction_SameAsSource = eAVEncVideoColorTransferFunction.SameAsSource;
|
|
pub const eAVEncVideoColorTransferFunction_10 = eAVEncVideoColorTransferFunction.@"10";
|
|
pub const eAVEncVideoColorTransferFunction_18 = eAVEncVideoColorTransferFunction.@"18";
|
|
pub const eAVEncVideoColorTransferFunction_20 = eAVEncVideoColorTransferFunction.@"20";
|
|
pub const eAVEncVideoColorTransferFunction_22 = eAVEncVideoColorTransferFunction.@"22";
|
|
pub const eAVEncVideoColorTransferFunction_22_709 = eAVEncVideoColorTransferFunction.@"22_709";
|
|
pub const eAVEncVideoColorTransferFunction_22_240M = eAVEncVideoColorTransferFunction.@"22_240M";
|
|
pub const eAVEncVideoColorTransferFunction_22_8bit_sRGB = eAVEncVideoColorTransferFunction.@"22_8bit_sRGB";
|
|
pub const eAVEncVideoColorTransferFunction_28 = eAVEncVideoColorTransferFunction.@"28";
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputColorTransferMatrix_Value = Guid.initString("52ed68b9-72d5-4089-958d-f5405d55081c");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputColorTransferMatrix = &CLSID_CODECAPI_AVEncVideoInputColorTransferMatrix_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputColorTransferMatrix_Value = Guid.initString("a9b90444-af40-4310-8fbe-ed6d933f892b");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputColorTransferMatrix = &CLSID_CODECAPI_AVEncVideoOutputColorTransferMatrix_Value;
|
|
|
|
pub const eAVEncVideoColorTransferMatrix = enum(i32) {
|
|
SameAsSource = 0,
|
|
BT709 = 1,
|
|
BT601 = 2,
|
|
SMPTE240M = 3,
|
|
};
|
|
pub const eAVEncVideoColorTransferMatrix_SameAsSource = eAVEncVideoColorTransferMatrix.SameAsSource;
|
|
pub const eAVEncVideoColorTransferMatrix_BT709 = eAVEncVideoColorTransferMatrix.BT709;
|
|
pub const eAVEncVideoColorTransferMatrix_BT601 = eAVEncVideoColorTransferMatrix.BT601;
|
|
pub const eAVEncVideoColorTransferMatrix_SMPTE240M = eAVEncVideoColorTransferMatrix.SMPTE240M;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputColorLighting_Value = Guid.initString("46a99549-0015-4a45-9c30-1d5cfa258316");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputColorLighting = &CLSID_CODECAPI_AVEncVideoInputColorLighting_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputColorLighting_Value = Guid.initString("0e5aaac6-ace6-4c5c-998e-1a8c9c6c0f89");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputColorLighting = &CLSID_CODECAPI_AVEncVideoOutputColorLighting_Value;
|
|
|
|
pub const eAVEncVideoColorLighting = enum(i32) {
|
|
SameAsSource = 0,
|
|
Unknown = 1,
|
|
Bright = 2,
|
|
Office = 3,
|
|
Dim = 4,
|
|
Dark = 5,
|
|
};
|
|
pub const eAVEncVideoColorLighting_SameAsSource = eAVEncVideoColorLighting.SameAsSource;
|
|
pub const eAVEncVideoColorLighting_Unknown = eAVEncVideoColorLighting.Unknown;
|
|
pub const eAVEncVideoColorLighting_Bright = eAVEncVideoColorLighting.Bright;
|
|
pub const eAVEncVideoColorLighting_Office = eAVEncVideoColorLighting.Office;
|
|
pub const eAVEncVideoColorLighting_Dim = eAVEncVideoColorLighting.Dim;
|
|
pub const eAVEncVideoColorLighting_Dark = eAVEncVideoColorLighting.Dark;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInputColorNominalRange_Value = Guid.initString("16cf25c6-a2a6-48e9-ae80-21aec41d427e");
|
|
pub const CLSID_CODECAPI_AVEncVideoInputColorNominalRange = &CLSID_CODECAPI_AVEncVideoInputColorNominalRange_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoOutputColorNominalRange_Value = Guid.initString("972835ed-87b5-4e95-9500-c73958566e54");
|
|
pub const CLSID_CODECAPI_AVEncVideoOutputColorNominalRange = &CLSID_CODECAPI_AVEncVideoOutputColorNominalRange_Value;
|
|
|
|
pub const eAVEncVideoColorNominalRange = enum(i32) {
|
|
SameAsSource = 0,
|
|
@"0_255" = 1,
|
|
@"16_235" = 2,
|
|
@"48_208" = 3,
|
|
};
|
|
pub const eAVEncVideoColorNominalRange_SameAsSource = eAVEncVideoColorNominalRange.SameAsSource;
|
|
pub const eAVEncVideoColorNominalRange_0_255 = eAVEncVideoColorNominalRange.@"0_255";
|
|
pub const eAVEncVideoColorNominalRange_16_235 = eAVEncVideoColorNominalRange.@"16_235";
|
|
pub const eAVEncVideoColorNominalRange_48_208 = eAVEncVideoColorNominalRange.@"48_208";
|
|
|
|
const CLSID_CODECAPI_AVEncInputVideoSystem_Value = Guid.initString("bede146d-b616-4dc7-92b2-f5d9fa9298f7");
|
|
pub const CLSID_CODECAPI_AVEncInputVideoSystem = &CLSID_CODECAPI_AVEncInputVideoSystem_Value;
|
|
|
|
pub const eAVEncInputVideoSystem = enum(i32) {
|
|
Unspecified = 0,
|
|
PAL = 1,
|
|
NTSC = 2,
|
|
SECAM = 3,
|
|
MAC = 4,
|
|
HDV = 5,
|
|
Component = 6,
|
|
};
|
|
pub const eAVEncInputVideoSystem_Unspecified = eAVEncInputVideoSystem.Unspecified;
|
|
pub const eAVEncInputVideoSystem_PAL = eAVEncInputVideoSystem.PAL;
|
|
pub const eAVEncInputVideoSystem_NTSC = eAVEncInputVideoSystem.NTSC;
|
|
pub const eAVEncInputVideoSystem_SECAM = eAVEncInputVideoSystem.SECAM;
|
|
pub const eAVEncInputVideoSystem_MAC = eAVEncInputVideoSystem.MAC;
|
|
pub const eAVEncInputVideoSystem_HDV = eAVEncInputVideoSystem.HDV;
|
|
pub const eAVEncInputVideoSystem_Component = eAVEncInputVideoSystem.Component;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoHeaderDropFrame_Value = Guid.initString("6ed9e124-7925-43fe-971b-e019f62222b4");
|
|
pub const CLSID_CODECAPI_AVEncVideoHeaderDropFrame = &CLSID_CODECAPI_AVEncVideoHeaderDropFrame_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoHeaderHours_Value = Guid.initString("2acc7702-e2da-4158-bf9b-88880129d740");
|
|
pub const CLSID_CODECAPI_AVEncVideoHeaderHours = &CLSID_CODECAPI_AVEncVideoHeaderHours_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoHeaderMinutes_Value = Guid.initString("dc1a99ce-0307-408b-880b-b8348ee8ca7f");
|
|
pub const CLSID_CODECAPI_AVEncVideoHeaderMinutes = &CLSID_CODECAPI_AVEncVideoHeaderMinutes_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoHeaderSeconds_Value = Guid.initString("4a2e1a05-a780-4f58-8120-9a449d69656b");
|
|
pub const CLSID_CODECAPI_AVEncVideoHeaderSeconds = &CLSID_CODECAPI_AVEncVideoHeaderSeconds_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoHeaderFrames_Value = Guid.initString("afd5f567-5c1b-4adc-bdaf-735610381436");
|
|
pub const CLSID_CODECAPI_AVEncVideoHeaderFrames = &CLSID_CODECAPI_AVEncVideoHeaderFrames_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoDefaultUpperFieldDominant_Value = Guid.initString("810167c4-0bc1-47ca-8fc2-57055a1474a5");
|
|
pub const CLSID_CODECAPI_AVEncVideoDefaultUpperFieldDominant = &CLSID_CODECAPI_AVEncVideoDefaultUpperFieldDominant_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoCBRMotionTradeoff_Value = Guid.initString("0d49451e-18d5-4367-a4ef-3240df1693c4");
|
|
pub const CLSID_CODECAPI_AVEncVideoCBRMotionTradeoff = &CLSID_CODECAPI_AVEncVideoCBRMotionTradeoff_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoCodedVideoAccessUnitSize_Value = Guid.initString("b4b10c15-14a7-4ce8-b173-dc90a0b4fcdb");
|
|
pub const CLSID_CODECAPI_AVEncVideoCodedVideoAccessUnitSize = &CLSID_CODECAPI_AVEncVideoCodedVideoAccessUnitSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMaxKeyframeDistance_Value = Guid.initString("2987123a-ba93-4704-b489-ec1e5f25292c");
|
|
pub const CLSID_CODECAPI_AVEncVideoMaxKeyframeDistance = &CLSID_CODECAPI_AVEncVideoMaxKeyframeDistance_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncH264CABACEnable_Value = Guid.initString("ee6cad62-d305-4248-a50e-e1b255f7caf8");
|
|
pub const CLSID_CODECAPI_AVEncH264CABACEnable = &CLSID_CODECAPI_AVEncH264CABACEnable_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoContentType_Value = Guid.initString("66117aca-eb77-459d-930c-a48d9d0683fc");
|
|
pub const CLSID_CODECAPI_AVEncVideoContentType = &CLSID_CODECAPI_AVEncVideoContentType_Value;
|
|
|
|
pub const eAVEncVideoContentType = enum(i32) {
|
|
Unknown = 0,
|
|
FixedCameraAngle = 1,
|
|
};
|
|
pub const eAVEncVideoContentType_Unknown = eAVEncVideoContentType.Unknown;
|
|
pub const eAVEncVideoContentType_FixedCameraAngle = eAVEncVideoContentType.FixedCameraAngle;
|
|
|
|
const CLSID_CODECAPI_AVEncNumWorkerThreads_Value = Guid.initString("b0c8bf60-16f7-4951-a30b-1db1609293d6");
|
|
pub const CLSID_CODECAPI_AVEncNumWorkerThreads = &CLSID_CODECAPI_AVEncNumWorkerThreads_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoEncodeQP_Value = Guid.initString("2cb5696b-23fb-4ce1-a0f9-ef5b90fd55ca");
|
|
pub const CLSID_CODECAPI_AVEncVideoEncodeQP = &CLSID_CODECAPI_AVEncVideoEncodeQP_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMinQP_Value = Guid.initString("0ee22c6a-a37c-4568-b5f1-9d4c2b3ab886");
|
|
pub const CLSID_CODECAPI_AVEncVideoMinQP = &CLSID_CODECAPI_AVEncVideoMinQP_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoForceKeyFrame_Value = Guid.initString("398c1b98-8353-475a-9ef2-8f265d260345");
|
|
pub const CLSID_CODECAPI_AVEncVideoForceKeyFrame = &CLSID_CODECAPI_AVEncVideoForceKeyFrame_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncH264SPSID_Value = Guid.initString("50f38f51-2b79-40e3-b39c-7e9fa0770501");
|
|
pub const CLSID_CODECAPI_AVEncH264SPSID = &CLSID_CODECAPI_AVEncH264SPSID_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncH264PPSID_Value = Guid.initString("bfe29ec2-056c-4d68-a38d-ae5944c8582e");
|
|
pub const CLSID_CODECAPI_AVEncH264PPSID = &CLSID_CODECAPI_AVEncH264PPSID_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAdaptiveMode_Value = Guid.initString("4419b185-da1f-4f53-bc76-097d0c1efb1e");
|
|
pub const CLSID_CODECAPI_AVEncAdaptiveMode = &CLSID_CODECAPI_AVEncAdaptiveMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVScenarioInfo_Value = Guid.initString("b28a6e64-3ff9-446a-8a4b-0d7a53413236");
|
|
pub const CLSID_CODECAPI_AVScenarioInfo = &CLSID_CODECAPI_AVScenarioInfo_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGOPSizeMin_Value = Guid.initString("7155cf20-d440-4852-ad0f-9c4abfe37a6a");
|
|
pub const CLSID_CODECAPI_AVEncMPVGOPSizeMin = &CLSID_CODECAPI_AVEncMPVGOPSizeMin_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGOPSizeMax_Value = Guid.initString("fe7de4c4-1936-4fe2-bdf7-1f18ca1d001f");
|
|
pub const CLSID_CODECAPI_AVEncMPVGOPSizeMax = &CLSID_CODECAPI_AVEncMPVGOPSizeMax_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMaxCTBSize_Value = Guid.initString("822363ff-cec8-43e5-92fd-e097488485e9");
|
|
pub const CLSID_CODECAPI_AVEncVideoMaxCTBSize = &CLSID_CODECAPI_AVEncVideoMaxCTBSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoCTBSize_Value = Guid.initString("d47db8b2-e73b-4cb9-8c3e-bd877d06d77b");
|
|
pub const CLSID_CODECAPI_AVEncVideoCTBSize = &CLSID_CODECAPI_AVEncVideoCTBSize_Value;
|
|
|
|
const CLSID_CODECAPI_VideoEncoderDisplayContentType_Value = Guid.initString("79b90b27-f4b1-42dc-9dd7-cdaf8135c400");
|
|
pub const CLSID_CODECAPI_VideoEncoderDisplayContentType = &CLSID_CODECAPI_VideoEncoderDisplayContentType_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncEnableVideoProcessing_Value = Guid.initString("006f4bf6-0ea3-4d42-8702-b5d8be0f7a92");
|
|
pub const CLSID_CODECAPI_AVEncEnableVideoProcessing = &CLSID_CODECAPI_AVEncEnableVideoProcessing_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoGradualIntraRefresh_Value = Guid.initString("8f347dee-cb0d-49ba-b462-db6927ee2101");
|
|
pub const CLSID_CODECAPI_AVEncVideoGradualIntraRefresh = &CLSID_CODECAPI_AVEncVideoGradualIntraRefresh_Value;
|
|
|
|
const CLSID_CODECAPI_GetOPMContext_Value = Guid.initString("2f036c05-4c14-4689-8839-294c6d73e053");
|
|
pub const CLSID_CODECAPI_GetOPMContext = &CLSID_CODECAPI_GetOPMContext_Value;
|
|
|
|
const CLSID_CODECAPI_SetHDCPManagerContext_Value = Guid.initString("6d2d1fc8-3dc9-47eb-a1a2-471c80cd60d0");
|
|
pub const CLSID_CODECAPI_SetHDCPManagerContext = &CLSID_CODECAPI_SetHDCPManagerContext_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMaxTemporalLayers_Value = Guid.initString("9c668cfe-08e1-424a-934e-b764b064802a");
|
|
pub const CLSID_CODECAPI_AVEncVideoMaxTemporalLayers = &CLSID_CODECAPI_AVEncVideoMaxTemporalLayers_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoNumGOPsPerIDR_Value = Guid.initString("83bc5bdb-5b89-4521-8f66-33151c373176");
|
|
pub const CLSID_CODECAPI_AVEncVideoNumGOPsPerIDR = &CLSID_CODECAPI_AVEncVideoNumGOPsPerIDR_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncCommonAllowFrameDrops_Value = Guid.initString("d8477dcb-9598-48e3-8d0c-752bf206093e");
|
|
pub const CLSID_CODECAPI_AVEncCommonAllowFrameDrops = &CLSID_CODECAPI_AVEncCommonAllowFrameDrops_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoIntraLayerPrediction_Value = Guid.initString("d3af46b8-bf47-44bb-a283-69f0b0228ff9");
|
|
pub const CLSID_CODECAPI_AVEncVideoIntraLayerPrediction = &CLSID_CODECAPI_AVEncVideoIntraLayerPrediction_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoInstantTemporalUpSwitching_Value = Guid.initString("a3308307-0d96-4ba4-b1f0-b91a5e49df10");
|
|
pub const CLSID_CODECAPI_AVEncVideoInstantTemporalUpSwitching = &CLSID_CODECAPI_AVEncVideoInstantTemporalUpSwitching_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncLowPowerEncoder_Value = Guid.initString("b668d582-8bad-4f6a-9141-375a95358b6d");
|
|
pub const CLSID_CODECAPI_AVEncLowPowerEncoder = &CLSID_CODECAPI_AVEncLowPowerEncoder_Value;
|
|
|
|
const CLSID_CODECAPI_AVEnableInLoopDeblockFilter_Value = Guid.initString("d2e8e399-0623-4bf3-92a8-4d1818529ded");
|
|
pub const CLSID_CODECAPI_AVEnableInLoopDeblockFilter = &CLSID_CODECAPI_AVEnableInLoopDeblockFilter_Value;
|
|
|
|
pub const eAVEncAdaptiveMode = enum(i32) {
|
|
None = 0,
|
|
Resolution = 1,
|
|
FrameRate = 2,
|
|
};
|
|
pub const eAVEncAdaptiveMode_None = eAVEncAdaptiveMode.None;
|
|
pub const eAVEncAdaptiveMode_Resolution = eAVEncAdaptiveMode.Resolution;
|
|
pub const eAVEncAdaptiveMode_FrameRate = eAVEncAdaptiveMode.FrameRate;
|
|
|
|
pub const eAVScenarioInfo = enum(i32) {
|
|
Unknown = 0,
|
|
DisplayRemoting = 1,
|
|
VideoConference = 2,
|
|
Archive = 3,
|
|
LiveStreaming = 4,
|
|
CameraRecord = 5,
|
|
DisplayRemotingWithFeatureMap = 6,
|
|
};
|
|
pub const eAVScenarioInfo_Unknown = eAVScenarioInfo.Unknown;
|
|
pub const eAVScenarioInfo_DisplayRemoting = eAVScenarioInfo.DisplayRemoting;
|
|
pub const eAVScenarioInfo_VideoConference = eAVScenarioInfo.VideoConference;
|
|
pub const eAVScenarioInfo_Archive = eAVScenarioInfo.Archive;
|
|
pub const eAVScenarioInfo_LiveStreaming = eAVScenarioInfo.LiveStreaming;
|
|
pub const eAVScenarioInfo_CameraRecord = eAVScenarioInfo.CameraRecord;
|
|
pub const eAVScenarioInfo_DisplayRemotingWithFeatureMap = eAVScenarioInfo.DisplayRemotingWithFeatureMap;
|
|
|
|
pub const eVideoEncoderDisplayContentType = enum(i32) {
|
|
Unknown = 0,
|
|
FullScreenVideo = 1,
|
|
};
|
|
pub const eVideoEncoderDisplayContent_Unknown = eVideoEncoderDisplayContentType.Unknown;
|
|
pub const eVideoEncoderDisplayContent_FullScreenVideo = eVideoEncoderDisplayContentType.FullScreenVideo;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoSelectLayer_Value = Guid.initString("eb1084f5-6aaa-4914-bb2f-6147227f12e7");
|
|
pub const CLSID_CODECAPI_AVEncVideoSelectLayer = &CLSID_CODECAPI_AVEncVideoSelectLayer_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoTemporalLayerCount_Value = Guid.initString("19caebff-b74d-4cfd-8c27-c2f9d97d5f52");
|
|
pub const CLSID_CODECAPI_AVEncVideoTemporalLayerCount = &CLSID_CODECAPI_AVEncVideoTemporalLayerCount_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoUsage_Value = Guid.initString("1f636849-5dc1-49f1-b1d8-ce3cf62ea385");
|
|
pub const CLSID_CODECAPI_AVEncVideoUsage = &CLSID_CODECAPI_AVEncVideoUsage_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoRateControlParams_Value = Guid.initString("87d43767-7645-44ec-b438-d3322fbca29f");
|
|
pub const CLSID_CODECAPI_AVEncVideoRateControlParams = &CLSID_CODECAPI_AVEncVideoRateControlParams_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoSupportedControls_Value = Guid.initString("d3f40fdd-77b9-473d-8196-061259e69cff");
|
|
pub const CLSID_CODECAPI_AVEncVideoSupportedControls = &CLSID_CODECAPI_AVEncVideoSupportedControls_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoEncodeFrameTypeQP_Value = Guid.initString("aa70b610-e03f-450c-ad07-07314e639ce7");
|
|
pub const CLSID_CODECAPI_AVEncVideoEncodeFrameTypeQP = &CLSID_CODECAPI_AVEncVideoEncodeFrameTypeQP_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncSliceControlMode_Value = Guid.initString("e9e782ef-5f18-44c9-a90b-e9c3c2c17b0b");
|
|
pub const CLSID_CODECAPI_AVEncSliceControlMode = &CLSID_CODECAPI_AVEncSliceControlMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncSliceControlSize_Value = Guid.initString("92f51df3-07a5-4172-aefe-c69ca3b60e35");
|
|
pub const CLSID_CODECAPI_AVEncSliceControlSize = &CLSID_CODECAPI_AVEncSliceControlSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncSliceGenerationMode_Value = Guid.initString("8a6bc67f-9497-4286-b46b-02db8d60edbc");
|
|
pub const CLSID_CODECAPI_AVEncSliceGenerationMode = &CLSID_CODECAPI_AVEncSliceGenerationMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMaxNumRefFrame_Value = Guid.initString("964829ed-94f9-43b4-b74d-ef40944b69a0");
|
|
pub const CLSID_CODECAPI_AVEncVideoMaxNumRefFrame = &CLSID_CODECAPI_AVEncVideoMaxNumRefFrame_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMeanAbsoluteDifference_Value = Guid.initString("e5c0c10f-81a4-422d-8c3f-b474a4581336");
|
|
pub const CLSID_CODECAPI_AVEncVideoMeanAbsoluteDifference = &CLSID_CODECAPI_AVEncVideoMeanAbsoluteDifference_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMaxQP_Value = Guid.initString("3daf6f66-a6a7-45e0-a8e5-f2743f46a3a2");
|
|
pub const CLSID_CODECAPI_AVEncVideoMaxQP = &CLSID_CODECAPI_AVEncVideoMaxQP_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoLTRBufferControl_Value = Guid.initString("a4a0e93d-4cbc-444c-89f4-826d310e92a7");
|
|
pub const CLSID_CODECAPI_AVEncVideoLTRBufferControl = &CLSID_CODECAPI_AVEncVideoLTRBufferControl_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoMarkLTRFrame_Value = Guid.initString("e42f4748-a06d-4ef9-8cea-3d05fde3bd3b");
|
|
pub const CLSID_CODECAPI_AVEncVideoMarkLTRFrame = &CLSID_CODECAPI_AVEncVideoMarkLTRFrame_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoUseLTRFrame_Value = Guid.initString("00752db8-55f7-4f80-895b-27639195f2ad");
|
|
pub const CLSID_CODECAPI_AVEncVideoUseLTRFrame = &CLSID_CODECAPI_AVEncVideoUseLTRFrame_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoROIEnabled_Value = Guid.initString("d74f7f18-44dd-4b85-aba3-05d9f42a8280");
|
|
pub const CLSID_CODECAPI_AVEncVideoROIEnabled = &CLSID_CODECAPI_AVEncVideoROIEnabled_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncVideoDirtyRectEnabled_Value = Guid.initString("8acb8fdd-5e0c-4c66-8729-b8f629ab04fb");
|
|
pub const CLSID_CODECAPI_AVEncVideoDirtyRectEnabled = &CLSID_CODECAPI_AVEncVideoDirtyRectEnabled_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMaxFrameRate_Value = Guid.initString("b98e1b31-19fa-4d4f-9931-d6a5b8aab93c");
|
|
pub const CLSID_CODECAPI_AVEncMaxFrameRate = &CLSID_CODECAPI_AVEncMaxFrameRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMuxOutputStreamType_Value = Guid.initString("cedd9e8f-34d3-44db-a1d8-f81520254f3e");
|
|
pub const CLSID_CODECAPI_AVEncMuxOutputStreamType = &CLSID_CODECAPI_AVEncMuxOutputStreamType_Value;
|
|
|
|
pub const eAVEncMuxOutput = enum(i32) {
|
|
Auto = 0,
|
|
PS = 1,
|
|
TS = 2,
|
|
};
|
|
pub const eAVEncMuxOutputAuto = eAVEncMuxOutput.Auto;
|
|
pub const eAVEncMuxOutputPS = eAVEncMuxOutput.PS;
|
|
pub const eAVEncMuxOutputTS = eAVEncMuxOutput.TS;
|
|
|
|
const CLSID_CODECAPI_AVEncStatVideoOutputFrameRate_Value = Guid.initString("be747849-9ab4-4a63-98fe-f143f04f8ee9");
|
|
pub const CLSID_CODECAPI_AVEncStatVideoOutputFrameRate = &CLSID_CODECAPI_AVEncStatVideoOutputFrameRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatVideoCodedFrames_Value = Guid.initString("d47f8d61-6f5a-4a26-bb9f-cd9518462bcd");
|
|
pub const CLSID_CODECAPI_AVEncStatVideoCodedFrames = &CLSID_CODECAPI_AVEncStatVideoCodedFrames_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatVideoTotalFrames_Value = Guid.initString("fdaa9916-119a-4222-9ad6-3f7cab99cc8b");
|
|
pub const CLSID_CODECAPI_AVEncStatVideoTotalFrames = &CLSID_CODECAPI_AVEncStatVideoTotalFrames_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioIntervalToEncode_Value = Guid.initString("866e4b4d-725a-467c-bb01-b496b23b25f9");
|
|
pub const CLSID_CODECAPI_AVEncAudioIntervalToEncode = &CLSID_CODECAPI_AVEncAudioIntervalToEncode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioIntervalToSkip_Value = Guid.initString("88c15f94-c38c-4796-a9e8-96e967983f26");
|
|
pub const CLSID_CODECAPI_AVEncAudioIntervalToSkip = &CLSID_CODECAPI_AVEncAudioIntervalToSkip_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioDualMono_Value = Guid.initString("3648126b-a3e8-4329-9b3a-5ce566a43bd3");
|
|
pub const CLSID_CODECAPI_AVEncAudioDualMono = &CLSID_CODECAPI_AVEncAudioDualMono_Value;
|
|
|
|
pub const eAVEncAudioDualMono = enum(i32) {
|
|
SameAsInput = 0,
|
|
Off = 1,
|
|
On = 2,
|
|
};
|
|
pub const eAVEncAudioDualMono_SameAsInput = eAVEncAudioDualMono.SameAsInput;
|
|
pub const eAVEncAudioDualMono_Off = eAVEncAudioDualMono.Off;
|
|
pub const eAVEncAudioDualMono_On = eAVEncAudioDualMono.On;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMeanBitRate_Value = Guid.initString("921295bb-4fca-4679-aab8-9e2a1d753384");
|
|
pub const CLSID_CODECAPI_AVEncAudioMeanBitRate = &CLSID_CODECAPI_AVEncAudioMeanBitRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel0_Value = Guid.initString("bc5d0b60-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel0 = &CLSID_CODECAPI_AVEncAudioMapDestChannel0_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel1_Value = Guid.initString("bc5d0b61-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel1 = &CLSID_CODECAPI_AVEncAudioMapDestChannel1_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel2_Value = Guid.initString("bc5d0b62-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel2 = &CLSID_CODECAPI_AVEncAudioMapDestChannel2_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel3_Value = Guid.initString("bc5d0b63-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel3 = &CLSID_CODECAPI_AVEncAudioMapDestChannel3_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel4_Value = Guid.initString("bc5d0b64-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel4 = &CLSID_CODECAPI_AVEncAudioMapDestChannel4_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel5_Value = Guid.initString("bc5d0b65-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel5 = &CLSID_CODECAPI_AVEncAudioMapDestChannel5_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel6_Value = Guid.initString("bc5d0b66-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel6 = &CLSID_CODECAPI_AVEncAudioMapDestChannel6_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel7_Value = Guid.initString("bc5d0b67-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel7 = &CLSID_CODECAPI_AVEncAudioMapDestChannel7_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel8_Value = Guid.initString("bc5d0b68-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel8 = &CLSID_CODECAPI_AVEncAudioMapDestChannel8_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel9_Value = Guid.initString("bc5d0b69-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel9 = &CLSID_CODECAPI_AVEncAudioMapDestChannel9_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel10_Value = Guid.initString("bc5d0b6a-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel10 = &CLSID_CODECAPI_AVEncAudioMapDestChannel10_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel11_Value = Guid.initString("bc5d0b6b-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel11 = &CLSID_CODECAPI_AVEncAudioMapDestChannel11_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel12_Value = Guid.initString("bc5d0b6c-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel12 = &CLSID_CODECAPI_AVEncAudioMapDestChannel12_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel13_Value = Guid.initString("bc5d0b6d-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel13 = &CLSID_CODECAPI_AVEncAudioMapDestChannel13_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel14_Value = Guid.initString("bc5d0b6e-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel14 = &CLSID_CODECAPI_AVEncAudioMapDestChannel14_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioMapDestChannel15_Value = Guid.initString("bc5d0b6f-df6a-4e16-9803-b82007a30c8d");
|
|
pub const CLSID_CODECAPI_AVEncAudioMapDestChannel15 = &CLSID_CODECAPI_AVEncAudioMapDestChannel15_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncAudioInputContent_Value = Guid.initString("3e226c2b-60b9-4a39-b00b-a7b40f70d566");
|
|
pub const CLSID_CODECAPI_AVEncAudioInputContent = &CLSID_CODECAPI_AVEncAudioInputContent_Value;
|
|
|
|
pub const eAVEncAudioInputContent = enum(i32) {
|
|
Unknown = 0,
|
|
Voice = 1,
|
|
Music = 2,
|
|
};
|
|
pub const AVEncAudioInputContent_Unknown = eAVEncAudioInputContent.Unknown;
|
|
pub const AVEncAudioInputContent_Voice = eAVEncAudioInputContent.Voice;
|
|
pub const AVEncAudioInputContent_Music = eAVEncAudioInputContent.Music;
|
|
|
|
const CLSID_CODECAPI_AVEncStatAudioPeakPCMValue_Value = Guid.initString("dce7fd34-dc00-4c16-821b-35d9eb00fb1a");
|
|
pub const CLSID_CODECAPI_AVEncStatAudioPeakPCMValue = &CLSID_CODECAPI_AVEncStatAudioPeakPCMValue_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatAudioAveragePCMValue_Value = Guid.initString("979272f8-d17f-4e32-bb73-4e731c68ba2d");
|
|
pub const CLSID_CODECAPI_AVEncStatAudioAveragePCMValue = &CLSID_CODECAPI_AVEncStatAudioAveragePCMValue_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatAudioAverageBPS_Value = Guid.initString("ca6724db-7059-4351-8b43-f82198826a14");
|
|
pub const CLSID_CODECAPI_AVEncStatAudioAverageBPS = &CLSID_CODECAPI_AVEncStatAudioAverageBPS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatAverageBPS_Value = Guid.initString("ca6724db-7059-4351-8b43-f82198826a14");
|
|
pub const CLSID_CODECAPI_AVEncStatAverageBPS = &CLSID_CODECAPI_AVEncStatAverageBPS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatHardwareProcessorUtilitization_Value = Guid.initString("995dc027-cb95-49e6-b91b-5967753cdcb8");
|
|
pub const CLSID_CODECAPI_AVEncStatHardwareProcessorUtilitization = &CLSID_CODECAPI_AVEncStatHardwareProcessorUtilitization_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatHardwareBandwidthUtilitization_Value = Guid.initString("0124ba9b-dc41-4826-b45f-18ac01b3d5a8");
|
|
pub const CLSID_CODECAPI_AVEncStatHardwareBandwidthUtilitization = &CLSID_CODECAPI_AVEncStatHardwareBandwidthUtilitization_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGOPSize_Value = Guid.initString("95f31b26-95a4-41aa-9303-246a7fc6eef1");
|
|
pub const CLSID_CODECAPI_AVEncMPVGOPSize = &CLSID_CODECAPI_AVEncMPVGOPSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGOPOpen_Value = Guid.initString("b1d5d4a6-3300-49b1-ae61-a09937ab0e49");
|
|
pub const CLSID_CODECAPI_AVEncMPVGOPOpen = &CLSID_CODECAPI_AVEncMPVGOPOpen_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVDefaultBPictureCount_Value = Guid.initString("8d390aac-dc5c-4200-b57f-814d04babab2");
|
|
pub const CLSID_CODECAPI_AVEncMPVDefaultBPictureCount = &CLSID_CODECAPI_AVEncMPVDefaultBPictureCount_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVProfile_Value = Guid.initString("dabb534a-1d99-4284-975a-d90e2239baa1");
|
|
pub const CLSID_CODECAPI_AVEncMPVProfile = &CLSID_CODECAPI_AVEncMPVProfile_Value;
|
|
|
|
pub const eAVEncMPVProfile = enum(i32) {
|
|
unknown = 0,
|
|
Simple = 1,
|
|
Main = 2,
|
|
High = 3,
|
|
@"422" = 4,
|
|
};
|
|
pub const eAVEncMPVProfile_unknown = eAVEncMPVProfile.unknown;
|
|
pub const eAVEncMPVProfile_Simple = eAVEncMPVProfile.Simple;
|
|
pub const eAVEncMPVProfile_Main = eAVEncMPVProfile.Main;
|
|
pub const eAVEncMPVProfile_High = eAVEncMPVProfile.High;
|
|
pub const eAVEncMPVProfile_422 = eAVEncMPVProfile.@"422";
|
|
|
|
const CLSID_CODECAPI_AVEncMPVLevel_Value = Guid.initString("6ee40c40-a60c-41ef-8f50-37c2249e2cb3");
|
|
pub const CLSID_CODECAPI_AVEncMPVLevel = &CLSID_CODECAPI_AVEncMPVLevel_Value;
|
|
|
|
pub const eAVEncMPVLevel = enum(i32) {
|
|
Low = 1,
|
|
Main = 2,
|
|
High1440 = 3,
|
|
High = 4,
|
|
};
|
|
pub const eAVEncMPVLevel_Low = eAVEncMPVLevel.Low;
|
|
pub const eAVEncMPVLevel_Main = eAVEncMPVLevel.Main;
|
|
pub const eAVEncMPVLevel_High1440 = eAVEncMPVLevel.High1440;
|
|
pub const eAVEncMPVLevel_High = eAVEncMPVLevel.High;
|
|
|
|
pub const eAVEncH263VProfile = enum(i32) {
|
|
Base = 0,
|
|
CompatibilityV2 = 1,
|
|
CompatibilityV1 = 2,
|
|
WirelessV2 = 3,
|
|
WirelessV3 = 4,
|
|
HighCompression = 5,
|
|
Internet = 6,
|
|
Interlace = 7,
|
|
HighLatency = 8,
|
|
};
|
|
pub const eAVEncH263VProfile_Base = eAVEncH263VProfile.Base;
|
|
pub const eAVEncH263VProfile_CompatibilityV2 = eAVEncH263VProfile.CompatibilityV2;
|
|
pub const eAVEncH263VProfile_CompatibilityV1 = eAVEncH263VProfile.CompatibilityV1;
|
|
pub const eAVEncH263VProfile_WirelessV2 = eAVEncH263VProfile.WirelessV2;
|
|
pub const eAVEncH263VProfile_WirelessV3 = eAVEncH263VProfile.WirelessV3;
|
|
pub const eAVEncH263VProfile_HighCompression = eAVEncH263VProfile.HighCompression;
|
|
pub const eAVEncH263VProfile_Internet = eAVEncH263VProfile.Internet;
|
|
pub const eAVEncH263VProfile_Interlace = eAVEncH263VProfile.Interlace;
|
|
pub const eAVEncH263VProfile_HighLatency = eAVEncH263VProfile.HighLatency;
|
|
|
|
pub const eAVEncH264VProfile = enum(i32) {
|
|
unknown = 0,
|
|
Simple = 66,
|
|
// Base = 66, this enum value conflicts with Simple
|
|
Main = 77,
|
|
High = 100,
|
|
@"422" = 122,
|
|
High10 = 110,
|
|
@"444" = 244,
|
|
Extended = 88,
|
|
ScalableBase = 83,
|
|
ScalableHigh = 86,
|
|
MultiviewHigh = 118,
|
|
StereoHigh = 128,
|
|
ConstrainedBase = 256,
|
|
UCConstrainedHigh = 257,
|
|
UCScalableConstrainedBase = 258,
|
|
UCScalableConstrainedHigh = 259,
|
|
};
|
|
pub const eAVEncH264VProfile_unknown = eAVEncH264VProfile.unknown;
|
|
pub const eAVEncH264VProfile_Simple = eAVEncH264VProfile.Simple;
|
|
pub const eAVEncH264VProfile_Base = eAVEncH264VProfile.Simple;
|
|
pub const eAVEncH264VProfile_Main = eAVEncH264VProfile.Main;
|
|
pub const eAVEncH264VProfile_High = eAVEncH264VProfile.High;
|
|
pub const eAVEncH264VProfile_422 = eAVEncH264VProfile.@"422";
|
|
pub const eAVEncH264VProfile_High10 = eAVEncH264VProfile.High10;
|
|
pub const eAVEncH264VProfile_444 = eAVEncH264VProfile.@"444";
|
|
pub const eAVEncH264VProfile_Extended = eAVEncH264VProfile.Extended;
|
|
pub const eAVEncH264VProfile_ScalableBase = eAVEncH264VProfile.ScalableBase;
|
|
pub const eAVEncH264VProfile_ScalableHigh = eAVEncH264VProfile.ScalableHigh;
|
|
pub const eAVEncH264VProfile_MultiviewHigh = eAVEncH264VProfile.MultiviewHigh;
|
|
pub const eAVEncH264VProfile_StereoHigh = eAVEncH264VProfile.StereoHigh;
|
|
pub const eAVEncH264VProfile_ConstrainedBase = eAVEncH264VProfile.ConstrainedBase;
|
|
pub const eAVEncH264VProfile_UCConstrainedHigh = eAVEncH264VProfile.UCConstrainedHigh;
|
|
pub const eAVEncH264VProfile_UCScalableConstrainedBase = eAVEncH264VProfile.UCScalableConstrainedBase;
|
|
pub const eAVEncH264VProfile_UCScalableConstrainedHigh = eAVEncH264VProfile.UCScalableConstrainedHigh;
|
|
|
|
pub const eAVEncH265VProfile = enum(i32) {
|
|
unknown = 0,
|
|
Main_420_8 = 1,
|
|
Main_420_10 = 2,
|
|
Main_420_12 = 3,
|
|
Main_422_10 = 4,
|
|
Main_422_12 = 5,
|
|
Main_444_8 = 6,
|
|
Main_444_10 = 7,
|
|
Main_444_12 = 8,
|
|
Monochrome_12 = 9,
|
|
Monochrome_16 = 10,
|
|
MainIntra_420_8 = 11,
|
|
MainIntra_420_10 = 12,
|
|
MainIntra_420_12 = 13,
|
|
MainIntra_422_10 = 14,
|
|
MainIntra_422_12 = 15,
|
|
MainIntra_444_8 = 16,
|
|
MainIntra_444_10 = 17,
|
|
MainIntra_444_12 = 18,
|
|
MainIntra_444_16 = 19,
|
|
MainStill_420_8 = 20,
|
|
MainStill_444_8 = 21,
|
|
MainStill_444_16 = 22,
|
|
};
|
|
pub const eAVEncH265VProfile_unknown = eAVEncH265VProfile.unknown;
|
|
pub const eAVEncH265VProfile_Main_420_8 = eAVEncH265VProfile.Main_420_8;
|
|
pub const eAVEncH265VProfile_Main_420_10 = eAVEncH265VProfile.Main_420_10;
|
|
pub const eAVEncH265VProfile_Main_420_12 = eAVEncH265VProfile.Main_420_12;
|
|
pub const eAVEncH265VProfile_Main_422_10 = eAVEncH265VProfile.Main_422_10;
|
|
pub const eAVEncH265VProfile_Main_422_12 = eAVEncH265VProfile.Main_422_12;
|
|
pub const eAVEncH265VProfile_Main_444_8 = eAVEncH265VProfile.Main_444_8;
|
|
pub const eAVEncH265VProfile_Main_444_10 = eAVEncH265VProfile.Main_444_10;
|
|
pub const eAVEncH265VProfile_Main_444_12 = eAVEncH265VProfile.Main_444_12;
|
|
pub const eAVEncH265VProfile_Monochrome_12 = eAVEncH265VProfile.Monochrome_12;
|
|
pub const eAVEncH265VProfile_Monochrome_16 = eAVEncH265VProfile.Monochrome_16;
|
|
pub const eAVEncH265VProfile_MainIntra_420_8 = eAVEncH265VProfile.MainIntra_420_8;
|
|
pub const eAVEncH265VProfile_MainIntra_420_10 = eAVEncH265VProfile.MainIntra_420_10;
|
|
pub const eAVEncH265VProfile_MainIntra_420_12 = eAVEncH265VProfile.MainIntra_420_12;
|
|
pub const eAVEncH265VProfile_MainIntra_422_10 = eAVEncH265VProfile.MainIntra_422_10;
|
|
pub const eAVEncH265VProfile_MainIntra_422_12 = eAVEncH265VProfile.MainIntra_422_12;
|
|
pub const eAVEncH265VProfile_MainIntra_444_8 = eAVEncH265VProfile.MainIntra_444_8;
|
|
pub const eAVEncH265VProfile_MainIntra_444_10 = eAVEncH265VProfile.MainIntra_444_10;
|
|
pub const eAVEncH265VProfile_MainIntra_444_12 = eAVEncH265VProfile.MainIntra_444_12;
|
|
pub const eAVEncH265VProfile_MainIntra_444_16 = eAVEncH265VProfile.MainIntra_444_16;
|
|
pub const eAVEncH265VProfile_MainStill_420_8 = eAVEncH265VProfile.MainStill_420_8;
|
|
pub const eAVEncH265VProfile_MainStill_444_8 = eAVEncH265VProfile.MainStill_444_8;
|
|
pub const eAVEncH265VProfile_MainStill_444_16 = eAVEncH265VProfile.MainStill_444_16;
|
|
|
|
pub const eAVEncVP9VProfile = enum(i32) {
|
|
unknown = 0,
|
|
@"420_8" = 1,
|
|
@"420_10" = 2,
|
|
@"420_12" = 3,
|
|
};
|
|
pub const eAVEncVP9VProfile_unknown = eAVEncVP9VProfile.unknown;
|
|
pub const eAVEncVP9VProfile_420_8 = eAVEncVP9VProfile.@"420_8";
|
|
pub const eAVEncVP9VProfile_420_10 = eAVEncVP9VProfile.@"420_10";
|
|
pub const eAVEncVP9VProfile_420_12 = eAVEncVP9VProfile.@"420_12";
|
|
|
|
pub const eAVEncH263PictureType = enum(i32) {
|
|
I = 0,
|
|
P = 1,
|
|
B = 2,
|
|
};
|
|
pub const eAVEncH263PictureType_I = eAVEncH263PictureType.I;
|
|
pub const eAVEncH263PictureType_P = eAVEncH263PictureType.P;
|
|
pub const eAVEncH263PictureType_B = eAVEncH263PictureType.B;
|
|
|
|
pub const eAVEncH264PictureType = enum(i32) {
|
|
IDR = 0,
|
|
P = 1,
|
|
B = 2,
|
|
};
|
|
pub const eAVEncH264PictureType_IDR = eAVEncH264PictureType.IDR;
|
|
pub const eAVEncH264PictureType_P = eAVEncH264PictureType.P;
|
|
pub const eAVEncH264PictureType_B = eAVEncH264PictureType.B;
|
|
|
|
pub const eAVEncH263VLevel = enum(i32) {
|
|
@"1" = 10,
|
|
@"2" = 20,
|
|
@"3" = 30,
|
|
@"4" = 40,
|
|
@"4_5" = 45,
|
|
@"5" = 50,
|
|
@"6" = 60,
|
|
@"7" = 70,
|
|
};
|
|
pub const eAVEncH263VLevel1 = eAVEncH263VLevel.@"1";
|
|
pub const eAVEncH263VLevel2 = eAVEncH263VLevel.@"2";
|
|
pub const eAVEncH263VLevel3 = eAVEncH263VLevel.@"3";
|
|
pub const eAVEncH263VLevel4 = eAVEncH263VLevel.@"4";
|
|
pub const eAVEncH263VLevel4_5 = eAVEncH263VLevel.@"4_5";
|
|
pub const eAVEncH263VLevel5 = eAVEncH263VLevel.@"5";
|
|
pub const eAVEncH263VLevel6 = eAVEncH263VLevel.@"6";
|
|
pub const eAVEncH263VLevel7 = eAVEncH263VLevel.@"7";
|
|
|
|
pub const eAVEncH264VLevel = enum(i32) {
|
|
@"1" = 10,
|
|
@"1_b" = 11,
|
|
// @"1_1" = 11, this enum value conflicts with @"1_b"
|
|
@"1_2" = 12,
|
|
@"1_3" = 13,
|
|
@"2" = 20,
|
|
@"2_1" = 21,
|
|
@"2_2" = 22,
|
|
@"3" = 30,
|
|
@"3_1" = 31,
|
|
@"3_2" = 32,
|
|
@"4" = 40,
|
|
@"4_1" = 41,
|
|
@"4_2" = 42,
|
|
@"5" = 50,
|
|
@"5_1" = 51,
|
|
@"5_2" = 52,
|
|
};
|
|
pub const eAVEncH264VLevel1 = eAVEncH264VLevel.@"1";
|
|
pub const eAVEncH264VLevel1_b = eAVEncH264VLevel.@"1_b";
|
|
pub const eAVEncH264VLevel1_1 = eAVEncH264VLevel.@"1_b";
|
|
pub const eAVEncH264VLevel1_2 = eAVEncH264VLevel.@"1_2";
|
|
pub const eAVEncH264VLevel1_3 = eAVEncH264VLevel.@"1_3";
|
|
pub const eAVEncH264VLevel2 = eAVEncH264VLevel.@"2";
|
|
pub const eAVEncH264VLevel2_1 = eAVEncH264VLevel.@"2_1";
|
|
pub const eAVEncH264VLevel2_2 = eAVEncH264VLevel.@"2_2";
|
|
pub const eAVEncH264VLevel3 = eAVEncH264VLevel.@"3";
|
|
pub const eAVEncH264VLevel3_1 = eAVEncH264VLevel.@"3_1";
|
|
pub const eAVEncH264VLevel3_2 = eAVEncH264VLevel.@"3_2";
|
|
pub const eAVEncH264VLevel4 = eAVEncH264VLevel.@"4";
|
|
pub const eAVEncH264VLevel4_1 = eAVEncH264VLevel.@"4_1";
|
|
pub const eAVEncH264VLevel4_2 = eAVEncH264VLevel.@"4_2";
|
|
pub const eAVEncH264VLevel5 = eAVEncH264VLevel.@"5";
|
|
pub const eAVEncH264VLevel5_1 = eAVEncH264VLevel.@"5_1";
|
|
pub const eAVEncH264VLevel5_2 = eAVEncH264VLevel.@"5_2";
|
|
|
|
pub const eAVEncH265VLevel = enum(i32) {
|
|
@"1" = 30,
|
|
@"2" = 60,
|
|
@"2_1" = 63,
|
|
@"3" = 90,
|
|
@"3_1" = 93,
|
|
@"4" = 120,
|
|
@"4_1" = 123,
|
|
@"5" = 150,
|
|
@"5_1" = 153,
|
|
@"5_2" = 156,
|
|
@"6" = 180,
|
|
@"6_1" = 183,
|
|
@"6_2" = 186,
|
|
};
|
|
pub const eAVEncH265VLevel1 = eAVEncH265VLevel.@"1";
|
|
pub const eAVEncH265VLevel2 = eAVEncH265VLevel.@"2";
|
|
pub const eAVEncH265VLevel2_1 = eAVEncH265VLevel.@"2_1";
|
|
pub const eAVEncH265VLevel3 = eAVEncH265VLevel.@"3";
|
|
pub const eAVEncH265VLevel3_1 = eAVEncH265VLevel.@"3_1";
|
|
pub const eAVEncH265VLevel4 = eAVEncH265VLevel.@"4";
|
|
pub const eAVEncH265VLevel4_1 = eAVEncH265VLevel.@"4_1";
|
|
pub const eAVEncH265VLevel5 = eAVEncH265VLevel.@"5";
|
|
pub const eAVEncH265VLevel5_1 = eAVEncH265VLevel.@"5_1";
|
|
pub const eAVEncH265VLevel5_2 = eAVEncH265VLevel.@"5_2";
|
|
pub const eAVEncH265VLevel6 = eAVEncH265VLevel.@"6";
|
|
pub const eAVEncH265VLevel6_1 = eAVEncH265VLevel.@"6_1";
|
|
pub const eAVEncH265VLevel6_2 = eAVEncH265VLevel.@"6_2";
|
|
|
|
const CLSID_CODECAPI_AVEncMPVFrameFieldMode_Value = Guid.initString("acb5de96-7b93-4c2f-8825-b0295fa93bf4");
|
|
pub const CLSID_CODECAPI_AVEncMPVFrameFieldMode = &CLSID_CODECAPI_AVEncMPVFrameFieldMode_Value;
|
|
|
|
pub const eAVEncMPVFrameFieldMode = enum(i32) {
|
|
ieldMode = 0,
|
|
rameMode = 1,
|
|
};
|
|
pub const eAVEncMPVFrameFieldMode_FieldMode = eAVEncMPVFrameFieldMode.ieldMode;
|
|
pub const eAVEncMPVFrameFieldMode_FrameMode = eAVEncMPVFrameFieldMode.rameMode;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVAddSeqEndCode_Value = Guid.initString("a823178f-57df-4c7a-b8fd-e5ec8887708d");
|
|
pub const CLSID_CODECAPI_AVEncMPVAddSeqEndCode = &CLSID_CODECAPI_AVEncMPVAddSeqEndCode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGOPSInSeq_Value = Guid.initString("993410d4-2691-4192-9978-98dc2603669f");
|
|
pub const CLSID_CODECAPI_AVEncMPVGOPSInSeq = &CLSID_CODECAPI_AVEncMPVGOPSInSeq_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVUseConcealmentMotionVectors_Value = Guid.initString("ec770cf3-6908-4b4b-aa30-7fb986214fea");
|
|
pub const CLSID_CODECAPI_AVEncMPVUseConcealmentMotionVectors = &CLSID_CODECAPI_AVEncMPVUseConcealmentMotionVectors_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVSceneDetection_Value = Guid.initString("552799f1-db4c-405b-8a3a-c93f2d0674dc");
|
|
pub const CLSID_CODECAPI_AVEncMPVSceneDetection = &CLSID_CODECAPI_AVEncMPVSceneDetection_Value;
|
|
|
|
pub const eAVEncMPVSceneDetection = enum(i32) {
|
|
None = 0,
|
|
InsertIPicture = 1,
|
|
StartNewGOP = 2,
|
|
StartNewLocatableGOP = 3,
|
|
};
|
|
pub const eAVEncMPVSceneDetection_None = eAVEncMPVSceneDetection.None;
|
|
pub const eAVEncMPVSceneDetection_InsertIPicture = eAVEncMPVSceneDetection.InsertIPicture;
|
|
pub const eAVEncMPVSceneDetection_StartNewGOP = eAVEncMPVSceneDetection.StartNewGOP;
|
|
pub const eAVEncMPVSceneDetection_StartNewLocatableGOP = eAVEncMPVSceneDetection.StartNewLocatableGOP;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqExt_Value = Guid.initString("d5e78611-082d-4e6b-98af-0f51ab139222");
|
|
pub const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqExt = &CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqExt_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqDispExt_Value = Guid.initString("6437aa6f-5a3c-4de9-8a16-53d9c4ad326f");
|
|
pub const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqDispExt = &CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqDispExt_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGenerateHeaderPicExt_Value = Guid.initString("1b8464ab-944f-45f0-b74e-3a58dad11f37");
|
|
pub const CLSID_CODECAPI_AVEncMPVGenerateHeaderPicExt = &CLSID_CODECAPI_AVEncMPVGenerateHeaderPicExt_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGenerateHeaderPicDispExt_Value = Guid.initString("c6412f84-c03f-4f40-a00c-4293df8395bb");
|
|
pub const CLSID_CODECAPI_AVEncMPVGenerateHeaderPicDispExt = &CLSID_CODECAPI_AVEncMPVGenerateHeaderPicDispExt_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqScaleExt_Value = Guid.initString("0722d62f-dd59-4a86-9cd5-644f8e2653d8");
|
|
pub const CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqScaleExt = &CLSID_CODECAPI_AVEncMPVGenerateHeaderSeqScaleExt_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVScanPattern_Value = Guid.initString("7f8a478e-7bbb-4ae2-b2fc-96d17fc4a2d6");
|
|
pub const CLSID_CODECAPI_AVEncMPVScanPattern = &CLSID_CODECAPI_AVEncMPVScanPattern_Value;
|
|
|
|
pub const eAVEncMPVScanPattern = enum(i32) {
|
|
Auto = 0,
|
|
ZigZagScan = 1,
|
|
AlternateScan = 2,
|
|
};
|
|
pub const eAVEncMPVScanPattern_Auto = eAVEncMPVScanPattern.Auto;
|
|
pub const eAVEncMPVScanPattern_ZigZagScan = eAVEncMPVScanPattern.ZigZagScan;
|
|
pub const eAVEncMPVScanPattern_AlternateScan = eAVEncMPVScanPattern.AlternateScan;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVIntraDCPrecision_Value = Guid.initString("a0116151-cbc8-4af3-97dc-d00cceb82d79");
|
|
pub const CLSID_CODECAPI_AVEncMPVIntraDCPrecision = &CLSID_CODECAPI_AVEncMPVIntraDCPrecision_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVQScaleType_Value = Guid.initString("2b79ebb7-f484-4af7-bb58-a2a188c5cbbe");
|
|
pub const CLSID_CODECAPI_AVEncMPVQScaleType = &CLSID_CODECAPI_AVEncMPVQScaleType_Value;
|
|
|
|
pub const eAVEncMPVQScaleType = enum(i32) {
|
|
Auto = 0,
|
|
Linear = 1,
|
|
NonLinear = 2,
|
|
};
|
|
pub const eAVEncMPVQScaleType_Auto = eAVEncMPVQScaleType.Auto;
|
|
pub const eAVEncMPVQScaleType_Linear = eAVEncMPVQScaleType.Linear;
|
|
pub const eAVEncMPVQScaleType_NonLinear = eAVEncMPVQScaleType.NonLinear;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVIntraVLCTable_Value = Guid.initString("a2b83ff5-1a99-405a-af95-c5997d558d3a");
|
|
pub const CLSID_CODECAPI_AVEncMPVIntraVLCTable = &CLSID_CODECAPI_AVEncMPVIntraVLCTable_Value;
|
|
|
|
pub const eAVEncMPVIntraVLCTable = enum(i32) {
|
|
Auto = 0,
|
|
MPEG1 = 1,
|
|
Alternate = 2,
|
|
};
|
|
pub const eAVEncMPVIntraVLCTable_Auto = eAVEncMPVIntraVLCTable.Auto;
|
|
pub const eAVEncMPVIntraVLCTable_MPEG1 = eAVEncMPVIntraVLCTable.MPEG1;
|
|
pub const eAVEncMPVIntraVLCTable_Alternate = eAVEncMPVIntraVLCTable.Alternate;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVQuantMatrixIntra_Value = Guid.initString("9bea04f3-6621-442c-8ba1-3ac378979698");
|
|
pub const CLSID_CODECAPI_AVEncMPVQuantMatrixIntra = &CLSID_CODECAPI_AVEncMPVQuantMatrixIntra_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVQuantMatrixNonIntra_Value = Guid.initString("87f441d8-0997-4beb-a08e-8573d409cf75");
|
|
pub const CLSID_CODECAPI_AVEncMPVQuantMatrixNonIntra = &CLSID_CODECAPI_AVEncMPVQuantMatrixNonIntra_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVQuantMatrixChromaIntra_Value = Guid.initString("9eb9ecd4-018d-4ffd-8f2d-39e49f07b17a");
|
|
pub const CLSID_CODECAPI_AVEncMPVQuantMatrixChromaIntra = &CLSID_CODECAPI_AVEncMPVQuantMatrixChromaIntra_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPVQuantMatrixChromaNonIntra_Value = Guid.initString("1415b6b1-362a-4338-ba9a-1ef58703c05b");
|
|
pub const CLSID_CODECAPI_AVEncMPVQuantMatrixChromaNonIntra = &CLSID_CODECAPI_AVEncMPVQuantMatrixChromaNonIntra_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPALayer_Value = Guid.initString("9d377230-f91b-453d-9ce0-78445414c22d");
|
|
pub const CLSID_CODECAPI_AVEncMPALayer = &CLSID_CODECAPI_AVEncMPALayer_Value;
|
|
|
|
pub const eAVEncMPALayer = enum(i32) {
|
|
@"1" = 1,
|
|
@"2" = 2,
|
|
@"3" = 3,
|
|
};
|
|
pub const eAVEncMPALayer_1 = eAVEncMPALayer.@"1";
|
|
pub const eAVEncMPALayer_2 = eAVEncMPALayer.@"2";
|
|
pub const eAVEncMPALayer_3 = eAVEncMPALayer.@"3";
|
|
|
|
const CLSID_CODECAPI_AVEncMPACodingMode_Value = Guid.initString("b16ade03-4b93-43d7-a550-90b4fe224537");
|
|
pub const CLSID_CODECAPI_AVEncMPACodingMode = &CLSID_CODECAPI_AVEncMPACodingMode_Value;
|
|
|
|
pub const eAVEncMPACodingMode = enum(i32) {
|
|
Mono = 0,
|
|
Stereo = 1,
|
|
DualChannel = 2,
|
|
JointStereo = 3,
|
|
Surround = 4,
|
|
};
|
|
pub const eAVEncMPACodingMode_Mono = eAVEncMPACodingMode.Mono;
|
|
pub const eAVEncMPACodingMode_Stereo = eAVEncMPACodingMode.Stereo;
|
|
pub const eAVEncMPACodingMode_DualChannel = eAVEncMPACodingMode.DualChannel;
|
|
pub const eAVEncMPACodingMode_JointStereo = eAVEncMPACodingMode.JointStereo;
|
|
pub const eAVEncMPACodingMode_Surround = eAVEncMPACodingMode.Surround;
|
|
|
|
const CLSID_CODECAPI_AVEncMPACopyright_Value = Guid.initString("a6ae762a-d0a9-4454-b8ef-f2dbeefdd3bd");
|
|
pub const CLSID_CODECAPI_AVEncMPACopyright = &CLSID_CODECAPI_AVEncMPACopyright_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPAOriginalBitstream_Value = Guid.initString("3cfb7855-9cc9-47ff-b829-b36786c92346");
|
|
pub const CLSID_CODECAPI_AVEncMPAOriginalBitstream = &CLSID_CODECAPI_AVEncMPAOriginalBitstream_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPAEnableRedundancyProtection_Value = Guid.initString("5e54b09e-b2e7-4973-a89b-0b3650a3beda");
|
|
pub const CLSID_CODECAPI_AVEncMPAEnableRedundancyProtection = &CLSID_CODECAPI_AVEncMPAEnableRedundancyProtection_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPAPrivateUserBit_Value = Guid.initString("afa505ce-c1e3-4e3d-851b-61b700e5e6cc");
|
|
pub const CLSID_CODECAPI_AVEncMPAPrivateUserBit = &CLSID_CODECAPI_AVEncMPAPrivateUserBit_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMPAEmphasisType_Value = Guid.initString("2d59fcda-bf4e-4ed6-b5df-5b03b36b0a1f");
|
|
pub const CLSID_CODECAPI_AVEncMPAEmphasisType = &CLSID_CODECAPI_AVEncMPAEmphasisType_Value;
|
|
|
|
pub const eAVEncMPAEmphasisType = enum(i32) {
|
|
None = 0,
|
|
@"50_15" = 1,
|
|
Reserved = 2,
|
|
CCITT_J17 = 3,
|
|
};
|
|
pub const eAVEncMPAEmphasisType_None = eAVEncMPAEmphasisType.None;
|
|
pub const eAVEncMPAEmphasisType_50_15 = eAVEncMPAEmphasisType.@"50_15";
|
|
pub const eAVEncMPAEmphasisType_Reserved = eAVEncMPAEmphasisType.Reserved;
|
|
pub const eAVEncMPAEmphasisType_CCITT_J17 = eAVEncMPAEmphasisType.CCITT_J17;
|
|
|
|
const CLSID_CODECAPI_AVEncDDService_Value = Guid.initString("d2e1bec7-5172-4d2a-a50e-2f3b82b1ddf8");
|
|
pub const CLSID_CODECAPI_AVEncDDService = &CLSID_CODECAPI_AVEncDDService_Value;
|
|
|
|
pub const eAVEncDDService = enum(i32) {
|
|
CM = 0,
|
|
ME = 1,
|
|
VI = 2,
|
|
HI = 3,
|
|
D = 4,
|
|
C = 5,
|
|
E = 6,
|
|
VO = 7,
|
|
};
|
|
pub const eAVEncDDService_CM = eAVEncDDService.CM;
|
|
pub const eAVEncDDService_ME = eAVEncDDService.ME;
|
|
pub const eAVEncDDService_VI = eAVEncDDService.VI;
|
|
pub const eAVEncDDService_HI = eAVEncDDService.HI;
|
|
pub const eAVEncDDService_D = eAVEncDDService.D;
|
|
pub const eAVEncDDService_C = eAVEncDDService.C;
|
|
pub const eAVEncDDService_E = eAVEncDDService.E;
|
|
pub const eAVEncDDService_VO = eAVEncDDService.VO;
|
|
|
|
const CLSID_CODECAPI_AVEncDDDialogNormalization_Value = Guid.initString("d7055acf-f125-437d-a704-79c79f0404a8");
|
|
pub const CLSID_CODECAPI_AVEncDDDialogNormalization = &CLSID_CODECAPI_AVEncDDDialogNormalization_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDCentreDownMixLevel_Value = Guid.initString("e285072c-c958-4a81-afd2-e5e0daf1b148");
|
|
pub const CLSID_CODECAPI_AVEncDDCentreDownMixLevel = &CLSID_CODECAPI_AVEncDDCentreDownMixLevel_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDSurroundDownMixLevel_Value = Guid.initString("7b20d6e5-0bcf-4273-a487-506b047997e9");
|
|
pub const CLSID_CODECAPI_AVEncDDSurroundDownMixLevel = &CLSID_CODECAPI_AVEncDDSurroundDownMixLevel_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDProductionInfoExists_Value = Guid.initString("b0b7fe5f-b6ab-4f40-964d-8d91f17c19e8");
|
|
pub const CLSID_CODECAPI_AVEncDDProductionInfoExists = &CLSID_CODECAPI_AVEncDDProductionInfoExists_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDProductionRoomType_Value = Guid.initString("dad7ad60-23d8-4ab7-a284-556986d8a6fe");
|
|
pub const CLSID_CODECAPI_AVEncDDProductionRoomType = &CLSID_CODECAPI_AVEncDDProductionRoomType_Value;
|
|
|
|
pub const eAVEncDDProductionRoomType = enum(i32) {
|
|
NotIndicated = 0,
|
|
Large = 1,
|
|
Small = 2,
|
|
};
|
|
pub const eAVEncDDProductionRoomType_NotIndicated = eAVEncDDProductionRoomType.NotIndicated;
|
|
pub const eAVEncDDProductionRoomType_Large = eAVEncDDProductionRoomType.Large;
|
|
pub const eAVEncDDProductionRoomType_Small = eAVEncDDProductionRoomType.Small;
|
|
|
|
const CLSID_CODECAPI_AVEncDDProductionMixLevel_Value = Guid.initString("301d103a-cbf9-4776-8899-7c15b461ab26");
|
|
pub const CLSID_CODECAPI_AVEncDDProductionMixLevel = &CLSID_CODECAPI_AVEncDDProductionMixLevel_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDCopyright_Value = Guid.initString("8694f076-cd75-481d-a5c6-a904dcc828f0");
|
|
pub const CLSID_CODECAPI_AVEncDDCopyright = &CLSID_CODECAPI_AVEncDDCopyright_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDOriginalBitstream_Value = Guid.initString("966ae800-5bd3-4ff9-95b9-d30566273856");
|
|
pub const CLSID_CODECAPI_AVEncDDOriginalBitstream = &CLSID_CODECAPI_AVEncDDOriginalBitstream_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDDigitalDeemphasis_Value = Guid.initString("e024a2c2-947c-45ac-87d8-f1030c5c0082");
|
|
pub const CLSID_CODECAPI_AVEncDDDigitalDeemphasis = &CLSID_CODECAPI_AVEncDDDigitalDeemphasis_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDDCHighPassFilter_Value = Guid.initString("9565239f-861c-4ac8-bfda-e00cb4db8548");
|
|
pub const CLSID_CODECAPI_AVEncDDDCHighPassFilter = &CLSID_CODECAPI_AVEncDDDCHighPassFilter_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDChannelBWLowPassFilter_Value = Guid.initString("e197821d-d2e7-43e2-ad2c-00582f518545");
|
|
pub const CLSID_CODECAPI_AVEncDDChannelBWLowPassFilter = &CLSID_CODECAPI_AVEncDDChannelBWLowPassFilter_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDLFELowPassFilter_Value = Guid.initString("d3b80f6f-9d15-45e5-91be-019c3fab1f01");
|
|
pub const CLSID_CODECAPI_AVEncDDLFELowPassFilter = &CLSID_CODECAPI_AVEncDDLFELowPassFilter_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDSurround90DegreeePhaseShift_Value = Guid.initString("25ecec9d-3553-42c0-bb56-d25792104f80");
|
|
pub const CLSID_CODECAPI_AVEncDDSurround90DegreeePhaseShift = &CLSID_CODECAPI_AVEncDDSurround90DegreeePhaseShift_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDSurround3dBAttenuation_Value = Guid.initString("4d43b99d-31e2-48b9-bf2e-5cbf1a572784");
|
|
pub const CLSID_CODECAPI_AVEncDDSurround3dBAttenuation = &CLSID_CODECAPI_AVEncDDSurround3dBAttenuation_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDDynamicRangeCompressionControl_Value = Guid.initString("cfc2ff6d-79b8-4b8d-a8aa-a0c9bd1c2940");
|
|
pub const CLSID_CODECAPI_AVEncDDDynamicRangeCompressionControl = &CLSID_CODECAPI_AVEncDDDynamicRangeCompressionControl_Value;
|
|
|
|
pub const eAVEncDDDynamicRangeCompressionControl = enum(i32) {
|
|
None = 0,
|
|
FilmStandard = 1,
|
|
FilmLight = 2,
|
|
MusicStandard = 3,
|
|
MusicLight = 4,
|
|
Speech = 5,
|
|
};
|
|
pub const eAVEncDDDynamicRangeCompressionControl_None = eAVEncDDDynamicRangeCompressionControl.None;
|
|
pub const eAVEncDDDynamicRangeCompressionControl_FilmStandard = eAVEncDDDynamicRangeCompressionControl.FilmStandard;
|
|
pub const eAVEncDDDynamicRangeCompressionControl_FilmLight = eAVEncDDDynamicRangeCompressionControl.FilmLight;
|
|
pub const eAVEncDDDynamicRangeCompressionControl_MusicStandard = eAVEncDDDynamicRangeCompressionControl.MusicStandard;
|
|
pub const eAVEncDDDynamicRangeCompressionControl_MusicLight = eAVEncDDDynamicRangeCompressionControl.MusicLight;
|
|
pub const eAVEncDDDynamicRangeCompressionControl_Speech = eAVEncDDDynamicRangeCompressionControl.Speech;
|
|
|
|
const CLSID_CODECAPI_AVEncDDRFPreEmphasisFilter_Value = Guid.initString("21af44c0-244e-4f3d-a2cc-3d3068b2e73f");
|
|
pub const CLSID_CODECAPI_AVEncDDRFPreEmphasisFilter = &CLSID_CODECAPI_AVEncDDRFPreEmphasisFilter_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDSurroundExMode_Value = Guid.initString("91607cee-dbdd-4eb6-bca2-aadfafa3dd68");
|
|
pub const CLSID_CODECAPI_AVEncDDSurroundExMode = &CLSID_CODECAPI_AVEncDDSurroundExMode_Value;
|
|
|
|
pub const eAVEncDDSurroundExMode = enum(i32) {
|
|
NotIndicated = 0,
|
|
No = 1,
|
|
Yes = 2,
|
|
};
|
|
pub const eAVEncDDSurroundExMode_NotIndicated = eAVEncDDSurroundExMode.NotIndicated;
|
|
pub const eAVEncDDSurroundExMode_No = eAVEncDDSurroundExMode.No;
|
|
pub const eAVEncDDSurroundExMode_Yes = eAVEncDDSurroundExMode.Yes;
|
|
|
|
const CLSID_CODECAPI_AVEncDDPreferredStereoDownMixMode_Value = Guid.initString("7f4e6b31-9185-403d-b0a2-763743e6f063");
|
|
pub const CLSID_CODECAPI_AVEncDDPreferredStereoDownMixMode = &CLSID_CODECAPI_AVEncDDPreferredStereoDownMixMode_Value;
|
|
|
|
pub const eAVEncDDPreferredStereoDownMixMode = enum(i32) {
|
|
tRt = 0,
|
|
oRo = 1,
|
|
};
|
|
pub const eAVEncDDPreferredStereoDownMixMode_LtRt = eAVEncDDPreferredStereoDownMixMode.tRt;
|
|
pub const eAVEncDDPreferredStereoDownMixMode_LoRo = eAVEncDDPreferredStereoDownMixMode.oRo;
|
|
|
|
const CLSID_CODECAPI_AVEncDDLtRtCenterMixLvl_x10_Value = Guid.initString("dca128a2-491f-4600-b2da-76e3344b4197");
|
|
pub const CLSID_CODECAPI_AVEncDDLtRtCenterMixLvl_x10 = &CLSID_CODECAPI_AVEncDDLtRtCenterMixLvl_x10_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDLtRtSurroundMixLvl_x10_Value = Guid.initString("212246c7-3d2c-4dfa-bc21-652a9098690d");
|
|
pub const CLSID_CODECAPI_AVEncDDLtRtSurroundMixLvl_x10 = &CLSID_CODECAPI_AVEncDDLtRtSurroundMixLvl_x10_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDLoRoCenterMixLvl_x10_Value = Guid.initString("1cfba222-25b3-4bf4-9bfd-e7111267858c");
|
|
pub const CLSID_CODECAPI_AVEncDDLoRoCenterMixLvl_x10 = &CLSID_CODECAPI_AVEncDDLoRoCenterMixLvl_x10_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDLoRoSurroundMixLvl_x10_Value = Guid.initString("e725cff6-eb56-40c7-8450-2b9367e91555");
|
|
pub const CLSID_CODECAPI_AVEncDDLoRoSurroundMixLvl_x10 = &CLSID_CODECAPI_AVEncDDLoRoSurroundMixLvl_x10_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncDDAtoDConverterType_Value = Guid.initString("719f9612-81a1-47e0-9a05-d94ad5fca948");
|
|
pub const CLSID_CODECAPI_AVEncDDAtoDConverterType = &CLSID_CODECAPI_AVEncDDAtoDConverterType_Value;
|
|
|
|
pub const eAVEncDDAtoDConverterType = enum(i32) {
|
|
Standard = 0,
|
|
HDCD = 1,
|
|
};
|
|
pub const eAVEncDDAtoDConverterType_Standard = eAVEncDDAtoDConverterType.Standard;
|
|
pub const eAVEncDDAtoDConverterType_HDCD = eAVEncDDAtoDConverterType.HDCD;
|
|
|
|
const CLSID_CODECAPI_AVEncDDHeadphoneMode_Value = Guid.initString("4052dbec-52f5-42f5-9b00-d134b1341b9d");
|
|
pub const CLSID_CODECAPI_AVEncDDHeadphoneMode = &CLSID_CODECAPI_AVEncDDHeadphoneMode_Value;
|
|
|
|
pub const eAVEncDDHeadphoneMode = enum(i32) {
|
|
NotIndicated = 0,
|
|
NotEncoded = 1,
|
|
Encoded = 2,
|
|
};
|
|
pub const eAVEncDDHeadphoneMode_NotIndicated = eAVEncDDHeadphoneMode.NotIndicated;
|
|
pub const eAVEncDDHeadphoneMode_NotEncoded = eAVEncDDHeadphoneMode.NotEncoded;
|
|
pub const eAVEncDDHeadphoneMode_Encoded = eAVEncDDHeadphoneMode.Encoded;
|
|
|
|
const CLSID_CODECAPI_AVEncWMVKeyFrameDistance_Value = Guid.initString("5569055e-e268-4771-b83e-9555ea28aed3");
|
|
pub const CLSID_CODECAPI_AVEncWMVKeyFrameDistance = &CLSID_CODECAPI_AVEncWMVKeyFrameDistance_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncWMVInterlacedEncoding_Value = Guid.initString("e3d00f8a-c6f5-4e14-a588-0ec87a726f9b");
|
|
pub const CLSID_CODECAPI_AVEncWMVInterlacedEncoding = &CLSID_CODECAPI_AVEncWMVInterlacedEncoding_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncWMVDecoderComplexity_Value = Guid.initString("f32c0dab-f3cb-4217-b79f-8762768b5f67");
|
|
pub const CLSID_CODECAPI_AVEncWMVDecoderComplexity = &CLSID_CODECAPI_AVEncWMVDecoderComplexity_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncWMVKeyFrameBufferLevelMarker_Value = Guid.initString("51ff1115-33ac-426c-a1b1-09321bdf96b4");
|
|
pub const CLSID_CODECAPI_AVEncWMVKeyFrameBufferLevelMarker = &CLSID_CODECAPI_AVEncWMVKeyFrameBufferLevelMarker_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncWMVProduceDummyFrames_Value = Guid.initString("d669d001-183c-42e3-a3ca-2f4586d2396c");
|
|
pub const CLSID_CODECAPI_AVEncWMVProduceDummyFrames = &CLSID_CODECAPI_AVEncWMVProduceDummyFrames_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatWMVCBAvg_Value = Guid.initString("6aa6229f-d602-4b9d-b68c-c1ad78884bef");
|
|
pub const CLSID_CODECAPI_AVEncStatWMVCBAvg = &CLSID_CODECAPI_AVEncStatWMVCBAvg_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatWMVCBMax_Value = Guid.initString("e976bef8-00fe-44b4-b625-8f238bc03499");
|
|
pub const CLSID_CODECAPI_AVEncStatWMVCBMax = &CLSID_CODECAPI_AVEncStatWMVCBMax_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatWMVDecoderComplexityProfile_Value = Guid.initString("89e69fc3-0f9b-436c-974a-df821227c90d");
|
|
pub const CLSID_CODECAPI_AVEncStatWMVDecoderComplexityProfile = &CLSID_CODECAPI_AVEncStatWMVDecoderComplexityProfile_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncStatMPVSkippedEmptyFrames_Value = Guid.initString("32195fd3-590d-4812-a7ed-6d639a1f9711");
|
|
pub const CLSID_CODECAPI_AVEncStatMPVSkippedEmptyFrames = &CLSID_CODECAPI_AVEncStatMPVSkippedEmptyFrames_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzSTDBuffer_Value = Guid.initString("0b751bd0-819e-478c-9435-75208926b377");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzSTDBuffer = &CLSID_CODECAPI_AVEncMP12PktzSTDBuffer_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzStreamID_Value = Guid.initString("c834d038-f5e8-4408-9b60-88f36493fedf");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzStreamID = &CLSID_CODECAPI_AVEncMP12PktzStreamID_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzInitialPTS_Value = Guid.initString("2a4f2065-9a63-4d20-ae22-0a1bc896a315");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzInitialPTS = &CLSID_CODECAPI_AVEncMP12PktzInitialPTS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzPacketSize_Value = Guid.initString("ab71347a-1332-4dde-a0e5-ccf7da8a0f22");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzPacketSize = &CLSID_CODECAPI_AVEncMP12PktzPacketSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzCopyright_Value = Guid.initString("c8f4b0c1-094c-43c7-8e68-a595405a6ef8");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzCopyright = &CLSID_CODECAPI_AVEncMP12PktzCopyright_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12PktzOriginal_Value = Guid.initString("6b178416-31b9-4964-94cb-6bff866cdf83");
|
|
pub const CLSID_CODECAPI_AVEncMP12PktzOriginal = &CLSID_CODECAPI_AVEncMP12PktzOriginal_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxPacketOverhead_Value = Guid.initString("e40bd720-3955-4453-acf9-b79132a38fa0");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxPacketOverhead = &CLSID_CODECAPI_AVEncMP12MuxPacketOverhead_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxNumStreams_Value = Guid.initString("f7164a41-dced-4659-a8f2-fb693f2a4cd0");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxNumStreams = &CLSID_CODECAPI_AVEncMP12MuxNumStreams_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxEarliestPTS_Value = Guid.initString("157232b6-f809-474e-9464-a7f93014a817");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxEarliestPTS = &CLSID_CODECAPI_AVEncMP12MuxEarliestPTS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxLargestPacketSize_Value = Guid.initString("35ceb711-f461-4b92-a4ef-17b6841ed254");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxLargestPacketSize = &CLSID_CODECAPI_AVEncMP12MuxLargestPacketSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxInitialSCR_Value = Guid.initString("3433ad21-1b91-4a0b-b190-2b77063b63a4");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxInitialSCR = &CLSID_CODECAPI_AVEncMP12MuxInitialSCR_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxMuxRate_Value = Guid.initString("ee047c72-4bdb-4a9d-8e21-41926c823da7");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxMuxRate = &CLSID_CODECAPI_AVEncMP12MuxMuxRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxPackSize_Value = Guid.initString("f916053a-1ce8-4faf-aa0b-ba31c80034b8");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxPackSize = &CLSID_CODECAPI_AVEncMP12MuxPackSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysSTDBufferBound_Value = Guid.initString("35746903-b545-43e7-bb35-c5e0a7d5093c");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysSTDBufferBound = &CLSID_CODECAPI_AVEncMP12MuxSysSTDBufferBound_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysRateBound_Value = Guid.initString("05f0428a-ee30-489d-ae28-205c72446710");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysRateBound = &CLSID_CODECAPI_AVEncMP12MuxSysRateBound_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxTargetPacketizer_Value = Guid.initString("d862212a-2015-45dd-9a32-1b3aa88205a0");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxTargetPacketizer = &CLSID_CODECAPI_AVEncMP12MuxTargetPacketizer_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysFixed_Value = Guid.initString("cefb987e-894f-452e-8f89-a4ef8cec063a");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysFixed = &CLSID_CODECAPI_AVEncMP12MuxSysFixed_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysCSPS_Value = Guid.initString("7952ff45-9c0d-4822-bc82-8ad772e02993");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysCSPS = &CLSID_CODECAPI_AVEncMP12MuxSysCSPS_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysVideoLock_Value = Guid.initString("b8296408-2430-4d37-a2a1-95b3e435a91d");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysVideoLock = &CLSID_CODECAPI_AVEncMP12MuxSysVideoLock_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxSysAudioLock_Value = Guid.initString("0fbb5752-1d43-47bf-bd79-f2293d8ce337");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxSysAudioLock = &CLSID_CODECAPI_AVEncMP12MuxSysAudioLock_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncMP12MuxDVDNavPacks_Value = Guid.initString("c7607ced-8cf1-4a99-83a1-ee5461be3574");
|
|
pub const CLSID_CODECAPI_AVEncMP12MuxDVDNavPacks = &CLSID_CODECAPI_AVEncMP12MuxDVDNavPacks_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecCommonInputFormat_Value = Guid.initString("e5005239-bd89-4be3-9c0f-5dde317988cc");
|
|
pub const CLSID_CODECAPI_AVDecCommonInputFormat = &CLSID_CODECAPI_AVDecCommonInputFormat_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecCommonOutputFormat_Value = Guid.initString("3c790028-c0ce-4256-b1a2-1b0fc8b1dcdc");
|
|
pub const CLSID_CODECAPI_AVDecCommonOutputFormat = &CLSID_CODECAPI_AVDecCommonOutputFormat_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecCommonMeanBitRate_Value = Guid.initString("59488217-007a-4f7a-8e41-5c48b1eac5c6");
|
|
pub const CLSID_CODECAPI_AVDecCommonMeanBitRate = &CLSID_CODECAPI_AVDecCommonMeanBitRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecCommonMeanBitRateInterval_Value = Guid.initString("0ee437c6-38a7-4c5c-944c-68ab42116b85");
|
|
pub const CLSID_CODECAPI_AVDecCommonMeanBitRateInterval = &CLSID_CODECAPI_AVDecCommonMeanBitRateInterval_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded_Value = Guid.initString("696e1d30-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Value = Guid.initString("696e1d31-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_PCM_Value = Guid.initString("696e1d32-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_PCM = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_PCM_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_Bitstream_Value = Guid.initString("696e1d33-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_Bitstream = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_Bitstream_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Headphones_Value = Guid.initString("696e1d34-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Headphones = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Headphones_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto_Value = Guid.initString("696e1d35-548f-4036-825f-7026c60011bd");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto = &CLSID_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoImageSize_Value = Guid.initString("5ee5747c-6801-4cab-aaf1-6248fa841ba4");
|
|
pub const CLSID_CODECAPI_AVDecVideoImageSize = &CLSID_CODECAPI_AVDecVideoImageSize_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoPixelAspectRatio_Value = Guid.initString("b0cf8245-f32d-41df-b02c-87bd304d12ab");
|
|
pub const CLSID_CODECAPI_AVDecVideoPixelAspectRatio = &CLSID_CODECAPI_AVDecVideoPixelAspectRatio_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoInputScanType_Value = Guid.initString("38477e1f-0ea7-42cd-8cd1-130ced57c580");
|
|
pub const CLSID_CODECAPI_AVDecVideoInputScanType = &CLSID_CODECAPI_AVDecVideoInputScanType_Value;
|
|
|
|
pub const eAVDecVideoInputScanType = enum(i32) {
|
|
Unknown = 0,
|
|
Progressive = 1,
|
|
Interlaced_UpperFieldFirst = 2,
|
|
Interlaced_LowerFieldFirst = 3,
|
|
};
|
|
pub const eAVDecVideoInputScan_Unknown = eAVDecVideoInputScanType.Unknown;
|
|
pub const eAVDecVideoInputScan_Progressive = eAVDecVideoInputScanType.Progressive;
|
|
pub const eAVDecVideoInputScan_Interlaced_UpperFieldFirst = eAVDecVideoInputScanType.Interlaced_UpperFieldFirst;
|
|
pub const eAVDecVideoInputScan_Interlaced_LowerFieldFirst = eAVDecVideoInputScanType.Interlaced_LowerFieldFirst;
|
|
|
|
const CLSID_CODECAPI_AVDecVideoSWPowerLevel_Value = Guid.initString("fb5d2347-4dd8-4509-aed0-db5fa9aa93f4");
|
|
pub const CLSID_CODECAPI_AVDecVideoSWPowerLevel = &CLSID_CODECAPI_AVDecVideoSWPowerLevel_Value;
|
|
|
|
pub const eAVDecVideoSWPowerLevel = enum(i32) {
|
|
BatteryLife = 0,
|
|
Balanced = 50,
|
|
VideoQuality = 100,
|
|
};
|
|
pub const eAVDecVideoSWPowerLevel_BatteryLife = eAVDecVideoSWPowerLevel.BatteryLife;
|
|
pub const eAVDecVideoSWPowerLevel_Balanced = eAVDecVideoSWPowerLevel.Balanced;
|
|
pub const eAVDecVideoSWPowerLevel_VideoQuality = eAVDecVideoSWPowerLevel.VideoQuality;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputWMA_Value = Guid.initString("c95e8dcf-4058-4204-8c42-cb24d91e4b9b");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputWMA = &CLSID_CODECAPI_GUID_AVDecAudioInputWMA_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputWMAPro_Value = Guid.initString("0128b7c7-da72-4fe3-bef8-5c52e3557704");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputWMAPro = &CLSID_CODECAPI_GUID_AVDecAudioInputWMAPro_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputDolby_Value = Guid.initString("8e4228a0-f000-4e0b-8f54-ab8d24ad61a2");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputDolby = &CLSID_CODECAPI_GUID_AVDecAudioInputDolby_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputDTS_Value = Guid.initString("600bc0ca-6a1f-4e91-b241-1bbeb1cb19e0");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputDTS = &CLSID_CODECAPI_GUID_AVDecAudioInputDTS_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputPCM_Value = Guid.initString("f2421da5-bbb4-4cd5-a996-933c6b5d1347");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputPCM = &CLSID_CODECAPI_GUID_AVDecAudioInputPCM_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputMPEG_Value = Guid.initString("91106f36-02c5-4f75-9719-3b7abf75e1f6");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputMPEG = &CLSID_CODECAPI_GUID_AVDecAudioInputMPEG_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputAAC_Value = Guid.initString("97df7828-b94a-47e2-a4bc-51194db22a4d");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputAAC = &CLSID_CODECAPI_GUID_AVDecAudioInputAAC_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputHEAAC_Value = Guid.initString("16efb4aa-330e-4f5c-98a8-cf6ac55cbe60");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputHEAAC = &CLSID_CODECAPI_GUID_AVDecAudioInputHEAAC_Value;
|
|
|
|
const CLSID_CODECAPI_GUID_AVDecAudioInputDolbyDigitalPlus_Value = Guid.initString("0803e185-8f5d-47f5-9908-19a5bbc9fe34");
|
|
pub const CLSID_CODECAPI_GUID_AVDecAudioInputDolbyDigitalPlus = &CLSID_CODECAPI_GUID_AVDecAudioInputDolbyDigitalPlus_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecAACDownmixMode_Value = Guid.initString("01274475-f6bb-4017-b084-81a763c942d4");
|
|
pub const CLSID_CODECAPI_AVDecAACDownmixMode = &CLSID_CODECAPI_AVDecAACDownmixMode_Value;
|
|
|
|
pub const eAVDecAACDownmixMode = enum(i32) {
|
|
ISODownmix = 0,
|
|
ARIBDownmix = 1,
|
|
};
|
|
pub const eAVDecAACUseISODownmix = eAVDecAACDownmixMode.ISODownmix;
|
|
pub const eAVDecAACUseARIBDownmix = eAVDecAACDownmixMode.ARIBDownmix;
|
|
|
|
const CLSID_CODECAPI_AVDecHEAACDynamicRangeControl_Value = Guid.initString("287c8abe-69a4-4d39-8080-d3d9712178a0");
|
|
pub const CLSID_CODECAPI_AVDecHEAACDynamicRangeControl = &CLSID_CODECAPI_AVDecHEAACDynamicRangeControl_Value;
|
|
|
|
pub const eAVDecHEAACDynamicRangeControl = enum(i32) {
|
|
FF = 0,
|
|
N = 1,
|
|
};
|
|
pub const eAVDecHEAACDynamicRangeControl_OFF = eAVDecHEAACDynamicRangeControl.FF;
|
|
pub const eAVDecHEAACDynamicRangeControl_ON = eAVDecHEAACDynamicRangeControl.N;
|
|
|
|
const CLSID_CODECAPI_AVDecAudioDualMono_Value = Guid.initString("4a52cda8-30f8-4216-be0f-ba0b2025921d");
|
|
pub const CLSID_CODECAPI_AVDecAudioDualMono = &CLSID_CODECAPI_AVDecAudioDualMono_Value;
|
|
|
|
pub const eAVDecAudioDualMono = enum(i32) {
|
|
IsNotDualMono = 0,
|
|
IsDualMono = 1,
|
|
UnSpecified = 2,
|
|
};
|
|
pub const eAVDecAudioDualMono_IsNotDualMono = eAVDecAudioDualMono.IsNotDualMono;
|
|
pub const eAVDecAudioDualMono_IsDualMono = eAVDecAudioDualMono.IsDualMono;
|
|
pub const eAVDecAudioDualMono_UnSpecified = eAVDecAudioDualMono.UnSpecified;
|
|
|
|
const CLSID_CODECAPI_AVDecAudioDualMonoReproMode_Value = Guid.initString("a5106186-cc94-4bc9-8cd9-aa2f61f6807e");
|
|
pub const CLSID_CODECAPI_AVDecAudioDualMonoReproMode = &CLSID_CODECAPI_AVDecAudioDualMonoReproMode_Value;
|
|
|
|
pub const eAVDecAudioDualMonoReproMode = enum(i32) {
|
|
STEREO = 0,
|
|
LEFT_MONO = 1,
|
|
RIGHT_MONO = 2,
|
|
MIX_MONO = 3,
|
|
};
|
|
pub const eAVDecAudioDualMonoReproMode_STEREO = eAVDecAudioDualMonoReproMode.STEREO;
|
|
pub const eAVDecAudioDualMonoReproMode_LEFT_MONO = eAVDecAudioDualMonoReproMode.LEFT_MONO;
|
|
pub const eAVDecAudioDualMonoReproMode_RIGHT_MONO = eAVDecAudioDualMonoReproMode.RIGHT_MONO;
|
|
pub const eAVDecAudioDualMonoReproMode_MIX_MONO = eAVDecAudioDualMonoReproMode.MIX_MONO;
|
|
|
|
const CLSID_CODECAPI_AVAudioChannelCount_Value = Guid.initString("1d3583c4-1583-474e-b71a-5ee463c198e4");
|
|
pub const CLSID_CODECAPI_AVAudioChannelCount = &CLSID_CODECAPI_AVAudioChannelCount_Value;
|
|
|
|
const CLSID_CODECAPI_AVAudioChannelConfig_Value = Guid.initString("17f89cb3-c38d-4368-9ede-63b94d177f9f");
|
|
pub const CLSID_CODECAPI_AVAudioChannelConfig = &CLSID_CODECAPI_AVAudioChannelConfig_Value;
|
|
|
|
pub const eAVAudioChannelConfig = enum(i32) {
|
|
FRONT_LEFT = 1,
|
|
FRONT_RIGHT = 2,
|
|
FRONT_CENTER = 4,
|
|
LOW_FREQUENCY = 8,
|
|
BACK_LEFT = 16,
|
|
BACK_RIGHT = 32,
|
|
FRONT_LEFT_OF_CENTER = 64,
|
|
FRONT_RIGHT_OF_CENTER = 128,
|
|
BACK_CENTER = 256,
|
|
SIDE_LEFT = 512,
|
|
SIDE_RIGHT = 1024,
|
|
TOP_CENTER = 2048,
|
|
TOP_FRONT_LEFT = 4096,
|
|
TOP_FRONT_CENTER = 8192,
|
|
TOP_FRONT_RIGHT = 16384,
|
|
TOP_BACK_LEFT = 32768,
|
|
TOP_BACK_CENTER = 65536,
|
|
TOP_BACK_RIGHT = 131072,
|
|
};
|
|
pub const eAVAudioChannelConfig_FRONT_LEFT = eAVAudioChannelConfig.FRONT_LEFT;
|
|
pub const eAVAudioChannelConfig_FRONT_RIGHT = eAVAudioChannelConfig.FRONT_RIGHT;
|
|
pub const eAVAudioChannelConfig_FRONT_CENTER = eAVAudioChannelConfig.FRONT_CENTER;
|
|
pub const eAVAudioChannelConfig_LOW_FREQUENCY = eAVAudioChannelConfig.LOW_FREQUENCY;
|
|
pub const eAVAudioChannelConfig_BACK_LEFT = eAVAudioChannelConfig.BACK_LEFT;
|
|
pub const eAVAudioChannelConfig_BACK_RIGHT = eAVAudioChannelConfig.BACK_RIGHT;
|
|
pub const eAVAudioChannelConfig_FRONT_LEFT_OF_CENTER = eAVAudioChannelConfig.FRONT_LEFT_OF_CENTER;
|
|
pub const eAVAudioChannelConfig_FRONT_RIGHT_OF_CENTER = eAVAudioChannelConfig.FRONT_RIGHT_OF_CENTER;
|
|
pub const eAVAudioChannelConfig_BACK_CENTER = eAVAudioChannelConfig.BACK_CENTER;
|
|
pub const eAVAudioChannelConfig_SIDE_LEFT = eAVAudioChannelConfig.SIDE_LEFT;
|
|
pub const eAVAudioChannelConfig_SIDE_RIGHT = eAVAudioChannelConfig.SIDE_RIGHT;
|
|
pub const eAVAudioChannelConfig_TOP_CENTER = eAVAudioChannelConfig.TOP_CENTER;
|
|
pub const eAVAudioChannelConfig_TOP_FRONT_LEFT = eAVAudioChannelConfig.TOP_FRONT_LEFT;
|
|
pub const eAVAudioChannelConfig_TOP_FRONT_CENTER = eAVAudioChannelConfig.TOP_FRONT_CENTER;
|
|
pub const eAVAudioChannelConfig_TOP_FRONT_RIGHT = eAVAudioChannelConfig.TOP_FRONT_RIGHT;
|
|
pub const eAVAudioChannelConfig_TOP_BACK_LEFT = eAVAudioChannelConfig.TOP_BACK_LEFT;
|
|
pub const eAVAudioChannelConfig_TOP_BACK_CENTER = eAVAudioChannelConfig.TOP_BACK_CENTER;
|
|
pub const eAVAudioChannelConfig_TOP_BACK_RIGHT = eAVAudioChannelConfig.TOP_BACK_RIGHT;
|
|
|
|
const CLSID_CODECAPI_AVAudioSampleRate_Value = Guid.initString("971d2723-1acb-42e7-855c-520a4b70a5f2");
|
|
pub const CLSID_CODECAPI_AVAudioSampleRate = &CLSID_CODECAPI_AVAudioSampleRate_Value;
|
|
|
|
const CLSID_CODECAPI_AVDDSurroundMode_Value = Guid.initString("99f2f386-98d1-4452-a163-abc78a6eb770");
|
|
pub const CLSID_CODECAPI_AVDDSurroundMode = &CLSID_CODECAPI_AVDDSurroundMode_Value;
|
|
|
|
pub const eAVDDSurroundMode = enum(i32) {
|
|
NotIndicated = 0,
|
|
No = 1,
|
|
Yes = 2,
|
|
};
|
|
pub const eAVDDSurroundMode_NotIndicated = eAVDDSurroundMode.NotIndicated;
|
|
pub const eAVDDSurroundMode_No = eAVDDSurroundMode.No;
|
|
pub const eAVDDSurroundMode_Yes = eAVDDSurroundMode.Yes;
|
|
|
|
const CLSID_CODECAPI_AVDecDDOperationalMode_Value = Guid.initString("d6d6c6d1-064e-4fdd-a40e-3ecbfcb7ebd0");
|
|
pub const CLSID_CODECAPI_AVDecDDOperationalMode = &CLSID_CODECAPI_AVDecDDOperationalMode_Value;
|
|
|
|
pub const eAVDecDDOperationalMode = enum(i32) {
|
|
NONE = 0,
|
|
LINE = 1,
|
|
RF = 2,
|
|
CUSTOM0 = 3,
|
|
CUSTOM1 = 4,
|
|
PORTABLE8 = 5,
|
|
PORTABLE11 = 6,
|
|
PORTABLE14 = 7,
|
|
};
|
|
pub const eAVDecDDOperationalMode_NONE = eAVDecDDOperationalMode.NONE;
|
|
pub const eAVDecDDOperationalMode_LINE = eAVDecDDOperationalMode.LINE;
|
|
pub const eAVDecDDOperationalMode_RF = eAVDecDDOperationalMode.RF;
|
|
pub const eAVDecDDOperationalMode_CUSTOM0 = eAVDecDDOperationalMode.CUSTOM0;
|
|
pub const eAVDecDDOperationalMode_CUSTOM1 = eAVDecDDOperationalMode.CUSTOM1;
|
|
pub const eAVDecDDOperationalMode_PORTABLE8 = eAVDecDDOperationalMode.PORTABLE8;
|
|
pub const eAVDecDDOperationalMode_PORTABLE11 = eAVDecDDOperationalMode.PORTABLE11;
|
|
pub const eAVDecDDOperationalMode_PORTABLE14 = eAVDecDDOperationalMode.PORTABLE14;
|
|
|
|
const CLSID_CODECAPI_AVDecDDMatrixDecodingMode_Value = Guid.initString("ddc811a5-04ed-4bf3-a0ca-d00449f9355f");
|
|
pub const CLSID_CODECAPI_AVDecDDMatrixDecodingMode = &CLSID_CODECAPI_AVDecDDMatrixDecodingMode_Value;
|
|
|
|
pub const eAVDecDDMatrixDecodingMode = enum(i32) {
|
|
OFF = 0,
|
|
ON = 1,
|
|
AUTO = 2,
|
|
};
|
|
pub const eAVDecDDMatrixDecodingMode_OFF = eAVDecDDMatrixDecodingMode.OFF;
|
|
pub const eAVDecDDMatrixDecodingMode_ON = eAVDecDDMatrixDecodingMode.ON;
|
|
pub const eAVDecDDMatrixDecodingMode_AUTO = eAVDecDDMatrixDecodingMode.AUTO;
|
|
|
|
const CLSID_CODECAPI_AVDecDDDynamicRangeScaleHigh_Value = Guid.initString("50196c21-1f33-4af5-b296-11426d6c8789");
|
|
pub const CLSID_CODECAPI_AVDecDDDynamicRangeScaleHigh = &CLSID_CODECAPI_AVDecDDDynamicRangeScaleHigh_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecDDDynamicRangeScaleLow_Value = Guid.initString("044e62e4-11a5-42d5-a3b2-3bb2c7c2d7cf");
|
|
pub const CLSID_CODECAPI_AVDecDDDynamicRangeScaleLow = &CLSID_CODECAPI_AVDecDDDynamicRangeScaleLow_Value;
|
|
|
|
const CLSID_CODECAPI_AVDecDDStereoDownMixMode_Value = Guid.initString("6ce4122c-3ee9-4182-b4ae-c10fc088649d");
|
|
pub const CLSID_CODECAPI_AVDecDDStereoDownMixMode = &CLSID_CODECAPI_AVDecDDStereoDownMixMode_Value;
|
|
|
|
pub const eAVDecDDStereoDownMixMode = enum(i32) {
|
|
Auto = 0,
|
|
LtRt = 1,
|
|
LoRo = 2,
|
|
};
|
|
pub const eAVDecDDStereoDownMixMode_Auto = eAVDecDDStereoDownMixMode.Auto;
|
|
pub const eAVDecDDStereoDownMixMode_LtRt = eAVDecDDStereoDownMixMode.LtRt;
|
|
pub const eAVDecDDStereoDownMixMode_LoRo = eAVDecDDStereoDownMixMode.LoRo;
|
|
|
|
const CLSID_CODECAPI_AVDSPLoudnessEqualization_Value = Guid.initString("8afd1a15-1812-4cbf-9319-433a5b2a3b27");
|
|
pub const CLSID_CODECAPI_AVDSPLoudnessEqualization = &CLSID_CODECAPI_AVDSPLoudnessEqualization_Value;
|
|
|
|
pub const eAVDSPLoudnessEqualization = enum(i32) {
|
|
OFF = 0,
|
|
ON = 1,
|
|
AUTO = 2,
|
|
};
|
|
pub const eAVDSPLoudnessEqualization_OFF = eAVDSPLoudnessEqualization.OFF;
|
|
pub const eAVDSPLoudnessEqualization_ON = eAVDSPLoudnessEqualization.ON;
|
|
pub const eAVDSPLoudnessEqualization_AUTO = eAVDSPLoudnessEqualization.AUTO;
|
|
|
|
const CLSID_CODECAPI_AVDSPSpeakerFill_Value = Guid.initString("5612bca1-56da-4582-8da1-ca8090f92768");
|
|
pub const CLSID_CODECAPI_AVDSPSpeakerFill = &CLSID_CODECAPI_AVDSPSpeakerFill_Value;
|
|
|
|
pub const eAVDSPSpeakerFill = enum(i32) {
|
|
OFF = 0,
|
|
ON = 1,
|
|
AUTO = 2,
|
|
};
|
|
pub const eAVDSPSpeakerFill_OFF = eAVDSPSpeakerFill.OFF;
|
|
pub const eAVDSPSpeakerFill_ON = eAVDSPSpeakerFill.ON;
|
|
pub const eAVDSPSpeakerFill_AUTO = eAVDSPSpeakerFill.AUTO;
|
|
|
|
const CLSID_CODECAPI_AVPriorityControl_Value = Guid.initString("54ba3dc8-bdde-4329-b187-2018bc5c2ba1");
|
|
pub const CLSID_CODECAPI_AVPriorityControl = &CLSID_CODECAPI_AVPriorityControl_Value;
|
|
|
|
const CLSID_CODECAPI_AVRealtimeControl_Value = Guid.initString("6f440632-c4ad-4bf7-9e52-456942b454b0");
|
|
pub const CLSID_CODECAPI_AVRealtimeControl = &CLSID_CODECAPI_AVRealtimeControl_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncNoInputCopy_Value = Guid.initString("d2b46a2a-e8ee-4ec5-869e-449b6c62c81a");
|
|
pub const CLSID_CODECAPI_AVEncNoInputCopy = &CLSID_CODECAPI_AVEncNoInputCopy_Value;
|
|
|
|
pub const eAVEncChromaEncodeMode = enum(i32) {
|
|
@"20" = 0,
|
|
@"44" = 1,
|
|
@"44_v2" = 2,
|
|
};
|
|
pub const eAVEncChromaEncodeMode_420 = eAVEncChromaEncodeMode.@"20";
|
|
pub const eAVEncChromaEncodeMode_444 = eAVEncChromaEncodeMode.@"44";
|
|
pub const eAVEncChromaEncodeMode_444_v2 = eAVEncChromaEncodeMode.@"44_v2";
|
|
|
|
const CLSID_CODECAPI_AVEncChromaEncodeMode_Value = Guid.initString("8a47ab5a-4798-4c93-b5a5-554f9a3b9f50");
|
|
pub const CLSID_CODECAPI_AVEncChromaEncodeMode = &CLSID_CODECAPI_AVEncChromaEncodeMode_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncProgressiveUpdateTime_Value = Guid.initString("649faf66-afc6-4828-8fdc-0771cd9ab17d");
|
|
pub const CLSID_CODECAPI_AVEncProgressiveUpdateTime = &CLSID_CODECAPI_AVEncProgressiveUpdateTime_Value;
|
|
|
|
const CLSID_CODECAPI_AVEncChromaUpdateTime_Value = Guid.initString("4b4fd998-4274-40bb-8ee4-07553e7e2d3a");
|
|
pub const CLSID_CODECAPI_AVEncChromaUpdateTime = &CLSID_CODECAPI_AVEncChromaUpdateTime_Value;
|
|
|
|
pub const DXVAHD_FRAME_FORMAT = enum(i32) {
|
|
PROGRESSIVE = 0,
|
|
INTERLACED_TOP_FIELD_FIRST = 1,
|
|
INTERLACED_BOTTOM_FIELD_FIRST = 2,
|
|
};
|
|
pub const DXVAHD_FRAME_FORMAT_PROGRESSIVE = DXVAHD_FRAME_FORMAT.PROGRESSIVE;
|
|
pub const DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = DXVAHD_FRAME_FORMAT.INTERLACED_TOP_FIELD_FIRST;
|
|
pub const DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = DXVAHD_FRAME_FORMAT.INTERLACED_BOTTOM_FIELD_FIRST;
|
|
|
|
pub const DXVAHD_DEVICE_USAGE = enum(i32) {
|
|
PLAYBACK_NORMAL = 0,
|
|
OPTIMAL_SPEED = 1,
|
|
OPTIMAL_QUALITY = 2,
|
|
};
|
|
pub const DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = DXVAHD_DEVICE_USAGE.PLAYBACK_NORMAL;
|
|
pub const DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = DXVAHD_DEVICE_USAGE.OPTIMAL_SPEED;
|
|
pub const DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = DXVAHD_DEVICE_USAGE.OPTIMAL_QUALITY;
|
|
|
|
pub const DXVAHD_SURFACE_TYPE = enum(i32) {
|
|
INPUT = 0,
|
|
INPUT_PRIVATE = 1,
|
|
OUTPUT = 2,
|
|
};
|
|
pub const DXVAHD_SURFACE_TYPE_VIDEO_INPUT = DXVAHD_SURFACE_TYPE.INPUT;
|
|
pub const DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = DXVAHD_SURFACE_TYPE.INPUT_PRIVATE;
|
|
pub const DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = DXVAHD_SURFACE_TYPE.OUTPUT;
|
|
|
|
pub const DXVAHD_DEVICE_TYPE = enum(i32) {
|
|
HARDWARE = 0,
|
|
SOFTWARE = 1,
|
|
REFERENCE = 2,
|
|
OTHER = 3,
|
|
};
|
|
pub const DXVAHD_DEVICE_TYPE_HARDWARE = DXVAHD_DEVICE_TYPE.HARDWARE;
|
|
pub const DXVAHD_DEVICE_TYPE_SOFTWARE = DXVAHD_DEVICE_TYPE.SOFTWARE;
|
|
pub const DXVAHD_DEVICE_TYPE_REFERENCE = DXVAHD_DEVICE_TYPE.REFERENCE;
|
|
pub const DXVAHD_DEVICE_TYPE_OTHER = DXVAHD_DEVICE_TYPE.OTHER;
|
|
|
|
pub const DXVAHD_DEVICE_CAPS = enum(i32) {
|
|
LINEAR_SPACE = 1,
|
|
xvYCC = 2,
|
|
RGB_RANGE_CONVERSION = 4,
|
|
YCbCr_MATRIX_CONVERSION = 8,
|
|
};
|
|
pub const DXVAHD_DEVICE_CAPS_LINEAR_SPACE = DXVAHD_DEVICE_CAPS.LINEAR_SPACE;
|
|
pub const DXVAHD_DEVICE_CAPS_xvYCC = DXVAHD_DEVICE_CAPS.xvYCC;
|
|
pub const DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = DXVAHD_DEVICE_CAPS.RGB_RANGE_CONVERSION;
|
|
pub const DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = DXVAHD_DEVICE_CAPS.YCbCr_MATRIX_CONVERSION;
|
|
|
|
pub const DXVAHD_FEATURE_CAPS = enum(i32) {
|
|
ALPHA_FILL = 1,
|
|
CONSTRICTION = 2,
|
|
LUMA_KEY = 4,
|
|
ALPHA_PALETTE = 8,
|
|
};
|
|
pub const DXVAHD_FEATURE_CAPS_ALPHA_FILL = DXVAHD_FEATURE_CAPS.ALPHA_FILL;
|
|
pub const DXVAHD_FEATURE_CAPS_CONSTRICTION = DXVAHD_FEATURE_CAPS.CONSTRICTION;
|
|
pub const DXVAHD_FEATURE_CAPS_LUMA_KEY = DXVAHD_FEATURE_CAPS.LUMA_KEY;
|
|
pub const DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = DXVAHD_FEATURE_CAPS.ALPHA_PALETTE;
|
|
|
|
pub const DXVAHD_FILTER_CAPS = enum(i32) {
|
|
BRIGHTNESS = 1,
|
|
CONTRAST = 2,
|
|
HUE = 4,
|
|
SATURATION = 8,
|
|
NOISE_REDUCTION = 16,
|
|
EDGE_ENHANCEMENT = 32,
|
|
ANAMORPHIC_SCALING = 64,
|
|
};
|
|
pub const DXVAHD_FILTER_CAPS_BRIGHTNESS = DXVAHD_FILTER_CAPS.BRIGHTNESS;
|
|
pub const DXVAHD_FILTER_CAPS_CONTRAST = DXVAHD_FILTER_CAPS.CONTRAST;
|
|
pub const DXVAHD_FILTER_CAPS_HUE = DXVAHD_FILTER_CAPS.HUE;
|
|
pub const DXVAHD_FILTER_CAPS_SATURATION = DXVAHD_FILTER_CAPS.SATURATION;
|
|
pub const DXVAHD_FILTER_CAPS_NOISE_REDUCTION = DXVAHD_FILTER_CAPS.NOISE_REDUCTION;
|
|
pub const DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = DXVAHD_FILTER_CAPS.EDGE_ENHANCEMENT;
|
|
pub const DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = DXVAHD_FILTER_CAPS.ANAMORPHIC_SCALING;
|
|
|
|
pub const DXVAHD_INPUT_FORMAT_CAPS = enum(i32) {
|
|
RGB_INTERLACED = 1,
|
|
RGB_PROCAMP = 2,
|
|
RGB_LUMA_KEY = 4,
|
|
PALETTE_INTERLACED = 8,
|
|
};
|
|
pub const DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = DXVAHD_INPUT_FORMAT_CAPS.RGB_INTERLACED;
|
|
pub const DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = DXVAHD_INPUT_FORMAT_CAPS.RGB_PROCAMP;
|
|
pub const DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = DXVAHD_INPUT_FORMAT_CAPS.RGB_LUMA_KEY;
|
|
pub const DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = DXVAHD_INPUT_FORMAT_CAPS.PALETTE_INTERLACED;
|
|
|
|
pub const DXVAHD_PROCESSOR_CAPS = enum(i32) {
|
|
DEINTERLACE_BLEND = 1,
|
|
DEINTERLACE_BOB = 2,
|
|
DEINTERLACE_ADAPTIVE = 4,
|
|
DEINTERLACE_MOTION_COMPENSATION = 8,
|
|
INVERSE_TELECINE = 16,
|
|
FRAME_RATE_CONVERSION = 32,
|
|
};
|
|
pub const DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = DXVAHD_PROCESSOR_CAPS.DEINTERLACE_BLEND;
|
|
pub const DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = DXVAHD_PROCESSOR_CAPS.DEINTERLACE_BOB;
|
|
pub const DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = DXVAHD_PROCESSOR_CAPS.DEINTERLACE_ADAPTIVE;
|
|
pub const DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = DXVAHD_PROCESSOR_CAPS.DEINTERLACE_MOTION_COMPENSATION;
|
|
pub const DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = DXVAHD_PROCESSOR_CAPS.INVERSE_TELECINE;
|
|
pub const DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = DXVAHD_PROCESSOR_CAPS.FRAME_RATE_CONVERSION;
|
|
|
|
pub const DXVAHD_ITELECINE_CAPS = enum(i32) {
|
|
@"32" = 1,
|
|
@"22" = 2,
|
|
@"2224" = 4,
|
|
@"2332" = 8,
|
|
@"32322" = 16,
|
|
@"55" = 32,
|
|
@"64" = 64,
|
|
@"87" = 128,
|
|
@"222222222223" = 256,
|
|
OTHER = -2147483648,
|
|
};
|
|
pub const DXVAHD_ITELECINE_CAPS_32 = DXVAHD_ITELECINE_CAPS.@"32";
|
|
pub const DXVAHD_ITELECINE_CAPS_22 = DXVAHD_ITELECINE_CAPS.@"22";
|
|
pub const DXVAHD_ITELECINE_CAPS_2224 = DXVAHD_ITELECINE_CAPS.@"2224";
|
|
pub const DXVAHD_ITELECINE_CAPS_2332 = DXVAHD_ITELECINE_CAPS.@"2332";
|
|
pub const DXVAHD_ITELECINE_CAPS_32322 = DXVAHD_ITELECINE_CAPS.@"32322";
|
|
pub const DXVAHD_ITELECINE_CAPS_55 = DXVAHD_ITELECINE_CAPS.@"55";
|
|
pub const DXVAHD_ITELECINE_CAPS_64 = DXVAHD_ITELECINE_CAPS.@"64";
|
|
pub const DXVAHD_ITELECINE_CAPS_87 = DXVAHD_ITELECINE_CAPS.@"87";
|
|
pub const DXVAHD_ITELECINE_CAPS_222222222223 = DXVAHD_ITELECINE_CAPS.@"222222222223";
|
|
pub const DXVAHD_ITELECINE_CAPS_OTHER = DXVAHD_ITELECINE_CAPS.OTHER;
|
|
|
|
pub const DXVAHD_FILTER = enum(i32) {
|
|
BRIGHTNESS = 0,
|
|
CONTRAST = 1,
|
|
HUE = 2,
|
|
SATURATION = 3,
|
|
NOISE_REDUCTION = 4,
|
|
EDGE_ENHANCEMENT = 5,
|
|
ANAMORPHIC_SCALING = 6,
|
|
};
|
|
pub const DXVAHD_FILTER_BRIGHTNESS = DXVAHD_FILTER.BRIGHTNESS;
|
|
pub const DXVAHD_FILTER_CONTRAST = DXVAHD_FILTER.CONTRAST;
|
|
pub const DXVAHD_FILTER_HUE = DXVAHD_FILTER.HUE;
|
|
pub const DXVAHD_FILTER_SATURATION = DXVAHD_FILTER.SATURATION;
|
|
pub const DXVAHD_FILTER_NOISE_REDUCTION = DXVAHD_FILTER.NOISE_REDUCTION;
|
|
pub const DXVAHD_FILTER_EDGE_ENHANCEMENT = DXVAHD_FILTER.EDGE_ENHANCEMENT;
|
|
pub const DXVAHD_FILTER_ANAMORPHIC_SCALING = DXVAHD_FILTER.ANAMORPHIC_SCALING;
|
|
|
|
pub const DXVAHD_BLT_STATE = enum(i32) {
|
|
TARGET_RECT = 0,
|
|
BACKGROUND_COLOR = 1,
|
|
OUTPUT_COLOR_SPACE = 2,
|
|
ALPHA_FILL = 3,
|
|
CONSTRICTION = 4,
|
|
PRIVATE = 1000,
|
|
};
|
|
pub const DXVAHD_BLT_STATE_TARGET_RECT = DXVAHD_BLT_STATE.TARGET_RECT;
|
|
pub const DXVAHD_BLT_STATE_BACKGROUND_COLOR = DXVAHD_BLT_STATE.BACKGROUND_COLOR;
|
|
pub const DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = DXVAHD_BLT_STATE.OUTPUT_COLOR_SPACE;
|
|
pub const DXVAHD_BLT_STATE_ALPHA_FILL = DXVAHD_BLT_STATE.ALPHA_FILL;
|
|
pub const DXVAHD_BLT_STATE_CONSTRICTION = DXVAHD_BLT_STATE.CONSTRICTION;
|
|
pub const DXVAHD_BLT_STATE_PRIVATE = DXVAHD_BLT_STATE.PRIVATE;
|
|
|
|
pub const DXVAHD_ALPHA_FILL_MODE = enum(i32) {
|
|
OPAQUE = 0,
|
|
BACKGROUND = 1,
|
|
DESTINATION = 2,
|
|
SOURCE_STREAM = 3,
|
|
};
|
|
pub const DXVAHD_ALPHA_FILL_MODE_OPAQUE = DXVAHD_ALPHA_FILL_MODE.OPAQUE;
|
|
pub const DXVAHD_ALPHA_FILL_MODE_BACKGROUND = DXVAHD_ALPHA_FILL_MODE.BACKGROUND;
|
|
pub const DXVAHD_ALPHA_FILL_MODE_DESTINATION = DXVAHD_ALPHA_FILL_MODE.DESTINATION;
|
|
pub const DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = DXVAHD_ALPHA_FILL_MODE.SOURCE_STREAM;
|
|
|
|
pub const DXVAHD_STREAM_STATE = enum(i32) {
|
|
D3DFORMAT = 0,
|
|
FRAME_FORMAT = 1,
|
|
INPUT_COLOR_SPACE = 2,
|
|
OUTPUT_RATE = 3,
|
|
SOURCE_RECT = 4,
|
|
DESTINATION_RECT = 5,
|
|
ALPHA = 6,
|
|
PALETTE = 7,
|
|
LUMA_KEY = 8,
|
|
ASPECT_RATIO = 9,
|
|
FILTER_BRIGHTNESS = 100,
|
|
FILTER_CONTRAST = 101,
|
|
FILTER_HUE = 102,
|
|
FILTER_SATURATION = 103,
|
|
FILTER_NOISE_REDUCTION = 104,
|
|
FILTER_EDGE_ENHANCEMENT = 105,
|
|
FILTER_ANAMORPHIC_SCALING = 106,
|
|
PRIVATE = 1000,
|
|
};
|
|
pub const DXVAHD_STREAM_STATE_D3DFORMAT = DXVAHD_STREAM_STATE.D3DFORMAT;
|
|
pub const DXVAHD_STREAM_STATE_FRAME_FORMAT = DXVAHD_STREAM_STATE.FRAME_FORMAT;
|
|
pub const DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = DXVAHD_STREAM_STATE.INPUT_COLOR_SPACE;
|
|
pub const DXVAHD_STREAM_STATE_OUTPUT_RATE = DXVAHD_STREAM_STATE.OUTPUT_RATE;
|
|
pub const DXVAHD_STREAM_STATE_SOURCE_RECT = DXVAHD_STREAM_STATE.SOURCE_RECT;
|
|
pub const DXVAHD_STREAM_STATE_DESTINATION_RECT = DXVAHD_STREAM_STATE.DESTINATION_RECT;
|
|
pub const DXVAHD_STREAM_STATE_ALPHA = DXVAHD_STREAM_STATE.ALPHA;
|
|
pub const DXVAHD_STREAM_STATE_PALETTE = DXVAHD_STREAM_STATE.PALETTE;
|
|
pub const DXVAHD_STREAM_STATE_LUMA_KEY = DXVAHD_STREAM_STATE.LUMA_KEY;
|
|
pub const DXVAHD_STREAM_STATE_ASPECT_RATIO = DXVAHD_STREAM_STATE.ASPECT_RATIO;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = DXVAHD_STREAM_STATE.FILTER_BRIGHTNESS;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_CONTRAST = DXVAHD_STREAM_STATE.FILTER_CONTRAST;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_HUE = DXVAHD_STREAM_STATE.FILTER_HUE;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_SATURATION = DXVAHD_STREAM_STATE.FILTER_SATURATION;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = DXVAHD_STREAM_STATE.FILTER_NOISE_REDUCTION;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = DXVAHD_STREAM_STATE.FILTER_EDGE_ENHANCEMENT;
|
|
pub const DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = DXVAHD_STREAM_STATE.FILTER_ANAMORPHIC_SCALING;
|
|
pub const DXVAHD_STREAM_STATE_PRIVATE = DXVAHD_STREAM_STATE.PRIVATE;
|
|
|
|
pub const DXVAHD_OUTPUT_RATE = enum(i32) {
|
|
NORMAL = 0,
|
|
HALF = 1,
|
|
CUSTOM = 2,
|
|
};
|
|
pub const DXVAHD_OUTPUT_RATE_NORMAL = DXVAHD_OUTPUT_RATE.NORMAL;
|
|
pub const DXVAHD_OUTPUT_RATE_HALF = DXVAHD_OUTPUT_RATE.HALF;
|
|
pub const DXVAHD_OUTPUT_RATE_CUSTOM = DXVAHD_OUTPUT_RATE.CUSTOM;
|
|
|
|
pub const DXVAHD_RATIONAL = extern struct {
|
|
Numerator: u32,
|
|
Denominator: u32,
|
|
};
|
|
|
|
pub const DXVAHD_COLOR_RGBA = extern struct {
|
|
R: f32,
|
|
G: f32,
|
|
B: f32,
|
|
A: f32,
|
|
};
|
|
|
|
pub const DXVAHD_COLOR_YCbCrA = extern struct {
|
|
Y: f32,
|
|
Cb: f32,
|
|
Cr: f32,
|
|
A: f32,
|
|
};
|
|
|
|
pub const DXVAHD_COLOR = extern union {
|
|
RGB: DXVAHD_COLOR_RGBA,
|
|
YCbCr: DXVAHD_COLOR_YCbCrA,
|
|
};
|
|
|
|
pub const DXVAHD_CONTENT_DESC = extern struct {
|
|
InputFrameFormat: DXVAHD_FRAME_FORMAT,
|
|
InputFrameRate: DXVAHD_RATIONAL,
|
|
InputWidth: u32,
|
|
InputHeight: u32,
|
|
OutputFrameRate: DXVAHD_RATIONAL,
|
|
OutputWidth: u32,
|
|
OutputHeight: u32,
|
|
};
|
|
|
|
pub const DXVAHD_VPDEVCAPS = extern struct {
|
|
DeviceType: DXVAHD_DEVICE_TYPE,
|
|
DeviceCaps: u32,
|
|
FeatureCaps: u32,
|
|
FilterCaps: u32,
|
|
InputFormatCaps: u32,
|
|
InputPool: D3DPOOL,
|
|
OutputFormatCount: u32,
|
|
InputFormatCount: u32,
|
|
VideoProcessorCount: u32,
|
|
MaxInputStreams: u32,
|
|
MaxStreamStates: u32,
|
|
};
|
|
|
|
pub const DXVAHD_VPCAPS = extern struct {
|
|
VPGuid: Guid,
|
|
PastFrames: u32,
|
|
FutureFrames: u32,
|
|
ProcessorCaps: u32,
|
|
ITelecineCaps: u32,
|
|
CustomRateCount: u32,
|
|
};
|
|
|
|
pub const DXVAHD_CUSTOM_RATE_DATA = extern struct {
|
|
CustomRate: DXVAHD_RATIONAL,
|
|
OutputFrames: u32,
|
|
InputInterlaced: BOOL,
|
|
InputFramesOrFields: u32,
|
|
};
|
|
|
|
pub const DXVAHD_FILTER_RANGE_DATA = extern struct {
|
|
Minimum: i32,
|
|
Maximum: i32,
|
|
Default: i32,
|
|
Multiplier: f32,
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_TARGET_RECT_DATA = extern struct {
|
|
Enable: BOOL,
|
|
TargetRect: RECT,
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA = extern struct {
|
|
YCbCr: BOOL,
|
|
BackgroundColor: DXVAHD_COLOR,
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA = extern struct {
|
|
Anonymous: extern union {
|
|
Anonymous: extern struct {
|
|
_bitfield: u32,
|
|
},
|
|
Value: u32,
|
|
},
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_ALPHA_FILL_DATA = extern struct {
|
|
Mode: DXVAHD_ALPHA_FILL_MODE,
|
|
StreamNumber: u32,
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_CONSTRICTION_DATA = extern struct {
|
|
Enable: BOOL,
|
|
Size: SIZE,
|
|
};
|
|
|
|
pub const DXVAHD_BLT_STATE_PRIVATE_DATA = extern struct {
|
|
Guid: Guid,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_D3DFORMAT_DATA = extern struct {
|
|
Format: D3DFORMAT,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA = extern struct {
|
|
FrameFormat: DXVAHD_FRAME_FORMAT,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA = extern struct {
|
|
Anonymous: extern union {
|
|
Anonymous: extern struct {
|
|
_bitfield: u32,
|
|
},
|
|
Value: u32,
|
|
},
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA = extern struct {
|
|
RepeatFrame: BOOL,
|
|
OutputRate: DXVAHD_OUTPUT_RATE,
|
|
CustomRate: DXVAHD_RATIONAL,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_SOURCE_RECT_DATA = extern struct {
|
|
Enable: BOOL,
|
|
SourceRect: RECT,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA = extern struct {
|
|
Enable: BOOL,
|
|
DestinationRect: RECT,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_ALPHA_DATA = extern struct {
|
|
Enable: BOOL,
|
|
Alpha: f32,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_PALETTE_DATA = extern struct {
|
|
Count: u32,
|
|
pEntries: ?*u32,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_LUMA_KEY_DATA = extern struct {
|
|
Enable: BOOL,
|
|
Lower: f32,
|
|
Upper: f32,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA = extern struct {
|
|
Enable: BOOL,
|
|
SourceAspectRatio: DXVAHD_RATIONAL,
|
|
DestinationAspectRatio: DXVAHD_RATIONAL,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_FILTER_DATA = extern struct {
|
|
Enable: BOOL,
|
|
Level: i32,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_PRIVATE_DATA = extern struct {
|
|
Guid: Guid,
|
|
DataSize: u32,
|
|
pData: ?*anyopaque,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_DATA = extern struct {
|
|
Enable: BOOL,
|
|
OutputIndex: u32,
|
|
InputFrameOrField: u32,
|
|
PastFrames: u32,
|
|
FutureFrames: u32,
|
|
ppPastSurfaces: [*]?*IDirect3DSurface9,
|
|
pInputSurface: ?*IDirect3DSurface9,
|
|
ppFutureSurfaces: [*]?*IDirect3DSurface9,
|
|
};
|
|
|
|
pub const DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA = extern struct {
|
|
Enable: BOOL,
|
|
ITelecineFlags: u32,
|
|
Frames: u32,
|
|
InputField: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDXVAHD_Device_Value = Guid.initString("95f12dfd-d77e-49be-815f-57d579634d6d");
|
|
pub const IID_IDXVAHD_Device = &IID_IDXVAHD_Device_Value;
|
|
pub const IDXVAHD_Device = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateVideoSurface: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
Width: u32,
|
|
Height: u32,
|
|
Format: D3DFORMAT,
|
|
Pool: D3DPOOL,
|
|
Usage: u32,
|
|
Type: DXVAHD_SURFACE_TYPE,
|
|
NumSurfaces: u32,
|
|
ppSurfaces: [*]?*IDirect3DSurface9,
|
|
pSharedHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
Width: u32,
|
|
Height: u32,
|
|
Format: D3DFORMAT,
|
|
Pool: D3DPOOL,
|
|
Usage: u32,
|
|
Type: DXVAHD_SURFACE_TYPE,
|
|
NumSurfaces: u32,
|
|
ppSurfaces: [*]?*IDirect3DSurface9,
|
|
pSharedHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorDeviceCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
pCaps: ?*DXVAHD_VPDEVCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
pCaps: ?*DXVAHD_VPDEVCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorOutputFormats: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorInputFormats: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pCaps: [*]DXVAHD_VPCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
Count: u32,
|
|
pCaps: [*]DXVAHD_VPCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorCustomRates: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
pVPGuid: ?*const Guid,
|
|
Count: u32,
|
|
pRates: [*]DXVAHD_CUSTOM_RATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
pVPGuid: ?*const Guid,
|
|
Count: u32,
|
|
pRates: [*]DXVAHD_CUSTOM_RATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorFilterRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
Filter: DXVAHD_FILTER,
|
|
pRange: ?*DXVAHD_FILTER_RANGE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
Filter: DXVAHD_FILTER,
|
|
pRange: ?*DXVAHD_FILTER_RANGE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoProcessor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_Device,
|
|
pVPGuid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*IDXVAHD_VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_Device,
|
|
pVPGuid: ?*const Guid,
|
|
ppVideoProcessor: ?*?*IDXVAHD_VideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_CreateVideoSurface(self: *const T, Width: u32, Height: u32, Format: D3DFORMAT, Pool: D3DPOOL, Usage: u32, Type: DXVAHD_SURFACE_TYPE, NumSurfaces: u32, ppSurfaces: [*]?*IDirect3DSurface9, pSharedHandle: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).CreateVideoSurface(@as(*const IDXVAHD_Device, @ptrCast(self)), Width, Height, Format, Pool, Usage, Type, NumSurfaces, ppSurfaces, pSharedHandle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorDeviceCaps(self: *const T, pCaps: ?*DXVAHD_VPDEVCAPS) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorDeviceCaps(@as(*const IDXVAHD_Device, @ptrCast(self)), pCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorOutputFormats(self: *const T, Count: u32, pFormats: [*]D3DFORMAT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorOutputFormats(@as(*const IDXVAHD_Device, @ptrCast(self)), Count, pFormats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorInputFormats(self: *const T, Count: u32, pFormats: [*]D3DFORMAT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorInputFormats(@as(*const IDXVAHD_Device, @ptrCast(self)), Count, pFormats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorCaps(self: *const T, Count: u32, pCaps: [*]DXVAHD_VPCAPS) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorCaps(@as(*const IDXVAHD_Device, @ptrCast(self)), Count, pCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorCustomRates(self: *const T, pVPGuid: ?*const Guid, Count: u32, pRates: [*]DXVAHD_CUSTOM_RATE_DATA) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorCustomRates(@as(*const IDXVAHD_Device, @ptrCast(self)), pVPGuid, Count, pRates);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_GetVideoProcessorFilterRange(self: *const T, Filter: DXVAHD_FILTER, pRange: ?*DXVAHD_FILTER_RANGE_DATA) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).GetVideoProcessorFilterRange(@as(*const IDXVAHD_Device, @ptrCast(self)), Filter, pRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_Device_CreateVideoProcessor(self: *const T, pVPGuid: ?*const Guid, ppVideoProcessor: ?*?*IDXVAHD_VideoProcessor) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_Device.VTable, @ptrCast(self.vtable)).CreateVideoProcessor(@as(*const IDXVAHD_Device, @ptrCast(self)), pVPGuid, ppVideoProcessor);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IDXVAHD_VideoProcessor_Value = Guid.initString("95f4edf4-6e03-4cd7-be1b-3075d665aa52");
|
|
pub const IID_IDXVAHD_VideoProcessor = &IID_IDXVAHD_VideoProcessor_Value;
|
|
pub const IDXVAHD_VideoProcessor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetVideoProcessBltState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessBltState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoProcessStreamState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessStreamState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
VideoProcessBltHD: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
pOutputSurface: ?*IDirect3DSurface9,
|
|
OutputFrame: u32,
|
|
StreamCount: u32,
|
|
pStreams: [*]const DXVAHD_STREAM_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXVAHD_VideoProcessor,
|
|
pOutputSurface: ?*IDirect3DSurface9,
|
|
OutputFrame: u32,
|
|
StreamCount: u32,
|
|
pStreams: [*]const DXVAHD_STREAM_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_VideoProcessor_SetVideoProcessBltState(self: *const T, State: DXVAHD_BLT_STATE, DataSize: u32, pData: ?*const anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_VideoProcessor.VTable, @ptrCast(self.vtable)).SetVideoProcessBltState(@as(*const IDXVAHD_VideoProcessor, @ptrCast(self)), State, DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_VideoProcessor_GetVideoProcessBltState(self: *const T, State: DXVAHD_BLT_STATE, DataSize: u32, pData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_VideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessBltState(@as(*const IDXVAHD_VideoProcessor, @ptrCast(self)), State, DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_VideoProcessor_SetVideoProcessStreamState(self: *const T, StreamNumber: u32, State: DXVAHD_STREAM_STATE, DataSize: u32, pData: ?*const anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_VideoProcessor.VTable, @ptrCast(self.vtable)).SetVideoProcessStreamState(@as(*const IDXVAHD_VideoProcessor, @ptrCast(self)), StreamNumber, State, DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_VideoProcessor_GetVideoProcessStreamState(self: *const T, StreamNumber: u32, State: DXVAHD_STREAM_STATE, DataSize: u32, pData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_VideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessStreamState(@as(*const IDXVAHD_VideoProcessor, @ptrCast(self)), StreamNumber, State, DataSize, pData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXVAHD_VideoProcessor_VideoProcessBltHD(self: *const T, pOutputSurface: ?*IDirect3DSurface9, OutputFrame: u32, StreamCount: u32, pStreams: [*]const DXVAHD_STREAM_DATA) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXVAHD_VideoProcessor.VTable, @ptrCast(self.vtable)).VideoProcessBltHD(@as(*const IDXVAHD_VideoProcessor, @ptrCast(self)), pOutputSurface, OutputFrame, StreamCount, pStreams);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const PDXVAHDSW_CreateDevice = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pD3DDevice: ?*IDirect3DDevice9Ex,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
pD3DDevice: ?*IDirect3DDevice9Ex,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_ProposeVideoPrivateFormat = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pFormat: ?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pFormat: ?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorDeviceCaps = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
pCaps: ?*DXVAHD_VPDEVCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
pCaps: ?*DXVAHD_VPDEVCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorOutputFormats = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorInputFormats = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pFormats: [*]D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorCaps = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pCaps: [*]DXVAHD_VPCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
Count: u32,
|
|
pCaps: [*]DXVAHD_VPCAPS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorCustomRates = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pVPGuid: ?*const Guid,
|
|
Count: u32,
|
|
pRates: [*]DXVAHD_CUSTOM_RATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pVPGuid: ?*const Guid,
|
|
Count: u32,
|
|
pRates: [*]DXVAHD_CUSTOM_RATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessorFilterRange = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
Filter: DXVAHD_FILTER,
|
|
pRange: ?*DXVAHD_FILTER_RANGE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
Filter: DXVAHD_FILTER,
|
|
pRange: ?*DXVAHD_FILTER_RANGE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_DestroyDevice = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_CreateVideoProcessor = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hDevice: ?HANDLE,
|
|
pVPGuid: ?*const Guid,
|
|
phVideoProcessor: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hDevice: ?HANDLE,
|
|
pVPGuid: ?*const Guid,
|
|
phVideoProcessor: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_SetVideoProcessBltState = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessBltStatePrivate = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
pData: ?*DXVAHD_BLT_STATE_PRIVATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
pData: ?*DXVAHD_BLT_STATE_PRIVATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_SetVideoProcessStreamState = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_GetVideoProcessStreamStatePrivate = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
StreamNumber: u32,
|
|
pData: ?*DXVAHD_STREAM_STATE_PRIVATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
StreamNumber: u32,
|
|
pData: ?*DXVAHD_STREAM_STATE_PRIVATE_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_VideoProcessBltHD = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
pOutputSurface: ?*IDirect3DSurface9,
|
|
OutputFrame: u32,
|
|
StreamCount: u32,
|
|
pStreams: [*]const DXVAHD_STREAM_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
pOutputSurface: ?*IDirect3DSurface9,
|
|
OutputFrame: u32,
|
|
StreamCount: u32,
|
|
pStreams: [*]const DXVAHD_STREAM_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const PDXVAHDSW_DestroyVideoProcessor = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
hVideoProcessor: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const DXVAHDSW_CALLBACKS = extern struct {
|
|
CreateDevice: ?PDXVAHDSW_CreateDevice,
|
|
ProposeVideoPrivateFormat: ?PDXVAHDSW_ProposeVideoPrivateFormat,
|
|
GetVideoProcessorDeviceCaps: ?PDXVAHDSW_GetVideoProcessorDeviceCaps,
|
|
GetVideoProcessorOutputFormats: ?PDXVAHDSW_GetVideoProcessorOutputFormats,
|
|
GetVideoProcessorInputFormats: ?PDXVAHDSW_GetVideoProcessorInputFormats,
|
|
GetVideoProcessorCaps: ?PDXVAHDSW_GetVideoProcessorCaps,
|
|
GetVideoProcessorCustomRates: ?PDXVAHDSW_GetVideoProcessorCustomRates,
|
|
GetVideoProcessorFilterRange: ?PDXVAHDSW_GetVideoProcessorFilterRange,
|
|
DestroyDevice: ?PDXVAHDSW_DestroyDevice,
|
|
CreateVideoProcessor: ?PDXVAHDSW_CreateVideoProcessor,
|
|
SetVideoProcessBltState: ?PDXVAHDSW_SetVideoProcessBltState,
|
|
GetVideoProcessBltStatePrivate: ?PDXVAHDSW_GetVideoProcessBltStatePrivate,
|
|
SetVideoProcessStreamState: ?PDXVAHDSW_SetVideoProcessStreamState,
|
|
GetVideoProcessStreamStatePrivate: ?PDXVAHDSW_GetVideoProcessStreamStatePrivate,
|
|
VideoProcessBltHD: ?PDXVAHDSW_VideoProcessBltHD,
|
|
DestroyVideoProcessor: ?PDXVAHDSW_DestroyVideoProcessor,
|
|
};
|
|
|
|
pub const PDXVAHDSW_Plugin = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Size: u32,
|
|
// TODO: what to do with BytesParamIndex 0?
|
|
pCallbacks: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
Size: u32,
|
|
// TODO: what to do with BytesParamIndex 0?
|
|
pCallbacks: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const DXVAHDETW_CREATEVIDEOPROCESSOR = extern struct {
|
|
pObject: u64,
|
|
pD3D9Ex: u64,
|
|
VPGuid: Guid,
|
|
};
|
|
|
|
pub const DXVAHDETW_VIDEOPROCESSBLTSTATE = extern struct {
|
|
pObject: u64,
|
|
State: DXVAHD_BLT_STATE,
|
|
DataSize: u32,
|
|
SetState: BOOL,
|
|
};
|
|
|
|
pub const DXVAHDETW_VIDEOPROCESSSTREAMSTATE = extern struct {
|
|
pObject: u64,
|
|
StreamNumber: u32,
|
|
State: DXVAHD_STREAM_STATE,
|
|
DataSize: u32,
|
|
SetState: BOOL,
|
|
};
|
|
|
|
pub const DXVAHDETW_VIDEOPROCESSBLTHD = extern struct {
|
|
pObject: u64,
|
|
pOutputSurface: u64,
|
|
TargetRect: RECT,
|
|
OutputFormat: D3DFORMAT,
|
|
ColorSpace: u32,
|
|
OutputFrame: u32,
|
|
StreamCount: u32,
|
|
Enter: BOOL,
|
|
};
|
|
|
|
pub const DXVAHDETW_VIDEOPROCESSBLTHD_STREAM = extern struct {
|
|
pObject: u64,
|
|
pInputSurface: u64,
|
|
SourceRect: RECT,
|
|
DestinationRect: RECT,
|
|
InputFormat: D3DFORMAT,
|
|
FrameFormat: DXVAHD_FRAME_FORMAT,
|
|
ColorSpace: u32,
|
|
StreamNumber: u32,
|
|
OutputIndex: u32,
|
|
InputFrameOrField: u32,
|
|
PastFrames: u32,
|
|
FutureFrames: u32,
|
|
};
|
|
|
|
pub const DXVAHDETW_DESTROYVIDEOPROCESSOR = extern struct {
|
|
pObject: u64,
|
|
};
|
|
|
|
pub const PDXVAHD_CreateDevice = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pD3DDevice: ?*IDirect3DDevice9Ex,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
pPlugin: ?PDXVAHDSW_Plugin,
|
|
ppDevice: ?*?*IDXVAHD_Device,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
pD3DDevice: ?*IDirect3DDevice9Ex,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
pPlugin: ?PDXVAHDSW_Plugin,
|
|
ppDevice: ?*?*IDXVAHD_Device,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const DXVA2_ExtendedFormat = extern struct {
|
|
Anonymous: extern union {
|
|
Anonymous: extern struct {
|
|
_bitfield: u32,
|
|
},
|
|
value: u32,
|
|
},
|
|
};
|
|
|
|
pub const DXVA2_SampleFormat = enum(i32) {
|
|
FormatMask = 255,
|
|
Unknown = 0,
|
|
ProgressiveFrame = 2,
|
|
FieldInterleavedEvenFirst = 3,
|
|
FieldInterleavedOddFirst = 4,
|
|
FieldSingleEven = 5,
|
|
FieldSingleOdd = 6,
|
|
SubStream = 7,
|
|
};
|
|
pub const DXVA2_SampleFormatMask = DXVA2_SampleFormat.FormatMask;
|
|
pub const DXVA2_SampleUnknown = DXVA2_SampleFormat.Unknown;
|
|
pub const DXVA2_SampleProgressiveFrame = DXVA2_SampleFormat.ProgressiveFrame;
|
|
pub const DXVA2_SampleFieldInterleavedEvenFirst = DXVA2_SampleFormat.FieldInterleavedEvenFirst;
|
|
pub const DXVA2_SampleFieldInterleavedOddFirst = DXVA2_SampleFormat.FieldInterleavedOddFirst;
|
|
pub const DXVA2_SampleFieldSingleEven = DXVA2_SampleFormat.FieldSingleEven;
|
|
pub const DXVA2_SampleFieldSingleOdd = DXVA2_SampleFormat.FieldSingleOdd;
|
|
pub const DXVA2_SampleSubStream = DXVA2_SampleFormat.SubStream;
|
|
|
|
pub const DXVA2_VideoChromaSubSampling = enum(i32) {
|
|
Mask = 15,
|
|
_Unknown = 0,
|
|
_ProgressiveChroma = 8,
|
|
_Horizontally_Cosited = 4,
|
|
_Vertically_Cosited = 2,
|
|
_Vertically_AlignedChromaPlanes = 1,
|
|
_MPEG2 = 5,
|
|
// _MPEG1 = 1, this enum value conflicts with _Vertically_AlignedChromaPlanes
|
|
_DV_PAL = 6,
|
|
_Cosited = 7,
|
|
};
|
|
pub const DXVA2_VideoChromaSubsamplingMask = DXVA2_VideoChromaSubSampling.Mask;
|
|
pub const DXVA2_VideoChromaSubsampling_Unknown = DXVA2_VideoChromaSubSampling._Unknown;
|
|
pub const DXVA2_VideoChromaSubsampling_ProgressiveChroma = DXVA2_VideoChromaSubSampling._ProgressiveChroma;
|
|
pub const DXVA2_VideoChromaSubsampling_Horizontally_Cosited = DXVA2_VideoChromaSubSampling._Horizontally_Cosited;
|
|
pub const DXVA2_VideoChromaSubsampling_Vertically_Cosited = DXVA2_VideoChromaSubSampling._Vertically_Cosited;
|
|
pub const DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = DXVA2_VideoChromaSubSampling._Vertically_AlignedChromaPlanes;
|
|
pub const DXVA2_VideoChromaSubsampling_MPEG2 = DXVA2_VideoChromaSubSampling._MPEG2;
|
|
pub const DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubSampling._Vertically_AlignedChromaPlanes;
|
|
pub const DXVA2_VideoChromaSubsampling_DV_PAL = DXVA2_VideoChromaSubSampling._DV_PAL;
|
|
pub const DXVA2_VideoChromaSubsampling_Cosited = DXVA2_VideoChromaSubSampling._Cosited;
|
|
|
|
pub const DXVA2_NominalRange = enum(i32) {
|
|
Mask = 7,
|
|
_Unknown = 0,
|
|
_Normal = 1,
|
|
_Wide = 2,
|
|
// _0_255 = 1, this enum value conflicts with _Normal
|
|
// _16_235 = 2, this enum value conflicts with _Wide
|
|
_48_208 = 3,
|
|
};
|
|
pub const DXVA2_NominalRangeMask = DXVA2_NominalRange.Mask;
|
|
pub const DXVA2_NominalRange_Unknown = DXVA2_NominalRange._Unknown;
|
|
pub const DXVA2_NominalRange_Normal = DXVA2_NominalRange._Normal;
|
|
pub const DXVA2_NominalRange_Wide = DXVA2_NominalRange._Wide;
|
|
pub const DXVA2_NominalRange_0_255 = DXVA2_NominalRange._Normal;
|
|
pub const DXVA2_NominalRange_16_235 = DXVA2_NominalRange._Wide;
|
|
pub const DXVA2_NominalRange_48_208 = DXVA2_NominalRange._48_208;
|
|
|
|
pub const DXVA2_VideoTransferMatrix = enum(i32) {
|
|
Mask = 7,
|
|
_Unknown = 0,
|
|
_BT709 = 1,
|
|
_BT601 = 2,
|
|
_SMPTE240M = 3,
|
|
};
|
|
pub const DXVA2_VideoTransferMatrixMask = DXVA2_VideoTransferMatrix.Mask;
|
|
pub const DXVA2_VideoTransferMatrix_Unknown = DXVA2_VideoTransferMatrix._Unknown;
|
|
pub const DXVA2_VideoTransferMatrix_BT709 = DXVA2_VideoTransferMatrix._BT709;
|
|
pub const DXVA2_VideoTransferMatrix_BT601 = DXVA2_VideoTransferMatrix._BT601;
|
|
pub const DXVA2_VideoTransferMatrix_SMPTE240M = DXVA2_VideoTransferMatrix._SMPTE240M;
|
|
|
|
pub const DXVA2_VideoLighting = enum(i32) {
|
|
Mask = 15,
|
|
_Unknown = 0,
|
|
_bright = 1,
|
|
_office = 2,
|
|
_dim = 3,
|
|
_dark = 4,
|
|
};
|
|
pub const DXVA2_VideoLightingMask = DXVA2_VideoLighting.Mask;
|
|
pub const DXVA2_VideoLighting_Unknown = DXVA2_VideoLighting._Unknown;
|
|
pub const DXVA2_VideoLighting_bright = DXVA2_VideoLighting._bright;
|
|
pub const DXVA2_VideoLighting_office = DXVA2_VideoLighting._office;
|
|
pub const DXVA2_VideoLighting_dim = DXVA2_VideoLighting._dim;
|
|
pub const DXVA2_VideoLighting_dark = DXVA2_VideoLighting._dark;
|
|
|
|
pub const DXVA2_VideoPrimaries = enum(i32) {
|
|
Mask = 31,
|
|
_Unknown = 0,
|
|
_reserved = 1,
|
|
_BT709 = 2,
|
|
_BT470_2_SysM = 3,
|
|
_BT470_2_SysBG = 4,
|
|
_SMPTE170M = 5,
|
|
_SMPTE240M = 6,
|
|
_EBU3213 = 7,
|
|
_SMPTE_C = 8,
|
|
};
|
|
pub const DXVA2_VideoPrimariesMask = DXVA2_VideoPrimaries.Mask;
|
|
pub const DXVA2_VideoPrimaries_Unknown = DXVA2_VideoPrimaries._Unknown;
|
|
pub const DXVA2_VideoPrimaries_reserved = DXVA2_VideoPrimaries._reserved;
|
|
pub const DXVA2_VideoPrimaries_BT709 = DXVA2_VideoPrimaries._BT709;
|
|
pub const DXVA2_VideoPrimaries_BT470_2_SysM = DXVA2_VideoPrimaries._BT470_2_SysM;
|
|
pub const DXVA2_VideoPrimaries_BT470_2_SysBG = DXVA2_VideoPrimaries._BT470_2_SysBG;
|
|
pub const DXVA2_VideoPrimaries_SMPTE170M = DXVA2_VideoPrimaries._SMPTE170M;
|
|
pub const DXVA2_VideoPrimaries_SMPTE240M = DXVA2_VideoPrimaries._SMPTE240M;
|
|
pub const DXVA2_VideoPrimaries_EBU3213 = DXVA2_VideoPrimaries._EBU3213;
|
|
pub const DXVA2_VideoPrimaries_SMPTE_C = DXVA2_VideoPrimaries._SMPTE_C;
|
|
|
|
pub const DXVA2_VideoTransferFunction = enum(i32) {
|
|
Mask = 31,
|
|
_Unknown = 0,
|
|
_10 = 1,
|
|
_18 = 2,
|
|
_20 = 3,
|
|
_22 = 4,
|
|
_709 = 5,
|
|
_240M = 6,
|
|
_sRGB = 7,
|
|
_28 = 8,
|
|
};
|
|
pub const DXVA2_VideoTransFuncMask = DXVA2_VideoTransferFunction.Mask;
|
|
pub const DXVA2_VideoTransFunc_Unknown = DXVA2_VideoTransferFunction._Unknown;
|
|
pub const DXVA2_VideoTransFunc_10 = DXVA2_VideoTransferFunction._10;
|
|
pub const DXVA2_VideoTransFunc_18 = DXVA2_VideoTransferFunction._18;
|
|
pub const DXVA2_VideoTransFunc_20 = DXVA2_VideoTransferFunction._20;
|
|
pub const DXVA2_VideoTransFunc_22 = DXVA2_VideoTransferFunction._22;
|
|
pub const DXVA2_VideoTransFunc_709 = DXVA2_VideoTransferFunction._709;
|
|
pub const DXVA2_VideoTransFunc_240M = DXVA2_VideoTransferFunction._240M;
|
|
pub const DXVA2_VideoTransFunc_sRGB = DXVA2_VideoTransferFunction._sRGB;
|
|
pub const DXVA2_VideoTransFunc_28 = DXVA2_VideoTransferFunction._28;
|
|
|
|
pub const DXVA2_Frequency = extern struct {
|
|
Numerator: u32,
|
|
Denominator: u32,
|
|
};
|
|
|
|
pub const DXVA2_VideoDesc = extern struct {
|
|
SampleWidth: u32,
|
|
SampleHeight: u32,
|
|
SampleFormat: DXVA2_ExtendedFormat,
|
|
Format: D3DFORMAT,
|
|
InputSampleFreq: DXVA2_Frequency,
|
|
OutputFrameFreq: DXVA2_Frequency,
|
|
UABProtectionLevel: u32,
|
|
Reserved: u32,
|
|
};
|
|
|
|
pub const DXVA2_DeinterlaceTech = enum(i32) {
|
|
Unknown = 0,
|
|
BOBLineReplicate = 1,
|
|
BOBVerticalStretch = 2,
|
|
BOBVerticalStretch4Tap = 4,
|
|
MedianFiltering = 8,
|
|
EdgeFiltering = 16,
|
|
FieldAdaptive = 32,
|
|
PixelAdaptive = 64,
|
|
MotionVectorSteered = 128,
|
|
InverseTelecine = 256,
|
|
Mask = 511,
|
|
};
|
|
pub const DXVA2_DeinterlaceTech_Unknown = DXVA2_DeinterlaceTech.Unknown;
|
|
pub const DXVA2_DeinterlaceTech_BOBLineReplicate = DXVA2_DeinterlaceTech.BOBLineReplicate;
|
|
pub const DXVA2_DeinterlaceTech_BOBVerticalStretch = DXVA2_DeinterlaceTech.BOBVerticalStretch;
|
|
pub const DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap = DXVA2_DeinterlaceTech.BOBVerticalStretch4Tap;
|
|
pub const DXVA2_DeinterlaceTech_MedianFiltering = DXVA2_DeinterlaceTech.MedianFiltering;
|
|
pub const DXVA2_DeinterlaceTech_EdgeFiltering = DXVA2_DeinterlaceTech.EdgeFiltering;
|
|
pub const DXVA2_DeinterlaceTech_FieldAdaptive = DXVA2_DeinterlaceTech.FieldAdaptive;
|
|
pub const DXVA2_DeinterlaceTech_PixelAdaptive = DXVA2_DeinterlaceTech.PixelAdaptive;
|
|
pub const DXVA2_DeinterlaceTech_MotionVectorSteered = DXVA2_DeinterlaceTech.MotionVectorSteered;
|
|
pub const DXVA2_DeinterlaceTech_InverseTelecine = DXVA2_DeinterlaceTech.InverseTelecine;
|
|
pub const DXVA2_DeinterlaceTech_Mask = DXVA2_DeinterlaceTech.Mask;
|
|
|
|
pub const DXVA2_FilterType = enum(i32) {
|
|
NoiseFilterLumaLevel = 1,
|
|
NoiseFilterLumaThreshold = 2,
|
|
NoiseFilterLumaRadius = 3,
|
|
NoiseFilterChromaLevel = 4,
|
|
NoiseFilterChromaThreshold = 5,
|
|
NoiseFilterChromaRadius = 6,
|
|
DetailFilterLumaLevel = 7,
|
|
DetailFilterLumaThreshold = 8,
|
|
DetailFilterLumaRadius = 9,
|
|
DetailFilterChromaLevel = 10,
|
|
DetailFilterChromaThreshold = 11,
|
|
DetailFilterChromaRadius = 12,
|
|
};
|
|
pub const DXVA2_NoiseFilterLumaLevel = DXVA2_FilterType.NoiseFilterLumaLevel;
|
|
pub const DXVA2_NoiseFilterLumaThreshold = DXVA2_FilterType.NoiseFilterLumaThreshold;
|
|
pub const DXVA2_NoiseFilterLumaRadius = DXVA2_FilterType.NoiseFilterLumaRadius;
|
|
pub const DXVA2_NoiseFilterChromaLevel = DXVA2_FilterType.NoiseFilterChromaLevel;
|
|
pub const DXVA2_NoiseFilterChromaThreshold = DXVA2_FilterType.NoiseFilterChromaThreshold;
|
|
pub const DXVA2_NoiseFilterChromaRadius = DXVA2_FilterType.NoiseFilterChromaRadius;
|
|
pub const DXVA2_DetailFilterLumaLevel = DXVA2_FilterType.DetailFilterLumaLevel;
|
|
pub const DXVA2_DetailFilterLumaThreshold = DXVA2_FilterType.DetailFilterLumaThreshold;
|
|
pub const DXVA2_DetailFilterLumaRadius = DXVA2_FilterType.DetailFilterLumaRadius;
|
|
pub const DXVA2_DetailFilterChromaLevel = DXVA2_FilterType.DetailFilterChromaLevel;
|
|
pub const DXVA2_DetailFilterChromaThreshold = DXVA2_FilterType.DetailFilterChromaThreshold;
|
|
pub const DXVA2_DetailFilterChromaRadius = DXVA2_FilterType.DetailFilterChromaRadius;
|
|
|
|
pub const DXVA2_NoiseFilterTech = enum(i32) {
|
|
Unsupported = 0,
|
|
Unknown = 1,
|
|
Median = 2,
|
|
Temporal = 4,
|
|
BlockNoise = 8,
|
|
MosquitoNoise = 16,
|
|
Mask = 31,
|
|
};
|
|
pub const DXVA2_NoiseFilterTech_Unsupported = DXVA2_NoiseFilterTech.Unsupported;
|
|
pub const DXVA2_NoiseFilterTech_Unknown = DXVA2_NoiseFilterTech.Unknown;
|
|
pub const DXVA2_NoiseFilterTech_Median = DXVA2_NoiseFilterTech.Median;
|
|
pub const DXVA2_NoiseFilterTech_Temporal = DXVA2_NoiseFilterTech.Temporal;
|
|
pub const DXVA2_NoiseFilterTech_BlockNoise = DXVA2_NoiseFilterTech.BlockNoise;
|
|
pub const DXVA2_NoiseFilterTech_MosquitoNoise = DXVA2_NoiseFilterTech.MosquitoNoise;
|
|
pub const DXVA2_NoiseFilterTech_Mask = DXVA2_NoiseFilterTech.Mask;
|
|
|
|
pub const DXVA2_DetailFilterTech = enum(i32) {
|
|
Unsupported = 0,
|
|
Unknown = 1,
|
|
Edge = 2,
|
|
Sharpening = 4,
|
|
Mask = 7,
|
|
};
|
|
pub const DXVA2_DetailFilterTech_Unsupported = DXVA2_DetailFilterTech.Unsupported;
|
|
pub const DXVA2_DetailFilterTech_Unknown = DXVA2_DetailFilterTech.Unknown;
|
|
pub const DXVA2_DetailFilterTech_Edge = DXVA2_DetailFilterTech.Edge;
|
|
pub const DXVA2_DetailFilterTech_Sharpening = DXVA2_DetailFilterTech.Sharpening;
|
|
pub const DXVA2_DetailFilterTech_Mask = DXVA2_DetailFilterTech.Mask;
|
|
|
|
pub const DXVA2_ProcAmp = enum(i32) {
|
|
None = 0,
|
|
Brightness = 1,
|
|
Contrast = 2,
|
|
Hue = 4,
|
|
Saturation = 8,
|
|
Mask = 15,
|
|
};
|
|
pub const DXVA2_ProcAmp_None = DXVA2_ProcAmp.None;
|
|
pub const DXVA2_ProcAmp_Brightness = DXVA2_ProcAmp.Brightness;
|
|
pub const DXVA2_ProcAmp_Contrast = DXVA2_ProcAmp.Contrast;
|
|
pub const DXVA2_ProcAmp_Hue = DXVA2_ProcAmp.Hue;
|
|
pub const DXVA2_ProcAmp_Saturation = DXVA2_ProcAmp.Saturation;
|
|
pub const DXVA2_ProcAmp_Mask = DXVA2_ProcAmp.Mask;
|
|
|
|
pub const DXVA2_VideoProcess = enum(i32) {
|
|
None = 0,
|
|
YUV2RGB = 1,
|
|
StretchX = 2,
|
|
StretchY = 4,
|
|
AlphaBlend = 8,
|
|
SubRects = 16,
|
|
SubStreams = 32,
|
|
SubStreamsExtended = 64,
|
|
YUV2RGBExtended = 128,
|
|
AlphaBlendExtended = 256,
|
|
Constriction = 512,
|
|
NoiseFilter = 1024,
|
|
DetailFilter = 2048,
|
|
PlanarAlpha = 4096,
|
|
LinearScaling = 8192,
|
|
GammaCompensated = 16384,
|
|
MaintainsOriginalFieldData = 32768,
|
|
Mask = 65535,
|
|
};
|
|
pub const DXVA2_VideoProcess_None = DXVA2_VideoProcess.None;
|
|
pub const DXVA2_VideoProcess_YUV2RGB = DXVA2_VideoProcess.YUV2RGB;
|
|
pub const DXVA2_VideoProcess_StretchX = DXVA2_VideoProcess.StretchX;
|
|
pub const DXVA2_VideoProcess_StretchY = DXVA2_VideoProcess.StretchY;
|
|
pub const DXVA2_VideoProcess_AlphaBlend = DXVA2_VideoProcess.AlphaBlend;
|
|
pub const DXVA2_VideoProcess_SubRects = DXVA2_VideoProcess.SubRects;
|
|
pub const DXVA2_VideoProcess_SubStreams = DXVA2_VideoProcess.SubStreams;
|
|
pub const DXVA2_VideoProcess_SubStreamsExtended = DXVA2_VideoProcess.SubStreamsExtended;
|
|
pub const DXVA2_VideoProcess_YUV2RGBExtended = DXVA2_VideoProcess.YUV2RGBExtended;
|
|
pub const DXVA2_VideoProcess_AlphaBlendExtended = DXVA2_VideoProcess.AlphaBlendExtended;
|
|
pub const DXVA2_VideoProcess_Constriction = DXVA2_VideoProcess.Constriction;
|
|
pub const DXVA2_VideoProcess_NoiseFilter = DXVA2_VideoProcess.NoiseFilter;
|
|
pub const DXVA2_VideoProcess_DetailFilter = DXVA2_VideoProcess.DetailFilter;
|
|
pub const DXVA2_VideoProcess_PlanarAlpha = DXVA2_VideoProcess.PlanarAlpha;
|
|
pub const DXVA2_VideoProcess_LinearScaling = DXVA2_VideoProcess.LinearScaling;
|
|
pub const DXVA2_VideoProcess_GammaCompensated = DXVA2_VideoProcess.GammaCompensated;
|
|
pub const DXVA2_VideoProcess_MaintainsOriginalFieldData = DXVA2_VideoProcess.MaintainsOriginalFieldData;
|
|
pub const DXVA2_VideoProcess_Mask = DXVA2_VideoProcess.Mask;
|
|
|
|
pub const DXVA2_VPDev = enum(i32) {
|
|
HardwareDevice = 1,
|
|
EmulatedDXVA1 = 2,
|
|
SoftwareDevice = 4,
|
|
Mask = 7,
|
|
};
|
|
pub const DXVA2_VPDev_HardwareDevice = DXVA2_VPDev.HardwareDevice;
|
|
pub const DXVA2_VPDev_EmulatedDXVA1 = DXVA2_VPDev.EmulatedDXVA1;
|
|
pub const DXVA2_VPDev_SoftwareDevice = DXVA2_VPDev.SoftwareDevice;
|
|
pub const DXVA2_VPDev_Mask = DXVA2_VPDev.Mask;
|
|
|
|
pub const DXVA2_SampleData = enum(i32) {
|
|
RFF = 1,
|
|
TFF = 2,
|
|
RFF_TFF_Present = 4,
|
|
Mask = 65535,
|
|
};
|
|
pub const DXVA2_SampleData_RFF = DXVA2_SampleData.RFF;
|
|
pub const DXVA2_SampleData_TFF = DXVA2_SampleData.TFF;
|
|
pub const DXVA2_SampleData_RFF_TFF_Present = DXVA2_SampleData.RFF_TFF_Present;
|
|
pub const DXVA2_SampleData_Mask = DXVA2_SampleData.Mask;
|
|
|
|
pub const DXVA2_DestData = enum(i32) {
|
|
RFF = 1,
|
|
TFF = 2,
|
|
RFF_TFF_Present = 4,
|
|
Mask = 65535,
|
|
};
|
|
pub const DXVA2_DestData_RFF = DXVA2_DestData.RFF;
|
|
pub const DXVA2_DestData_TFF = DXVA2_DestData.TFF;
|
|
pub const DXVA2_DestData_RFF_TFF_Present = DXVA2_DestData.RFF_TFF_Present;
|
|
pub const DXVA2_DestData_Mask = DXVA2_DestData.Mask;
|
|
|
|
pub const DXVA2_VideoProcessorCaps = extern struct {
|
|
DeviceCaps: u32,
|
|
InputPool: D3DPOOL,
|
|
NumForwardRefSamples: u32,
|
|
NumBackwardRefSamples: u32,
|
|
Reserved: u32,
|
|
DeinterlaceTechnology: u32,
|
|
ProcAmpControlCaps: u32,
|
|
VideoProcessorOperations: u32,
|
|
NoiseFilterTechnology: u32,
|
|
DetailFilterTechnology: u32,
|
|
};
|
|
|
|
pub const DXVA2_Fixed32 = extern struct {
|
|
Anonymous: extern union {
|
|
Anonymous: extern struct {
|
|
Fraction: u16,
|
|
Value: i16,
|
|
},
|
|
ll: i32,
|
|
},
|
|
};
|
|
|
|
pub const DXVA2_AYUVSample8 = extern struct {
|
|
Cr: u8,
|
|
Cb: u8,
|
|
Y: u8,
|
|
Alpha: u8,
|
|
};
|
|
|
|
pub const DXVA2_AYUVSample16 = extern struct {
|
|
Cr: u16,
|
|
Cb: u16,
|
|
Y: u16,
|
|
Alpha: u16,
|
|
};
|
|
|
|
pub const DXVA2_VideoSample = extern struct {
|
|
Start: i64,
|
|
End: i64,
|
|
SampleFormat: DXVA2_ExtendedFormat,
|
|
SrcSurface: ?*IDirect3DSurface9,
|
|
SrcRect: RECT,
|
|
DstRect: RECT,
|
|
Pal: [16]DXVA2_AYUVSample8,
|
|
PlanarAlpha: DXVA2_Fixed32,
|
|
SampleData: u32,
|
|
};
|
|
|
|
pub const DXVA2_ValueRange = extern struct {
|
|
MinValue: DXVA2_Fixed32,
|
|
MaxValue: DXVA2_Fixed32,
|
|
DefaultValue: DXVA2_Fixed32,
|
|
StepSize: DXVA2_Fixed32,
|
|
};
|
|
|
|
pub const DXVA2_ProcAmpValues = extern struct {
|
|
Brightness: DXVA2_Fixed32,
|
|
Contrast: DXVA2_Fixed32,
|
|
Hue: DXVA2_Fixed32,
|
|
Saturation: DXVA2_Fixed32,
|
|
};
|
|
|
|
pub const DXVA2_FilterValues = extern struct {
|
|
Level: DXVA2_Fixed32,
|
|
Threshold: DXVA2_Fixed32,
|
|
Radius: DXVA2_Fixed32,
|
|
};
|
|
|
|
pub const DXVA2_VideoProcessBltParams = extern struct {
|
|
TargetFrame: i64,
|
|
TargetRect: RECT,
|
|
ConstrictionSize: SIZE,
|
|
StreamingFlags: u32,
|
|
BackgroundColor: DXVA2_AYUVSample16,
|
|
DestFormat: DXVA2_ExtendedFormat,
|
|
ProcAmpValues: DXVA2_ProcAmpValues,
|
|
Alpha: DXVA2_Fixed32,
|
|
NoiseFilterLuma: DXVA2_FilterValues,
|
|
NoiseFilterChroma: DXVA2_FilterValues,
|
|
DetailFilterLuma: DXVA2_FilterValues,
|
|
DetailFilterChroma: DXVA2_FilterValues,
|
|
DestData: u32,
|
|
};
|
|
|
|
pub const DXVA2_BufferfType = enum(i32) {
|
|
PictureParametersBufferType = 0,
|
|
MacroBlockControlBufferType = 1,
|
|
ResidualDifferenceBufferType = 2,
|
|
DeblockingControlBufferType = 3,
|
|
InverseQuantizationMatrixBufferType = 4,
|
|
SliceControlBufferType = 5,
|
|
BitStreamDateBufferType = 6,
|
|
MotionVectorBuffer = 7,
|
|
FilmGrainBuffer = 8,
|
|
};
|
|
pub const DXVA2_PictureParametersBufferType = DXVA2_BufferfType.PictureParametersBufferType;
|
|
pub const DXVA2_MacroBlockControlBufferType = DXVA2_BufferfType.MacroBlockControlBufferType;
|
|
pub const DXVA2_ResidualDifferenceBufferType = DXVA2_BufferfType.ResidualDifferenceBufferType;
|
|
pub const DXVA2_DeblockingControlBufferType = DXVA2_BufferfType.DeblockingControlBufferType;
|
|
pub const DXVA2_InverseQuantizationMatrixBufferType = DXVA2_BufferfType.InverseQuantizationMatrixBufferType;
|
|
pub const DXVA2_SliceControlBufferType = DXVA2_BufferfType.SliceControlBufferType;
|
|
pub const DXVA2_BitStreamDateBufferType = DXVA2_BufferfType.BitStreamDateBufferType;
|
|
pub const DXVA2_MotionVectorBuffer = DXVA2_BufferfType.MotionVectorBuffer;
|
|
pub const DXVA2_FilmGrainBuffer = DXVA2_BufferfType.FilmGrainBuffer;
|
|
|
|
pub const DXVA2_VideoRenderTargetType = enum(i32) {
|
|
DecoderRenderTarget = 0,
|
|
ProcessorRenderTarget = 1,
|
|
SoftwareRenderTarget = 2,
|
|
};
|
|
pub const DXVA2_VideoDecoderRenderTarget = DXVA2_VideoRenderTargetType.DecoderRenderTarget;
|
|
pub const DXVA2_VideoProcessorRenderTarget = DXVA2_VideoRenderTargetType.ProcessorRenderTarget;
|
|
pub const DXVA2_VideoSoftwareRenderTarget = DXVA2_VideoRenderTargetType.SoftwareRenderTarget;
|
|
|
|
pub const DXVA2_ConfigPictureDecode = extern struct {
|
|
guidConfigBitstreamEncryption: Guid,
|
|
guidConfigMBcontrolEncryption: Guid,
|
|
guidConfigResidDiffEncryption: Guid,
|
|
ConfigBitstreamRaw: u32,
|
|
ConfigMBcontrolRasterOrder: u32,
|
|
ConfigResidDiffHost: u32,
|
|
ConfigSpatialResid8: u32,
|
|
ConfigResid8Subtraction: u32,
|
|
ConfigSpatialHost8or9Clipping: u32,
|
|
ConfigSpatialResidInterleaved: u32,
|
|
ConfigIntraResidUnsigned: u32,
|
|
ConfigResidDiffAccelerator: u32,
|
|
ConfigHostInverseScan: u32,
|
|
ConfigSpecificIDCT: u32,
|
|
Config4GroupedCoefs: u32,
|
|
ConfigMinRenderTargetBuffCount: u16,
|
|
ConfigDecoderSpecific: u16,
|
|
};
|
|
|
|
pub const DXVA2_DecodeBufferDesc = extern struct {
|
|
CompressedBufferType: DXVA2_BufferfType,
|
|
BufferIndex: u32,
|
|
DataOffset: u32,
|
|
DataSize: u32,
|
|
FirstMBaddress: u32,
|
|
NumMBsInBuffer: u32,
|
|
Width: u32,
|
|
Height: u32,
|
|
Stride: u32,
|
|
ReservedBits: u32,
|
|
pvPVPState: ?*anyopaque,
|
|
};
|
|
|
|
pub const DXVA2_AES_CTR_IV = extern struct {
|
|
IV: u64,
|
|
Count: u64,
|
|
};
|
|
|
|
pub const DXVA2_DecodeExtensionData = extern struct {
|
|
Function: u32,
|
|
pPrivateInputData: ?*anyopaque,
|
|
PrivateInputDataSize: u32,
|
|
pPrivateOutputData: ?*anyopaque,
|
|
PrivateOutputDataSize: u32,
|
|
};
|
|
|
|
pub const DXVA2_DecodeExecuteParams = extern struct {
|
|
NumCompBuffers: u32,
|
|
pCompressedBuffers: ?*DXVA2_DecodeBufferDesc,
|
|
pExtensionData: ?*DXVA2_DecodeExtensionData,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirect3DDeviceManager9_Value = Guid.initString("a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75");
|
|
pub const IID_IDirect3DDeviceManager9 = &IID_IDirect3DDeviceManager9_Value;
|
|
pub const IDirect3DDeviceManager9 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ResetDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
pDevice: ?*IDirect3DDevice9,
|
|
resetToken: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
pDevice: ?*IDirect3DDevice9,
|
|
resetToken: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OpenDeviceHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CloseDeviceHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TestDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
LockDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
ppDevice: ?*?*IDirect3DDevice9,
|
|
fBlock: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
ppDevice: ?*?*IDirect3DDevice9,
|
|
fBlock: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
fSaveState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
fSaveState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppService: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirect3DDeviceManager9,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppService: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_ResetDevice(self: *const T, pDevice: ?*IDirect3DDevice9, resetToken: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).ResetDevice(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), pDevice, resetToken);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_OpenDeviceHandle(self: *const T, phDevice: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).OpenDeviceHandle(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), phDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_CloseDeviceHandle(self: *const T, hDevice: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).CloseDeviceHandle(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), hDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_TestDevice(self: *const T, hDevice: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).TestDevice(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), hDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_LockDevice(self: *const T, hDevice: ?HANDLE, ppDevice: ?*?*IDirect3DDevice9, fBlock: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).LockDevice(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), hDevice, ppDevice, fBlock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_UnlockDevice(self: *const T, hDevice: ?HANDLE, fSaveState: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).UnlockDevice(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), hDevice, fSaveState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirect3DDeviceManager9_GetVideoService(self: *const T, hDevice: ?HANDLE, riid: ?*const Guid, ppService: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirect3DDeviceManager9.VTable, @ptrCast(self.vtable)).GetVideoService(@as(*const IDirect3DDeviceManager9, @ptrCast(self)), hDevice, riid, ppService);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoAccelerationService_Value = Guid.initString("fc51a550-d5e7-11d9-af55-00054e43ff02");
|
|
pub const IID_IDirectXVideoAccelerationService = &IID_IDirectXVideoAccelerationService_Value;
|
|
pub const IDirectXVideoAccelerationService = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateSurface: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoAccelerationService,
|
|
Width: u32,
|
|
Height: u32,
|
|
BackBuffers: u32,
|
|
Format: D3DFORMAT,
|
|
Pool: D3DPOOL,
|
|
Usage: u32,
|
|
DxvaType: DXVA2_VideoRenderTargetType,
|
|
ppSurface: ?*?*IDirect3DSurface9,
|
|
pSharedHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoAccelerationService,
|
|
Width: u32,
|
|
Height: u32,
|
|
BackBuffers: u32,
|
|
Format: D3DFORMAT,
|
|
Pool: D3DPOOL,
|
|
Usage: u32,
|
|
DxvaType: DXVA2_VideoRenderTargetType,
|
|
ppSurface: ?*?*IDirect3DSurface9,
|
|
pSharedHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoAccelerationService_CreateSurface(self: *const T, Width: u32, Height: u32, BackBuffers: u32, Format: D3DFORMAT, Pool: D3DPOOL, Usage: u32, DxvaType: DXVA2_VideoRenderTargetType, ppSurface: ?*?*IDirect3DSurface9, pSharedHandle: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoAccelerationService.VTable, @ptrCast(self.vtable)).CreateSurface(@as(*const IDirectXVideoAccelerationService, @ptrCast(self)), Width, Height, BackBuffers, Format, Pool, Usage, DxvaType, ppSurface, pSharedHandle);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoDecoderService_Value = Guid.initString("fc51a551-d5e7-11d9-af55-00054e43ff02");
|
|
pub const IID_IDirectXVideoDecoderService = &IID_IDirectXVideoDecoderService_Value;
|
|
pub const IDirectXVideoDecoderService = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IDirectXVideoAccelerationService.VTable,
|
|
GetDecoderDeviceGuids: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
pCount: ?*u32,
|
|
pGuids: ?*?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
pCount: ?*u32,
|
|
pGuids: ?*?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDecoderRenderTargets: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDecoderConfigurations: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pReserved: ?*anyopaque,
|
|
pCount: ?*u32,
|
|
ppConfigs: ?*?*DXVA2_ConfigPictureDecode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pReserved: ?*anyopaque,
|
|
pCount: ?*u32,
|
|
ppConfigs: ?*?*DXVA2_ConfigPictureDecode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoDecoder: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pConfig: ?*const DXVA2_ConfigPictureDecode,
|
|
ppDecoderRenderTargets: [*]?*IDirect3DSurface9,
|
|
NumRenderTargets: u32,
|
|
ppDecode: ?*?*IDirectXVideoDecoder,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoderService,
|
|
Guid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pConfig: ?*const DXVA2_ConfigPictureDecode,
|
|
ppDecoderRenderTargets: [*]?*IDirect3DSurface9,
|
|
NumRenderTargets: u32,
|
|
ppDecode: ?*?*IDirectXVideoDecoder,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IDirectXVideoAccelerationService.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoderService_GetDecoderDeviceGuids(self: *const T, pCount: ?*u32, pGuids: ?*?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoderService.VTable, @ptrCast(self.vtable)).GetDecoderDeviceGuids(@as(*const IDirectXVideoDecoderService, @ptrCast(self)), pCount, pGuids);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoderService_GetDecoderRenderTargets(self: *const T, _param_Guid: ?*const Guid, pCount: ?*u32, pFormats: ?*?*D3DFORMAT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoderService.VTable, @ptrCast(self.vtable)).GetDecoderRenderTargets(@as(*const IDirectXVideoDecoderService, @ptrCast(self)), _param_Guid, pCount, pFormats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoderService_GetDecoderConfigurations(self: *const T, _param_Guid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, pReserved: ?*anyopaque, pCount: ?*u32, ppConfigs: ?*?*DXVA2_ConfigPictureDecode) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoderService.VTable, @ptrCast(self.vtable)).GetDecoderConfigurations(@as(*const IDirectXVideoDecoderService, @ptrCast(self)), _param_Guid, pVideoDesc, pReserved, pCount, ppConfigs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoderService_CreateVideoDecoder(self: *const T, _param_Guid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, pConfig: ?*const DXVA2_ConfigPictureDecode, ppDecoderRenderTargets: [*]?*IDirect3DSurface9, NumRenderTargets: u32, ppDecode: ?*?*IDirectXVideoDecoder) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoderService.VTable, @ptrCast(self.vtable)).CreateVideoDecoder(@as(*const IDirectXVideoDecoderService, @ptrCast(self)), _param_Guid, pVideoDesc, pConfig, ppDecoderRenderTargets, NumRenderTargets, ppDecode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoProcessorService_Value = Guid.initString("fc51a552-d5e7-11d9-af55-00054e43ff02");
|
|
pub const IID_IDirectXVideoProcessorService = &IID_IDirectXVideoProcessorService_Value;
|
|
pub const IDirectXVideoProcessorService = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IDirectXVideoAccelerationService.VTable,
|
|
RegisterVideoProcessorSoftwareDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
pCallbacks: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
pCallbacks: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorDeviceGuids: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pCount: ?*u32,
|
|
pGuids: ?*?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pCount: ?*u32,
|
|
pGuids: ?*?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorRenderTargets: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorSubStreamFormats: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
pCount: ?*u32,
|
|
pFormats: ?*?*D3DFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
pCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
pCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcAmpRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
ProcAmpCap: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
ProcAmpCap: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFilterPropertyRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
FilterSetting: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
FilterSetting: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateVideoProcessor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
MaxNumSubStreams: u32,
|
|
ppVidProcess: ?*?*IDirectXVideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessorService,
|
|
VideoProcDeviceGuid: ?*const Guid,
|
|
pVideoDesc: ?*const DXVA2_VideoDesc,
|
|
RenderTargetFormat: D3DFORMAT,
|
|
MaxNumSubStreams: u32,
|
|
ppVidProcess: ?*?*IDirectXVideoProcessor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IDirectXVideoAccelerationService.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(self: *const T, pCallbacks: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).RegisterVideoProcessorSoftwareDevice(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), pCallbacks);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(self: *const T, pVideoDesc: ?*const DXVA2_VideoDesc, pCount: ?*u32, pGuids: ?*?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetVideoProcessorDeviceGuids(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), pVideoDesc, pCount, pGuids);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, pCount: ?*u32, pFormats: ?*?*D3DFORMAT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetVideoProcessorRenderTargets(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, pCount, pFormats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, RenderTargetFormat: D3DFORMAT, pCount: ?*u32, pFormats: ?*?*D3DFORMAT) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetVideoProcessorSubStreamFormats(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, RenderTargetFormat, pCount, pFormats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetVideoProcessorCaps(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, RenderTargetFormat: D3DFORMAT, pCaps: ?*DXVA2_VideoProcessorCaps) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetVideoProcessorCaps(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, RenderTargetFormat, pCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetProcAmpRange(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, RenderTargetFormat: D3DFORMAT, ProcAmpCap: u32, pRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetProcAmpRange(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, RenderTargetFormat, ProcAmpCap, pRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_GetFilterPropertyRange(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, RenderTargetFormat: D3DFORMAT, FilterSetting: u32, pRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).GetFilterPropertyRange(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, RenderTargetFormat, FilterSetting, pRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessorService_CreateVideoProcessor(self: *const T, VideoProcDeviceGuid: ?*const Guid, pVideoDesc: ?*const DXVA2_VideoDesc, RenderTargetFormat: D3DFORMAT, MaxNumSubStreams: u32, ppVidProcess: ?*?*IDirectXVideoProcessor) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessorService.VTable, @ptrCast(self.vtable)).CreateVideoProcessor(@as(*const IDirectXVideoProcessorService, @ptrCast(self)), VideoProcDeviceGuid, pVideoDesc, RenderTargetFormat, MaxNumSubStreams, ppVidProcess);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoDecoder_Value = Guid.initString("f2b0810a-fd00-43c9-918c-df94e2d8ef7d");
|
|
pub const IID_IDirectXVideoDecoder = &IID_IDirectXVideoDecoder_Value;
|
|
pub const IDirectXVideoDecoder = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetVideoDecoderService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
ppService: ?*?*IDirectXVideoDecoderService,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
ppService: ?*?*IDirectXVideoDecoderService,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCreationParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pDeviceGuid: ?*Guid,
|
|
pVideoDesc: ?*DXVA2_VideoDesc,
|
|
pConfig: ?*DXVA2_ConfigPictureDecode,
|
|
pDecoderRenderTargets: [*]?*?*IDirect3DSurface9,
|
|
pNumSurfaces: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pDeviceGuid: ?*Guid,
|
|
pVideoDesc: ?*DXVA2_VideoDesc,
|
|
pConfig: ?*DXVA2_ConfigPictureDecode,
|
|
pDecoderRenderTargets: [*]?*?*IDirect3DSurface9,
|
|
pNumSurfaces: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
BufferType: DXVA2_BufferfType,
|
|
ppBuffer: ?*?*anyopaque,
|
|
pBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
BufferType: DXVA2_BufferfType,
|
|
ppBuffer: ?*?*anyopaque,
|
|
pBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ReleaseBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
BufferType: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
BufferType: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pRenderTarget: ?*IDirect3DSurface9,
|
|
pvPVPData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pRenderTarget: ?*IDirect3DSurface9,
|
|
pvPVPData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pHandleComplete: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pHandleComplete: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Execute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pExecuteParams: ?*const DXVA2_DecodeExecuteParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoDecoder,
|
|
pExecuteParams: ?*const DXVA2_DecodeExecuteParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_GetVideoDecoderService(self: *const T, ppService: ?*?*IDirectXVideoDecoderService) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).GetVideoDecoderService(@as(*const IDirectXVideoDecoder, @ptrCast(self)), ppService);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_GetCreationParameters(self: *const T, pDeviceGuid: ?*Guid, pVideoDesc: ?*DXVA2_VideoDesc, pConfig: ?*DXVA2_ConfigPictureDecode, pDecoderRenderTargets: [*]?*?*IDirect3DSurface9, pNumSurfaces: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).GetCreationParameters(@as(*const IDirectXVideoDecoder, @ptrCast(self)), pDeviceGuid, pVideoDesc, pConfig, pDecoderRenderTargets, pNumSurfaces);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_GetBuffer(self: *const T, BufferType: DXVA2_BufferfType, ppBuffer: ?*?*anyopaque, pBufferSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).GetBuffer(@as(*const IDirectXVideoDecoder, @ptrCast(self)), BufferType, ppBuffer, pBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_ReleaseBuffer(self: *const T, BufferType: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).ReleaseBuffer(@as(*const IDirectXVideoDecoder, @ptrCast(self)), BufferType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_BeginFrame(self: *const T, pRenderTarget: ?*IDirect3DSurface9, pvPVPData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).BeginFrame(@as(*const IDirectXVideoDecoder, @ptrCast(self)), pRenderTarget, pvPVPData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_EndFrame(self: *const T, pHandleComplete: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).EndFrame(@as(*const IDirectXVideoDecoder, @ptrCast(self)), pHandleComplete);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoDecoder_Execute(self: *const T, pExecuteParams: ?*const DXVA2_DecodeExecuteParams) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoDecoder.VTable, @ptrCast(self.vtable)).Execute(@as(*const IDirectXVideoDecoder, @ptrCast(self)), pExecuteParams);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoProcessor_Value = Guid.initString("8c3a39f0-916e-4690-804f-4c8001355d25");
|
|
pub const IID_IDirectXVideoProcessor = &IID_IDirectXVideoProcessor_Value;
|
|
pub const IDirectXVideoProcessor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetVideoProcessorService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
ppService: ?*?*IDirectXVideoProcessorService,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
ppService: ?*?*IDirectXVideoProcessorService,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCreationParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pDeviceGuid: ?*Guid,
|
|
pVideoDesc: ?*DXVA2_VideoDesc,
|
|
pRenderTargetFormat: ?*D3DFORMAT,
|
|
pMaxNumSubStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pDeviceGuid: ?*Guid,
|
|
pVideoDesc: ?*DXVA2_VideoDesc,
|
|
pRenderTargetFormat: ?*D3DFORMAT,
|
|
pMaxNumSubStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcAmpRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
ProcAmpCap: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
ProcAmpCap: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFilterPropertyRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
FilterSetting: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
FilterSetting: u32,
|
|
pRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
VideoProcessBlt: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pRenderTarget: ?*IDirect3DSurface9,
|
|
pBltParams: ?*const DXVA2_VideoProcessBltParams,
|
|
pSamples: [*]const DXVA2_VideoSample,
|
|
NumSamples: u32,
|
|
pHandleComplete: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoProcessor,
|
|
pRenderTarget: ?*IDirect3DSurface9,
|
|
pBltParams: ?*const DXVA2_VideoProcessBltParams,
|
|
pSamples: [*]const DXVA2_VideoSample,
|
|
NumSamples: u32,
|
|
pHandleComplete: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_GetVideoProcessorService(self: *const T, ppService: ?*?*IDirectXVideoProcessorService) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessorService(@as(*const IDirectXVideoProcessor, @ptrCast(self)), ppService);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_GetCreationParameters(self: *const T, pDeviceGuid: ?*Guid, pVideoDesc: ?*DXVA2_VideoDesc, pRenderTargetFormat: ?*D3DFORMAT, pMaxNumSubStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).GetCreationParameters(@as(*const IDirectXVideoProcessor, @ptrCast(self)), pDeviceGuid, pVideoDesc, pRenderTargetFormat, pMaxNumSubStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_GetVideoProcessorCaps(self: *const T, pCaps: ?*DXVA2_VideoProcessorCaps) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessorCaps(@as(*const IDirectXVideoProcessor, @ptrCast(self)), pCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_GetProcAmpRange(self: *const T, ProcAmpCap: u32, pRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).GetProcAmpRange(@as(*const IDirectXVideoProcessor, @ptrCast(self)), ProcAmpCap, pRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_GetFilterPropertyRange(self: *const T, FilterSetting: u32, pRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).GetFilterPropertyRange(@as(*const IDirectXVideoProcessor, @ptrCast(self)), FilterSetting, pRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoProcessor_VideoProcessBlt(self: *const T, pRenderTarget: ?*IDirect3DSurface9, pBltParams: ?*const DXVA2_VideoProcessBltParams, pSamples: [*]const DXVA2_VideoSample, NumSamples: u32, pHandleComplete: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoProcessor.VTable, @ptrCast(self.vtable)).VideoProcessBlt(@as(*const IDirectXVideoProcessor, @ptrCast(self)), pRenderTarget, pBltParams, pSamples, NumSamples, pHandleComplete);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const DXVA2_SurfaceType = enum(i32) {
|
|
DecoderRenderTarget = 0,
|
|
ProcessorRenderTarget = 1,
|
|
D3DRenderTargetTexture = 2,
|
|
};
|
|
pub const DXVA2_SurfaceType_DecoderRenderTarget = DXVA2_SurfaceType.DecoderRenderTarget;
|
|
pub const DXVA2_SurfaceType_ProcessorRenderTarget = DXVA2_SurfaceType.ProcessorRenderTarget;
|
|
pub const DXVA2_SurfaceType_D3DRenderTargetTexture = DXVA2_SurfaceType.D3DRenderTargetTexture;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IDirectXVideoMemoryConfiguration_Value = Guid.initString("b7f916dd-db3b-49c1-84d7-e45ef99ec726");
|
|
pub const IID_IDirectXVideoMemoryConfiguration = &IID_IDirectXVideoMemoryConfiguration_Value;
|
|
pub const IDirectXVideoMemoryConfiguration = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAvailableSurfaceTypeByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoMemoryConfiguration,
|
|
dwTypeIndex: u32,
|
|
pdwType: ?*DXVA2_SurfaceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoMemoryConfiguration,
|
|
dwTypeIndex: u32,
|
|
pdwType: ?*DXVA2_SurfaceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSurfaceType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDirectXVideoMemoryConfiguration,
|
|
dwType: DXVA2_SurfaceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDirectXVideoMemoryConfiguration,
|
|
dwType: DXVA2_SurfaceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(self: *const T, dwTypeIndex: u32, pdwType: ?*DXVA2_SurfaceType) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoMemoryConfiguration.VTable, @ptrCast(self.vtable)).GetAvailableSurfaceTypeByIndex(@as(*const IDirectXVideoMemoryConfiguration, @ptrCast(self)), dwTypeIndex, pdwType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDirectXVideoMemoryConfiguration_SetSurfaceType(self: *const T, dwType: DXVA2_SurfaceType) callconv(.Inline) HRESULT {
|
|
return @as(*const IDirectXVideoMemoryConfiguration.VTable, @ptrCast(self.vtable)).SetSurfaceType(@as(*const IDirectXVideoMemoryConfiguration, @ptrCast(self)), dwType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const OPM_TYPE = enum(i32) {
|
|
OMAC_SIZE = 16,
|
|
// @"128_BIT_RANDOM_NUMBER_SIZE" = 16, this enum value conflicts with OMAC_SIZE
|
|
ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE = 256,
|
|
CONFIGURE_SETTING_DATA_SIZE = 4056,
|
|
// GET_INFORMATION_PARAMETERS_SIZE = 4056, this enum value conflicts with CONFIGURE_SETTING_DATA_SIZE
|
|
REQUESTED_INFORMATION_SIZE = 4076,
|
|
HDCP_KEY_SELECTION_VECTOR_SIZE = 5,
|
|
PROTECTION_TYPE_SIZE = 4,
|
|
BUS_TYPE_MASK = 65535,
|
|
BUS_IMPLEMENTATION_MODIFIER_MASK = 32767,
|
|
};
|
|
pub const OPM_OMAC_SIZE = OPM_TYPE.OMAC_SIZE;
|
|
pub const OPM_128_BIT_RANDOM_NUMBER_SIZE = OPM_TYPE.OMAC_SIZE;
|
|
pub const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE = OPM_TYPE.ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE;
|
|
pub const OPM_CONFIGURE_SETTING_DATA_SIZE = OPM_TYPE.CONFIGURE_SETTING_DATA_SIZE;
|
|
pub const OPM_GET_INFORMATION_PARAMETERS_SIZE = OPM_TYPE.CONFIGURE_SETTING_DATA_SIZE;
|
|
pub const OPM_REQUESTED_INFORMATION_SIZE = OPM_TYPE.REQUESTED_INFORMATION_SIZE;
|
|
pub const OPM_HDCP_KEY_SELECTION_VECTOR_SIZE = OPM_TYPE.HDCP_KEY_SELECTION_VECTOR_SIZE;
|
|
pub const OPM_PROTECTION_TYPE_SIZE = OPM_TYPE.PROTECTION_TYPE_SIZE;
|
|
pub const OPM_BUS_TYPE_MASK = OPM_TYPE.BUS_TYPE_MASK;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_MASK = OPM_TYPE.BUS_IMPLEMENTATION_MODIFIER_MASK;
|
|
|
|
pub const OPM_VIDEO_OUTPUT_SEMANTICS = enum(i32) {
|
|
COPP_SEMANTICS = 0,
|
|
OPM_SEMANTICS = 1,
|
|
OPM_INDIRECT_DISPLAY = 2,
|
|
};
|
|
pub const OPM_VOS_COPP_SEMANTICS = OPM_VIDEO_OUTPUT_SEMANTICS.COPP_SEMANTICS;
|
|
pub const OPM_VOS_OPM_SEMANTICS = OPM_VIDEO_OUTPUT_SEMANTICS.OPM_SEMANTICS;
|
|
pub const OPM_VOS_OPM_INDIRECT_DISPLAY = OPM_VIDEO_OUTPUT_SEMANTICS.OPM_INDIRECT_DISPLAY;
|
|
|
|
pub const OPM_HDCP_FLAGS = enum(u32) {
|
|
NONE = 0,
|
|
REPEATER = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
NONE: u1 = 0,
|
|
REPEATER: u1 = 0,
|
|
}) OPM_HDCP_FLAGS {
|
|
return @as(OPM_HDCP_FLAGS, @enumFromInt(
|
|
(if (o.NONE == 1) @intFromEnum(OPM_HDCP_FLAGS.NONE) else 0)
|
|
| (if (o.REPEATER == 1) @intFromEnum(OPM_HDCP_FLAGS.REPEATER) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const OPM_HDCP_FLAG_NONE = OPM_HDCP_FLAGS.NONE;
|
|
pub const OPM_HDCP_FLAG_REPEATER = OPM_HDCP_FLAGS.REPEATER;
|
|
|
|
pub const OPM_STATUS = enum(i32) {
|
|
NORMAL = 0,
|
|
LINK_LOST = 1,
|
|
RENEGOTIATION_REQUIRED = 2,
|
|
TAMPERING_DETECTED = 4,
|
|
REVOKED_HDCP_DEVICE_ATTACHED = 8,
|
|
};
|
|
pub const OPM_STATUS_NORMAL = OPM_STATUS.NORMAL;
|
|
pub const OPM_STATUS_LINK_LOST = OPM_STATUS.LINK_LOST;
|
|
pub const OPM_STATUS_RENEGOTIATION_REQUIRED = OPM_STATUS.RENEGOTIATION_REQUIRED;
|
|
pub const OPM_STATUS_TAMPERING_DETECTED = OPM_STATUS.TAMPERING_DETECTED;
|
|
pub const OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED = OPM_STATUS.REVOKED_HDCP_DEVICE_ATTACHED;
|
|
|
|
pub const PM_CONNECTOR_TYPE = enum(i32) {
|
|
NNECTOR_TYPE_OTHER = -1,
|
|
NNECTOR_TYPE_VGA = 0,
|
|
NNECTOR_TYPE_SVIDEO = 1,
|
|
NNECTOR_TYPE_COMPOSITE_VIDEO = 2,
|
|
NNECTOR_TYPE_COMPONENT_VIDEO = 3,
|
|
NNECTOR_TYPE_DVI = 4,
|
|
NNECTOR_TYPE_HDMI = 5,
|
|
NNECTOR_TYPE_LVDS = 6,
|
|
NNECTOR_TYPE_D_JPN = 8,
|
|
NNECTOR_TYPE_SDI = 9,
|
|
NNECTOR_TYPE_DISPLAYPORT_EXTERNAL = 10,
|
|
NNECTOR_TYPE_DISPLAYPORT_EMBEDDED = 11,
|
|
NNECTOR_TYPE_UDI_EXTERNAL = 12,
|
|
NNECTOR_TYPE_UDI_EMBEDDED = 13,
|
|
NNECTOR_TYPE_RESERVED = 14,
|
|
NNECTOR_TYPE_MIRACAST = 15,
|
|
NNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A = 16,
|
|
NNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B = 17,
|
|
PP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL = -2147483648,
|
|
};
|
|
pub const OPM_CONNECTOR_TYPE_OTHER = PM_CONNECTOR_TYPE.NNECTOR_TYPE_OTHER;
|
|
pub const OPM_CONNECTOR_TYPE_VGA = PM_CONNECTOR_TYPE.NNECTOR_TYPE_VGA;
|
|
pub const OPM_CONNECTOR_TYPE_SVIDEO = PM_CONNECTOR_TYPE.NNECTOR_TYPE_SVIDEO;
|
|
pub const OPM_CONNECTOR_TYPE_COMPOSITE_VIDEO = PM_CONNECTOR_TYPE.NNECTOR_TYPE_COMPOSITE_VIDEO;
|
|
pub const OPM_CONNECTOR_TYPE_COMPONENT_VIDEO = PM_CONNECTOR_TYPE.NNECTOR_TYPE_COMPONENT_VIDEO;
|
|
pub const OPM_CONNECTOR_TYPE_DVI = PM_CONNECTOR_TYPE.NNECTOR_TYPE_DVI;
|
|
pub const OPM_CONNECTOR_TYPE_HDMI = PM_CONNECTOR_TYPE.NNECTOR_TYPE_HDMI;
|
|
pub const OPM_CONNECTOR_TYPE_LVDS = PM_CONNECTOR_TYPE.NNECTOR_TYPE_LVDS;
|
|
pub const OPM_CONNECTOR_TYPE_D_JPN = PM_CONNECTOR_TYPE.NNECTOR_TYPE_D_JPN;
|
|
pub const OPM_CONNECTOR_TYPE_SDI = PM_CONNECTOR_TYPE.NNECTOR_TYPE_SDI;
|
|
pub const OPM_CONNECTOR_TYPE_DISPLAYPORT_EXTERNAL = PM_CONNECTOR_TYPE.NNECTOR_TYPE_DISPLAYPORT_EXTERNAL;
|
|
pub const OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED = PM_CONNECTOR_TYPE.NNECTOR_TYPE_DISPLAYPORT_EMBEDDED;
|
|
pub const OPM_CONNECTOR_TYPE_UDI_EXTERNAL = PM_CONNECTOR_TYPE.NNECTOR_TYPE_UDI_EXTERNAL;
|
|
pub const OPM_CONNECTOR_TYPE_UDI_EMBEDDED = PM_CONNECTOR_TYPE.NNECTOR_TYPE_UDI_EMBEDDED;
|
|
pub const OPM_CONNECTOR_TYPE_RESERVED = PM_CONNECTOR_TYPE.NNECTOR_TYPE_RESERVED;
|
|
pub const OPM_CONNECTOR_TYPE_MIRACAST = PM_CONNECTOR_TYPE.NNECTOR_TYPE_MIRACAST;
|
|
pub const OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A = PM_CONNECTOR_TYPE.NNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A;
|
|
pub const OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B = PM_CONNECTOR_TYPE.NNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B;
|
|
pub const OPM_COPP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL = PM_CONNECTOR_TYPE.PP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL;
|
|
|
|
pub const OPM_DVI_CHARACTERISTIC = enum(i32) {
|
|
@"0" = 1,
|
|
@"1_OR_ABOVE" = 2,
|
|
};
|
|
pub const OPM_DVI_CHARACTERISTIC_1_0 = OPM_DVI_CHARACTERISTIC.@"0";
|
|
pub const OPM_DVI_CHARACTERISTIC_1_1_OR_ABOVE = OPM_DVI_CHARACTERISTIC.@"1_OR_ABOVE";
|
|
|
|
pub const OPM_OUTPUT_HARDWARE_PROTECTION = enum(i32) {
|
|
NOT_SUPPORTED = 0,
|
|
SUPPORTED = 1,
|
|
};
|
|
pub const OPM_OUTPUT_HARDWARE_PROTECTION_NOT_SUPPORTED = OPM_OUTPUT_HARDWARE_PROTECTION.NOT_SUPPORTED;
|
|
pub const OPM_OUTPUT_HARDWARE_PROTECTION_SUPPORTED = OPM_OUTPUT_HARDWARE_PROTECTION.SUPPORTED;
|
|
|
|
pub const OPM_BUS_TYPE = enum(i32) {
|
|
BUS_TYPE_OTHER = 0,
|
|
BUS_TYPE_PCI = 1,
|
|
BUS_TYPE_PCIX = 2,
|
|
BUS_TYPE_PCIEXPRESS = 3,
|
|
BUS_TYPE_AGP = 4,
|
|
BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET = 65536,
|
|
BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 131072,
|
|
BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 196608,
|
|
BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 262144,
|
|
BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 327680,
|
|
BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD = -2147483648,
|
|
// COPP_COMPATIBLE_BUS_TYPE_INTEGRATED = -2147483648, this enum value conflicts with BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD
|
|
};
|
|
pub const OPM_BUS_TYPE_OTHER = OPM_BUS_TYPE.BUS_TYPE_OTHER;
|
|
pub const OPM_BUS_TYPE_PCI = OPM_BUS_TYPE.BUS_TYPE_PCI;
|
|
pub const OPM_BUS_TYPE_PCIX = OPM_BUS_TYPE.BUS_TYPE_PCIX;
|
|
pub const OPM_BUS_TYPE_PCIEXPRESS = OPM_BUS_TYPE.BUS_TYPE_PCIEXPRESS;
|
|
pub const OPM_BUS_TYPE_AGP = OPM_BUS_TYPE.BUS_TYPE_AGP;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE;
|
|
pub const OPM_BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD;
|
|
pub const OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED = OPM_BUS_TYPE.BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD;
|
|
|
|
pub const OPM_DPCP_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
ON = 1,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const OPM_DPCP_OFF = OPM_DPCP_PROTECTION_LEVEL.OFF;
|
|
pub const OPM_DPCP_ON = OPM_DPCP_PROTECTION_LEVEL.ON;
|
|
pub const OPM_DPCP_FORCE_ULONG = OPM_DPCP_PROTECTION_LEVEL.FORCE_ULONG;
|
|
|
|
pub const OPM_HDCP_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
ON = 1,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const OPM_HDCP_OFF = OPM_HDCP_PROTECTION_LEVEL.OFF;
|
|
pub const OPM_HDCP_ON = OPM_HDCP_PROTECTION_LEVEL.ON;
|
|
pub const OPM_HDCP_FORCE_ULONG = OPM_HDCP_PROTECTION_LEVEL.FORCE_ULONG;
|
|
|
|
pub const OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
ON_WITH_NO_TYPE_RESTRICTION = 1,
|
|
ON_WITH_TYPE1_RESTRICTION = 2,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const OPM_TYPE_ENFORCEMENT_HDCP_OFF = OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL.OFF;
|
|
pub const OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_NO_TYPE_RESTRICTION = OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL.ON_WITH_NO_TYPE_RESTRICTION;
|
|
pub const OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_TYPE1_RESTRICTION = OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL.ON_WITH_TYPE1_RESTRICTION;
|
|
pub const OPM_TYPE_ENFORCEMENT_HDCP_FORCE_ULONG = OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL.FORCE_ULONG;
|
|
|
|
pub const OPM_CGMSA = enum(i32) {
|
|
OFF = 0,
|
|
COPY_FREELY = 1,
|
|
COPY_NO_MORE = 2,
|
|
COPY_ONE_GENERATION = 3,
|
|
COPY_NEVER = 4,
|
|
REDISTRIBUTION_CONTROL_REQUIRED = 8,
|
|
};
|
|
pub const OPM_CGMSA_OFF = OPM_CGMSA.OFF;
|
|
pub const OPM_CGMSA_COPY_FREELY = OPM_CGMSA.COPY_FREELY;
|
|
pub const OPM_CGMSA_COPY_NO_MORE = OPM_CGMSA.COPY_NO_MORE;
|
|
pub const OPM_CGMSA_COPY_ONE_GENERATION = OPM_CGMSA.COPY_ONE_GENERATION;
|
|
pub const OPM_CGMSA_COPY_NEVER = OPM_CGMSA.COPY_NEVER;
|
|
pub const OPM_CGMSA_REDISTRIBUTION_CONTROL_REQUIRED = OPM_CGMSA.REDISTRIBUTION_CONTROL_REQUIRED;
|
|
|
|
pub const OPM_ACP_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
LEVEL_ONE = 1,
|
|
LEVEL_TWO = 2,
|
|
LEVEL_THREE = 3,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const OPM_ACP_OFF = OPM_ACP_PROTECTION_LEVEL.OFF;
|
|
pub const OPM_ACP_LEVEL_ONE = OPM_ACP_PROTECTION_LEVEL.LEVEL_ONE;
|
|
pub const OPM_ACP_LEVEL_TWO = OPM_ACP_PROTECTION_LEVEL.LEVEL_TWO;
|
|
pub const OPM_ACP_LEVEL_THREE = OPM_ACP_PROTECTION_LEVEL.LEVEL_THREE;
|
|
pub const OPM_ACP_FORCE_ULONG = OPM_ACP_PROTECTION_LEVEL.FORCE_ULONG;
|
|
|
|
pub const OPM_PROTECTION_TYPE = enum(i32) {
|
|
OTHER = -2147483648,
|
|
NONE = 0,
|
|
COPP_COMPATIBLE_HDCP = 1,
|
|
ACP = 2,
|
|
CGMSA = 4,
|
|
HDCP = 8,
|
|
DPCP = 16,
|
|
TYPE_ENFORCEMENT_HDCP = 32,
|
|
};
|
|
pub const OPM_PROTECTION_TYPE_OTHER = OPM_PROTECTION_TYPE.OTHER;
|
|
pub const OPM_PROTECTION_TYPE_NONE = OPM_PROTECTION_TYPE.NONE;
|
|
pub const OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP = OPM_PROTECTION_TYPE.COPP_COMPATIBLE_HDCP;
|
|
pub const OPM_PROTECTION_TYPE_ACP = OPM_PROTECTION_TYPE.ACP;
|
|
pub const OPM_PROTECTION_TYPE_CGMSA = OPM_PROTECTION_TYPE.CGMSA;
|
|
pub const OPM_PROTECTION_TYPE_HDCP = OPM_PROTECTION_TYPE.HDCP;
|
|
pub const OPM_PROTECTION_TYPE_DPCP = OPM_PROTECTION_TYPE.DPCP;
|
|
pub const OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP = OPM_PROTECTION_TYPE.TYPE_ENFORCEMENT_HDCP;
|
|
|
|
pub const OPM_PROTECTION_STANDARD_TYPE = enum(u32) {
|
|
OTHER = 2147483648,
|
|
NONE = 0,
|
|
IEC61880_525I = 1,
|
|
IEC61880_2_525I = 2,
|
|
IEC62375_625P = 4,
|
|
EIA608B_525 = 8,
|
|
EN300294_625I = 16,
|
|
CEA805A_TYPEA_525P = 32,
|
|
CEA805A_TYPEA_750P = 64,
|
|
CEA805A_TYPEA_1125I = 128,
|
|
CEA805A_TYPEB_525P = 256,
|
|
CEA805A_TYPEB_750P = 512,
|
|
CEA805A_TYPEB_1125I = 1024,
|
|
ARIBTRB15_525I = 2048,
|
|
ARIBTRB15_525P = 4096,
|
|
ARIBTRB15_750P = 8192,
|
|
ARIBTRB15_1125I = 16384,
|
|
};
|
|
pub const OPM_PROTECTION_STANDARD_OTHER = OPM_PROTECTION_STANDARD_TYPE.OTHER;
|
|
pub const OPM_PROTECTION_STANDARD_NONE = OPM_PROTECTION_STANDARD_TYPE.NONE;
|
|
pub const OPM_PROTECTION_STANDARD_IEC61880_525I = OPM_PROTECTION_STANDARD_TYPE.IEC61880_525I;
|
|
pub const OPM_PROTECTION_STANDARD_IEC61880_2_525I = OPM_PROTECTION_STANDARD_TYPE.IEC61880_2_525I;
|
|
pub const OPM_PROTECTION_STANDARD_IEC62375_625P = OPM_PROTECTION_STANDARD_TYPE.IEC62375_625P;
|
|
pub const OPM_PROTECTION_STANDARD_EIA608B_525 = OPM_PROTECTION_STANDARD_TYPE.EIA608B_525;
|
|
pub const OPM_PROTECTION_STANDARD_EN300294_625I = OPM_PROTECTION_STANDARD_TYPE.EN300294_625I;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEA_525P = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEA_525P;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEA_750P = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEA_750P;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEA_1125I = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEA_1125I;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEB_525P = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEB_525P;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEB_750P = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEB_750P;
|
|
pub const OPM_PROTECTION_STANDARD_CEA805A_TYPEB_1125I = OPM_PROTECTION_STANDARD_TYPE.CEA805A_TYPEB_1125I;
|
|
pub const OPM_PROTECTION_STANDARD_ARIBTRB15_525I = OPM_PROTECTION_STANDARD_TYPE.ARIBTRB15_525I;
|
|
pub const OPM_PROTECTION_STANDARD_ARIBTRB15_525P = OPM_PROTECTION_STANDARD_TYPE.ARIBTRB15_525P;
|
|
pub const OPM_PROTECTION_STANDARD_ARIBTRB15_750P = OPM_PROTECTION_STANDARD_TYPE.ARIBTRB15_750P;
|
|
pub const OPM_PROTECTION_STANDARD_ARIBTRB15_1125I = OPM_PROTECTION_STANDARD_TYPE.ARIBTRB15_1125I;
|
|
|
|
pub const OPM_IMAGE_ASPECT_RATIO_EN300294 = enum(i32) {
|
|
EN300294_FULL_FORMAT_4_BY_3 = 0,
|
|
EN300294_BOX_14_BY_9_CENTER = 1,
|
|
EN300294_BOX_14_BY_9_TOP = 2,
|
|
EN300294_BOX_16_BY_9_CENTER = 3,
|
|
EN300294_BOX_16_BY_9_TOP = 4,
|
|
EN300294_BOX_GT_16_BY_9_CENTER = 5,
|
|
EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER = 6,
|
|
EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC = 7,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3 = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_FULL_FORMAT_4_BY_3;
|
|
pub const OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_BOX_14_BY_9_CENTER;
|
|
pub const OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_BOX_14_BY_9_TOP;
|
|
pub const OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_BOX_16_BY_9_CENTER;
|
|
pub const OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_BOX_16_BY_9_TOP;
|
|
pub const OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_BOX_GT_16_BY_9_CENTER;
|
|
pub const OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER;
|
|
pub const OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC = OPM_IMAGE_ASPECT_RATIO_EN300294.EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC;
|
|
pub const OPM_ASPECT_RATIO_FORCE_ULONG = OPM_IMAGE_ASPECT_RATIO_EN300294.FORCE_ULONG;
|
|
|
|
pub const OPM_RANDOM_NUMBER = extern struct {
|
|
abRandomNumber: [16]u8,
|
|
};
|
|
|
|
pub const OPM_OMAC = extern struct {
|
|
abOMAC: [16]u8,
|
|
};
|
|
|
|
pub const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS = extern struct {
|
|
abEncryptedInitializationParameters: [256]u8,
|
|
};
|
|
|
|
pub const OPM_GET_INFO_PARAMETERS = extern struct {
|
|
omac: OPM_OMAC align(1),
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
guidInformation: Guid align(1),
|
|
ulSequenceNumber: u32 align(1),
|
|
cbParametersSize: u32 align(1),
|
|
abParameters: [4056]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
guidInformation: Guid align(1),
|
|
ulSequenceNumber: u32 align(1),
|
|
cbParametersSize: u32 align(1),
|
|
abParameters: [4056]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_HDCP_KEY_SELECTION_VECTOR = extern struct {
|
|
abKeySelectionVector: [5]u8,
|
|
};
|
|
|
|
pub const OPM_CONNECTED_HDCP_DEVICE_INFORMATION = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
ulStatusFlags: u32 align(1),
|
|
ulHDCPFlags: u32 align(1),
|
|
ksvB: OPM_HDCP_KEY_SELECTION_VECTOR align(1),
|
|
Reserved: [11]u8 align(1),
|
|
Reserved2: [16]u8 align(1),
|
|
Reserved3: [16]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_REQUESTED_INFORMATION = extern struct {
|
|
omac: OPM_OMAC align(1),
|
|
cbRequestedInformationSize: u32 align(1),
|
|
abRequestedInformation: [4076]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_STANDARD_INFORMATION = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
ulStatusFlags: u32 align(1),
|
|
ulInformation: u32 align(1),
|
|
ulReserved: u32 align(1),
|
|
ulReserved2: u32 align(1),
|
|
};
|
|
|
|
pub const OPM_ACTUAL_OUTPUT_FORMAT = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
ulStatusFlags: u32 align(1),
|
|
ulDisplayWidth: u32 align(1),
|
|
ulDisplayHeight: u32 align(1),
|
|
dsfSampleInterleaveFormat: DXVA2_SampleFormat align(1),
|
|
d3dFormat: D3DFORMAT align(1),
|
|
ulFrequencyNumerator: u32 align(1),
|
|
ulFrequencyDenominator: u32 align(1),
|
|
};
|
|
|
|
pub const OPM_ACP_AND_CGMSA_SIGNALING = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
ulStatusFlags: u32 align(1),
|
|
ulAvailableTVProtectionStandards: u32 align(1),
|
|
ulActiveTVProtectionStandard: u32 align(1),
|
|
ulReserved: u32 align(1),
|
|
ulAspectRatioValidMask1: u32 align(1),
|
|
ulAspectRatioData1: u32 align(1),
|
|
ulAspectRatioValidMask2: u32 align(1),
|
|
ulAspectRatioData2: u32 align(1),
|
|
ulAspectRatioValidMask3: u32 align(1),
|
|
ulAspectRatioData3: u32 align(1),
|
|
ulReserved2: [4]u32 align(1),
|
|
ulReserved3: [4]u32 align(1),
|
|
};
|
|
|
|
pub const OPM_OUTPUT_ID_DATA = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
ulStatusFlags: u32 align(1),
|
|
OutputId: u64 align(1),
|
|
};
|
|
|
|
pub const OPM_CONFIGURE_PARAMETERS = extern struct {
|
|
omac: OPM_OMAC align(1),
|
|
guidSetting: Guid align(1),
|
|
ulSequenceNumber: u32 align(1),
|
|
cbParametersSize: u32 align(1),
|
|
abParameters: [4056]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_SET_PROTECTION_LEVEL_PARAMETERS = extern struct {
|
|
ulProtectionType: u32 align(1),
|
|
ulProtectionLevel: u32 align(1),
|
|
Reserved: u32 align(1),
|
|
Reserved2: u32 align(1),
|
|
};
|
|
|
|
pub const OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS = extern struct {
|
|
ulNewTVProtectionStandard: u32 align(1),
|
|
ulAspectRatioChangeMask1: u32 align(1),
|
|
ulAspectRatioData1: u32 align(1),
|
|
ulAspectRatioChangeMask2: u32 align(1),
|
|
ulAspectRatioData2: u32 align(1),
|
|
ulAspectRatioChangeMask3: u32 align(1),
|
|
ulAspectRatioData3: u32 align(1),
|
|
ulReserved: [4]u32 align(1),
|
|
ulReserved2: [4]u32 align(1),
|
|
ulReserved3: u32 align(1),
|
|
};
|
|
|
|
pub const OPM_SET_HDCP_SRM_PARAMETERS = extern struct {
|
|
ulSRMVersion: u32 align(1),
|
|
};
|
|
|
|
pub const OPM_GET_CODEC_INFO_PARAMETERS = extern struct {
|
|
cbVerifier: u32 align(1),
|
|
Verifier: [4052]u8 align(1),
|
|
};
|
|
|
|
pub const OPM_GET_CODEC_INFO_INFORMATION = extern struct {
|
|
rnRandomNumber: OPM_RANDOM_NUMBER align(1),
|
|
Merit: u32 align(1),
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IOPMVideoOutput_Value = Guid.initString("0a15159d-41c7-4456-93e1-284cd61d4e8d");
|
|
pub const IID_IOPMVideoOutput = &IID_IOPMVideoOutput_Value;
|
|
pub const IOPMVideoOutput = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
StartInitialization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IOPMVideoOutput,
|
|
prnRandomNumber: ?*OPM_RANDOM_NUMBER,
|
|
ppbCertificate: ?*?*u8,
|
|
pulCertificateLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IOPMVideoOutput,
|
|
prnRandomNumber: ?*OPM_RANDOM_NUMBER,
|
|
ppbCertificate: ?*?*u8,
|
|
pulCertificateLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FinishInitialization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInformation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_GET_INFO_PARAMETERS,
|
|
pRequestedInformation: ?*OPM_REQUESTED_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_GET_INFO_PARAMETERS,
|
|
pRequestedInformation: ?*OPM_REQUESTED_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
COPPCompatibleGetInformation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS,
|
|
pRequestedInformation: ?*OPM_REQUESTED_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS,
|
|
pRequestedInformation: ?*OPM_REQUESTED_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Configure: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_CONFIGURE_PARAMETERS,
|
|
ulAdditionalParametersSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbAdditionalParameters: ?*const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IOPMVideoOutput,
|
|
pParameters: ?*const OPM_CONFIGURE_PARAMETERS,
|
|
ulAdditionalParametersSize: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbAdditionalParameters: ?*const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IOPMVideoOutput_StartInitialization(self: *const T, prnRandomNumber: ?*OPM_RANDOM_NUMBER, ppbCertificate: ?*?*u8, pulCertificateLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IOPMVideoOutput.VTable, @ptrCast(self.vtable)).StartInitialization(@as(*const IOPMVideoOutput, @ptrCast(self)), prnRandomNumber, ppbCertificate, pulCertificateLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IOPMVideoOutput_FinishInitialization(self: *const T, pParameters: ?*const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS) callconv(.Inline) HRESULT {
|
|
return @as(*const IOPMVideoOutput.VTable, @ptrCast(self.vtable)).FinishInitialization(@as(*const IOPMVideoOutput, @ptrCast(self)), pParameters);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IOPMVideoOutput_GetInformation(self: *const T, pParameters: ?*const OPM_GET_INFO_PARAMETERS, pRequestedInformation: ?*OPM_REQUESTED_INFORMATION) callconv(.Inline) HRESULT {
|
|
return @as(*const IOPMVideoOutput.VTable, @ptrCast(self.vtable)).GetInformation(@as(*const IOPMVideoOutput, @ptrCast(self)), pParameters, pRequestedInformation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IOPMVideoOutput_COPPCompatibleGetInformation(self: *const T, pParameters: ?*const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, pRequestedInformation: ?*OPM_REQUESTED_INFORMATION) callconv(.Inline) HRESULT {
|
|
return @as(*const IOPMVideoOutput.VTable, @ptrCast(self.vtable)).COPPCompatibleGetInformation(@as(*const IOPMVideoOutput, @ptrCast(self)), pParameters, pRequestedInformation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IOPMVideoOutput_Configure(self: *const T, pParameters: ?*const OPM_CONFIGURE_PARAMETERS, ulAdditionalParametersSize: u32, pbAdditionalParameters: ?*const u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IOPMVideoOutput.VTable, @ptrCast(self.vtable)).Configure(@as(*const IOPMVideoOutput, @ptrCast(self)), pParameters, ulAdditionalParametersSize, pbAdditionalParameters);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const CLSID_KSPROPSETID_OPMVideoOutput_Value = Guid.initString("06f414bb-f43a-4fe2-a566-774b4c81f0db");
|
|
pub const CLSID_KSPROPSETID_OPMVideoOutput = &CLSID_KSPROPSETID_OPMVideoOutput_Value;
|
|
|
|
pub const KSMETHOD_OPMVIDEOOUTPUT = enum(i32) {
|
|
STARTINITIALIZATION = 0,
|
|
FINISHINITIALIZATION = 1,
|
|
GETINFORMATION = 2,
|
|
};
|
|
pub const KSMETHOD_OPMVIDEOOUTPUT_STARTINITIALIZATION = KSMETHOD_OPMVIDEOOUTPUT.STARTINITIALIZATION;
|
|
pub const KSMETHOD_OPMVIDEOOUTPUT_FINISHINITIALIZATION = KSMETHOD_OPMVIDEOOUTPUT.FINISHINITIALIZATION;
|
|
pub const KSMETHOD_OPMVIDEOOUTPUT_GETINFORMATION = KSMETHOD_OPMVIDEOOUTPUT.GETINFORMATION;
|
|
|
|
pub const MF_ATTRIBUTE_TYPE = enum(i32) {
|
|
UINT32 = 19,
|
|
UINT64 = 21,
|
|
DOUBLE = 5,
|
|
GUID = 72,
|
|
STRING = 31,
|
|
BLOB = 4113,
|
|
IUNKNOWN = 13,
|
|
};
|
|
pub const MF_ATTRIBUTE_UINT32 = MF_ATTRIBUTE_TYPE.UINT32;
|
|
pub const MF_ATTRIBUTE_UINT64 = MF_ATTRIBUTE_TYPE.UINT64;
|
|
pub const MF_ATTRIBUTE_DOUBLE = MF_ATTRIBUTE_TYPE.DOUBLE;
|
|
pub const MF_ATTRIBUTE_GUID = MF_ATTRIBUTE_TYPE.GUID;
|
|
pub const MF_ATTRIBUTE_STRING = MF_ATTRIBUTE_TYPE.STRING;
|
|
pub const MF_ATTRIBUTE_BLOB = MF_ATTRIBUTE_TYPE.BLOB;
|
|
pub const MF_ATTRIBUTE_IUNKNOWN = MF_ATTRIBUTE_TYPE.IUNKNOWN;
|
|
|
|
pub const MF_ATTRIBUTES_MATCH_TYPE = enum(i32) {
|
|
OUR_ITEMS = 0,
|
|
THEIR_ITEMS = 1,
|
|
ALL_ITEMS = 2,
|
|
INTERSECTION = 3,
|
|
SMALLER = 4,
|
|
};
|
|
pub const MF_ATTRIBUTES_MATCH_OUR_ITEMS = MF_ATTRIBUTES_MATCH_TYPE.OUR_ITEMS;
|
|
pub const MF_ATTRIBUTES_MATCH_THEIR_ITEMS = MF_ATTRIBUTES_MATCH_TYPE.THEIR_ITEMS;
|
|
pub const MF_ATTRIBUTES_MATCH_ALL_ITEMS = MF_ATTRIBUTES_MATCH_TYPE.ALL_ITEMS;
|
|
pub const MF_ATTRIBUTES_MATCH_INTERSECTION = MF_ATTRIBUTES_MATCH_TYPE.INTERSECTION;
|
|
pub const MF_ATTRIBUTES_MATCH_SMALLER = MF_ATTRIBUTES_MATCH_TYPE.SMALLER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAttributes_Value = Guid.initString("2cd2d921-c447-44a7-a13c-4adabfc247e3");
|
|
pub const IID_IMFAttributes = &IID_IMFAttributes_Value;
|
|
pub const IMFAttributes = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetItemType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pType: ?*MF_ATTRIBUTE_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pType: ?*MF_ATTRIBUTE_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CompareItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
Value: ?*const PROPVARIANT,
|
|
pbResult: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
Value: ?*const PROPVARIANT,
|
|
pbResult: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Compare: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
pTheirs: ?*IMFAttributes,
|
|
MatchType: MF_ATTRIBUTES_MATCH_TYPE,
|
|
pbResult: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
pTheirs: ?*IMFAttributes,
|
|
MatchType: MF_ATTRIBUTES_MATCH_TYPE,
|
|
pbResult: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUINT32: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
punValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
punValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUINT64: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
punValue: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
punValue: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDouble: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pfValue: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pfValue: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetGUID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pguidValue: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pguidValue: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStringLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetString: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pwszValue: [*:0]u16,
|
|
cchBufSize: u32,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pwszValue: [*:0]u16,
|
|
cchBufSize: u32,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllocatedString: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
ppwszValue: ?*?PWSTR,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
ppwszValue: ?*?PWSTR,
|
|
pcchLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBlobSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBlob: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pBuf: [*:0]u8,
|
|
cbBufSize: u32,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pBuf: [*:0]u8,
|
|
cbBufSize: u32,
|
|
pcbBlobSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllocatedBlob: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
ppBuf: [*]?*u8,
|
|
pcbSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
ppBuf: [*]?*u8,
|
|
pcbSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUnknown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
Value: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
Value: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeleteItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeleteAllItems: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUINT32: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
unValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
unValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUINT64: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
unValue: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
unValue: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDouble: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
fValue: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
fValue: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetGUID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
guidValue: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
guidValue: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetString: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
wszValue: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
wszValue: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBlob: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pBuf: [*:0]const u8,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pBuf: [*:0]const u8,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUnknown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
guidKey: ?*const Guid,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
LockStore: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockStore: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
pcItems: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
pcItems: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetItemByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
unIndex: u32,
|
|
pguidKey: ?*Guid,
|
|
pValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
unIndex: u32,
|
|
pguidKey: ?*Guid,
|
|
pValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CopyAllItems: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAttributes,
|
|
pDest: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAttributes,
|
|
pDest: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetItem(self: *const T, guidKey: ?*const Guid, pValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetItem(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetItemType(self: *const T, guidKey: ?*const Guid, pType: ?*MF_ATTRIBUTE_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetItemType(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_CompareItem(self: *const T, guidKey: ?*const Guid, Value: ?*const PROPVARIANT, pbResult: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).CompareItem(@as(*const IMFAttributes, @ptrCast(self)), guidKey, Value, pbResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_Compare(self: *const T, pTheirs: ?*IMFAttributes, MatchType: MF_ATTRIBUTES_MATCH_TYPE, pbResult: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).Compare(@as(*const IMFAttributes, @ptrCast(self)), pTheirs, MatchType, pbResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetUINT32(self: *const T, guidKey: ?*const Guid, punValue: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetUINT32(@as(*const IMFAttributes, @ptrCast(self)), guidKey, punValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetUINT64(self: *const T, guidKey: ?*const Guid, punValue: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetUINT64(@as(*const IMFAttributes, @ptrCast(self)), guidKey, punValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetDouble(self: *const T, guidKey: ?*const Guid, pfValue: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetDouble(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pfValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetGUID(self: *const T, guidKey: ?*const Guid, pguidValue: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetGUID(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pguidValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetStringLength(self: *const T, guidKey: ?*const Guid, pcchLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetStringLength(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pcchLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetString(self: *const T, guidKey: ?*const Guid, pwszValue: [*:0]u16, cchBufSize: u32, pcchLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetString(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pwszValue, cchBufSize, pcchLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetAllocatedString(self: *const T, guidKey: ?*const Guid, ppwszValue: ?*?PWSTR, pcchLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetAllocatedString(@as(*const IMFAttributes, @ptrCast(self)), guidKey, ppwszValue, pcchLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetBlobSize(self: *const T, guidKey: ?*const Guid, pcbBlobSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetBlobSize(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pcbBlobSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetBlob(self: *const T, guidKey: ?*const Guid, pBuf: [*:0]u8, cbBufSize: u32, pcbBlobSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetBlob(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pBuf, cbBufSize, pcbBlobSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetAllocatedBlob(self: *const T, guidKey: ?*const Guid, ppBuf: [*]?*u8, pcbSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetAllocatedBlob(@as(*const IMFAttributes, @ptrCast(self)), guidKey, ppBuf, pcbSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetUnknown(self: *const T, guidKey: ?*const Guid, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetUnknown(@as(*const IMFAttributes, @ptrCast(self)), guidKey, riid, ppv);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetItem(self: *const T, guidKey: ?*const Guid, Value: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetItem(@as(*const IMFAttributes, @ptrCast(self)), guidKey, Value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_DeleteItem(self: *const T, guidKey: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).DeleteItem(@as(*const IMFAttributes, @ptrCast(self)), guidKey);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_DeleteAllItems(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).DeleteAllItems(@as(*const IMFAttributes, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetUINT32(self: *const T, guidKey: ?*const Guid, unValue: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetUINT32(@as(*const IMFAttributes, @ptrCast(self)), guidKey, unValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetUINT64(self: *const T, guidKey: ?*const Guid, unValue: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetUINT64(@as(*const IMFAttributes, @ptrCast(self)), guidKey, unValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetDouble(self: *const T, guidKey: ?*const Guid, fValue: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetDouble(@as(*const IMFAttributes, @ptrCast(self)), guidKey, fValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetGUID(self: *const T, guidKey: ?*const Guid, guidValue: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetGUID(@as(*const IMFAttributes, @ptrCast(self)), guidKey, guidValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetString(self: *const T, guidKey: ?*const Guid, wszValue: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetString(@as(*const IMFAttributes, @ptrCast(self)), guidKey, wszValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetBlob(self: *const T, guidKey: ?*const Guid, pBuf: [*:0]const u8, cbBufSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetBlob(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pBuf, cbBufSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_SetUnknown(self: *const T, guidKey: ?*const Guid, pUnknown: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).SetUnknown(@as(*const IMFAttributes, @ptrCast(self)), guidKey, pUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_LockStore(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).LockStore(@as(*const IMFAttributes, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_UnlockStore(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).UnlockStore(@as(*const IMFAttributes, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetCount(self: *const T, pcItems: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IMFAttributes, @ptrCast(self)), pcItems);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_GetItemByIndex(self: *const T, unIndex: u32, pguidKey: ?*Guid, pValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).GetItemByIndex(@as(*const IMFAttributes, @ptrCast(self)), unIndex, pguidKey, pValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAttributes_CopyAllItems(self: *const T, pDest: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAttributes.VTable, @ptrCast(self.vtable)).CopyAllItems(@as(*const IMFAttributes, @ptrCast(self)), pDest);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_ATTRIBUTE_SERIALIZE_OPTIONS = enum(i32) {
|
|
F = 1,
|
|
};
|
|
pub const MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = MF_ATTRIBUTE_SERIALIZE_OPTIONS.F;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaBuffer_Value = Guid.initString("045fa593-8799-42b8-bc8d-8968c6453507");
|
|
pub const IID_IMFMediaBuffer = &IID_IMFMediaBuffer_Value;
|
|
pub const IMFMediaBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Lock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaBuffer,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
ppbBuffer: ?*?*u8,
|
|
pcbMaxLength: ?*u32,
|
|
pcbCurrentLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaBuffer,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
ppbBuffer: ?*?*u8,
|
|
pcbMaxLength: ?*u32,
|
|
pcbCurrentLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Unlock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaBuffer,
|
|
pcbCurrentLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaBuffer,
|
|
pcbCurrentLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaBuffer,
|
|
cbCurrentLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaBuffer,
|
|
cbCurrentLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMaxLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaBuffer,
|
|
pcbMaxLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaBuffer,
|
|
pcbMaxLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaBuffer_Lock(self: *const T, ppbBuffer: ?*?*u8, pcbMaxLength: ?*u32, pcbCurrentLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaBuffer.VTable, @ptrCast(self.vtable)).Lock(@as(*const IMFMediaBuffer, @ptrCast(self)), ppbBuffer, pcbMaxLength, pcbCurrentLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaBuffer_Unlock(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaBuffer.VTable, @ptrCast(self.vtable)).Unlock(@as(*const IMFMediaBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaBuffer_GetCurrentLength(self: *const T, pcbCurrentLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaBuffer.VTable, @ptrCast(self.vtable)).GetCurrentLength(@as(*const IMFMediaBuffer, @ptrCast(self)), pcbCurrentLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaBuffer_SetCurrentLength(self: *const T, cbCurrentLength: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaBuffer.VTable, @ptrCast(self.vtable)).SetCurrentLength(@as(*const IMFMediaBuffer, @ptrCast(self)), cbCurrentLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaBuffer_GetMaxLength(self: *const T, pcbMaxLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaBuffer.VTable, @ptrCast(self.vtable)).GetMaxLength(@as(*const IMFMediaBuffer, @ptrCast(self)), pcbMaxLength);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSample_Value = Guid.initString("c40a00f2-b93a-4d80-ae8c-5a1c634f58e4");
|
|
pub const IID_IMFSample = &IID_IMFSample_Value;
|
|
pub const IMFSample = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetSampleFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
pdwSampleFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
pdwSampleFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
dwSampleFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
dwSampleFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSampleTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
phnsSampleTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
phnsSampleTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
hnsSampleTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
hnsSampleTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSampleDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
phnsSampleDuration: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
phnsSampleDuration: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
hnsSampleDuration: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
hnsSampleDuration: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBufferCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
pdwBufferCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
pdwBufferCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBufferByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
dwIndex: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
dwIndex: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ConvertToContiguousBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
pBuffer: ?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
pBuffer: ?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveBufferByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
dwIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
dwIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllBuffers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTotalLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
pcbTotalLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
pcbTotalLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CopyToBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSample,
|
|
pBuffer: ?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSample,
|
|
pBuffer: ?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetSampleFlags(self: *const T, pdwSampleFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetSampleFlags(@as(*const IMFSample, @ptrCast(self)), pdwSampleFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_SetSampleFlags(self: *const T, dwSampleFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).SetSampleFlags(@as(*const IMFSample, @ptrCast(self)), dwSampleFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetSampleTime(self: *const T, phnsSampleTime: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetSampleTime(@as(*const IMFSample, @ptrCast(self)), phnsSampleTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_SetSampleTime(self: *const T, hnsSampleTime: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).SetSampleTime(@as(*const IMFSample, @ptrCast(self)), hnsSampleTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetSampleDuration(self: *const T, phnsSampleDuration: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetSampleDuration(@as(*const IMFSample, @ptrCast(self)), phnsSampleDuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_SetSampleDuration(self: *const T, hnsSampleDuration: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).SetSampleDuration(@as(*const IMFSample, @ptrCast(self)), hnsSampleDuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetBufferCount(self: *const T, pdwBufferCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetBufferCount(@as(*const IMFSample, @ptrCast(self)), pdwBufferCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetBufferByIndex(self: *const T, dwIndex: u32, ppBuffer: ?*?*IMFMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetBufferByIndex(@as(*const IMFSample, @ptrCast(self)), dwIndex, ppBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_ConvertToContiguousBuffer(self: *const T, ppBuffer: ?*?*IMFMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).ConvertToContiguousBuffer(@as(*const IMFSample, @ptrCast(self)), ppBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_AddBuffer(self: *const T, pBuffer: ?*IMFMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).AddBuffer(@as(*const IMFSample, @ptrCast(self)), pBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_RemoveBufferByIndex(self: *const T, dwIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).RemoveBufferByIndex(@as(*const IMFSample, @ptrCast(self)), dwIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_RemoveAllBuffers(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).RemoveAllBuffers(@as(*const IMFSample, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_GetTotalLength(self: *const T, pcbTotalLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).GetTotalLength(@as(*const IMFSample, @ptrCast(self)), pcbTotalLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSample_CopyToBuffer(self: *const T, pBuffer: ?*IMFMediaBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSample.VTable, @ptrCast(self.vtable)).CopyToBuffer(@as(*const IMFSample, @ptrCast(self)), pBuffer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMF2DBuffer_Value = Guid.initString("7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb");
|
|
pub const IID_IMF2DBuffer = &IID_IMF2DBuffer_Value;
|
|
pub const IMF2DBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Lock2D: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
ppbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
ppbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Unlock2D: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetScanline0AndPitch: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
pbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
pbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsContiguousFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
pfIsContiguous: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
pfIsContiguous: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetContiguousLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
pcbLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
pcbLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ContiguousCopyTo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbDestBuffer: ?*u8,
|
|
cbDestBuffer: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbDestBuffer: ?*u8,
|
|
cbDestBuffer: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ContiguousCopyFrom: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbSrcBuffer: ?*const u8,
|
|
cbSrcBuffer: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbSrcBuffer: ?*const u8,
|
|
cbSrcBuffer: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_Lock2D(self: *const T, ppbScanline0: ?*?*u8, plPitch: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).Lock2D(@as(*const IMF2DBuffer, @ptrCast(self)), ppbScanline0, plPitch);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_Unlock2D(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).Unlock2D(@as(*const IMF2DBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_GetScanline0AndPitch(self: *const T, pbScanline0: ?*?*u8, plPitch: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).GetScanline0AndPitch(@as(*const IMF2DBuffer, @ptrCast(self)), pbScanline0, plPitch);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_IsContiguousFormat(self: *const T, pfIsContiguous: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).IsContiguousFormat(@as(*const IMF2DBuffer, @ptrCast(self)), pfIsContiguous);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_GetContiguousLength(self: *const T, pcbLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).GetContiguousLength(@as(*const IMF2DBuffer, @ptrCast(self)), pcbLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_ContiguousCopyTo(self: *const T, pbDestBuffer: ?*u8, cbDestBuffer: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).ContiguousCopyTo(@as(*const IMF2DBuffer, @ptrCast(self)), pbDestBuffer, cbDestBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer_ContiguousCopyFrom(self: *const T, pbSrcBuffer: ?*const u8, cbSrcBuffer: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer.VTable, @ptrCast(self.vtable)).ContiguousCopyFrom(@as(*const IMF2DBuffer, @ptrCast(self)), pbSrcBuffer, cbSrcBuffer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF2DBuffer_LockFlags = enum(i32) {
|
|
LockTypeMask = 3,
|
|
Read = 1,
|
|
Write = 2,
|
|
// ReadWrite = 3, this enum value conflicts with LockTypeMask
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MF2DBuffer_LockFlags_LockTypeMask = MF2DBuffer_LockFlags.LockTypeMask;
|
|
pub const MF2DBuffer_LockFlags_Read = MF2DBuffer_LockFlags.Read;
|
|
pub const MF2DBuffer_LockFlags_Write = MF2DBuffer_LockFlags.Write;
|
|
pub const MF2DBuffer_LockFlags_ReadWrite = MF2DBuffer_LockFlags.LockTypeMask;
|
|
pub const MF2DBuffer_LockFlags_ForceDWORD = MF2DBuffer_LockFlags.ForceDWORD;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMF2DBuffer2_Value = Guid.initString("33ae5ea6-4316-436f-8ddd-d73d22f829ec");
|
|
pub const IID_IMF2DBuffer2 = &IID_IMF2DBuffer2_Value;
|
|
pub const IMF2DBuffer2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMF2DBuffer.VTable,
|
|
Lock2DSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer2,
|
|
lockFlags: MF2DBuffer_LockFlags,
|
|
ppbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
ppbBufferStart: ?*?*u8,
|
|
pcbBufferLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer2,
|
|
lockFlags: MF2DBuffer_LockFlags,
|
|
ppbScanline0: ?*?*u8,
|
|
plPitch: ?*i32,
|
|
ppbBufferStart: ?*?*u8,
|
|
pcbBufferLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Copy2DTo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMF2DBuffer2,
|
|
pDestBuffer: ?*IMF2DBuffer2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMF2DBuffer2,
|
|
pDestBuffer: ?*IMF2DBuffer2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMF2DBuffer.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer2_Lock2DSize(self: *const T, lockFlags: MF2DBuffer_LockFlags, ppbScanline0: ?*?*u8, plPitch: ?*i32, ppbBufferStart: ?*?*u8, pcbBufferLength: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer2.VTable, @ptrCast(self.vtable)).Lock2DSize(@as(*const IMF2DBuffer2, @ptrCast(self)), lockFlags, ppbScanline0, plPitch, ppbBufferStart, pcbBufferLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMF2DBuffer2_Copy2DTo(self: *const T, pDestBuffer: ?*IMF2DBuffer2) callconv(.Inline) HRESULT {
|
|
return @as(*const IMF2DBuffer2.VTable, @ptrCast(self.vtable)).Copy2DTo(@as(*const IMF2DBuffer2, @ptrCast(self)), pDestBuffer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFDXGIBuffer_Value = Guid.initString("e7174cfa-1c9e-48b1-8866-626226bfc258");
|
|
pub const IID_IMFDXGIBuffer = &IID_IMFDXGIBuffer_Value;
|
|
pub const IMFDXGIBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetResource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIBuffer,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIBuffer,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSubresourceIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIBuffer,
|
|
puSubresource: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIBuffer,
|
|
puSubresource: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUnknown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIBuffer,
|
|
guid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIBuffer,
|
|
guid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUnknown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIBuffer,
|
|
guid: ?*const Guid,
|
|
pUnkData: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIBuffer,
|
|
guid: ?*const Guid,
|
|
pUnkData: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIBuffer_GetResource(self: *const T, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIBuffer.VTable, @ptrCast(self.vtable)).GetResource(@as(*const IMFDXGIBuffer, @ptrCast(self)), riid, ppvObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIBuffer_GetSubresourceIndex(self: *const T, puSubresource: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIBuffer.VTable, @ptrCast(self.vtable)).GetSubresourceIndex(@as(*const IMFDXGIBuffer, @ptrCast(self)), puSubresource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIBuffer_GetUnknown(self: *const T, guid: ?*const Guid, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIBuffer.VTable, @ptrCast(self.vtable)).GetUnknown(@as(*const IMFDXGIBuffer, @ptrCast(self)), guid, riid, ppvObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIBuffer_SetUnknown(self: *const T, guid: ?*const Guid, pUnkData: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIBuffer.VTable, @ptrCast(self.vtable)).SetUnknown(@as(*const IMFDXGIBuffer, @ptrCast(self)), guid, pUnkData);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaType_Value = Guid.initString("44ae0fa8-ea31-4109-8d2e-4cae4997c555");
|
|
pub const IID_IMFMediaType = &IID_IMFMediaType_Value;
|
|
pub const IMFMediaType = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetMajorType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaType,
|
|
pguidMajorType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaType,
|
|
pguidMajorType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsCompressedFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaType,
|
|
pfCompressed: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaType,
|
|
pfCompressed: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsEqual: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaType,
|
|
pIMediaType: ?*IMFMediaType,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaType,
|
|
pIMediaType: ?*IMFMediaType,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRepresentation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaType,
|
|
guidRepresentation: Guid,
|
|
ppvRepresentation: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaType,
|
|
guidRepresentation: Guid,
|
|
ppvRepresentation: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FreeRepresentation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaType,
|
|
guidRepresentation: Guid,
|
|
pvRepresentation: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaType,
|
|
guidRepresentation: Guid,
|
|
pvRepresentation: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaType_GetMajorType(self: *const T, pguidMajorType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaType.VTable, @ptrCast(self.vtable)).GetMajorType(@as(*const IMFMediaType, @ptrCast(self)), pguidMajorType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaType_IsCompressedFormat(self: *const T, pfCompressed: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaType.VTable, @ptrCast(self.vtable)).IsCompressedFormat(@as(*const IMFMediaType, @ptrCast(self)), pfCompressed);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaType_IsEqual(self: *const T, pIMediaType: ?*IMFMediaType, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaType.VTable, @ptrCast(self.vtable)).IsEqual(@as(*const IMFMediaType, @ptrCast(self)), pIMediaType, pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaType_GetRepresentation(self: *const T, guidRepresentation: Guid, ppvRepresentation: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaType.VTable, @ptrCast(self.vtable)).GetRepresentation(@as(*const IMFMediaType, @ptrCast(self)), guidRepresentation, ppvRepresentation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaType_FreeRepresentation(self: *const T, guidRepresentation: Guid, pvRepresentation: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaType.VTable, @ptrCast(self.vtable)).FreeRepresentation(@as(*const IMFMediaType, @ptrCast(self)), guidRepresentation, pvRepresentation);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAudioMediaType_Value = Guid.initString("26a0adc3-ce26-4672-9304-69552edd3faf");
|
|
pub const IID_IMFAudioMediaType = &IID_IMFAudioMediaType_Value;
|
|
pub const IMFAudioMediaType = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaType.VTable,
|
|
GetAudioFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*WAVEFORMATEX,
|
|
else => *const fn(
|
|
self: *const IMFAudioMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*WAVEFORMATEX,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaType.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioMediaType_GetAudioFormat(self: *const T) callconv(.Inline) ?*WAVEFORMATEX {
|
|
return @as(*const IMFAudioMediaType.VTable, @ptrCast(self.vtable)).GetAudioFormat(@as(*const IMFAudioMediaType, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFT_REGISTER_TYPE_INFO = extern struct {
|
|
guidMajorType: Guid,
|
|
guidSubtype: Guid,
|
|
};
|
|
|
|
pub const MFVideoInterlaceMode = enum(i32) {
|
|
Unknown = 0,
|
|
Progressive = 2,
|
|
FieldInterleavedUpperFirst = 3,
|
|
FieldInterleavedLowerFirst = 4,
|
|
FieldSingleUpper = 5,
|
|
FieldSingleLower = 6,
|
|
MixedInterlaceOrProgressive = 7,
|
|
Last = 8,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoInterlace_Unknown = MFVideoInterlaceMode.Unknown;
|
|
pub const MFVideoInterlace_Progressive = MFVideoInterlaceMode.Progressive;
|
|
pub const MFVideoInterlace_FieldInterleavedUpperFirst = MFVideoInterlaceMode.FieldInterleavedUpperFirst;
|
|
pub const MFVideoInterlace_FieldInterleavedLowerFirst = MFVideoInterlaceMode.FieldInterleavedLowerFirst;
|
|
pub const MFVideoInterlace_FieldSingleUpper = MFVideoInterlaceMode.FieldSingleUpper;
|
|
pub const MFVideoInterlace_FieldSingleLower = MFVideoInterlaceMode.FieldSingleLower;
|
|
pub const MFVideoInterlace_MixedInterlaceOrProgressive = MFVideoInterlaceMode.MixedInterlaceOrProgressive;
|
|
pub const MFVideoInterlace_Last = MFVideoInterlaceMode.Last;
|
|
pub const MFVideoInterlace_ForceDWORD = MFVideoInterlaceMode.ForceDWORD;
|
|
|
|
pub const MFVideoTransferFunction = enum(i32) {
|
|
Unknown = 0,
|
|
@"10" = 1,
|
|
@"18" = 2,
|
|
@"20" = 3,
|
|
@"22" = 4,
|
|
@"709" = 5,
|
|
@"240M" = 6,
|
|
sRGB = 7,
|
|
@"28" = 8,
|
|
Log_100 = 9,
|
|
Log_316 = 10,
|
|
@"709_sym" = 11,
|
|
@"2020_const" = 12,
|
|
@"2020" = 13,
|
|
@"26" = 14,
|
|
@"2084" = 15,
|
|
HLG = 16,
|
|
@"10_rel" = 17,
|
|
Last = 18,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoTransFunc_Unknown = MFVideoTransferFunction.Unknown;
|
|
pub const MFVideoTransFunc_10 = MFVideoTransferFunction.@"10";
|
|
pub const MFVideoTransFunc_18 = MFVideoTransferFunction.@"18";
|
|
pub const MFVideoTransFunc_20 = MFVideoTransferFunction.@"20";
|
|
pub const MFVideoTransFunc_22 = MFVideoTransferFunction.@"22";
|
|
pub const MFVideoTransFunc_709 = MFVideoTransferFunction.@"709";
|
|
pub const MFVideoTransFunc_240M = MFVideoTransferFunction.@"240M";
|
|
pub const MFVideoTransFunc_sRGB = MFVideoTransferFunction.sRGB;
|
|
pub const MFVideoTransFunc_28 = MFVideoTransferFunction.@"28";
|
|
pub const MFVideoTransFunc_Log_100 = MFVideoTransferFunction.Log_100;
|
|
pub const MFVideoTransFunc_Log_316 = MFVideoTransferFunction.Log_316;
|
|
pub const MFVideoTransFunc_709_sym = MFVideoTransferFunction.@"709_sym";
|
|
pub const MFVideoTransFunc_2020_const = MFVideoTransferFunction.@"2020_const";
|
|
pub const MFVideoTransFunc_2020 = MFVideoTransferFunction.@"2020";
|
|
pub const MFVideoTransFunc_26 = MFVideoTransferFunction.@"26";
|
|
pub const MFVideoTransFunc_2084 = MFVideoTransferFunction.@"2084";
|
|
pub const MFVideoTransFunc_HLG = MFVideoTransferFunction.HLG;
|
|
pub const MFVideoTransFunc_10_rel = MFVideoTransferFunction.@"10_rel";
|
|
pub const MFVideoTransFunc_Last = MFVideoTransferFunction.Last;
|
|
pub const MFVideoTransFunc_ForceDWORD = MFVideoTransferFunction.ForceDWORD;
|
|
|
|
pub const MFVideoPrimaries = enum(i32) {
|
|
Unknown = 0,
|
|
reserved = 1,
|
|
BT709 = 2,
|
|
BT470_2_SysM = 3,
|
|
BT470_2_SysBG = 4,
|
|
SMPTE170M = 5,
|
|
SMPTE240M = 6,
|
|
EBU3213 = 7,
|
|
SMPTE_C = 8,
|
|
BT2020 = 9,
|
|
XYZ = 10,
|
|
DCI_P3 = 11,
|
|
ACES = 12,
|
|
Last = 13,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoPrimaries_Unknown = MFVideoPrimaries.Unknown;
|
|
pub const MFVideoPrimaries_reserved = MFVideoPrimaries.reserved;
|
|
pub const MFVideoPrimaries_BT709 = MFVideoPrimaries.BT709;
|
|
pub const MFVideoPrimaries_BT470_2_SysM = MFVideoPrimaries.BT470_2_SysM;
|
|
pub const MFVideoPrimaries_BT470_2_SysBG = MFVideoPrimaries.BT470_2_SysBG;
|
|
pub const MFVideoPrimaries_SMPTE170M = MFVideoPrimaries.SMPTE170M;
|
|
pub const MFVideoPrimaries_SMPTE240M = MFVideoPrimaries.SMPTE240M;
|
|
pub const MFVideoPrimaries_EBU3213 = MFVideoPrimaries.EBU3213;
|
|
pub const MFVideoPrimaries_SMPTE_C = MFVideoPrimaries.SMPTE_C;
|
|
pub const MFVideoPrimaries_BT2020 = MFVideoPrimaries.BT2020;
|
|
pub const MFVideoPrimaries_XYZ = MFVideoPrimaries.XYZ;
|
|
pub const MFVideoPrimaries_DCI_P3 = MFVideoPrimaries.DCI_P3;
|
|
pub const MFVideoPrimaries_ACES = MFVideoPrimaries.ACES;
|
|
pub const MFVideoPrimaries_Last = MFVideoPrimaries.Last;
|
|
pub const MFVideoPrimaries_ForceDWORD = MFVideoPrimaries.ForceDWORD;
|
|
|
|
pub const MFVideoLighting = enum(i32) {
|
|
Unknown = 0,
|
|
bright = 1,
|
|
office = 2,
|
|
dim = 3,
|
|
dark = 4,
|
|
Last = 5,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoLighting_Unknown = MFVideoLighting.Unknown;
|
|
pub const MFVideoLighting_bright = MFVideoLighting.bright;
|
|
pub const MFVideoLighting_office = MFVideoLighting.office;
|
|
pub const MFVideoLighting_dim = MFVideoLighting.dim;
|
|
pub const MFVideoLighting_dark = MFVideoLighting.dark;
|
|
pub const MFVideoLighting_Last = MFVideoLighting.Last;
|
|
pub const MFVideoLighting_ForceDWORD = MFVideoLighting.ForceDWORD;
|
|
|
|
pub const MFVideoTransferMatrix = enum(i32) {
|
|
Unknown = 0,
|
|
BT709 = 1,
|
|
BT601 = 2,
|
|
SMPTE240M = 3,
|
|
BT2020_10 = 4,
|
|
BT2020_12 = 5,
|
|
Last = 6,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoTransferMatrix_Unknown = MFVideoTransferMatrix.Unknown;
|
|
pub const MFVideoTransferMatrix_BT709 = MFVideoTransferMatrix.BT709;
|
|
pub const MFVideoTransferMatrix_BT601 = MFVideoTransferMatrix.BT601;
|
|
pub const MFVideoTransferMatrix_SMPTE240M = MFVideoTransferMatrix.SMPTE240M;
|
|
pub const MFVideoTransferMatrix_BT2020_10 = MFVideoTransferMatrix.BT2020_10;
|
|
pub const MFVideoTransferMatrix_BT2020_12 = MFVideoTransferMatrix.BT2020_12;
|
|
pub const MFVideoTransferMatrix_Last = MFVideoTransferMatrix.Last;
|
|
pub const MFVideoTransferMatrix_ForceDWORD = MFVideoTransferMatrix.ForceDWORD;
|
|
|
|
pub const MFVideoChromaSubsampling = enum(i32) {
|
|
Unknown = 0,
|
|
ProgressiveChroma = 8,
|
|
Horizontally_Cosited = 4,
|
|
Vertically_Cosited = 2,
|
|
Vertically_AlignedChromaPlanes = 1,
|
|
MPEG2 = 5,
|
|
// MPEG1 = 1, this enum value conflicts with Vertically_AlignedChromaPlanes
|
|
DV_PAL = 6,
|
|
Cosited = 7,
|
|
// Last = 8, this enum value conflicts with ProgressiveChroma
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFVideoChromaSubsampling_Unknown = MFVideoChromaSubsampling.Unknown;
|
|
pub const MFVideoChromaSubsampling_ProgressiveChroma = MFVideoChromaSubsampling.ProgressiveChroma;
|
|
pub const MFVideoChromaSubsampling_Horizontally_Cosited = MFVideoChromaSubsampling.Horizontally_Cosited;
|
|
pub const MFVideoChromaSubsampling_Vertically_Cosited = MFVideoChromaSubsampling.Vertically_Cosited;
|
|
pub const MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = MFVideoChromaSubsampling.Vertically_AlignedChromaPlanes;
|
|
pub const MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling.MPEG2;
|
|
pub const MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling.Vertically_AlignedChromaPlanes;
|
|
pub const MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling.DV_PAL;
|
|
pub const MFVideoChromaSubsampling_Cosited = MFVideoChromaSubsampling.Cosited;
|
|
pub const MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling.ProgressiveChroma;
|
|
pub const MFVideoChromaSubsampling_ForceDWORD = MFVideoChromaSubsampling.ForceDWORD;
|
|
|
|
pub const MFNominalRange = enum(i32) {
|
|
Unknown = 0,
|
|
Normal = 1,
|
|
Wide = 2,
|
|
// @"0_255" = 1, this enum value conflicts with Normal
|
|
// @"16_235" = 2, this enum value conflicts with Wide
|
|
@"48_208" = 3,
|
|
@"64_127" = 4,
|
|
Last = 5,
|
|
ForceDWORD = 2147483647,
|
|
};
|
|
pub const MFNominalRange_Unknown = MFNominalRange.Unknown;
|
|
pub const MFNominalRange_Normal = MFNominalRange.Normal;
|
|
pub const MFNominalRange_Wide = MFNominalRange.Wide;
|
|
pub const MFNominalRange_0_255 = MFNominalRange.Normal;
|
|
pub const MFNominalRange_16_235 = MFNominalRange.Wide;
|
|
pub const MFNominalRange_48_208 = MFNominalRange.@"48_208";
|
|
pub const MFNominalRange_64_127 = MFNominalRange.@"64_127";
|
|
pub const MFNominalRange_Last = MFNominalRange.Last;
|
|
pub const MFNominalRange_ForceDWORD = MFNominalRange.ForceDWORD;
|
|
|
|
pub const MFVideoFlags = enum(i32) {
|
|
_PAD_TO_Mask = 3,
|
|
_PAD_TO_None = 0,
|
|
_PAD_TO_4x3 = 1,
|
|
_PAD_TO_16x9 = 2,
|
|
_SrcContentHintMask = 28,
|
|
// _SrcContentHintNone = 0, this enum value conflicts with _PAD_TO_None
|
|
_SrcContentHint16x9 = 4,
|
|
_SrcContentHint235_1 = 8,
|
|
_AnalogProtected = 32,
|
|
_DigitallyProtected = 64,
|
|
_ProgressiveContent = 128,
|
|
_FieldRepeatCountMask = 1792,
|
|
// _FieldRepeatCountShift = 8, this enum value conflicts with _SrcContentHint235_1
|
|
_ProgressiveSeqReset = 2048,
|
|
_PanScanEnabled = 131072,
|
|
_LowerFieldFirst = 262144,
|
|
_BottomUpLinearRep = 524288,
|
|
s_DXVASurface = 1048576,
|
|
s_RenderTargetSurface = 4194304,
|
|
s_ForceQWORD = 2147483647,
|
|
};
|
|
pub const MFVideoFlag_PAD_TO_Mask = MFVideoFlags._PAD_TO_Mask;
|
|
pub const MFVideoFlag_PAD_TO_None = MFVideoFlags._PAD_TO_None;
|
|
pub const MFVideoFlag_PAD_TO_4x3 = MFVideoFlags._PAD_TO_4x3;
|
|
pub const MFVideoFlag_PAD_TO_16x9 = MFVideoFlags._PAD_TO_16x9;
|
|
pub const MFVideoFlag_SrcContentHintMask = MFVideoFlags._SrcContentHintMask;
|
|
pub const MFVideoFlag_SrcContentHintNone = MFVideoFlags._PAD_TO_None;
|
|
pub const MFVideoFlag_SrcContentHint16x9 = MFVideoFlags._SrcContentHint16x9;
|
|
pub const MFVideoFlag_SrcContentHint235_1 = MFVideoFlags._SrcContentHint235_1;
|
|
pub const MFVideoFlag_AnalogProtected = MFVideoFlags._AnalogProtected;
|
|
pub const MFVideoFlag_DigitallyProtected = MFVideoFlags._DigitallyProtected;
|
|
pub const MFVideoFlag_ProgressiveContent = MFVideoFlags._ProgressiveContent;
|
|
pub const MFVideoFlag_FieldRepeatCountMask = MFVideoFlags._FieldRepeatCountMask;
|
|
pub const MFVideoFlag_FieldRepeatCountShift = MFVideoFlags._SrcContentHint235_1;
|
|
pub const MFVideoFlag_ProgressiveSeqReset = MFVideoFlags._ProgressiveSeqReset;
|
|
pub const MFVideoFlag_PanScanEnabled = MFVideoFlags._PanScanEnabled;
|
|
pub const MFVideoFlag_LowerFieldFirst = MFVideoFlags._LowerFieldFirst;
|
|
pub const MFVideoFlag_BottomUpLinearRep = MFVideoFlags._BottomUpLinearRep;
|
|
pub const MFVideoFlags_DXVASurface = MFVideoFlags.s_DXVASurface;
|
|
pub const MFVideoFlags_RenderTargetSurface = MFVideoFlags.s_RenderTargetSurface;
|
|
pub const MFVideoFlags_ForceQWORD = MFVideoFlags.s_ForceQWORD;
|
|
|
|
pub const MFRatio = extern struct {
|
|
Numerator: u32,
|
|
Denominator: u32,
|
|
};
|
|
|
|
pub const MFOffset = extern struct {
|
|
fract: u16,
|
|
value: i16,
|
|
};
|
|
|
|
pub const MFVideoArea = extern struct {
|
|
OffsetX: MFOffset,
|
|
OffsetY: MFOffset,
|
|
Area: SIZE,
|
|
};
|
|
|
|
pub const MFVideoInfo = extern struct {
|
|
dwWidth: u32,
|
|
dwHeight: u32,
|
|
PixelAspectRatio: MFRatio,
|
|
SourceChromaSubsampling: MFVideoChromaSubsampling,
|
|
InterlaceMode: MFVideoInterlaceMode,
|
|
TransferFunction: MFVideoTransferFunction,
|
|
ColorPrimaries: MFVideoPrimaries,
|
|
TransferMatrix: MFVideoTransferMatrix,
|
|
SourceLighting: MFVideoLighting,
|
|
FramesPerSecond: MFRatio,
|
|
NominalRange: MFNominalRange,
|
|
GeometricAperture: MFVideoArea,
|
|
MinimumDisplayAperture: MFVideoArea,
|
|
PanScanAperture: MFVideoArea,
|
|
VideoFlags: u64,
|
|
};
|
|
|
|
pub const MFAYUVSample = extern struct {
|
|
bCrValue: u8,
|
|
bCbValue: u8,
|
|
bYValue: u8,
|
|
bSampleAlpha8: u8,
|
|
};
|
|
|
|
pub const MFARGB = extern struct {
|
|
rgbBlue: u8,
|
|
rgbGreen: u8,
|
|
rgbRed: u8,
|
|
rgbAlpha: u8,
|
|
};
|
|
|
|
pub const MFPaletteEntry = extern union {
|
|
ARGB: MFARGB,
|
|
AYCbCr: MFAYUVSample,
|
|
};
|
|
|
|
pub const MFVideoSurfaceInfo = extern struct {
|
|
Format: u32,
|
|
PaletteEntries: u32,
|
|
Palette: [1]MFPaletteEntry,
|
|
};
|
|
|
|
pub const MFVideoCompressedInfo = extern struct {
|
|
AvgBitrate: i64,
|
|
AvgBitErrorRate: i64,
|
|
MaxKeyFrameSpacing: u32,
|
|
};
|
|
|
|
pub const MFVIDEOFORMAT = extern struct {
|
|
dwSize: u32,
|
|
videoInfo: MFVideoInfo,
|
|
guidFormat: Guid,
|
|
compressedInfo: MFVideoCompressedInfo,
|
|
surfaceInfo: MFVideoSurfaceInfo,
|
|
};
|
|
|
|
pub const MFStandardVideoFormat = enum(i32) {
|
|
reserved = 0,
|
|
NTSC = 1,
|
|
PAL = 2,
|
|
DVD_NTSC = 3,
|
|
DVD_PAL = 4,
|
|
DV_PAL = 5,
|
|
DV_NTSC = 6,
|
|
ATSC_SD480i = 7,
|
|
ATSC_HD1080i = 8,
|
|
ATSC_HD720p = 9,
|
|
};
|
|
pub const MFStdVideoFormat_reserved = MFStandardVideoFormat.reserved;
|
|
pub const MFStdVideoFormat_NTSC = MFStandardVideoFormat.NTSC;
|
|
pub const MFStdVideoFormat_PAL = MFStandardVideoFormat.PAL;
|
|
pub const MFStdVideoFormat_DVD_NTSC = MFStandardVideoFormat.DVD_NTSC;
|
|
pub const MFStdVideoFormat_DVD_PAL = MFStandardVideoFormat.DVD_PAL;
|
|
pub const MFStdVideoFormat_DV_PAL = MFStandardVideoFormat.DV_PAL;
|
|
pub const MFStdVideoFormat_DV_NTSC = MFStandardVideoFormat.DV_NTSC;
|
|
pub const MFStdVideoFormat_ATSC_SD480i = MFStandardVideoFormat.ATSC_SD480i;
|
|
pub const MFStdVideoFormat_ATSC_HD1080i = MFStandardVideoFormat.ATSC_HD1080i;
|
|
pub const MFStdVideoFormat_ATSC_HD720p = MFStandardVideoFormat.ATSC_HD720p;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoMediaType_Value = Guid.initString("b99f381f-a8f9-47a2-a5af-ca3a225a3890");
|
|
pub const IID_IMFVideoMediaType = &IID_IMFVideoMediaType_Value;
|
|
pub const IMFVideoMediaType = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaType.VTable,
|
|
GetVideoFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*MFVIDEOFORMAT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*MFVIDEOFORMAT,
|
|
},
|
|
GetVideoRepresentation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMediaType,
|
|
guidRepresentation: Guid,
|
|
ppvRepresentation: ?*?*anyopaque,
|
|
lStride: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMediaType,
|
|
guidRepresentation: Guid,
|
|
ppvRepresentation: ?*?*anyopaque,
|
|
lStride: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaType.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMediaType_GetVideoFormat(self: *const T) callconv(.Inline) ?*MFVIDEOFORMAT {
|
|
return @as(*const IMFVideoMediaType.VTable, @ptrCast(self.vtable)).GetVideoFormat(@as(*const IMFVideoMediaType, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMediaType_GetVideoRepresentation(self: *const T, guidRepresentation: Guid, ppvRepresentation: ?*?*anyopaque, lStride: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMediaType.VTable, @ptrCast(self.vtable)).GetVideoRepresentation(@as(*const IMFVideoMediaType, @ptrCast(self)), guidRepresentation, ppvRepresentation, lStride);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAsyncResult_Value = Guid.initString("ac6b7889-0740-4d51-8619-905994a55cc6");
|
|
pub const IID_IMFAsyncResult = &IID_IMFAsyncResult_Value;
|
|
pub const IMFAsyncResult = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncResult,
|
|
ppunkState: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncResult,
|
|
ppunkState: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncResult,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncResult,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncResult,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncResult,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStateNoAddRef: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IUnknown,
|
|
else => *const fn(
|
|
self: *const IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IUnknown,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncResult_GetState(self: *const T, ppunkState: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncResult.VTable, @ptrCast(self.vtable)).GetState(@as(*const IMFAsyncResult, @ptrCast(self)), ppunkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncResult_GetStatus(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncResult.VTable, @ptrCast(self.vtable)).GetStatus(@as(*const IMFAsyncResult, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncResult_SetStatus(self: *const T, hrStatus: HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncResult.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IMFAsyncResult, @ptrCast(self)), hrStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncResult_GetObject(self: *const T, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncResult.VTable, @ptrCast(self.vtable)).GetObject(@as(*const IMFAsyncResult, @ptrCast(self)), ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncResult_GetStateNoAddRef(self: *const T) callconv(.Inline) ?*IUnknown {
|
|
return @as(*const IMFAsyncResult.VTable, @ptrCast(self.vtable)).GetStateNoAddRef(@as(*const IMFAsyncResult, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAsyncCallback_Value = Guid.initString("a27003cf-2354-4f2a-8d6a-ab7cff15437e");
|
|
pub const IID_IMFAsyncCallback = &IID_IMFAsyncCallback_Value;
|
|
pub const IMFAsyncCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncCallback,
|
|
pdwFlags: ?*u32,
|
|
pdwQueue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncCallback,
|
|
pdwFlags: ?*u32,
|
|
pdwQueue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Invoke: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncCallback,
|
|
pAsyncResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAsyncCallback,
|
|
pAsyncResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncCallback_GetParameters(self: *const T, pdwFlags: ?*u32, pdwQueue: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncCallback.VTable, @ptrCast(self.vtable)).GetParameters(@as(*const IMFAsyncCallback, @ptrCast(self)), pdwFlags, pdwQueue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncCallback_Invoke(self: *const T, pAsyncResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAsyncCallback.VTable, @ptrCast(self.vtable)).Invoke(@as(*const IMFAsyncCallback, @ptrCast(self)), pAsyncResult);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFAsyncCallbackLogging_Value = Guid.initString("c7a4dca1-f5f0-47b6-b92b-bf0106d25791");
|
|
pub const IID_IMFAsyncCallbackLogging = &IID_IMFAsyncCallbackLogging_Value;
|
|
pub const IMFAsyncCallbackLogging = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAsyncCallback.VTable,
|
|
GetObjectPointer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncCallbackLogging,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque,
|
|
else => *const fn(
|
|
self: *const IMFAsyncCallbackLogging,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque,
|
|
},
|
|
GetObjectTag: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAsyncCallbackLogging,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFAsyncCallbackLogging,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAsyncCallback.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncCallbackLogging_GetObjectPointer(self: *const T) callconv(.Inline) ?*anyopaque {
|
|
return @as(*const IMFAsyncCallbackLogging.VTable, @ptrCast(self.vtable)).GetObjectPointer(@as(*const IMFAsyncCallbackLogging, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAsyncCallbackLogging_GetObjectTag(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFAsyncCallbackLogging.VTable, @ptrCast(self.vtable)).GetObjectTag(@as(*const IMFAsyncCallbackLogging, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_EVENT_TYPE = enum(i32) {
|
|
Unknown = 0,
|
|
Error = 1,
|
|
ExtendedType = 2,
|
|
NonFatalError = 3,
|
|
// GenericV1Anchor = 3, this enum value conflicts with NonFatalError
|
|
SessionUnknown = 100,
|
|
SessionTopologySet = 101,
|
|
SessionTopologiesCleared = 102,
|
|
SessionStarted = 103,
|
|
SessionPaused = 104,
|
|
SessionStopped = 105,
|
|
SessionClosed = 106,
|
|
SessionEnded = 107,
|
|
SessionRateChanged = 108,
|
|
SessionScrubSampleComplete = 109,
|
|
SessionCapabilitiesChanged = 110,
|
|
SessionTopologyStatus = 111,
|
|
SessionNotifyPresentationTime = 112,
|
|
NewPresentation = 113,
|
|
LicenseAcquisitionStart = 114,
|
|
LicenseAcquisitionCompleted = 115,
|
|
IndividualizationStart = 116,
|
|
IndividualizationCompleted = 117,
|
|
EnablerProgress = 118,
|
|
EnablerCompleted = 119,
|
|
PolicyError = 120,
|
|
PolicyReport = 121,
|
|
BufferingStarted = 122,
|
|
BufferingStopped = 123,
|
|
ConnectStart = 124,
|
|
ConnectEnd = 125,
|
|
ReconnectStart = 126,
|
|
ReconnectEnd = 127,
|
|
RendererEvent = 128,
|
|
SessionStreamSinkFormatChanged = 129,
|
|
// SessionV1Anchor = 129, this enum value conflicts with SessionStreamSinkFormatChanged
|
|
SourceUnknown = 200,
|
|
SourceStarted = 201,
|
|
StreamStarted = 202,
|
|
SourceSeeked = 203,
|
|
StreamSeeked = 204,
|
|
NewStream = 205,
|
|
UpdatedStream = 206,
|
|
SourceStopped = 207,
|
|
StreamStopped = 208,
|
|
SourcePaused = 209,
|
|
StreamPaused = 210,
|
|
EndOfPresentation = 211,
|
|
EndOfStream = 212,
|
|
MediaSample = 213,
|
|
StreamTick = 214,
|
|
StreamThinMode = 215,
|
|
StreamFormatChanged = 216,
|
|
SourceRateChanged = 217,
|
|
EndOfPresentationSegment = 218,
|
|
SourceCharacteristicsChanged = 219,
|
|
SourceRateChangeRequested = 220,
|
|
SourceMetadataChanged = 221,
|
|
SequencerSourceTopologyUpdated = 222,
|
|
// SourceV1Anchor = 222, this enum value conflicts with SequencerSourceTopologyUpdated
|
|
SinkUnknown = 300,
|
|
StreamSinkStarted = 301,
|
|
StreamSinkStopped = 302,
|
|
StreamSinkPaused = 303,
|
|
StreamSinkRateChanged = 304,
|
|
StreamSinkRequestSample = 305,
|
|
StreamSinkMarker = 306,
|
|
StreamSinkPrerolled = 307,
|
|
StreamSinkScrubSampleComplete = 308,
|
|
StreamSinkFormatChanged = 309,
|
|
StreamSinkDeviceChanged = 310,
|
|
QualityNotify = 311,
|
|
SinkInvalidated = 312,
|
|
AudioSessionNameChanged = 313,
|
|
AudioSessionVolumeChanged = 314,
|
|
AudioSessionDeviceRemoved = 315,
|
|
AudioSessionServerShutdown = 316,
|
|
AudioSessionGroupingParamChanged = 317,
|
|
AudioSessionIconChanged = 318,
|
|
AudioSessionFormatChanged = 319,
|
|
AudioSessionDisconnected = 320,
|
|
AudioSessionExclusiveModeOverride = 321,
|
|
// SinkV1Anchor = 321, this enum value conflicts with AudioSessionExclusiveModeOverride
|
|
CaptureAudioSessionVolumeChanged = 322,
|
|
CaptureAudioSessionDeviceRemoved = 323,
|
|
CaptureAudioSessionFormatChanged = 324,
|
|
CaptureAudioSessionDisconnected = 325,
|
|
CaptureAudioSessionExclusiveModeOverride = 326,
|
|
CaptureAudioSessionServerShutdown = 327,
|
|
// SinkV2Anchor = 327, this enum value conflicts with CaptureAudioSessionServerShutdown
|
|
TrustUnknown = 400,
|
|
PolicyChanged = 401,
|
|
ContentProtectionMessage = 402,
|
|
PolicySet = 403,
|
|
// TrustV1Anchor = 403, this enum value conflicts with PolicySet
|
|
WMDRMLicenseBackupCompleted = 500,
|
|
WMDRMLicenseBackupProgress = 501,
|
|
WMDRMLicenseRestoreCompleted = 502,
|
|
WMDRMLicenseRestoreProgress = 503,
|
|
WMDRMLicenseAcquisitionCompleted = 506,
|
|
WMDRMIndividualizationCompleted = 508,
|
|
WMDRMIndividualizationProgress = 513,
|
|
WMDRMProximityCompleted = 514,
|
|
WMDRMLicenseStoreCleaned = 515,
|
|
WMDRMRevocationDownloadCompleted = 516,
|
|
// WMDRMV1Anchor = 516, this enum value conflicts with WMDRMRevocationDownloadCompleted
|
|
TransformUnknown = 600,
|
|
TransformNeedInput = 601,
|
|
TransformHaveOutput = 602,
|
|
TransformDrainComplete = 603,
|
|
TransformMarker = 604,
|
|
TransformInputStreamStateChanged = 605,
|
|
ByteStreamCharacteristicsChanged = 700,
|
|
VideoCaptureDeviceRemoved = 800,
|
|
VideoCaptureDevicePreempted = 801,
|
|
StreamSinkFormatInvalidated = 802,
|
|
EncodingParameters = 803,
|
|
ContentProtectionMetadata = 900,
|
|
DeviceThermalStateChanged = 950,
|
|
ReservedMax = 10000,
|
|
};
|
|
pub const MEUnknown = MF_EVENT_TYPE.Unknown;
|
|
pub const MEError = MF_EVENT_TYPE.Error;
|
|
pub const MEExtendedType = MF_EVENT_TYPE.ExtendedType;
|
|
pub const MENonFatalError = MF_EVENT_TYPE.NonFatalError;
|
|
pub const MEGenericV1Anchor = MF_EVENT_TYPE.NonFatalError;
|
|
pub const MESessionUnknown = MF_EVENT_TYPE.SessionUnknown;
|
|
pub const MESessionTopologySet = MF_EVENT_TYPE.SessionTopologySet;
|
|
pub const MESessionTopologiesCleared = MF_EVENT_TYPE.SessionTopologiesCleared;
|
|
pub const MESessionStarted = MF_EVENT_TYPE.SessionStarted;
|
|
pub const MESessionPaused = MF_EVENT_TYPE.SessionPaused;
|
|
pub const MESessionStopped = MF_EVENT_TYPE.SessionStopped;
|
|
pub const MESessionClosed = MF_EVENT_TYPE.SessionClosed;
|
|
pub const MESessionEnded = MF_EVENT_TYPE.SessionEnded;
|
|
pub const MESessionRateChanged = MF_EVENT_TYPE.SessionRateChanged;
|
|
pub const MESessionScrubSampleComplete = MF_EVENT_TYPE.SessionScrubSampleComplete;
|
|
pub const MESessionCapabilitiesChanged = MF_EVENT_TYPE.SessionCapabilitiesChanged;
|
|
pub const MESessionTopologyStatus = MF_EVENT_TYPE.SessionTopologyStatus;
|
|
pub const MESessionNotifyPresentationTime = MF_EVENT_TYPE.SessionNotifyPresentationTime;
|
|
pub const MENewPresentation = MF_EVENT_TYPE.NewPresentation;
|
|
pub const MELicenseAcquisitionStart = MF_EVENT_TYPE.LicenseAcquisitionStart;
|
|
pub const MELicenseAcquisitionCompleted = MF_EVENT_TYPE.LicenseAcquisitionCompleted;
|
|
pub const MEIndividualizationStart = MF_EVENT_TYPE.IndividualizationStart;
|
|
pub const MEIndividualizationCompleted = MF_EVENT_TYPE.IndividualizationCompleted;
|
|
pub const MEEnablerProgress = MF_EVENT_TYPE.EnablerProgress;
|
|
pub const MEEnablerCompleted = MF_EVENT_TYPE.EnablerCompleted;
|
|
pub const MEPolicyError = MF_EVENT_TYPE.PolicyError;
|
|
pub const MEPolicyReport = MF_EVENT_TYPE.PolicyReport;
|
|
pub const MEBufferingStarted = MF_EVENT_TYPE.BufferingStarted;
|
|
pub const MEBufferingStopped = MF_EVENT_TYPE.BufferingStopped;
|
|
pub const MEConnectStart = MF_EVENT_TYPE.ConnectStart;
|
|
pub const MEConnectEnd = MF_EVENT_TYPE.ConnectEnd;
|
|
pub const MEReconnectStart = MF_EVENT_TYPE.ReconnectStart;
|
|
pub const MEReconnectEnd = MF_EVENT_TYPE.ReconnectEnd;
|
|
pub const MERendererEvent = MF_EVENT_TYPE.RendererEvent;
|
|
pub const MESessionStreamSinkFormatChanged = MF_EVENT_TYPE.SessionStreamSinkFormatChanged;
|
|
pub const MESessionV1Anchor = MF_EVENT_TYPE.SessionStreamSinkFormatChanged;
|
|
pub const MESourceUnknown = MF_EVENT_TYPE.SourceUnknown;
|
|
pub const MESourceStarted = MF_EVENT_TYPE.SourceStarted;
|
|
pub const MEStreamStarted = MF_EVENT_TYPE.StreamStarted;
|
|
pub const MESourceSeeked = MF_EVENT_TYPE.SourceSeeked;
|
|
pub const MEStreamSeeked = MF_EVENT_TYPE.StreamSeeked;
|
|
pub const MENewStream = MF_EVENT_TYPE.NewStream;
|
|
pub const MEUpdatedStream = MF_EVENT_TYPE.UpdatedStream;
|
|
pub const MESourceStopped = MF_EVENT_TYPE.SourceStopped;
|
|
pub const MEStreamStopped = MF_EVENT_TYPE.StreamStopped;
|
|
pub const MESourcePaused = MF_EVENT_TYPE.SourcePaused;
|
|
pub const MEStreamPaused = MF_EVENT_TYPE.StreamPaused;
|
|
pub const MEEndOfPresentation = MF_EVENT_TYPE.EndOfPresentation;
|
|
pub const MEEndOfStream = MF_EVENT_TYPE.EndOfStream;
|
|
pub const MEMediaSample = MF_EVENT_TYPE.MediaSample;
|
|
pub const MEStreamTick = MF_EVENT_TYPE.StreamTick;
|
|
pub const MEStreamThinMode = MF_EVENT_TYPE.StreamThinMode;
|
|
pub const MEStreamFormatChanged = MF_EVENT_TYPE.StreamFormatChanged;
|
|
pub const MESourceRateChanged = MF_EVENT_TYPE.SourceRateChanged;
|
|
pub const MEEndOfPresentationSegment = MF_EVENT_TYPE.EndOfPresentationSegment;
|
|
pub const MESourceCharacteristicsChanged = MF_EVENT_TYPE.SourceCharacteristicsChanged;
|
|
pub const MESourceRateChangeRequested = MF_EVENT_TYPE.SourceRateChangeRequested;
|
|
pub const MESourceMetadataChanged = MF_EVENT_TYPE.SourceMetadataChanged;
|
|
pub const MESequencerSourceTopologyUpdated = MF_EVENT_TYPE.SequencerSourceTopologyUpdated;
|
|
pub const MESourceV1Anchor = MF_EVENT_TYPE.SequencerSourceTopologyUpdated;
|
|
pub const MESinkUnknown = MF_EVENT_TYPE.SinkUnknown;
|
|
pub const MEStreamSinkStarted = MF_EVENT_TYPE.StreamSinkStarted;
|
|
pub const MEStreamSinkStopped = MF_EVENT_TYPE.StreamSinkStopped;
|
|
pub const MEStreamSinkPaused = MF_EVENT_TYPE.StreamSinkPaused;
|
|
pub const MEStreamSinkRateChanged = MF_EVENT_TYPE.StreamSinkRateChanged;
|
|
pub const MEStreamSinkRequestSample = MF_EVENT_TYPE.StreamSinkRequestSample;
|
|
pub const MEStreamSinkMarker = MF_EVENT_TYPE.StreamSinkMarker;
|
|
pub const MEStreamSinkPrerolled = MF_EVENT_TYPE.StreamSinkPrerolled;
|
|
pub const MEStreamSinkScrubSampleComplete = MF_EVENT_TYPE.StreamSinkScrubSampleComplete;
|
|
pub const MEStreamSinkFormatChanged = MF_EVENT_TYPE.StreamSinkFormatChanged;
|
|
pub const MEStreamSinkDeviceChanged = MF_EVENT_TYPE.StreamSinkDeviceChanged;
|
|
pub const MEQualityNotify = MF_EVENT_TYPE.QualityNotify;
|
|
pub const MESinkInvalidated = MF_EVENT_TYPE.SinkInvalidated;
|
|
pub const MEAudioSessionNameChanged = MF_EVENT_TYPE.AudioSessionNameChanged;
|
|
pub const MEAudioSessionVolumeChanged = MF_EVENT_TYPE.AudioSessionVolumeChanged;
|
|
pub const MEAudioSessionDeviceRemoved = MF_EVENT_TYPE.AudioSessionDeviceRemoved;
|
|
pub const MEAudioSessionServerShutdown = MF_EVENT_TYPE.AudioSessionServerShutdown;
|
|
pub const MEAudioSessionGroupingParamChanged = MF_EVENT_TYPE.AudioSessionGroupingParamChanged;
|
|
pub const MEAudioSessionIconChanged = MF_EVENT_TYPE.AudioSessionIconChanged;
|
|
pub const MEAudioSessionFormatChanged = MF_EVENT_TYPE.AudioSessionFormatChanged;
|
|
pub const MEAudioSessionDisconnected = MF_EVENT_TYPE.AudioSessionDisconnected;
|
|
pub const MEAudioSessionExclusiveModeOverride = MF_EVENT_TYPE.AudioSessionExclusiveModeOverride;
|
|
pub const MESinkV1Anchor = MF_EVENT_TYPE.AudioSessionExclusiveModeOverride;
|
|
pub const MECaptureAudioSessionVolumeChanged = MF_EVENT_TYPE.CaptureAudioSessionVolumeChanged;
|
|
pub const MECaptureAudioSessionDeviceRemoved = MF_EVENT_TYPE.CaptureAudioSessionDeviceRemoved;
|
|
pub const MECaptureAudioSessionFormatChanged = MF_EVENT_TYPE.CaptureAudioSessionFormatChanged;
|
|
pub const MECaptureAudioSessionDisconnected = MF_EVENT_TYPE.CaptureAudioSessionDisconnected;
|
|
pub const MECaptureAudioSessionExclusiveModeOverride = MF_EVENT_TYPE.CaptureAudioSessionExclusiveModeOverride;
|
|
pub const MECaptureAudioSessionServerShutdown = MF_EVENT_TYPE.CaptureAudioSessionServerShutdown;
|
|
pub const MESinkV2Anchor = MF_EVENT_TYPE.CaptureAudioSessionServerShutdown;
|
|
pub const METrustUnknown = MF_EVENT_TYPE.TrustUnknown;
|
|
pub const MEPolicyChanged = MF_EVENT_TYPE.PolicyChanged;
|
|
pub const MEContentProtectionMessage = MF_EVENT_TYPE.ContentProtectionMessage;
|
|
pub const MEPolicySet = MF_EVENT_TYPE.PolicySet;
|
|
pub const METrustV1Anchor = MF_EVENT_TYPE.PolicySet;
|
|
pub const MEWMDRMLicenseBackupCompleted = MF_EVENT_TYPE.WMDRMLicenseBackupCompleted;
|
|
pub const MEWMDRMLicenseBackupProgress = MF_EVENT_TYPE.WMDRMLicenseBackupProgress;
|
|
pub const MEWMDRMLicenseRestoreCompleted = MF_EVENT_TYPE.WMDRMLicenseRestoreCompleted;
|
|
pub const MEWMDRMLicenseRestoreProgress = MF_EVENT_TYPE.WMDRMLicenseRestoreProgress;
|
|
pub const MEWMDRMLicenseAcquisitionCompleted = MF_EVENT_TYPE.WMDRMLicenseAcquisitionCompleted;
|
|
pub const MEWMDRMIndividualizationCompleted = MF_EVENT_TYPE.WMDRMIndividualizationCompleted;
|
|
pub const MEWMDRMIndividualizationProgress = MF_EVENT_TYPE.WMDRMIndividualizationProgress;
|
|
pub const MEWMDRMProximityCompleted = MF_EVENT_TYPE.WMDRMProximityCompleted;
|
|
pub const MEWMDRMLicenseStoreCleaned = MF_EVENT_TYPE.WMDRMLicenseStoreCleaned;
|
|
pub const MEWMDRMRevocationDownloadCompleted = MF_EVENT_TYPE.WMDRMRevocationDownloadCompleted;
|
|
pub const MEWMDRMV1Anchor = MF_EVENT_TYPE.WMDRMRevocationDownloadCompleted;
|
|
pub const METransformUnknown = MF_EVENT_TYPE.TransformUnknown;
|
|
pub const METransformNeedInput = MF_EVENT_TYPE.TransformNeedInput;
|
|
pub const METransformHaveOutput = MF_EVENT_TYPE.TransformHaveOutput;
|
|
pub const METransformDrainComplete = MF_EVENT_TYPE.TransformDrainComplete;
|
|
pub const METransformMarker = MF_EVENT_TYPE.TransformMarker;
|
|
pub const METransformInputStreamStateChanged = MF_EVENT_TYPE.TransformInputStreamStateChanged;
|
|
pub const MEByteStreamCharacteristicsChanged = MF_EVENT_TYPE.ByteStreamCharacteristicsChanged;
|
|
pub const MEVideoCaptureDeviceRemoved = MF_EVENT_TYPE.VideoCaptureDeviceRemoved;
|
|
pub const MEVideoCaptureDevicePreempted = MF_EVENT_TYPE.VideoCaptureDevicePreempted;
|
|
pub const MEStreamSinkFormatInvalidated = MF_EVENT_TYPE.StreamSinkFormatInvalidated;
|
|
pub const MEEncodingParameters = MF_EVENT_TYPE.EncodingParameters;
|
|
pub const MEContentProtectionMetadata = MF_EVENT_TYPE.ContentProtectionMetadata;
|
|
pub const MEDeviceThermalStateChanged = MF_EVENT_TYPE.DeviceThermalStateChanged;
|
|
pub const MEReservedMax = MF_EVENT_TYPE.ReservedMax;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaEvent_Value = Guid.initString("df598932-f10c-4e39-bba2-c308f101daa3");
|
|
pub const IID_IMFMediaEvent = &IID_IMFMediaEvent_Value;
|
|
pub const IMFMediaEvent = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEvent,
|
|
pmet: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEvent,
|
|
pmet: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetExtendedType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEvent,
|
|
pguidExtendedType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEvent,
|
|
pguidExtendedType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEvent,
|
|
phrStatus: ?*HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEvent,
|
|
phrStatus: ?*HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEvent,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEvent,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEvent_GetType(self: *const T, pmet: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEvent.VTable, @ptrCast(self.vtable)).GetType(@as(*const IMFMediaEvent, @ptrCast(self)), pmet);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEvent_GetExtendedType(self: *const T, pguidExtendedType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEvent.VTable, @ptrCast(self.vtable)).GetExtendedType(@as(*const IMFMediaEvent, @ptrCast(self)), pguidExtendedType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEvent_GetStatus(self: *const T, phrStatus: ?*HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEvent.VTable, @ptrCast(self.vtable)).GetStatus(@as(*const IMFMediaEvent, @ptrCast(self)), phrStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEvent_GetValue(self: *const T, pvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEvent.VTable, @ptrCast(self.vtable)).GetValue(@as(*const IMFMediaEvent, @ptrCast(self)), pvValue);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaEventGenerator_Value = Guid.initString("2cd0bd52-bcd5-4b89-b62c-eadc0c031e7d");
|
|
pub const IID_IMFMediaEventGenerator = &IID_IMFMediaEventGenerator_Value;
|
|
pub const IMFMediaEventGenerator = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
dwFlags: MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
dwFlags: MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginGetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndGetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
QueueEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventGenerator,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventGenerator_GetEvent(self: *const T, dwFlags: MEDIA_EVENT_GENERATOR_GET_EVENT_FLAGS, ppEvent: ?*?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventGenerator.VTable, @ptrCast(self.vtable)).GetEvent(@as(*const IMFMediaEventGenerator, @ptrCast(self)), dwFlags, ppEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventGenerator_BeginGetEvent(self: *const T, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventGenerator.VTable, @ptrCast(self.vtable)).BeginGetEvent(@as(*const IMFMediaEventGenerator, @ptrCast(self)), pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventGenerator_EndGetEvent(self: *const T, pResult: ?*IMFAsyncResult, ppEvent: ?*?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventGenerator.VTable, @ptrCast(self.vtable)).EndGetEvent(@as(*const IMFMediaEventGenerator, @ptrCast(self)), pResult, ppEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventGenerator_QueueEvent(self: *const T, met: u32, guidExtendedType: ?*const Guid, hrStatus: HRESULT, pvValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventGenerator.VTable, @ptrCast(self.vtable)).QueueEvent(@as(*const IMFMediaEventGenerator, @ptrCast(self)), met, guidExtendedType, hrStatus, pvValue);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRemoteAsyncCallback_Value = Guid.initString("a27003d0-2354-4f2a-8d6a-ab7cff15437e");
|
|
pub const IID_IMFRemoteAsyncCallback = &IID_IMFRemoteAsyncCallback_Value;
|
|
pub const IMFRemoteAsyncCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Invoke: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRemoteAsyncCallback,
|
|
hr: HRESULT,
|
|
pRemoteResult: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRemoteAsyncCallback,
|
|
hr: HRESULT,
|
|
pRemoteResult: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRemoteAsyncCallback_Invoke(self: *const T, hr: HRESULT, pRemoteResult: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRemoteAsyncCallback.VTable, @ptrCast(self.vtable)).Invoke(@as(*const IMFRemoteAsyncCallback, @ptrCast(self)), hr, pRemoteResult);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFBYTESTREAM_SEEK_ORIGIN = enum(i32) {
|
|
Begin = 0,
|
|
Current = 1,
|
|
};
|
|
pub const msoBegin = MFBYTESTREAM_SEEK_ORIGIN.Begin;
|
|
pub const msoCurrent = MFBYTESTREAM_SEEK_ORIGIN.Current;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFByteStream_Value = Guid.initString("ad4c1b00-4bf7-422f-9175-756693d9130d");
|
|
pub const IID_IMFByteStream = &IID_IMFByteStream_Value;
|
|
pub const IMFByteStream = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCapabilities: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pdwCapabilities: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pdwCapabilities: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pqwLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pqwLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
qwLength: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
qwLength: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pqwPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pqwPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
qwPosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
qwPosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsEndOfStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pfEndOfStream: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pfEndOfStream: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Read: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pb: [*:0]u8,
|
|
cb: u32,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pb: [*:0]u8,
|
|
cb: u32,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginRead: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pb: ?*u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pb: ?*u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndRead: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Write: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pb: [*:0]const u8,
|
|
cb: u32,
|
|
pcbWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pb: [*:0]const u8,
|
|
cb: u32,
|
|
pcbWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginWrite: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pb: ?*const u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pb: ?*const u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndWrite: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
pcbWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
pcbWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Seek: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
SeekOrigin: MFBYTESTREAM_SEEK_ORIGIN,
|
|
llSeekOffset: i64,
|
|
dwSeekFlags: u32,
|
|
pqwCurrentPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
SeekOrigin: MFBYTESTREAM_SEEK_ORIGIN,
|
|
llSeekOffset: i64,
|
|
dwSeekFlags: u32,
|
|
pqwCurrentPosition: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_GetCapabilities(self: *const T, pdwCapabilities: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).GetCapabilities(@as(*const IMFByteStream, @ptrCast(self)), pdwCapabilities);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_GetLength(self: *const T, pqwLength: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFByteStream, @ptrCast(self)), pqwLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_SetLength(self: *const T, qwLength: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).SetLength(@as(*const IMFByteStream, @ptrCast(self)), qwLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_GetCurrentPosition(self: *const T, pqwPosition: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).GetCurrentPosition(@as(*const IMFByteStream, @ptrCast(self)), pqwPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_SetCurrentPosition(self: *const T, qwPosition: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).SetCurrentPosition(@as(*const IMFByteStream, @ptrCast(self)), qwPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_IsEndOfStream(self: *const T, pfEndOfStream: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).IsEndOfStream(@as(*const IMFByteStream, @ptrCast(self)), pfEndOfStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_Read(self: *const T, pb: [*:0]u8, cb: u32, pcbRead: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).Read(@as(*const IMFByteStream, @ptrCast(self)), pb, cb, pcbRead);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_BeginRead(self: *const T, pb: ?*u8, cb: u32, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).BeginRead(@as(*const IMFByteStream, @ptrCast(self)), pb, cb, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_EndRead(self: *const T, pResult: ?*IMFAsyncResult, pcbRead: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).EndRead(@as(*const IMFByteStream, @ptrCast(self)), pResult, pcbRead);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_Write(self: *const T, pb: [*:0]const u8, cb: u32, pcbWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).Write(@as(*const IMFByteStream, @ptrCast(self)), pb, cb, pcbWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_BeginWrite(self: *const T, pb: ?*const u8, cb: u32, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).BeginWrite(@as(*const IMFByteStream, @ptrCast(self)), pb, cb, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_EndWrite(self: *const T, pResult: ?*IMFAsyncResult, pcbWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).EndWrite(@as(*const IMFByteStream, @ptrCast(self)), pResult, pcbWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_Seek(self: *const T, SeekOrigin: MFBYTESTREAM_SEEK_ORIGIN, llSeekOffset: i64, dwSeekFlags: u32, pqwCurrentPosition: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).Seek(@as(*const IMFByteStream, @ptrCast(self)), SeekOrigin, llSeekOffset, dwSeekFlags, pqwCurrentPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_Flush(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFByteStream, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStream_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStream.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFByteStream, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFByteStreamProxyClassFactory_Value = Guid.initString("a6b43f84-5c0a-42e8-a44d-b1857a76992f");
|
|
pub const IID_IMFByteStreamProxyClassFactory = &IID_IMFByteStreamProxyClassFactory_Value;
|
|
pub const IMFByteStreamProxyClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateByteStreamProxy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamProxyClassFactory,
|
|
pByteStream: ?*IMFByteStream,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamProxyClassFactory,
|
|
pByteStream: ?*IMFByteStream,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamProxyClassFactory_CreateByteStreamProxy(self: *const T, pByteStream: ?*IMFByteStream, pAttributes: ?*IMFAttributes, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamProxyClassFactory.VTable, @ptrCast(self.vtable)).CreateByteStreamProxy(@as(*const IMFByteStreamProxyClassFactory, @ptrCast(self)), pByteStream, pAttributes, riid, ppvObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_FILE_ACCESSMODE = enum(i32) {
|
|
READ = 1,
|
|
WRITE = 2,
|
|
READWRITE = 3,
|
|
};
|
|
pub const MF_ACCESSMODE_READ = MF_FILE_ACCESSMODE.READ;
|
|
pub const MF_ACCESSMODE_WRITE = MF_FILE_ACCESSMODE.WRITE;
|
|
pub const MF_ACCESSMODE_READWRITE = MF_FILE_ACCESSMODE.READWRITE;
|
|
|
|
pub const MF_FILE_OPENMODE = enum(i32) {
|
|
FAIL_IF_NOT_EXIST = 0,
|
|
FAIL_IF_EXIST = 1,
|
|
RESET_IF_EXIST = 2,
|
|
APPEND_IF_EXIST = 3,
|
|
DELETE_IF_EXIST = 4,
|
|
};
|
|
pub const MF_OPENMODE_FAIL_IF_NOT_EXIST = MF_FILE_OPENMODE.FAIL_IF_NOT_EXIST;
|
|
pub const MF_OPENMODE_FAIL_IF_EXIST = MF_FILE_OPENMODE.FAIL_IF_EXIST;
|
|
pub const MF_OPENMODE_RESET_IF_EXIST = MF_FILE_OPENMODE.RESET_IF_EXIST;
|
|
pub const MF_OPENMODE_APPEND_IF_EXIST = MF_FILE_OPENMODE.APPEND_IF_EXIST;
|
|
pub const MF_OPENMODE_DELETE_IF_EXIST = MF_FILE_OPENMODE.DELETE_IF_EXIST;
|
|
|
|
pub const MF_FILE_FLAGS = enum(i32) {
|
|
NONE = 0,
|
|
NOBUFFERING = 1,
|
|
ALLOW_WRITE_SHARING = 2,
|
|
};
|
|
pub const MF_FILEFLAGS_NONE = MF_FILE_FLAGS.NONE;
|
|
pub const MF_FILEFLAGS_NOBUFFERING = MF_FILE_FLAGS.NOBUFFERING;
|
|
pub const MF_FILEFLAGS_ALLOW_WRITE_SHARING = MF_FILE_FLAGS.ALLOW_WRITE_SHARING;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSampleOutputStream_Value = Guid.initString("8feed468-6f7e-440d-869a-49bdd283ad0d");
|
|
pub const IID_IMFSampleOutputStream = &IID_IMFSampleOutputStream_Value;
|
|
pub const IMFSampleOutputStream = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginWriteSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleOutputStream,
|
|
pSample: ?*IMFSample,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleOutputStream,
|
|
pSample: ?*IMFSample,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndWriteSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleOutputStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleOutputStream,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleOutputStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleOutputStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleOutputStream_BeginWriteSample(self: *const T, pSample: ?*IMFSample, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleOutputStream.VTable, @ptrCast(self.vtable)).BeginWriteSample(@as(*const IMFSampleOutputStream, @ptrCast(self)), pSample, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleOutputStream_EndWriteSample(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleOutputStream.VTable, @ptrCast(self.vtable)).EndWriteSample(@as(*const IMFSampleOutputStream, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleOutputStream_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleOutputStream.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFSampleOutputStream, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFCollection_Value = Guid.initString("5bc8a76b-869a-46a3-9b03-fa218a66aebe");
|
|
pub const IID_IMFCollection = &IID_IMFCollection_Value;
|
|
pub const IMFCollection = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetElementCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
pcElements: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
pcElements: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetElement: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
dwElementIndex: u32,
|
|
ppUnkElement: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
dwElementIndex: u32,
|
|
ppUnkElement: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddElement: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
pUnkElement: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
pUnkElement: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveElement: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
dwElementIndex: u32,
|
|
ppUnkElement: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
dwElementIndex: u32,
|
|
ppUnkElement: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InsertElementAt: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
dwIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
dwIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllElements: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_GetElementCount(self: *const T, pcElements: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).GetElementCount(@as(*const IMFCollection, @ptrCast(self)), pcElements);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_GetElement(self: *const T, dwElementIndex: u32, ppUnkElement: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).GetElement(@as(*const IMFCollection, @ptrCast(self)), dwElementIndex, ppUnkElement);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_AddElement(self: *const T, pUnkElement: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).AddElement(@as(*const IMFCollection, @ptrCast(self)), pUnkElement);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_RemoveElement(self: *const T, dwElementIndex: u32, ppUnkElement: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).RemoveElement(@as(*const IMFCollection, @ptrCast(self)), dwElementIndex, ppUnkElement);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_InsertElementAt(self: *const T, dwIndex: u32, pUnknown: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).InsertElementAt(@as(*const IMFCollection, @ptrCast(self)), dwIndex, pUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCollection_RemoveAllElements(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCollection.VTable, @ptrCast(self.vtable)).RemoveAllElements(@as(*const IMFCollection, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaEventQueue_Value = Guid.initString("36f846fc-2256-48b6-b58e-e2b638316581");
|
|
pub const IID_IMFMediaEventQueue = &IID_IMFMediaEventQueue_Value;
|
|
pub const IMFMediaEventQueue = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
dwFlags: u32,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
dwFlags: u32,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginGetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndGetEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
QueueEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
QueueEventParamVar: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
QueueEventParamUnk: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pUnk: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pUnk: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEventQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEventQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_GetEvent(self: *const T, dwFlags: u32, ppEvent: ?*?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).GetEvent(@as(*const IMFMediaEventQueue, @ptrCast(self)), dwFlags, ppEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_BeginGetEvent(self: *const T, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).BeginGetEvent(@as(*const IMFMediaEventQueue, @ptrCast(self)), pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_EndGetEvent(self: *const T, pResult: ?*IMFAsyncResult, ppEvent: ?*?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).EndGetEvent(@as(*const IMFMediaEventQueue, @ptrCast(self)), pResult, ppEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_QueueEvent(self: *const T, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).QueueEvent(@as(*const IMFMediaEventQueue, @ptrCast(self)), pEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_QueueEventParamVar(self: *const T, met: u32, guidExtendedType: ?*const Guid, hrStatus: HRESULT, pvValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).QueueEventParamVar(@as(*const IMFMediaEventQueue, @ptrCast(self)), met, guidExtendedType, hrStatus, pvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_QueueEventParamUnk(self: *const T, met: u32, guidExtendedType: ?*const Guid, hrStatus: HRESULT, pUnk: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).QueueEventParamUnk(@as(*const IMFMediaEventQueue, @ptrCast(self)), met, guidExtendedType, hrStatus, pUnk);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEventQueue_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEventQueue.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaEventQueue, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFActivate_Value = Guid.initString("7fee9e9a-4a89-47a6-899c-b6a53a70fb67");
|
|
pub const IID_IMFActivate = &IID_IMFActivate_Value;
|
|
pub const IMFActivate = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
ActivateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFActivate,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFActivate,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ShutdownObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DetachObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFActivate_ActivateObject(self: *const T, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFActivate.VTable, @ptrCast(self.vtable)).ActivateObject(@as(*const IMFActivate, @ptrCast(self)), riid, ppv);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFActivate_ShutdownObject(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFActivate.VTable, @ptrCast(self.vtable)).ShutdownObject(@as(*const IMFActivate, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFActivate_DetachObject(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFActivate.VTable, @ptrCast(self.vtable)).DetachObject(@as(*const IMFActivate, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFPluginControl_Value = Guid.initString("5c6c44bf-1db6-435b-9249-e8cd10fdec96");
|
|
pub const IID_IMFPluginControl = &IID_IMFPluginControl_Value;
|
|
pub const IMFPluginControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetPreferredClsid: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
selector: ?[*:0]const u16,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
selector: ?[*:0]const u16,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPreferredClsidByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
index: u32,
|
|
selector: ?*?PWSTR,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
index: u32,
|
|
selector: ?*?PWSTR,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPreferredClsid: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
selector: ?[*:0]const u16,
|
|
clsid: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
selector: ?[*:0]const u16,
|
|
clsid: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsDisabled: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
clsid: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
clsid: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDisabledByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
index: u32,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
index: u32,
|
|
clsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDisabled: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
clsid: ?*const Guid,
|
|
disabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl,
|
|
pluginType: u32,
|
|
clsid: ?*const Guid,
|
|
disabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_GetPreferredClsid(self: *const T, pluginType: u32, selector: ?[*:0]const u16, clsid: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).GetPreferredClsid(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, selector, clsid);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_GetPreferredClsidByIndex(self: *const T, pluginType: u32, index: u32, selector: ?*?PWSTR, clsid: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).GetPreferredClsidByIndex(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, index, selector, clsid);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_SetPreferredClsid(self: *const T, pluginType: u32, selector: ?[*:0]const u16, clsid: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).SetPreferredClsid(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, selector, clsid);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_IsDisabled(self: *const T, pluginType: u32, clsid: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).IsDisabled(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, clsid);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_GetDisabledByIndex(self: *const T, pluginType: u32, index: u32, clsid: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).GetDisabledByIndex(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, index, clsid);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl_SetDisabled(self: *const T, pluginType: u32, clsid: ?*const Guid, disabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl.VTable, @ptrCast(self.vtable)).SetDisabled(@as(*const IMFPluginControl, @ptrCast(self)), pluginType, clsid, disabled);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_PLUGIN_CONTROL_POLICY = enum(i32) {
|
|
ALL_PLUGINS = 0,
|
|
APPROVED_PLUGINS = 1,
|
|
WEB_PLUGINS = 2,
|
|
WEB_PLUGINS_EDGEMODE = 3,
|
|
};
|
|
pub const MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = MF_PLUGIN_CONTROL_POLICY.ALL_PLUGINS;
|
|
pub const MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = MF_PLUGIN_CONTROL_POLICY.APPROVED_PLUGINS;
|
|
pub const MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = MF_PLUGIN_CONTROL_POLICY.WEB_PLUGINS;
|
|
pub const MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS_EDGEMODE = MF_PLUGIN_CONTROL_POLICY.WEB_PLUGINS_EDGEMODE;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFPluginControl2_Value = Guid.initString("c6982083-3ddc-45cb-af5e-0f7a8ce4de77");
|
|
pub const IID_IMFPluginControl2 = &IID_IMFPluginControl2_Value;
|
|
pub const IMFPluginControl2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFPluginControl.VTable,
|
|
SetPolicy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPluginControl2,
|
|
policy: MF_PLUGIN_CONTROL_POLICY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPluginControl2,
|
|
policy: MF_PLUGIN_CONTROL_POLICY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFPluginControl.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPluginControl2_SetPolicy(self: *const T, policy: MF_PLUGIN_CONTROL_POLICY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPluginControl2.VTable, @ptrCast(self.vtable)).SetPolicy(@as(*const IMFPluginControl2, @ptrCast(self)), policy);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFDXGIDeviceManager_Value = Guid.initString("eb533d5d-2db6-40f8-97a9-494692014f07");
|
|
pub const IID_IMFDXGIDeviceManager = &IID_IMFDXGIDeviceManager_Value;
|
|
pub const IMFDXGIDeviceManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CloseDeviceHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppService: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppService: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
LockDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppUnkDevice: ?*?*anyopaque,
|
|
fBlock: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
riid: ?*const Guid,
|
|
ppUnkDevice: ?*?*anyopaque,
|
|
fBlock: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OpenDeviceHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
phDevice: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ResetDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
pUnkDevice: ?*IUnknown,
|
|
resetToken: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
pUnkDevice: ?*IUnknown,
|
|
resetToken: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TestDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
fSaveState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManager,
|
|
hDevice: ?HANDLE,
|
|
fSaveState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_CloseDeviceHandle(self: *const T, hDevice: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).CloseDeviceHandle(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), hDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_GetVideoService(self: *const T, hDevice: ?HANDLE, riid: ?*const Guid, ppService: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).GetVideoService(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), hDevice, riid, ppService);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_LockDevice(self: *const T, hDevice: ?HANDLE, riid: ?*const Guid, ppUnkDevice: ?*?*anyopaque, fBlock: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).LockDevice(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), hDevice, riid, ppUnkDevice, fBlock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_OpenDeviceHandle(self: *const T, phDevice: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).OpenDeviceHandle(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), phDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_ResetDevice(self: *const T, pUnkDevice: ?*IUnknown, resetToken: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).ResetDevice(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), pUnkDevice, resetToken);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_TestDevice(self: *const T, hDevice: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).TestDevice(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), hDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManager_UnlockDevice(self: *const T, hDevice: ?HANDLE, fSaveState: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManager.VTable, @ptrCast(self.vtable)).UnlockDevice(@as(*const IMFDXGIDeviceManager, @ptrCast(self)), hDevice, fSaveState);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_STREAM_STATE = enum(i32) {
|
|
STOPPED = 0,
|
|
PAUSED = 1,
|
|
RUNNING = 2,
|
|
};
|
|
pub const MF_STREAM_STATE_STOPPED = MF_STREAM_STATE.STOPPED;
|
|
pub const MF_STREAM_STATE_PAUSED = MF_STREAM_STATE.PAUSED;
|
|
pub const MF_STREAM_STATE_RUNNING = MF_STREAM_STATE.RUNNING;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFMuxStreamAttributesManager_Value = Guid.initString("ce8bd576-e440-43b3-be34-1e53f565f7e8");
|
|
pub const IID_IMFMuxStreamAttributesManager = &IID_IMFMuxStreamAttributesManager_Value;
|
|
pub const IMFMuxStreamAttributesManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamAttributesManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamAttributesManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamAttributesManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppStreamAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamAttributesManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppStreamAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamAttributesManager_GetStreamCount(self: *const T, pdwMuxStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamAttributesManager.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFMuxStreamAttributesManager, @ptrCast(self)), pdwMuxStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamAttributesManager_GetAttributes(self: *const T, dwMuxStreamIndex: u32, ppStreamAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamAttributesManager.VTable, @ptrCast(self.vtable)).GetAttributes(@as(*const IMFMuxStreamAttributesManager, @ptrCast(self)), dwMuxStreamIndex, ppStreamAttributes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFMuxStreamMediaTypeManager_Value = Guid.initString("505a2c72-42f7-4690-aeab-8f513d0ffdb8");
|
|
pub const IID_IMFMuxStreamMediaTypeManager = &IID_IMFMuxStreamMediaTypeManager_Value;
|
|
pub const IMFMuxStreamMediaTypeManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamConfigurationCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStreamConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ullStreamMask: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ullStreamMask: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStreamConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ullStreamMask: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ullStreamMask: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ulIndex: u32,
|
|
pullStreamMask: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamMediaTypeManager,
|
|
ulIndex: u32,
|
|
pullStreamMask: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_GetStreamCount(self: *const T, pdwMuxStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), pdwMuxStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_GetMediaType(self: *const T, dwMuxStreamIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).GetMediaType(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), dwMuxStreamIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_GetStreamConfigurationCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).GetStreamConfigurationCount(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_AddStreamConfiguration(self: *const T, ullStreamMask: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).AddStreamConfiguration(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), ullStreamMask);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_RemoveStreamConfiguration(self: *const T, ullStreamMask: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).RemoveStreamConfiguration(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), ullStreamMask);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamMediaTypeManager_GetStreamConfiguration(self: *const T, ulIndex: u32, pullStreamMask: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamMediaTypeManager.VTable, @ptrCast(self.vtable)).GetStreamConfiguration(@as(*const IMFMuxStreamMediaTypeManager, @ptrCast(self)), ulIndex, pullStreamMask);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFMuxStreamSampleManager_Value = Guid.initString("74abbc19-b1cc-4e41-bb8b-9d9b86a8f6ca");
|
|
pub const IID_IMFMuxStreamSampleManager = &IID_IMFMuxStreamSampleManager_Value;
|
|
pub const IMFMuxStreamSampleManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
pdwMuxStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
dwMuxStreamIndex: u32,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
else => *const fn(
|
|
self: *const IMFMuxStreamSampleManager,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamSampleManager_GetStreamCount(self: *const T, pdwMuxStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamSampleManager.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFMuxStreamSampleManager, @ptrCast(self)), pdwMuxStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamSampleManager_GetSample(self: *const T, dwMuxStreamIndex: u32, ppSample: ?*?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMuxStreamSampleManager.VTable, @ptrCast(self.vtable)).GetSample(@as(*const IMFMuxStreamSampleManager, @ptrCast(self)), dwMuxStreamIndex, ppSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMuxStreamSampleManager_GetStreamConfiguration(self: *const T) callconv(.Inline) u64 {
|
|
return @as(*const IMFMuxStreamSampleManager.VTable, @ptrCast(self.vtable)).GetStreamConfiguration(@as(*const IMFMuxStreamSampleManager, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFSecureBuffer_Value = Guid.initString("c1209904-e584-4752-a2d6-7f21693f8b21");
|
|
pub const IID_IMFSecureBuffer = &IID_IMFSecureBuffer_Value;
|
|
pub const IMFSecureBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetIdentifier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSecureBuffer,
|
|
pGuidIdentifier: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSecureBuffer,
|
|
pGuidIdentifier: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSecureBuffer_GetIdentifier(self: *const T, pGuidIdentifier: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSecureBuffer.VTable, @ptrCast(self.vtable)).GetIdentifier(@as(*const IMFSecureBuffer, @ptrCast(self)), pGuidIdentifier);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const _MFT_INPUT_DATA_BUFFER_FLAGS = enum(i32) {
|
|
R = -1,
|
|
};
|
|
pub const MFT_INPUT_DATA_BUFFER_PLACEHOLDER = _MFT_INPUT_DATA_BUFFER_FLAGS.R;
|
|
|
|
pub const _MFT_OUTPUT_DATA_BUFFER_FLAGS = enum(i32) {
|
|
INCOMPLETE = 16777216,
|
|
FORMAT_CHANGE = 256,
|
|
STREAM_END = 512,
|
|
NO_SAMPLE = 768,
|
|
};
|
|
pub const MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = _MFT_OUTPUT_DATA_BUFFER_FLAGS.INCOMPLETE;
|
|
pub const MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = _MFT_OUTPUT_DATA_BUFFER_FLAGS.FORMAT_CHANGE;
|
|
pub const MFT_OUTPUT_DATA_BUFFER_STREAM_END = _MFT_OUTPUT_DATA_BUFFER_FLAGS.STREAM_END;
|
|
pub const MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = _MFT_OUTPUT_DATA_BUFFER_FLAGS.NO_SAMPLE;
|
|
|
|
pub const _MFT_INPUT_STATUS_FLAGS = enum(i32) {
|
|
A = 1,
|
|
};
|
|
pub const MFT_INPUT_STATUS_ACCEPT_DATA = _MFT_INPUT_STATUS_FLAGS.A;
|
|
|
|
pub const _MFT_OUTPUT_STATUS_FLAGS = enum(i32) {
|
|
Y = 1,
|
|
};
|
|
pub const MFT_OUTPUT_STATUS_SAMPLE_READY = _MFT_OUTPUT_STATUS_FLAGS.Y;
|
|
|
|
pub const _MFT_INPUT_STREAM_INFO_FLAGS = enum(i32) {
|
|
WHOLE_SAMPLES = 1,
|
|
SINGLE_SAMPLE_PER_BUFFER = 2,
|
|
FIXED_SAMPLE_SIZE = 4,
|
|
HOLDS_BUFFERS = 8,
|
|
DOES_NOT_ADDREF = 256,
|
|
REMOVABLE = 512,
|
|
OPTIONAL = 1024,
|
|
PROCESSES_IN_PLACE = 2048,
|
|
};
|
|
pub const MFT_INPUT_STREAM_WHOLE_SAMPLES = _MFT_INPUT_STREAM_INFO_FLAGS.WHOLE_SAMPLES;
|
|
pub const MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = _MFT_INPUT_STREAM_INFO_FLAGS.SINGLE_SAMPLE_PER_BUFFER;
|
|
pub const MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = _MFT_INPUT_STREAM_INFO_FLAGS.FIXED_SAMPLE_SIZE;
|
|
pub const MFT_INPUT_STREAM_HOLDS_BUFFERS = _MFT_INPUT_STREAM_INFO_FLAGS.HOLDS_BUFFERS;
|
|
pub const MFT_INPUT_STREAM_DOES_NOT_ADDREF = _MFT_INPUT_STREAM_INFO_FLAGS.DOES_NOT_ADDREF;
|
|
pub const MFT_INPUT_STREAM_REMOVABLE = _MFT_INPUT_STREAM_INFO_FLAGS.REMOVABLE;
|
|
pub const MFT_INPUT_STREAM_OPTIONAL = _MFT_INPUT_STREAM_INFO_FLAGS.OPTIONAL;
|
|
pub const MFT_INPUT_STREAM_PROCESSES_IN_PLACE = _MFT_INPUT_STREAM_INFO_FLAGS.PROCESSES_IN_PLACE;
|
|
|
|
pub const _MFT_OUTPUT_STREAM_INFO_FLAGS = enum(i32) {
|
|
WHOLE_SAMPLES = 1,
|
|
SINGLE_SAMPLE_PER_BUFFER = 2,
|
|
FIXED_SAMPLE_SIZE = 4,
|
|
DISCARDABLE = 8,
|
|
OPTIONAL = 16,
|
|
PROVIDES_SAMPLES = 256,
|
|
CAN_PROVIDE_SAMPLES = 512,
|
|
LAZY_READ = 1024,
|
|
REMOVABLE = 2048,
|
|
};
|
|
pub const MFT_OUTPUT_STREAM_WHOLE_SAMPLES = _MFT_OUTPUT_STREAM_INFO_FLAGS.WHOLE_SAMPLES;
|
|
pub const MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = _MFT_OUTPUT_STREAM_INFO_FLAGS.SINGLE_SAMPLE_PER_BUFFER;
|
|
pub const MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = _MFT_OUTPUT_STREAM_INFO_FLAGS.FIXED_SAMPLE_SIZE;
|
|
pub const MFT_OUTPUT_STREAM_DISCARDABLE = _MFT_OUTPUT_STREAM_INFO_FLAGS.DISCARDABLE;
|
|
pub const MFT_OUTPUT_STREAM_OPTIONAL = _MFT_OUTPUT_STREAM_INFO_FLAGS.OPTIONAL;
|
|
pub const MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = _MFT_OUTPUT_STREAM_INFO_FLAGS.PROVIDES_SAMPLES;
|
|
pub const MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = _MFT_OUTPUT_STREAM_INFO_FLAGS.CAN_PROVIDE_SAMPLES;
|
|
pub const MFT_OUTPUT_STREAM_LAZY_READ = _MFT_OUTPUT_STREAM_INFO_FLAGS.LAZY_READ;
|
|
pub const MFT_OUTPUT_STREAM_REMOVABLE = _MFT_OUTPUT_STREAM_INFO_FLAGS.REMOVABLE;
|
|
|
|
pub const _MFT_SET_TYPE_FLAGS = enum(i32) {
|
|
Y = 1,
|
|
};
|
|
pub const MFT_SET_TYPE_TEST_ONLY = _MFT_SET_TYPE_FLAGS.Y;
|
|
|
|
pub const _MFT_PROCESS_OUTPUT_FLAGS = enum(i32) {
|
|
DISCARD_WHEN_NO_BUFFER = 1,
|
|
REGENERATE_LAST_OUTPUT = 2,
|
|
};
|
|
pub const MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = _MFT_PROCESS_OUTPUT_FLAGS.DISCARD_WHEN_NO_BUFFER;
|
|
pub const MFT_PROCESS_OUTPUT_REGENERATE_LAST_OUTPUT = _MFT_PROCESS_OUTPUT_FLAGS.REGENERATE_LAST_OUTPUT;
|
|
|
|
pub const _MFT_PROCESS_OUTPUT_STATUS = enum(i32) {
|
|
S = 256,
|
|
};
|
|
pub const MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = _MFT_PROCESS_OUTPUT_STATUS.S;
|
|
|
|
pub const MFT_DRAIN_TYPE = enum(i32) {
|
|
PRODUCE_TAILS = 0,
|
|
NO_TAILS = 1,
|
|
};
|
|
pub const MFT_DRAIN_PRODUCE_TAILS = MFT_DRAIN_TYPE.PRODUCE_TAILS;
|
|
pub const MFT_DRAIN_NO_TAILS = MFT_DRAIN_TYPE.NO_TAILS;
|
|
|
|
pub const MFT_MESSAGE_TYPE = enum(i32) {
|
|
COMMAND_FLUSH = 0,
|
|
COMMAND_DRAIN = 1,
|
|
SET_D3D_MANAGER = 2,
|
|
DROP_SAMPLES = 3,
|
|
COMMAND_TICK = 4,
|
|
NOTIFY_BEGIN_STREAMING = 268435456,
|
|
NOTIFY_END_STREAMING = 268435457,
|
|
NOTIFY_END_OF_STREAM = 268435458,
|
|
NOTIFY_START_OF_STREAM = 268435459,
|
|
NOTIFY_RELEASE_RESOURCES = 268435460,
|
|
NOTIFY_REACQUIRE_RESOURCES = 268435461,
|
|
NOTIFY_EVENT = 268435462,
|
|
COMMAND_SET_OUTPUT_STREAM_STATE = 268435463,
|
|
COMMAND_FLUSH_OUTPUT_STREAM = 268435464,
|
|
COMMAND_MARKER = 536870912,
|
|
};
|
|
pub const MFT_MESSAGE_COMMAND_FLUSH = MFT_MESSAGE_TYPE.COMMAND_FLUSH;
|
|
pub const MFT_MESSAGE_COMMAND_DRAIN = MFT_MESSAGE_TYPE.COMMAND_DRAIN;
|
|
pub const MFT_MESSAGE_SET_D3D_MANAGER = MFT_MESSAGE_TYPE.SET_D3D_MANAGER;
|
|
pub const MFT_MESSAGE_DROP_SAMPLES = MFT_MESSAGE_TYPE.DROP_SAMPLES;
|
|
pub const MFT_MESSAGE_COMMAND_TICK = MFT_MESSAGE_TYPE.COMMAND_TICK;
|
|
pub const MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = MFT_MESSAGE_TYPE.NOTIFY_BEGIN_STREAMING;
|
|
pub const MFT_MESSAGE_NOTIFY_END_STREAMING = MFT_MESSAGE_TYPE.NOTIFY_END_STREAMING;
|
|
pub const MFT_MESSAGE_NOTIFY_END_OF_STREAM = MFT_MESSAGE_TYPE.NOTIFY_END_OF_STREAM;
|
|
pub const MFT_MESSAGE_NOTIFY_START_OF_STREAM = MFT_MESSAGE_TYPE.NOTIFY_START_OF_STREAM;
|
|
pub const MFT_MESSAGE_NOTIFY_RELEASE_RESOURCES = MFT_MESSAGE_TYPE.NOTIFY_RELEASE_RESOURCES;
|
|
pub const MFT_MESSAGE_NOTIFY_REACQUIRE_RESOURCES = MFT_MESSAGE_TYPE.NOTIFY_REACQUIRE_RESOURCES;
|
|
pub const MFT_MESSAGE_NOTIFY_EVENT = MFT_MESSAGE_TYPE.NOTIFY_EVENT;
|
|
pub const MFT_MESSAGE_COMMAND_SET_OUTPUT_STREAM_STATE = MFT_MESSAGE_TYPE.COMMAND_SET_OUTPUT_STREAM_STATE;
|
|
pub const MFT_MESSAGE_COMMAND_FLUSH_OUTPUT_STREAM = MFT_MESSAGE_TYPE.COMMAND_FLUSH_OUTPUT_STREAM;
|
|
pub const MFT_MESSAGE_COMMAND_MARKER = MFT_MESSAGE_TYPE.COMMAND_MARKER;
|
|
|
|
pub const MFT_INPUT_STREAM_INFO = extern struct {
|
|
hnsMaxLatency: i64,
|
|
dwFlags: u32,
|
|
cbSize: u32,
|
|
cbMaxLookahead: u32,
|
|
cbAlignment: u32,
|
|
};
|
|
|
|
pub const MFT_OUTPUT_STREAM_INFO = extern struct {
|
|
dwFlags: u32,
|
|
cbSize: u32,
|
|
cbAlignment: u32,
|
|
};
|
|
|
|
pub const MFT_OUTPUT_DATA_BUFFER = extern struct {
|
|
dwStreamID: u32,
|
|
pSample: ?*IMFSample,
|
|
dwStatus: u32,
|
|
pEvents: ?*IMFCollection,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTransform_Value = Guid.initString("bf94c121-5b05-4e6f-8000-ba598961414d");
|
|
pub const IID_IMFTransform = &IID_IMFTransform_Value;
|
|
pub const IMFTransform = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamLimits: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
pdwInputMinimum: ?*u32,
|
|
pdwInputMaximum: ?*u32,
|
|
pdwOutputMinimum: ?*u32,
|
|
pdwOutputMaximum: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
pdwInputMinimum: ?*u32,
|
|
pdwInputMaximum: ?*u32,
|
|
pdwOutputMinimum: ?*u32,
|
|
pdwOutputMaximum: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
pcInputStreams: ?*u32,
|
|
pcOutputStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
pcInputStreams: ?*u32,
|
|
pcOutputStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamIDs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputIDArraySize: u32,
|
|
pdwInputIDs: [*]u32,
|
|
dwOutputIDArraySize: u32,
|
|
pdwOutputIDs: [*]u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputIDArraySize: u32,
|
|
pdwInputIDs: [*]u32,
|
|
dwOutputIDArraySize: u32,
|
|
pdwOutputIDs: [*]u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputStreamInfo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pStreamInfo: ?*MFT_INPUT_STREAM_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pStreamInfo: ?*MFT_INPUT_STREAM_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStreamInfo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pStreamInfo: ?*MFT_OUTPUT_STREAM_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pStreamInfo: ?*MFT_OUTPUT_STREAM_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputStreamAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStreamAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeleteInputStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwStreamID: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwStreamID: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddInputStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
cStreams: u32,
|
|
adwStreamIDs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
cStreams: u32,
|
|
adwStreamIDs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputAvailableType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
dwTypeIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
dwTypeIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputAvailableType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
dwTypeIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
dwTypeIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInputType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pType: ?*IMFMediaType,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pType: ?*IMFMediaType,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pType: ?*IMFMediaType,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
pType: ?*IMFMediaType,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputCurrentType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputCurrentType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwOutputStreamID: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputBounds: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
hnsLowerBound: i64,
|
|
hnsUpperBound: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
hnsLowerBound: i64,
|
|
hnsUpperBound: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessMessage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
eMessage: MFT_MESSAGE_TYPE,
|
|
ulParam: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
eMessage: MFT_MESSAGE_TYPE,
|
|
ulParam: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessInput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pSample: ?*IMFSample,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwInputStreamID: u32,
|
|
pSample: ?*IMFSample,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessOutput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTransform,
|
|
dwFlags: u32,
|
|
cOutputBufferCount: u32,
|
|
pOutputSamples: [*]MFT_OUTPUT_DATA_BUFFER,
|
|
pdwStatus: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTransform,
|
|
dwFlags: u32,
|
|
cOutputBufferCount: u32,
|
|
pOutputSamples: [*]MFT_OUTPUT_DATA_BUFFER,
|
|
pdwStatus: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetStreamLimits(self: *const T, pdwInputMinimum: ?*u32, pdwInputMaximum: ?*u32, pdwOutputMinimum: ?*u32, pdwOutputMaximum: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetStreamLimits(@as(*const IMFTransform, @ptrCast(self)), pdwInputMinimum, pdwInputMaximum, pdwOutputMinimum, pdwOutputMaximum);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetStreamCount(self: *const T, pcInputStreams: ?*u32, pcOutputStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFTransform, @ptrCast(self)), pcInputStreams, pcOutputStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetStreamIDs(self: *const T, dwInputIDArraySize: u32, pdwInputIDs: [*]u32, dwOutputIDArraySize: u32, pdwOutputIDs: [*]u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetStreamIDs(@as(*const IMFTransform, @ptrCast(self)), dwInputIDArraySize, pdwInputIDs, dwOutputIDArraySize, pdwOutputIDs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetInputStreamInfo(self: *const T, dwInputStreamID: u32, pStreamInfo: ?*MFT_INPUT_STREAM_INFO) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetInputStreamInfo(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pStreamInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetOutputStreamInfo(self: *const T, dwOutputStreamID: u32, pStreamInfo: ?*MFT_OUTPUT_STREAM_INFO) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetOutputStreamInfo(@as(*const IMFTransform, @ptrCast(self)), dwOutputStreamID, pStreamInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetAttributes(self: *const T, pAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetAttributes(@as(*const IMFTransform, @ptrCast(self)), pAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetInputStreamAttributes(self: *const T, dwInputStreamID: u32, pAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetInputStreamAttributes(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetOutputStreamAttributes(self: *const T, dwOutputStreamID: u32, pAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetOutputStreamAttributes(@as(*const IMFTransform, @ptrCast(self)), dwOutputStreamID, pAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_DeleteInputStream(self: *const T, dwStreamID: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).DeleteInputStream(@as(*const IMFTransform, @ptrCast(self)), dwStreamID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_AddInputStreams(self: *const T, cStreams: u32, adwStreamIDs: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).AddInputStreams(@as(*const IMFTransform, @ptrCast(self)), cStreams, adwStreamIDs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetInputAvailableType(self: *const T, dwInputStreamID: u32, dwTypeIndex: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetInputAvailableType(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, dwTypeIndex, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetOutputAvailableType(self: *const T, dwOutputStreamID: u32, dwTypeIndex: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetOutputAvailableType(@as(*const IMFTransform, @ptrCast(self)), dwOutputStreamID, dwTypeIndex, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_SetInputType(self: *const T, dwInputStreamID: u32, pType: ?*IMFMediaType, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).SetInputType(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pType, dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_SetOutputType(self: *const T, dwOutputStreamID: u32, pType: ?*IMFMediaType, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).SetOutputType(@as(*const IMFTransform, @ptrCast(self)), dwOutputStreamID, pType, dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetInputCurrentType(self: *const T, dwInputStreamID: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetInputCurrentType(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetOutputCurrentType(self: *const T, dwOutputStreamID: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetOutputCurrentType(@as(*const IMFTransform, @ptrCast(self)), dwOutputStreamID, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetInputStatus(self: *const T, dwInputStreamID: u32, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetInputStatus(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_GetOutputStatus(self: *const T, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).GetOutputStatus(@as(*const IMFTransform, @ptrCast(self)), pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_SetOutputBounds(self: *const T, hnsLowerBound: i64, hnsUpperBound: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).SetOutputBounds(@as(*const IMFTransform, @ptrCast(self)), hnsLowerBound, hnsUpperBound);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_ProcessEvent(self: *const T, dwInputStreamID: u32, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).ProcessEvent(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_ProcessMessage(self: *const T, eMessage: MFT_MESSAGE_TYPE, ulParam: usize) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).ProcessMessage(@as(*const IMFTransform, @ptrCast(self)), eMessage, ulParam);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_ProcessInput(self: *const T, dwInputStreamID: u32, pSample: ?*IMFSample, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).ProcessInput(@as(*const IMFTransform, @ptrCast(self)), dwInputStreamID, pSample, dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTransform_ProcessOutput(self: *const T, dwFlags: u32, cOutputBufferCount: u32, pOutputSamples: [*]MFT_OUTPUT_DATA_BUFFER, pdwStatus: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTransform.VTable, @ptrCast(self.vtable)).ProcessOutput(@as(*const IMFTransform, @ptrCast(self)), dwFlags, cOutputBufferCount, pOutputSamples, pdwStatus);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const DeviceStreamState = enum(i32) {
|
|
Stop = 0,
|
|
Pause = 1,
|
|
Run = 2,
|
|
Disabled = 3,
|
|
};
|
|
pub const DeviceStreamState_Stop = DeviceStreamState.Stop;
|
|
pub const DeviceStreamState_Pause = DeviceStreamState.Pause;
|
|
pub const DeviceStreamState_Run = DeviceStreamState.Run;
|
|
pub const DeviceStreamState_Disabled = DeviceStreamState.Disabled;
|
|
|
|
pub const STREAM_MEDIUM = extern struct {
|
|
gidMedium: Guid,
|
|
unMediumInstance: u32,
|
|
};
|
|
|
|
pub const MF3DVideoOutputType = enum(i32) {
|
|
BaseView = 0,
|
|
Stereo = 1,
|
|
};
|
|
pub const MF3DVideoOutputType_BaseView = MF3DVideoOutputType.BaseView;
|
|
pub const MF3DVideoOutputType_Stereo = MF3DVideoOutputType.Stereo;
|
|
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_REASON = enum(i32) {
|
|
NONE = 0,
|
|
LICENSING_REQUIREMENT = 1,
|
|
};
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_REASON_NONE = MFT_AUDIO_DECODER_DEGRADATION_REASON.NONE;
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_REASON_LICENSING_REQUIREMENT = MFT_AUDIO_DECODER_DEGRADATION_REASON.LICENSING_REQUIREMENT;
|
|
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_TYPE = enum(i32) {
|
|
NONE = 0,
|
|
DOWNMIX2CHANNEL = 1,
|
|
DOWNMIX6CHANNEL = 2,
|
|
DOWNMIX8CHANNEL = 3,
|
|
};
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_TYPE_NONE = MFT_AUDIO_DECODER_DEGRADATION_TYPE.NONE;
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_TYPE_DOWNMIX2CHANNEL = MFT_AUDIO_DECODER_DEGRADATION_TYPE.DOWNMIX2CHANNEL;
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_TYPE_DOWNMIX6CHANNEL = MFT_AUDIO_DECODER_DEGRADATION_TYPE.DOWNMIX6CHANNEL;
|
|
pub const MFT_AUDIO_DECODER_DEGRADATION_TYPE_DOWNMIX8CHANNEL = MFT_AUDIO_DECODER_DEGRADATION_TYPE.DOWNMIX8CHANNEL;
|
|
|
|
pub const MFAudioDecoderDegradationInfo = extern struct {
|
|
eDegradationReason: MFT_AUDIO_DECODER_DEGRADATION_REASON,
|
|
eType: MFT_AUDIO_DECODER_DEGRADATION_TYPE,
|
|
};
|
|
|
|
pub const MFT_STREAM_STATE_PARAM = extern struct {
|
|
StreamId: u32,
|
|
State: MF_STREAM_STATE,
|
|
};
|
|
|
|
pub const MFSESSION_SETTOPOLOGY_FLAGS = enum(i32) {
|
|
IMMEDIATE = 1,
|
|
NORESOLUTION = 2,
|
|
CLEAR_CURRENT = 4,
|
|
};
|
|
pub const MFSESSION_SETTOPOLOGY_IMMEDIATE = MFSESSION_SETTOPOLOGY_FLAGS.IMMEDIATE;
|
|
pub const MFSESSION_SETTOPOLOGY_NORESOLUTION = MFSESSION_SETTOPOLOGY_FLAGS.NORESOLUTION;
|
|
pub const MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = MFSESSION_SETTOPOLOGY_FLAGS.CLEAR_CURRENT;
|
|
|
|
pub const MFSESSION_GETFULLTOPOLOGY_FLAGS = enum(i32) {
|
|
T = 1,
|
|
};
|
|
pub const MFSESSION_GETFULLTOPOLOGY_CURRENT = MFSESSION_GETFULLTOPOLOGY_FLAGS.T;
|
|
|
|
pub const MFPMPSESSION_CREATION_FLAGS = enum(i32) {
|
|
UNPROTECTED_PROCESS = 1,
|
|
IN_PROCESS = 2,
|
|
};
|
|
pub const MFPMPSESSION_UNPROTECTED_PROCESS = MFPMPSESSION_CREATION_FLAGS.UNPROTECTED_PROCESS;
|
|
pub const MFPMPSESSION_IN_PROCESS = MFPMPSESSION_CREATION_FLAGS.IN_PROCESS;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSession_Value = Guid.initString("90377834-21d0-4dee-8214-ba2e3e6c1127");
|
|
pub const IID_IMFMediaSession = &IID_IMFMediaSession_Value;
|
|
pub const IMFMediaSession = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEventGenerator.VTable,
|
|
SetTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
dwSetTopologyFlags: u32,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
dwSetTopologyFlags: u32,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearTopologies: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Pause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
ppClock: ?*?*IMFClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
ppClock: ?*?*IMFClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSessionCapabilities: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
pdwCaps: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
pdwCaps: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFullTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSession,
|
|
dwGetFullTopologyFlags: u32,
|
|
TopoId: u64,
|
|
ppFullTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSession,
|
|
dwGetFullTopologyFlags: u32,
|
|
TopoId: u64,
|
|
ppFullTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEventGenerator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_SetTopology(self: *const T, dwSetTopologyFlags: u32, pTopology: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).SetTopology(@as(*const IMFMediaSession, @ptrCast(self)), dwSetTopologyFlags, pTopology);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_ClearTopologies(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).ClearTopologies(@as(*const IMFMediaSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_Start(self: *const T, pguidTimeFormat: ?*const Guid, pvarStartPosition: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFMediaSession, @ptrCast(self)), pguidTimeFormat, pvarStartPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_Pause(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMFMediaSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFMediaSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFMediaSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_GetClock(self: *const T, ppClock: ?*?*IMFClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).GetClock(@as(*const IMFMediaSession, @ptrCast(self)), ppClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_GetSessionCapabilities(self: *const T, pdwCaps: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).GetSessionCapabilities(@as(*const IMFMediaSession, @ptrCast(self)), pdwCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSession_GetFullTopology(self: *const T, dwGetFullTopologyFlags: u32, TopoId: u64, ppFullTopology: ?*?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSession.VTable, @ptrCast(self.vtable)).GetFullTopology(@as(*const IMFMediaSession, @ptrCast(self)), dwGetFullTopologyFlags, TopoId, ppFullTopology);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_OBJECT_TYPE = enum(i32) {
|
|
MEDIASOURCE = 0,
|
|
BYTESTREAM = 1,
|
|
INVALID = 2,
|
|
};
|
|
pub const MF_OBJECT_MEDIASOURCE = MF_OBJECT_TYPE.MEDIASOURCE;
|
|
pub const MF_OBJECT_BYTESTREAM = MF_OBJECT_TYPE.BYTESTREAM;
|
|
pub const MF_OBJECT_INVALID = MF_OBJECT_TYPE.INVALID;
|
|
|
|
pub const MF_RESOLUTION_FLAGS = enum(u32) {
|
|
MEDIASOURCE = 1,
|
|
BYTESTREAM = 2,
|
|
CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 16,
|
|
KEEP_BYTE_STREAM_ALIVE_ON_FAIL = 32,
|
|
DISABLE_LOCAL_PLUGINS = 64,
|
|
PLUGIN_CONTROL_POLICY_APPROVED_ONLY = 128,
|
|
PLUGIN_CONTROL_POLICY_WEB_ONLY = 256,
|
|
PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE = 512,
|
|
ENABLE_STORE_PLUGINS = 1024,
|
|
READ = 65536,
|
|
WRITE = 131072,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
MEDIASOURCE: u1 = 0,
|
|
BYTESTREAM: u1 = 0,
|
|
CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE: u1 = 0,
|
|
KEEP_BYTE_STREAM_ALIVE_ON_FAIL: u1 = 0,
|
|
DISABLE_LOCAL_PLUGINS: u1 = 0,
|
|
PLUGIN_CONTROL_POLICY_APPROVED_ONLY: u1 = 0,
|
|
PLUGIN_CONTROL_POLICY_WEB_ONLY: u1 = 0,
|
|
PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE: u1 = 0,
|
|
ENABLE_STORE_PLUGINS: u1 = 0,
|
|
READ: u1 = 0,
|
|
WRITE: u1 = 0,
|
|
}) MF_RESOLUTION_FLAGS {
|
|
return @as(MF_RESOLUTION_FLAGS, @enumFromInt(
|
|
(if (o.MEDIASOURCE == 1) @intFromEnum(MF_RESOLUTION_FLAGS.MEDIASOURCE) else 0)
|
|
| (if (o.BYTESTREAM == 1) @intFromEnum(MF_RESOLUTION_FLAGS.BYTESTREAM) else 0)
|
|
| (if (o.CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE == 1) @intFromEnum(MF_RESOLUTION_FLAGS.CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE) else 0)
|
|
| (if (o.KEEP_BYTE_STREAM_ALIVE_ON_FAIL == 1) @intFromEnum(MF_RESOLUTION_FLAGS.KEEP_BYTE_STREAM_ALIVE_ON_FAIL) else 0)
|
|
| (if (o.DISABLE_LOCAL_PLUGINS == 1) @intFromEnum(MF_RESOLUTION_FLAGS.DISABLE_LOCAL_PLUGINS) else 0)
|
|
| (if (o.PLUGIN_CONTROL_POLICY_APPROVED_ONLY == 1) @intFromEnum(MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_APPROVED_ONLY) else 0)
|
|
| (if (o.PLUGIN_CONTROL_POLICY_WEB_ONLY == 1) @intFromEnum(MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_WEB_ONLY) else 0)
|
|
| (if (o.PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE == 1) @intFromEnum(MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE) else 0)
|
|
| (if (o.ENABLE_STORE_PLUGINS == 1) @intFromEnum(MF_RESOLUTION_FLAGS.ENABLE_STORE_PLUGINS) else 0)
|
|
| (if (o.READ == 1) @intFromEnum(MF_RESOLUTION_FLAGS.READ) else 0)
|
|
| (if (o.WRITE == 1) @intFromEnum(MF_RESOLUTION_FLAGS.WRITE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const MF_RESOLUTION_MEDIASOURCE = MF_RESOLUTION_FLAGS.MEDIASOURCE;
|
|
pub const MF_RESOLUTION_BYTESTREAM = MF_RESOLUTION_FLAGS.BYTESTREAM;
|
|
pub const MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = MF_RESOLUTION_FLAGS.CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE;
|
|
pub const MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL = MF_RESOLUTION_FLAGS.KEEP_BYTE_STREAM_ALIVE_ON_FAIL;
|
|
pub const MF_RESOLUTION_DISABLE_LOCAL_PLUGINS = MF_RESOLUTION_FLAGS.DISABLE_LOCAL_PLUGINS;
|
|
pub const MF_RESOLUTION_PLUGIN_CONTROL_POLICY_APPROVED_ONLY = MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_APPROVED_ONLY;
|
|
pub const MF_RESOLUTION_PLUGIN_CONTROL_POLICY_WEB_ONLY = MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_WEB_ONLY;
|
|
pub const MF_RESOLUTION_PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE = MF_RESOLUTION_FLAGS.PLUGIN_CONTROL_POLICY_WEB_ONLY_EDGEMODE;
|
|
pub const MF_RESOLUTION_ENABLE_STORE_PLUGINS = MF_RESOLUTION_FLAGS.ENABLE_STORE_PLUGINS;
|
|
pub const MF_RESOLUTION_READ = MF_RESOLUTION_FLAGS.READ;
|
|
pub const MF_RESOLUTION_WRITE = MF_RESOLUTION_FLAGS.WRITE;
|
|
|
|
pub const MF_CONNECT_METHOD = enum(i32) {
|
|
DIRECT = 0,
|
|
ALLOW_CONVERTER = 1,
|
|
ALLOW_DECODER = 3,
|
|
RESOLVE_INDEPENDENT_OUTPUTTYPES = 4,
|
|
AS_OPTIONAL = 65536,
|
|
AS_OPTIONAL_BRANCH = 131072,
|
|
};
|
|
pub const MF_CONNECT_DIRECT = MF_CONNECT_METHOD.DIRECT;
|
|
pub const MF_CONNECT_ALLOW_CONVERTER = MF_CONNECT_METHOD.ALLOW_CONVERTER;
|
|
pub const MF_CONNECT_ALLOW_DECODER = MF_CONNECT_METHOD.ALLOW_DECODER;
|
|
pub const MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = MF_CONNECT_METHOD.RESOLVE_INDEPENDENT_OUTPUTTYPES;
|
|
pub const MF_CONNECT_AS_OPTIONAL = MF_CONNECT_METHOD.AS_OPTIONAL;
|
|
pub const MF_CONNECT_AS_OPTIONAL_BRANCH = MF_CONNECT_METHOD.AS_OPTIONAL_BRANCH;
|
|
|
|
pub const MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS = enum(i32) {
|
|
TOPOLOGY_RESOLUTION_SUCCEEDED = 0,
|
|
OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 1,
|
|
OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 2,
|
|
};
|
|
pub const MF_TOPOLOGY_RESOLUTION_SUCCEEDED = MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS.TOPOLOGY_RESOLUTION_SUCCEEDED;
|
|
pub const MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS.OPTIONAL_NODE_REJECTED_MEDIA_TYPE;
|
|
pub const MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS.OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSourceResolver_Value = Guid.initString("fbe5a32d-a497-4b61-bb85-97b1a848a6e3");
|
|
pub const IID_IMFSourceResolver = &IID_IMFSourceResolver_Value;
|
|
pub const IMFSourceResolver = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateObjectFromURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateObjectFromByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginCreateObjectFromURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndCreateObjectFromURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginCreateObjectFromByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndCreateObjectFromByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelObjectCreation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceResolver,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceResolver,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_CreateObjectFromURL(self: *const T, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).CreateObjectFromURL(@as(*const IMFSourceResolver, @ptrCast(self)), pwszURL, dwFlags, pProps, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_CreateObjectFromByteStream(self: *const T, pByteStream: ?*IMFByteStream, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).CreateObjectFromByteStream(@as(*const IMFSourceResolver, @ptrCast(self)), pByteStream, pwszURL, dwFlags, pProps, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_BeginCreateObjectFromURL(self: *const T, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, ppIUnknownCancelCookie: ?*?*IUnknown, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).BeginCreateObjectFromURL(@as(*const IMFSourceResolver, @ptrCast(self)), pwszURL, dwFlags, pProps, ppIUnknownCancelCookie, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_EndCreateObjectFromURL(self: *const T, pResult: ?*IMFAsyncResult, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).EndCreateObjectFromURL(@as(*const IMFSourceResolver, @ptrCast(self)), pResult, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_BeginCreateObjectFromByteStream(self: *const T, pByteStream: ?*IMFByteStream, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, ppIUnknownCancelCookie: ?*?*IUnknown, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).BeginCreateObjectFromByteStream(@as(*const IMFSourceResolver, @ptrCast(self)), pByteStream, pwszURL, dwFlags, pProps, ppIUnknownCancelCookie, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_EndCreateObjectFromByteStream(self: *const T, pResult: ?*IMFAsyncResult, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).EndCreateObjectFromByteStream(@as(*const IMFSourceResolver, @ptrCast(self)), pResult, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceResolver_CancelObjectCreation(self: *const T, pIUnknownCancelCookie: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceResolver.VTable, @ptrCast(self.vtable)).CancelObjectCreation(@as(*const IMFSourceResolver, @ptrCast(self)), pIUnknownCancelCookie);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFMEDIASOURCE_CHARACTERISTICS = enum(i32) {
|
|
IS_LIVE = 1,
|
|
CAN_SEEK = 2,
|
|
CAN_PAUSE = 4,
|
|
HAS_SLOW_SEEK = 8,
|
|
HAS_MULTIPLE_PRESENTATIONS = 16,
|
|
CAN_SKIPFORWARD = 32,
|
|
CAN_SKIPBACKWARD = 64,
|
|
DOES_NOT_USE_NETWORK = 128,
|
|
};
|
|
pub const MFMEDIASOURCE_IS_LIVE = MFMEDIASOURCE_CHARACTERISTICS.IS_LIVE;
|
|
pub const MFMEDIASOURCE_CAN_SEEK = MFMEDIASOURCE_CHARACTERISTICS.CAN_SEEK;
|
|
pub const MFMEDIASOURCE_CAN_PAUSE = MFMEDIASOURCE_CHARACTERISTICS.CAN_PAUSE;
|
|
pub const MFMEDIASOURCE_HAS_SLOW_SEEK = MFMEDIASOURCE_CHARACTERISTICS.HAS_SLOW_SEEK;
|
|
pub const MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = MFMEDIASOURCE_CHARACTERISTICS.HAS_MULTIPLE_PRESENTATIONS;
|
|
pub const MFMEDIASOURCE_CAN_SKIPFORWARD = MFMEDIASOURCE_CHARACTERISTICS.CAN_SKIPFORWARD;
|
|
pub const MFMEDIASOURCE_CAN_SKIPBACKWARD = MFMEDIASOURCE_CHARACTERISTICS.CAN_SKIPBACKWARD;
|
|
pub const MFMEDIASOURCE_DOES_NOT_USE_NETWORK = MFMEDIASOURCE_CHARACTERISTICS.DOES_NOT_USE_NETWORK;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSource_Value = Guid.initString("279a808d-aec7-40c8-9c6b-a6b492c78a66");
|
|
pub const IID_IMFMediaSource = &IID_IMFMediaSource_Value;
|
|
pub const IMFMediaSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEventGenerator.VTable,
|
|
GetCharacteristics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreatePresentationDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
ppPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
ppPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Pause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEventGenerator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_GetCharacteristics(self: *const T, pdwCharacteristics: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).GetCharacteristics(@as(*const IMFMediaSource, @ptrCast(self)), pdwCharacteristics);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_CreatePresentationDescriptor(self: *const T, ppPresentationDescriptor: ?*?*IMFPresentationDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).CreatePresentationDescriptor(@as(*const IMFMediaSource, @ptrCast(self)), ppPresentationDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_Start(self: *const T, pPresentationDescriptor: ?*IMFPresentationDescriptor, pguidTimeFormat: ?*const Guid, pvarStartPosition: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFMediaSource, @ptrCast(self)), pPresentationDescriptor, pguidTimeFormat, pvarStartPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFMediaSource, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_Pause(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMFMediaSource, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaSource, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaSourceEx_Value = Guid.initString("3c9b2eb9-86d5-4514-a394-f56664f9f0d8");
|
|
pub const IID_IMFMediaSourceEx = &IID_IMFMediaSourceEx_Value;
|
|
pub const IMFMediaSourceEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaSource.VTable,
|
|
GetSourceAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceEx,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceEx,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceEx,
|
|
dwStreamIdentifier: u32,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceEx,
|
|
dwStreamIdentifier: u32,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetD3DManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceEx,
|
|
pManager: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceEx,
|
|
pManager: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaSource.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceEx_GetSourceAttributes(self: *const T, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceEx.VTable, @ptrCast(self.vtable)).GetSourceAttributes(@as(*const IMFMediaSourceEx, @ptrCast(self)), ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceEx_GetStreamAttributes(self: *const T, dwStreamIdentifier: u32, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceEx.VTable, @ptrCast(self.vtable)).GetStreamAttributes(@as(*const IMFMediaSourceEx, @ptrCast(self)), dwStreamIdentifier, ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceEx_SetD3DManager(self: *const T, pManager: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceEx.VTable, @ptrCast(self.vtable)).SetD3DManager(@as(*const IMFMediaSourceEx, @ptrCast(self)), pManager);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFClockConsumer_Value = Guid.initString("6ef2a662-47c0-4666-b13d-cbb717f2fa2c");
|
|
pub const IID_IMFClockConsumer = &IID_IMFClockConsumer_Value;
|
|
pub const IMFClockConsumer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockConsumer,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockConsumer,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockConsumer,
|
|
ppPresentationClock: ?*?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockConsumer,
|
|
ppPresentationClock: ?*?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockConsumer_SetPresentationClock(self: *const T, pPresentationClock: ?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockConsumer.VTable, @ptrCast(self.vtable)).SetPresentationClock(@as(*const IMFClockConsumer, @ptrCast(self)), pPresentationClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockConsumer_GetPresentationClock(self: *const T, ppPresentationClock: ?*?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockConsumer.VTable, @ptrCast(self.vtable)).GetPresentationClock(@as(*const IMFClockConsumer, @ptrCast(self)), ppPresentationClock);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaStream_Value = Guid.initString("d182108f-4ec6-443f-aa42-a71106ec825f");
|
|
pub const IID_IMFMediaStream = &IID_IMFMediaStream_Value;
|
|
pub const IMFMediaStream = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEventGenerator.VTable,
|
|
GetMediaSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStream,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStream,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStream,
|
|
ppStreamDescriptor: ?*?*IMFStreamDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStream,
|
|
ppStreamDescriptor: ?*?*IMFStreamDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RequestSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStream,
|
|
pToken: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStream,
|
|
pToken: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEventGenerator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStream_GetMediaSource(self: *const T, ppMediaSource: ?*?*IMFMediaSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStream.VTable, @ptrCast(self.vtable)).GetMediaSource(@as(*const IMFMediaStream, @ptrCast(self)), ppMediaSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStream_GetStreamDescriptor(self: *const T, ppStreamDescriptor: ?*?*IMFStreamDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStream.VTable, @ptrCast(self.vtable)).GetStreamDescriptor(@as(*const IMFMediaStream, @ptrCast(self)), ppStreamDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStream_RequestSample(self: *const T, pToken: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStream.VTable, @ptrCast(self.vtable)).RequestSample(@as(*const IMFMediaStream, @ptrCast(self)), pToken);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSink_Value = Guid.initString("6ef2a660-47c0-4666-b13d-cbb717f2fa2c");
|
|
pub const IID_IMFMediaSink = &IID_IMFMediaSink_Value;
|
|
pub const IMFMediaSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCharacteristics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStreamSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStreamSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamSinkCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
pcStreamSinkCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
pcStreamSinkCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamSinkByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
dwIndex: u32,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
dwIndex: u32,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamSinkById: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
dwStreamSinkIdentifier: u32,
|
|
ppStreamSink: ?*?*IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
ppPresentationClock: ?*?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
ppPresentationClock: ?*?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_GetCharacteristics(self: *const T, pdwCharacteristics: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).GetCharacteristics(@as(*const IMFMediaSink, @ptrCast(self)), pdwCharacteristics);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_AddStreamSink(self: *const T, dwStreamSinkIdentifier: u32, pMediaType: ?*IMFMediaType, ppStreamSink: ?*?*IMFStreamSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).AddStreamSink(@as(*const IMFMediaSink, @ptrCast(self)), dwStreamSinkIdentifier, pMediaType, ppStreamSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_RemoveStreamSink(self: *const T, dwStreamSinkIdentifier: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).RemoveStreamSink(@as(*const IMFMediaSink, @ptrCast(self)), dwStreamSinkIdentifier);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_GetStreamSinkCount(self: *const T, pcStreamSinkCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).GetStreamSinkCount(@as(*const IMFMediaSink, @ptrCast(self)), pcStreamSinkCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_GetStreamSinkByIndex(self: *const T, dwIndex: u32, ppStreamSink: ?*?*IMFStreamSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).GetStreamSinkByIndex(@as(*const IMFMediaSink, @ptrCast(self)), dwIndex, ppStreamSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_GetStreamSinkById(self: *const T, dwStreamSinkIdentifier: u32, ppStreamSink: ?*?*IMFStreamSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).GetStreamSinkById(@as(*const IMFMediaSink, @ptrCast(self)), dwStreamSinkIdentifier, ppStreamSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_SetPresentationClock(self: *const T, pPresentationClock: ?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).SetPresentationClock(@as(*const IMFMediaSink, @ptrCast(self)), pPresentationClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_GetPresentationClock(self: *const T, ppPresentationClock: ?*?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).GetPresentationClock(@as(*const IMFMediaSink, @ptrCast(self)), ppPresentationClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSink_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSink.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaSink, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFSTREAMSINK_MARKER_TYPE = enum(i32) {
|
|
DEFAULT = 0,
|
|
ENDOFSEGMENT = 1,
|
|
TICK = 2,
|
|
EVENT = 3,
|
|
};
|
|
pub const MFSTREAMSINK_MARKER_DEFAULT = MFSTREAMSINK_MARKER_TYPE.DEFAULT;
|
|
pub const MFSTREAMSINK_MARKER_ENDOFSEGMENT = MFSTREAMSINK_MARKER_TYPE.ENDOFSEGMENT;
|
|
pub const MFSTREAMSINK_MARKER_TICK = MFSTREAMSINK_MARKER_TYPE.TICK;
|
|
pub const MFSTREAMSINK_MARKER_EVENT = MFSTREAMSINK_MARKER_TYPE.EVENT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFStreamSink_Value = Guid.initString("0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb");
|
|
pub const IID_IMFStreamSink = &IID_IMFStreamSink_Value;
|
|
pub const IMFStreamSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEventGenerator.VTable,
|
|
GetMediaSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIdentifier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
pdwIdentifier: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
pdwIdentifier: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaTypeHandler: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
ppHandler: ?*?*IMFMediaTypeHandler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
ppHandler: ?*?*IMFMediaTypeHandler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
PlaceMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
eMarkerType: MFSTREAMSINK_MARKER_TYPE,
|
|
pvarMarkerValue: ?*const PROPVARIANT,
|
|
pvarContextValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
eMarkerType: MFSTREAMSINK_MARKER_TYPE,
|
|
pvarMarkerValue: ?*const PROPVARIANT,
|
|
pvarContextValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEventGenerator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_GetMediaSink(self: *const T, ppMediaSink: ?*?*IMFMediaSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).GetMediaSink(@as(*const IMFStreamSink, @ptrCast(self)), ppMediaSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_GetIdentifier(self: *const T, pdwIdentifier: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).GetIdentifier(@as(*const IMFStreamSink, @ptrCast(self)), pdwIdentifier);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_GetMediaTypeHandler(self: *const T, ppHandler: ?*?*IMFMediaTypeHandler) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).GetMediaTypeHandler(@as(*const IMFStreamSink, @ptrCast(self)), ppHandler);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_ProcessSample(self: *const T, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).ProcessSample(@as(*const IMFStreamSink, @ptrCast(self)), pSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_PlaceMarker(self: *const T, eMarkerType: MFSTREAMSINK_MARKER_TYPE, pvarMarkerValue: ?*const PROPVARIANT, pvarContextValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).PlaceMarker(@as(*const IMFStreamSink, @ptrCast(self)), eMarkerType, pvarMarkerValue, pvarContextValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamSink_Flush(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamSink.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFStreamSink, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoSampleAllocator_Value = Guid.initString("86cbc910-e533-4751-8e3b-f19b5b806a03");
|
|
pub const IID_IMFVideoSampleAllocator = &IID_IMFVideoSampleAllocator_Value;
|
|
pub const IMFVideoSampleAllocator = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetDirectXManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
pManager: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
pManager: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UninitializeSampleAllocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InitializeSampleAllocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
cRequestedFrames: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
cRequestedFrames: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AllocateSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocator,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocator_SetDirectXManager(self: *const T, pManager: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocator.VTable, @ptrCast(self.vtable)).SetDirectXManager(@as(*const IMFVideoSampleAllocator, @ptrCast(self)), pManager);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocator_UninitializeSampleAllocator(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocator.VTable, @ptrCast(self.vtable)).UninitializeSampleAllocator(@as(*const IMFVideoSampleAllocator, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocator_InitializeSampleAllocator(self: *const T, cRequestedFrames: u32, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocator.VTable, @ptrCast(self.vtable)).InitializeSampleAllocator(@as(*const IMFVideoSampleAllocator, @ptrCast(self)), cRequestedFrames, pMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocator_AllocateSample(self: *const T, ppSample: ?*?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocator.VTable, @ptrCast(self.vtable)).AllocateSample(@as(*const IMFVideoSampleAllocator, @ptrCast(self)), ppSample);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFVideoSampleAllocatorNotify_Value = Guid.initString("a792cdbe-c374-4e89-8335-278e7b9956a4");
|
|
pub const IID_IMFVideoSampleAllocatorNotify = &IID_IMFVideoSampleAllocatorNotify_Value;
|
|
pub const IMFVideoSampleAllocatorNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
NotifyRelease: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocatorNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocatorNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocatorNotify_NotifyRelease(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocatorNotify.VTable, @ptrCast(self.vtable)).NotifyRelease(@as(*const IMFVideoSampleAllocatorNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFVideoSampleAllocatorNotifyEx_Value = Guid.initString("3978aa1a-6d5b-4b7f-a340-90899189ae34");
|
|
pub const IID_IMFVideoSampleAllocatorNotifyEx = &IID_IMFVideoSampleAllocatorNotifyEx_Value;
|
|
pub const IMFVideoSampleAllocatorNotifyEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoSampleAllocatorNotify.VTable,
|
|
NotifyPrune: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocatorNotifyEx,
|
|
__MIDL__IMFVideoSampleAllocatorNotifyEx0000: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocatorNotifyEx,
|
|
__MIDL__IMFVideoSampleAllocatorNotifyEx0000: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoSampleAllocatorNotify.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocatorNotifyEx_NotifyPrune(self: *const T, __MIDL__IMFVideoSampleAllocatorNotifyEx0000: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocatorNotifyEx.VTable, @ptrCast(self.vtable)).NotifyPrune(@as(*const IMFVideoSampleAllocatorNotifyEx, @ptrCast(self)), __MIDL__IMFVideoSampleAllocatorNotifyEx0000);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFVideoSampleAllocatorCallback_Value = Guid.initString("992388b4-3372-4f67-8b6f-c84c071f4751");
|
|
pub const IID_IMFVideoSampleAllocatorCallback = &IID_IMFVideoSampleAllocatorCallback_Value;
|
|
pub const IMFVideoSampleAllocatorCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetCallback: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocatorCallback,
|
|
pNotify: ?*IMFVideoSampleAllocatorNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocatorCallback,
|
|
pNotify: ?*IMFVideoSampleAllocatorNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFreeSampleCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocatorCallback,
|
|
plSamples: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocatorCallback,
|
|
plSamples: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocatorCallback_SetCallback(self: *const T, pNotify: ?*IMFVideoSampleAllocatorNotify) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocatorCallback.VTable, @ptrCast(self.vtable)).SetCallback(@as(*const IMFVideoSampleAllocatorCallback, @ptrCast(self)), pNotify);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocatorCallback_GetFreeSampleCount(self: *const T, plSamples: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocatorCallback.VTable, @ptrCast(self.vtable)).GetFreeSampleCount(@as(*const IMFVideoSampleAllocatorCallback, @ptrCast(self)), plSamples);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFVideoSampleAllocatorEx_Value = Guid.initString("545b3a48-3283-4f62-866f-a62d8f598f9f");
|
|
pub const IID_IMFVideoSampleAllocatorEx = &IID_IMFVideoSampleAllocatorEx_Value;
|
|
pub const IMFVideoSampleAllocatorEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoSampleAllocator.VTable,
|
|
InitializeSampleAllocatorEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoSampleAllocatorEx,
|
|
cInitialSamples: u32,
|
|
cMaximumSamples: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoSampleAllocatorEx,
|
|
cInitialSamples: u32,
|
|
cMaximumSamples: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoSampleAllocator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoSampleAllocatorEx_InitializeSampleAllocatorEx(self: *const T, cInitialSamples: u32, cMaximumSamples: u32, pAttributes: ?*IMFAttributes, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoSampleAllocatorEx.VTable, @ptrCast(self.vtable)).InitializeSampleAllocatorEx(@as(*const IMFVideoSampleAllocatorEx, @ptrCast(self)), cInitialSamples, cMaximumSamples, pAttributes, pMediaType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFDXGIDeviceManagerSource_Value = Guid.initString("20bc074b-7a8d-4609-8c3b-64a0a3b5d7ce");
|
|
pub const IID_IMFDXGIDeviceManagerSource = &IID_IMFDXGIDeviceManagerSource_Value;
|
|
pub const IMFDXGIDeviceManagerSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDXGIDeviceManagerSource,
|
|
ppManager: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDXGIDeviceManagerSource,
|
|
ppManager: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDXGIDeviceManagerSource_GetManager(self: *const T, ppManager: ?*?*IMFDXGIDeviceManager) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDXGIDeviceManagerSource.VTable, @ptrCast(self.vtable)).GetManager(@as(*const IMFDXGIDeviceManagerSource, @ptrCast(self)), ppManager);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_VIDEO_PROCESSOR_ROTATION = enum(i32) {
|
|
NE = 0,
|
|
RMAL = 1,
|
|
};
|
|
pub const ROTATION_NONE = MF_VIDEO_PROCESSOR_ROTATION.NE;
|
|
pub const ROTATION_NORMAL = MF_VIDEO_PROCESSOR_ROTATION.RMAL;
|
|
|
|
pub const MF_VIDEO_PROCESSOR_MIRROR = enum(i32) {
|
|
NONE = 0,
|
|
HORIZONTAL = 1,
|
|
VERTICAL = 2,
|
|
};
|
|
pub const MIRROR_NONE = MF_VIDEO_PROCESSOR_MIRROR.NONE;
|
|
pub const MIRROR_HORIZONTAL = MF_VIDEO_PROCESSOR_MIRROR.HORIZONTAL;
|
|
pub const MIRROR_VERTICAL = MF_VIDEO_PROCESSOR_MIRROR.VERTICAL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFVideoProcessorControl_Value = Guid.initString("a3f675d5-6119-4f7f-a100-1d8b280f0efb");
|
|
pub const IID_IMFVideoProcessorControl = &IID_IMFVideoProcessorControl_Value;
|
|
pub const IMFVideoProcessorControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetBorderColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pBorderColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pBorderColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSourceRectangle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pSrcRect: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pSrcRect: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDestinationRectangle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pDstRect: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pDstRect: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMirror: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
eMirror: MF_VIDEO_PROCESSOR_MIRROR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
eMirror: MF_VIDEO_PROCESSOR_MIRROR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRotation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
eRotation: MF_VIDEO_PROCESSOR_ROTATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
eRotation: MF_VIDEO_PROCESSOR_ROTATION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetConstrictionSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pConstrictionSize: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl,
|
|
pConstrictionSize: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetBorderColor(self: *const T, pBorderColor: ?*MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetBorderColor(@as(*const IMFVideoProcessorControl, @ptrCast(self)), pBorderColor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetSourceRectangle(self: *const T, pSrcRect: ?*RECT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetSourceRectangle(@as(*const IMFVideoProcessorControl, @ptrCast(self)), pSrcRect);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetDestinationRectangle(self: *const T, pDstRect: ?*RECT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetDestinationRectangle(@as(*const IMFVideoProcessorControl, @ptrCast(self)), pDstRect);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetMirror(self: *const T, eMirror: MF_VIDEO_PROCESSOR_MIRROR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetMirror(@as(*const IMFVideoProcessorControl, @ptrCast(self)), eMirror);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetRotation(self: *const T, eRotation: MF_VIDEO_PROCESSOR_ROTATION) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetRotation(@as(*const IMFVideoProcessorControl, @ptrCast(self)), eRotation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl_SetConstrictionSize(self: *const T, pConstrictionSize: ?*SIZE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl.VTable, @ptrCast(self.vtable)).SetConstrictionSize(@as(*const IMFVideoProcessorControl, @ptrCast(self)), pConstrictionSize);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFVideoProcessorControl2_Value = Guid.initString("bde633d3-e1dc-4a7f-a693-bbae399c4a20");
|
|
pub const IID_IMFVideoProcessorControl2 = &IID_IMFVideoProcessorControl2_Value;
|
|
pub const IMFVideoProcessorControl2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoProcessorControl.VTable,
|
|
SetRotationOverride: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
uiRotation: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
uiRotation: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableHardwareEffects: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
fEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
fEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSupportedHardwareEffects: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
puiSupport: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl2,
|
|
puiSupport: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoProcessorControl.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl2_SetRotationOverride(self: *const T, uiRotation: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl2.VTable, @ptrCast(self.vtable)).SetRotationOverride(@as(*const IMFVideoProcessorControl2, @ptrCast(self)), uiRotation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl2_EnableHardwareEffects(self: *const T, fEnabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl2.VTable, @ptrCast(self.vtable)).EnableHardwareEffects(@as(*const IMFVideoProcessorControl2, @ptrCast(self)), fEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl2_GetSupportedHardwareEffects(self: *const T, puiSupport: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl2.VTable, @ptrCast(self.vtable)).GetSupportedHardwareEffects(@as(*const IMFVideoProcessorControl2, @ptrCast(self)), puiSupport);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVideoSphericalFormat = enum(i32) {
|
|
Unsupported = 0,
|
|
Equirectangular = 1,
|
|
CubeMap = 2,
|
|
@"3DMesh" = 3,
|
|
};
|
|
pub const MFVideoSphericalFormat_Unsupported = MFVideoSphericalFormat.Unsupported;
|
|
pub const MFVideoSphericalFormat_Equirectangular = MFVideoSphericalFormat.Equirectangular;
|
|
pub const MFVideoSphericalFormat_CubeMap = MFVideoSphericalFormat.CubeMap;
|
|
pub const MFVideoSphericalFormat_3DMesh = MFVideoSphericalFormat.@"3DMesh";
|
|
|
|
pub const MFVideoSphericalProjectionMode = enum(i32) {
|
|
Spherical = 0,
|
|
Flat = 1,
|
|
};
|
|
pub const MFVideoSphericalProjectionMode_Spherical = MFVideoSphericalProjectionMode.Spherical;
|
|
pub const MFVideoSphericalProjectionMode_Flat = MFVideoSphericalProjectionMode.Flat;
|
|
|
|
const IID_IMFVideoProcessorControl3_Value = Guid.initString("2424b3f2-eb23-40f1-91aa-74bddeea0883");
|
|
pub const IID_IMFVideoProcessorControl3 = &IID_IMFVideoProcessorControl3_Value;
|
|
pub const IMFVideoProcessorControl3 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoProcessorControl2.VTable,
|
|
GetNaturalOutputType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableSphericalVideoProcessing: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
fEnable: BOOL,
|
|
eFormat: MFVideoSphericalFormat,
|
|
eProjectionMode: MFVideoSphericalProjectionMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
fEnable: BOOL,
|
|
eFormat: MFVideoSphericalFormat,
|
|
eProjectionMode: MFVideoSphericalProjectionMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSphericalVideoProperties: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
X: f32,
|
|
Y: f32,
|
|
Z: f32,
|
|
W: f32,
|
|
fieldOfView: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
X: f32,
|
|
Y: f32,
|
|
Z: f32,
|
|
W: f32,
|
|
fieldOfView: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
pOutputDevice: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessorControl3,
|
|
pOutputDevice: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoProcessorControl2.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl3_GetNaturalOutputType(self: *const T, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl3.VTable, @ptrCast(self.vtable)).GetNaturalOutputType(@as(*const IMFVideoProcessorControl3, @ptrCast(self)), ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl3_EnableSphericalVideoProcessing(self: *const T, fEnable: BOOL, eFormat: MFVideoSphericalFormat, eProjectionMode: MFVideoSphericalProjectionMode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl3.VTable, @ptrCast(self.vtable)).EnableSphericalVideoProcessing(@as(*const IMFVideoProcessorControl3, @ptrCast(self)), fEnable, eFormat, eProjectionMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl3_SetSphericalVideoProperties(self: *const T, X: f32, Y: f32, Z: f32, W: f32, fieldOfView: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl3.VTable, @ptrCast(self.vtable)).SetSphericalVideoProperties(@as(*const IMFVideoProcessorControl3, @ptrCast(self)), X, Y, Z, W, fieldOfView);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessorControl3_SetOutputDevice(self: *const T, pOutputDevice: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessorControl3.VTable, @ptrCast(self.vtable)).SetOutputDevice(@as(*const IMFVideoProcessorControl3, @ptrCast(self)), pOutputDevice);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFVideoRendererEffectControl_Value = Guid.initString("604d33d7-cf23-41d5-8224-5bbbb1a87475");
|
|
pub const IID_IMFVideoRendererEffectControl = &IID_IMFVideoRendererEffectControl_Value;
|
|
pub const IMFVideoRendererEffectControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnAppServiceConnectionEstablished: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoRendererEffectControl,
|
|
pAppServiceConnection: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoRendererEffectControl,
|
|
pAppServiceConnection: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoRendererEffectControl_OnAppServiceConnectionEstablished(self: *const T, pAppServiceConnection: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoRendererEffectControl.VTable, @ptrCast(self.vtable)).OnAppServiceConnectionEstablished(@as(*const IMFVideoRendererEffectControl, @ptrCast(self)), pAppServiceConnection);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopology_Value = Guid.initString("83cf873a-f6da-4bc8-823f-bacfd55dc433");
|
|
pub const IID_IMFTopology = &IID_IMFTopology_Value;
|
|
pub const IMFTopology = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetTopologyID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
pID: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
pID: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddNode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveNode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNodeCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
pwNodes: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
pwNodes: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
wIndex: u16,
|
|
ppNode: ?*?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
wIndex: u16,
|
|
ppNode: ?*?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clear: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CloneFrom: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNodeByID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
qwTopoNodeID: u64,
|
|
ppNode: ?*?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
qwTopoNodeID: u64,
|
|
ppNode: ?*?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSourceNodeCollection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
ppCollection: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
ppCollection: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputNodeCollection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopology,
|
|
ppCollection: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopology,
|
|
ppCollection: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetTopologyID(self: *const T, pID: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetTopologyID(@as(*const IMFTopology, @ptrCast(self)), pID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_AddNode(self: *const T, pNode: ?*IMFTopologyNode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).AddNode(@as(*const IMFTopology, @ptrCast(self)), pNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_RemoveNode(self: *const T, pNode: ?*IMFTopologyNode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).RemoveNode(@as(*const IMFTopology, @ptrCast(self)), pNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetNodeCount(self: *const T, pwNodes: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetNodeCount(@as(*const IMFTopology, @ptrCast(self)), pwNodes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetNode(self: *const T, wIndex: u16, ppNode: ?*?*IMFTopologyNode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetNode(@as(*const IMFTopology, @ptrCast(self)), wIndex, ppNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_Clear(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).Clear(@as(*const IMFTopology, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_CloneFrom(self: *const T, pTopology: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).CloneFrom(@as(*const IMFTopology, @ptrCast(self)), pTopology);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetNodeByID(self: *const T, qwTopoNodeID: u64, ppNode: ?*?*IMFTopologyNode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetNodeByID(@as(*const IMFTopology, @ptrCast(self)), qwTopoNodeID, ppNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetSourceNodeCollection(self: *const T, ppCollection: ?*?*IMFCollection) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetSourceNodeCollection(@as(*const IMFTopology, @ptrCast(self)), ppCollection);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopology_GetOutputNodeCollection(self: *const T, ppCollection: ?*?*IMFCollection) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopology.VTable, @ptrCast(self.vtable)).GetOutputNodeCollection(@as(*const IMFTopology, @ptrCast(self)), ppCollection);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFTOPOLOGY_DXVA_MODE = enum(i32) {
|
|
DEFAULT = 0,
|
|
NONE = 1,
|
|
FULL = 2,
|
|
};
|
|
pub const MFTOPOLOGY_DXVA_DEFAULT = MFTOPOLOGY_DXVA_MODE.DEFAULT;
|
|
pub const MFTOPOLOGY_DXVA_NONE = MFTOPOLOGY_DXVA_MODE.NONE;
|
|
pub const MFTOPOLOGY_DXVA_FULL = MFTOPOLOGY_DXVA_MODE.FULL;
|
|
|
|
pub const MFTOPOLOGY_HARDWARE_MODE = enum(i32) {
|
|
SOFTWARE_ONLY = 0,
|
|
USE_HARDWARE = 1,
|
|
USE_ONLY_HARDWARE = 2,
|
|
};
|
|
pub const MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = MFTOPOLOGY_HARDWARE_MODE.SOFTWARE_ONLY;
|
|
pub const MFTOPOLOGY_HWMODE_USE_HARDWARE = MFTOPOLOGY_HARDWARE_MODE.USE_HARDWARE;
|
|
pub const MFTOPOLOGY_HWMODE_USE_ONLY_HARDWARE = MFTOPOLOGY_HARDWARE_MODE.USE_ONLY_HARDWARE;
|
|
|
|
pub const MF_TOPOLOGY_TYPE = enum(i32) {
|
|
OUTPUT_NODE = 0,
|
|
SOURCESTREAM_NODE = 1,
|
|
TRANSFORM_NODE = 2,
|
|
TEE_NODE = 3,
|
|
MAX = -1,
|
|
};
|
|
pub const MF_TOPOLOGY_OUTPUT_NODE = MF_TOPOLOGY_TYPE.OUTPUT_NODE;
|
|
pub const MF_TOPOLOGY_SOURCESTREAM_NODE = MF_TOPOLOGY_TYPE.SOURCESTREAM_NODE;
|
|
pub const MF_TOPOLOGY_TRANSFORM_NODE = MF_TOPOLOGY_TYPE.TRANSFORM_NODE;
|
|
pub const MF_TOPOLOGY_TEE_NODE = MF_TOPOLOGY_TYPE.TEE_NODE;
|
|
pub const MF_TOPOLOGY_MAX = MF_TOPOLOGY_TYPE.MAX;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopologyNode_Value = Guid.initString("83cf873a-f6da-4bc8-823f-bacfd55dc430");
|
|
pub const IID_IMFTopologyNode = &IID_IMFTopologyNode_Value;
|
|
pub const IMFTopologyNode = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
SetObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pObject: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pObject: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNodeType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pType: ?*MF_TOPOLOGY_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pType: ?*MF_TOPOLOGY_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTopoNodeID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pID: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pID: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetTopoNodeID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
ullTopoID: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
ullTopoID: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pcInputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pcInputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pcOutputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pcOutputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ConnectOutput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
pDownstreamNode: ?*IMFTopologyNode,
|
|
dwInputIndexOnDownstreamNode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
pDownstreamNode: ?*IMFTopologyNode,
|
|
dwInputIndexOnDownstreamNode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DisconnectOutput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
ppUpstreamNode: ?*?*IMFTopologyNode,
|
|
pdwOutputIndexOnUpstreamNode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
ppUpstreamNode: ?*?*IMFTopologyNode,
|
|
pdwOutputIndexOnUpstreamNode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
ppDownstreamNode: ?*?*IMFTopologyNode,
|
|
pdwInputIndexOnDownstreamNode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
ppDownstreamNode: ?*?*IMFTopologyNode,
|
|
pdwInputIndexOnDownstreamNode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputPrefType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
pType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
pType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputPrefType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwOutputIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInputPrefType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
pType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
pType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetInputPrefType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
dwInputIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CloneFrom: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNode,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNode,
|
|
pNode: ?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_SetObject(self: *const T, pObject: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).SetObject(@as(*const IMFTopologyNode, @ptrCast(self)), pObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetObject(self: *const T, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetObject(@as(*const IMFTopologyNode, @ptrCast(self)), ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetNodeType(self: *const T, pType: ?*MF_TOPOLOGY_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetNodeType(@as(*const IMFTopologyNode, @ptrCast(self)), pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetTopoNodeID(self: *const T, pID: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetTopoNodeID(@as(*const IMFTopologyNode, @ptrCast(self)), pID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_SetTopoNodeID(self: *const T, ullTopoID: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).SetTopoNodeID(@as(*const IMFTopologyNode, @ptrCast(self)), ullTopoID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetInputCount(self: *const T, pcInputs: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetInputCount(@as(*const IMFTopologyNode, @ptrCast(self)), pcInputs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetOutputCount(self: *const T, pcOutputs: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetOutputCount(@as(*const IMFTopologyNode, @ptrCast(self)), pcOutputs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_ConnectOutput(self: *const T, dwOutputIndex: u32, pDownstreamNode: ?*IMFTopologyNode, dwInputIndexOnDownstreamNode: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).ConnectOutput(@as(*const IMFTopologyNode, @ptrCast(self)), dwOutputIndex, pDownstreamNode, dwInputIndexOnDownstreamNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_DisconnectOutput(self: *const T, dwOutputIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).DisconnectOutput(@as(*const IMFTopologyNode, @ptrCast(self)), dwOutputIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetInput(self: *const T, dwInputIndex: u32, ppUpstreamNode: ?*?*IMFTopologyNode, pdwOutputIndexOnUpstreamNode: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetInput(@as(*const IMFTopologyNode, @ptrCast(self)), dwInputIndex, ppUpstreamNode, pdwOutputIndexOnUpstreamNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetOutput(self: *const T, dwOutputIndex: u32, ppDownstreamNode: ?*?*IMFTopologyNode, pdwInputIndexOnDownstreamNode: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetOutput(@as(*const IMFTopologyNode, @ptrCast(self)), dwOutputIndex, ppDownstreamNode, pdwInputIndexOnDownstreamNode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_SetOutputPrefType(self: *const T, dwOutputIndex: u32, pType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).SetOutputPrefType(@as(*const IMFTopologyNode, @ptrCast(self)), dwOutputIndex, pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetOutputPrefType(self: *const T, dwOutputIndex: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetOutputPrefType(@as(*const IMFTopologyNode, @ptrCast(self)), dwOutputIndex, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_SetInputPrefType(self: *const T, dwInputIndex: u32, pType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).SetInputPrefType(@as(*const IMFTopologyNode, @ptrCast(self)), dwInputIndex, pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_GetInputPrefType(self: *const T, dwInputIndex: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).GetInputPrefType(@as(*const IMFTopologyNode, @ptrCast(self)), dwInputIndex, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNode_CloneFrom(self: *const T, pNode: ?*IMFTopologyNode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNode.VTable, @ptrCast(self.vtable)).CloneFrom(@as(*const IMFTopologyNode, @ptrCast(self)), pNode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_TOPONODE_FLUSH_MODE = enum(i32) {
|
|
ALWAYS = 0,
|
|
SEEK = 1,
|
|
NEVER = 2,
|
|
};
|
|
pub const MF_TOPONODE_FLUSH_ALWAYS = MF_TOPONODE_FLUSH_MODE.ALWAYS;
|
|
pub const MF_TOPONODE_FLUSH_SEEK = MF_TOPONODE_FLUSH_MODE.SEEK;
|
|
pub const MF_TOPONODE_FLUSH_NEVER = MF_TOPONODE_FLUSH_MODE.NEVER;
|
|
|
|
pub const MF_TOPONODE_DRAIN_MODE = enum(i32) {
|
|
DEFAULT = 0,
|
|
ALWAYS = 1,
|
|
NEVER = 2,
|
|
};
|
|
pub const MF_TOPONODE_DRAIN_DEFAULT = MF_TOPONODE_DRAIN_MODE.DEFAULT;
|
|
pub const MF_TOPONODE_DRAIN_ALWAYS = MF_TOPONODE_DRAIN_MODE.ALWAYS;
|
|
pub const MF_TOPONODE_DRAIN_NEVER = MF_TOPONODE_DRAIN_MODE.NEVER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFGetService_Value = Guid.initString("fa993888-4383-415a-a930-dd472a8cf6f7");
|
|
pub const IID_IMFGetService = &IID_IMFGetService_Value;
|
|
pub const IMFGetService = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFGetService,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFGetService,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFGetService_GetService(self: *const T, guidService: ?*const Guid, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFGetService.VTable, @ptrCast(self.vtable)).GetService(@as(*const IMFGetService, @ptrCast(self)), guidService, riid, ppvObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFCLOCK_CHARACTERISTICS_FLAGS = enum(i32) {
|
|
FREQUENCY_10MHZ = 2,
|
|
ALWAYS_RUNNING = 4,
|
|
IS_SYSTEM_CLOCK = 8,
|
|
};
|
|
pub const MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = MFCLOCK_CHARACTERISTICS_FLAGS.FREQUENCY_10MHZ;
|
|
pub const MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = MFCLOCK_CHARACTERISTICS_FLAGS.ALWAYS_RUNNING;
|
|
pub const MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = MFCLOCK_CHARACTERISTICS_FLAGS.IS_SYSTEM_CLOCK;
|
|
|
|
pub const MFCLOCK_STATE = enum(i32) {
|
|
INVALID = 0,
|
|
RUNNING = 1,
|
|
STOPPED = 2,
|
|
PAUSED = 3,
|
|
};
|
|
pub const MFCLOCK_STATE_INVALID = MFCLOCK_STATE.INVALID;
|
|
pub const MFCLOCK_STATE_RUNNING = MFCLOCK_STATE.RUNNING;
|
|
pub const MFCLOCK_STATE_STOPPED = MFCLOCK_STATE.STOPPED;
|
|
pub const MFCLOCK_STATE_PAUSED = MFCLOCK_STATE.PAUSED;
|
|
|
|
pub const MFCLOCK_RELATIONAL_FLAGS = enum(i32) {
|
|
D = 1,
|
|
};
|
|
pub const MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = MFCLOCK_RELATIONAL_FLAGS.D;
|
|
|
|
pub const MFCLOCK_PROPERTIES = extern struct {
|
|
qwCorrelationRate: u64,
|
|
guidClockId: Guid,
|
|
dwClockFlags: u32,
|
|
qwClockFrequency: u64,
|
|
dwClockTolerance: u32,
|
|
dwClockJitter: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFClock_Value = Guid.initString("2eb1e945-18b8-4139-9b1a-d5d584818530");
|
|
pub const IID_IMFClock = &IID_IMFClock_Value;
|
|
pub const IMFClock = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetClockCharacteristics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClock,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClock,
|
|
pdwCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCorrelatedTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClock,
|
|
dwReserved: u32,
|
|
pllClockTime: ?*i64,
|
|
phnsSystemTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClock,
|
|
dwReserved: u32,
|
|
pllClockTime: ?*i64,
|
|
phnsSystemTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetContinuityKey: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClock,
|
|
pdwContinuityKey: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClock,
|
|
pdwContinuityKey: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClock,
|
|
dwReserved: u32,
|
|
peClockState: ?*MFCLOCK_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClock,
|
|
dwReserved: u32,
|
|
peClockState: ?*MFCLOCK_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProperties: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClock,
|
|
pClockProperties: ?*MFCLOCK_PROPERTIES,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClock,
|
|
pClockProperties: ?*MFCLOCK_PROPERTIES,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClock_GetClockCharacteristics(self: *const T, pdwCharacteristics: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClock.VTable, @ptrCast(self.vtable)).GetClockCharacteristics(@as(*const IMFClock, @ptrCast(self)), pdwCharacteristics);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClock_GetCorrelatedTime(self: *const T, dwReserved: u32, pllClockTime: ?*i64, phnsSystemTime: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClock.VTable, @ptrCast(self.vtable)).GetCorrelatedTime(@as(*const IMFClock, @ptrCast(self)), dwReserved, pllClockTime, phnsSystemTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClock_GetContinuityKey(self: *const T, pdwContinuityKey: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClock.VTable, @ptrCast(self.vtable)).GetContinuityKey(@as(*const IMFClock, @ptrCast(self)), pdwContinuityKey);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClock_GetState(self: *const T, dwReserved: u32, peClockState: ?*MFCLOCK_STATE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClock.VTable, @ptrCast(self.vtable)).GetState(@as(*const IMFClock, @ptrCast(self)), dwReserved, peClockState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClock_GetProperties(self: *const T, pClockProperties: ?*MFCLOCK_PROPERTIES) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClock.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IMFClock, @ptrCast(self)), pClockProperties);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPresentationClock_Value = Guid.initString("868ce85c-8ea9-4f55-ab82-b009a910a805");
|
|
pub const IID_IMFPresentationClock = &IID_IMFPresentationClock_Value;
|
|
pub const IMFPresentationClock = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFClock.VTable,
|
|
SetTimeSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
pTimeSource: ?*IMFPresentationTimeSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
pTimeSource: ?*IMFPresentationTimeSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTimeSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
ppTimeSource: ?*?*IMFPresentationTimeSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
ppTimeSource: ?*?*IMFPresentationTimeSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
phnsClockTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
phnsClockTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddClockStateSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
pStateSink: ?*IMFClockStateSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
pStateSink: ?*IMFClockStateSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveClockStateSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
pStateSink: ?*IMFClockStateSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
pStateSink: ?*IMFClockStateSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
llClockStartOffset: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
llClockStartOffset: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Pause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFClock.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_SetTimeSource(self: *const T, pTimeSource: ?*IMFPresentationTimeSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).SetTimeSource(@as(*const IMFPresentationClock, @ptrCast(self)), pTimeSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_GetTimeSource(self: *const T, ppTimeSource: ?*?*IMFPresentationTimeSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).GetTimeSource(@as(*const IMFPresentationClock, @ptrCast(self)), ppTimeSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_GetTime(self: *const T, phnsClockTime: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).GetTime(@as(*const IMFPresentationClock, @ptrCast(self)), phnsClockTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_AddClockStateSink(self: *const T, pStateSink: ?*IMFClockStateSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).AddClockStateSink(@as(*const IMFPresentationClock, @ptrCast(self)), pStateSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_RemoveClockStateSink(self: *const T, pStateSink: ?*IMFClockStateSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).RemoveClockStateSink(@as(*const IMFPresentationClock, @ptrCast(self)), pStateSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_Start(self: *const T, llClockStartOffset: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFPresentationClock, @ptrCast(self)), llClockStartOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFPresentationClock, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationClock_Pause(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationClock.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMFPresentationClock, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPresentationTimeSource_Value = Guid.initString("7ff12cce-f76f-41c2-863b-1666c8e5e139");
|
|
pub const IID_IMFPresentationTimeSource = &IID_IMFPresentationTimeSource_Value;
|
|
pub const IMFPresentationTimeSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFClock.VTable,
|
|
GetUnderlyingClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationTimeSource,
|
|
ppClock: ?*?*IMFClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationTimeSource,
|
|
ppClock: ?*?*IMFClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFClock.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationTimeSource_GetUnderlyingClock(self: *const T, ppClock: ?*?*IMFClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationTimeSource.VTable, @ptrCast(self.vtable)).GetUnderlyingClock(@as(*const IMFPresentationTimeSource, @ptrCast(self)), ppClock);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFClockStateSink_Value = Guid.initString("f6696e82-74f7-4f3d-a178-8a5e09c3659f");
|
|
pub const IID_IMFClockStateSink = &IID_IMFClockStateSink_Value;
|
|
pub const IMFClockStateSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnClockStart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
llClockStartOffset: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
llClockStartOffset: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnClockStop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnClockPause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnClockRestart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnClockSetRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFClockStateSink,
|
|
hnsSystemTime: i64,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockStateSink_OnClockStart(self: *const T, hnsSystemTime: i64, llClockStartOffset: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockStateSink.VTable, @ptrCast(self.vtable)).OnClockStart(@as(*const IMFClockStateSink, @ptrCast(self)), hnsSystemTime, llClockStartOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockStateSink_OnClockStop(self: *const T, hnsSystemTime: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockStateSink.VTable, @ptrCast(self.vtable)).OnClockStop(@as(*const IMFClockStateSink, @ptrCast(self)), hnsSystemTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockStateSink_OnClockPause(self: *const T, hnsSystemTime: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockStateSink.VTable, @ptrCast(self.vtable)).OnClockPause(@as(*const IMFClockStateSink, @ptrCast(self)), hnsSystemTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockStateSink_OnClockRestart(self: *const T, hnsSystemTime: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockStateSink.VTable, @ptrCast(self.vtable)).OnClockRestart(@as(*const IMFClockStateSink, @ptrCast(self)), hnsSystemTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFClockStateSink_OnClockSetRate(self: *const T, hnsSystemTime: i64, flRate: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFClockStateSink.VTable, @ptrCast(self.vtable)).OnClockSetRate(@as(*const IMFClockStateSink, @ptrCast(self)), hnsSystemTime, flRate);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPresentationDescriptor_Value = Guid.initString("03cb2711-24d7-4db6-a17f-f3a7a479a536");
|
|
pub const IID_IMFPresentationDescriptor = &IID_IMFPresentationDescriptor_Value;
|
|
pub const IMFPresentationDescriptor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetStreamDescriptorCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
pdwDescriptorCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
pdwDescriptorCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamDescriptorByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwIndex: u32,
|
|
pfSelected: ?*BOOL,
|
|
ppDescriptor: ?*?*IMFStreamDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwIndex: u32,
|
|
pfSelected: ?*BOOL,
|
|
ppDescriptor: ?*?*IMFStreamDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SelectStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwDescriptorIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwDescriptorIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeselectStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwDescriptorIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
dwDescriptorIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
ppPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPresentationDescriptor,
|
|
ppPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationDescriptor_GetStreamDescriptorCount(self: *const T, pdwDescriptorCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationDescriptor.VTable, @ptrCast(self.vtable)).GetStreamDescriptorCount(@as(*const IMFPresentationDescriptor, @ptrCast(self)), pdwDescriptorCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationDescriptor_GetStreamDescriptorByIndex(self: *const T, dwIndex: u32, pfSelected: ?*BOOL, ppDescriptor: ?*?*IMFStreamDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationDescriptor.VTable, @ptrCast(self.vtable)).GetStreamDescriptorByIndex(@as(*const IMFPresentationDescriptor, @ptrCast(self)), dwIndex, pfSelected, ppDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationDescriptor_SelectStream(self: *const T, dwDescriptorIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationDescriptor.VTable, @ptrCast(self.vtable)).SelectStream(@as(*const IMFPresentationDescriptor, @ptrCast(self)), dwDescriptorIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationDescriptor_DeselectStream(self: *const T, dwDescriptorIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationDescriptor.VTable, @ptrCast(self.vtable)).DeselectStream(@as(*const IMFPresentationDescriptor, @ptrCast(self)), dwDescriptorIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPresentationDescriptor_Clone(self: *const T, ppPresentationDescriptor: ?*?*IMFPresentationDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPresentationDescriptor.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFPresentationDescriptor, @ptrCast(self)), ppPresentationDescriptor);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFStreamDescriptor_Value = Guid.initString("56c03d9c-9dbb-45f5-ab4b-d80f47c05938");
|
|
pub const IID_IMFStreamDescriptor = &IID_IMFStreamDescriptor_Value;
|
|
pub const IMFStreamDescriptor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetStreamIdentifier: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamDescriptor,
|
|
pdwStreamIdentifier: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamDescriptor,
|
|
pdwStreamIdentifier: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaTypeHandler: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamDescriptor,
|
|
ppMediaTypeHandler: ?*?*IMFMediaTypeHandler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamDescriptor,
|
|
ppMediaTypeHandler: ?*?*IMFMediaTypeHandler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamDescriptor_GetStreamIdentifier(self: *const T, pdwStreamIdentifier: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamDescriptor.VTable, @ptrCast(self.vtable)).GetStreamIdentifier(@as(*const IMFStreamDescriptor, @ptrCast(self)), pdwStreamIdentifier);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamDescriptor_GetMediaTypeHandler(self: *const T, ppMediaTypeHandler: ?*?*IMFMediaTypeHandler) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamDescriptor.VTable, @ptrCast(self.vtable)).GetMediaTypeHandler(@as(*const IMFStreamDescriptor, @ptrCast(self)), ppMediaTypeHandler);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaTypeHandler_Value = Guid.initString("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5");
|
|
pub const IID_IMFMediaTypeHandler = &IID_IMFMediaTypeHandler_Value;
|
|
pub const IMFMediaTypeHandler = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsMediaTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pMediaType: ?*IMFMediaType,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pMediaType: ?*IMFMediaType,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaTypeCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pdwTypeCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pdwTypeCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaTypeByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
dwIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
dwIndex: u32,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMajorType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pguidMajorType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTypeHandler,
|
|
pguidMajorType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_IsMediaTypeSupported(self: *const T, pMediaType: ?*IMFMediaType, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).IsMediaTypeSupported(@as(*const IMFMediaTypeHandler, @ptrCast(self)), pMediaType, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_GetMediaTypeCount(self: *const T, pdwTypeCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).GetMediaTypeCount(@as(*const IMFMediaTypeHandler, @ptrCast(self)), pdwTypeCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_GetMediaTypeByIndex(self: *const T, dwIndex: u32, ppType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).GetMediaTypeByIndex(@as(*const IMFMediaTypeHandler, @ptrCast(self)), dwIndex, ppType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_SetCurrentMediaType(self: *const T, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).SetCurrentMediaType(@as(*const IMFMediaTypeHandler, @ptrCast(self)), pMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_GetCurrentMediaType(self: *const T, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).GetCurrentMediaType(@as(*const IMFMediaTypeHandler, @ptrCast(self)), ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTypeHandler_GetMajorType(self: *const T, pguidMajorType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTypeHandler.VTable, @ptrCast(self.vtable)).GetMajorType(@as(*const IMFMediaTypeHandler, @ptrCast(self)), pguidMajorType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFTIMER_FLAGS = enum(i32) {
|
|
E = 1,
|
|
};
|
|
pub const MFTIMER_RELATIVE = MFTIMER_FLAGS.E;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTimer_Value = Guid.initString("e56e4cbd-8f70-49d8-a0f8-edb3d6ab9bf2");
|
|
pub const IID_IMFTimer = &IID_IMFTimer_Value;
|
|
pub const IMFTimer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimer,
|
|
dwFlags: u32,
|
|
llClockTime: i64,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
ppunkKey: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimer,
|
|
dwFlags: u32,
|
|
llClockTime: i64,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
ppunkKey: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimer,
|
|
punkKey: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimer,
|
|
punkKey: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimer_SetTimer(self: *const T, dwFlags: u32, llClockTime: i64, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown, ppunkKey: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimer.VTable, @ptrCast(self.vtable)).SetTimer(@as(*const IMFTimer, @ptrCast(self)), dwFlags, llClockTime, pCallback, punkState, ppunkKey);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimer_CancelTimer(self: *const T, punkKey: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimer.VTable, @ptrCast(self.vtable)).CancelTimer(@as(*const IMFTimer, @ptrCast(self)), punkKey);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_ACTIVATE_CUSTOM_MIXER = enum(i32) {
|
|
L = 1,
|
|
};
|
|
pub const MF_ACTIVATE_CUSTOM_MIXER_ALLOWFAIL = MF_ACTIVATE_CUSTOM_MIXER.L;
|
|
|
|
pub const MF_ACTIVATE_CUSTOM_PRESENTER = enum(i32) {
|
|
L = 1,
|
|
};
|
|
pub const MF_ACTIVATE_CUSTOM_PRESENTER_ALLOWFAIL = MF_ACTIVATE_CUSTOM_PRESENTER.L;
|
|
|
|
pub const MFSHUTDOWN_STATUS = enum(i32) {
|
|
INITIATED = 0,
|
|
COMPLETED = 1,
|
|
};
|
|
pub const MFSHUTDOWN_INITIATED = MFSHUTDOWN_STATUS.INITIATED;
|
|
pub const MFSHUTDOWN_COMPLETED = MFSHUTDOWN_STATUS.COMPLETED;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFShutdown_Value = Guid.initString("97ec2ea4-0e42-4937-97ac-9d6d328824e1");
|
|
pub const IID_IMFShutdown = &IID_IMFShutdown_Value;
|
|
pub const IMFShutdown = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFShutdown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFShutdown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetShutdownStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFShutdown,
|
|
pStatus: ?*MFSHUTDOWN_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFShutdown,
|
|
pStatus: ?*MFSHUTDOWN_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFShutdown_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFShutdown.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFShutdown, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFShutdown_GetShutdownStatus(self: *const T, pStatus: ?*MFSHUTDOWN_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFShutdown.VTable, @ptrCast(self.vtable)).GetShutdownStatus(@as(*const IMFShutdown, @ptrCast(self)), pStatus);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopoLoader_Value = Guid.initString("de9a6157-f660-4643-b56a-df9f7998c7cd");
|
|
pub const IID_IMFTopoLoader = &IID_IMFTopoLoader_Value;
|
|
pub const IMFTopoLoader = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Load: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopoLoader,
|
|
pInputTopo: ?*IMFTopology,
|
|
ppOutputTopo: ?*?*IMFTopology,
|
|
pCurrentTopo: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopoLoader,
|
|
pInputTopo: ?*IMFTopology,
|
|
ppOutputTopo: ?*?*IMFTopology,
|
|
pCurrentTopo: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopoLoader_Load(self: *const T, pInputTopo: ?*IMFTopology, ppOutputTopo: ?*?*IMFTopology, pCurrentTopo: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopoLoader.VTable, @ptrCast(self.vtable)).Load(@as(*const IMFTopoLoader, @ptrCast(self)), pInputTopo, ppOutputTopo, pCurrentTopo);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFContentProtectionManager_Value = Guid.initString("acf92459-6a61-42bd-b57c-b43e51203cb0");
|
|
pub const IID_IMFContentProtectionManager = &IID_IMFContentProtectionManager_Value;
|
|
pub const IMFContentProtectionManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginEnableContent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentProtectionManager,
|
|
pEnablerActivate: ?*IMFActivate,
|
|
pTopo: ?*IMFTopology,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentProtectionManager,
|
|
pEnablerActivate: ?*IMFActivate,
|
|
pTopo: ?*IMFTopology,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndEnableContent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentProtectionManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentProtectionManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentProtectionManager_BeginEnableContent(self: *const T, pEnablerActivate: ?*IMFActivate, pTopo: ?*IMFTopology, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentProtectionManager.VTable, @ptrCast(self.vtable)).BeginEnableContent(@as(*const IMFContentProtectionManager, @ptrCast(self)), pEnablerActivate, pTopo, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentProtectionManager_EndEnableContent(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentProtectionManager.VTable, @ptrCast(self.vtable)).EndEnableContent(@as(*const IMFContentProtectionManager, @ptrCast(self)), pResult);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_URL_TRUST_STATUS = enum(i32) {
|
|
UNTRUSTED = 0,
|
|
TRUSTED = 1,
|
|
TAMPERED = 2,
|
|
};
|
|
pub const MF_LICENSE_URL_UNTRUSTED = MF_URL_TRUST_STATUS.UNTRUSTED;
|
|
pub const MF_LICENSE_URL_TRUSTED = MF_URL_TRUST_STATUS.TRUSTED;
|
|
pub const MF_LICENSE_URL_TAMPERED = MF_URL_TRUST_STATUS.TAMPERED;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFContentEnabler_Value = Guid.initString("d3c4ef59-49ce-4381-9071-d5bcd044c770");
|
|
pub const IID_IMFContentEnabler = &IID_IMFContentEnabler_Value;
|
|
pub const IMFContentEnabler = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetEnableType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
pType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
pType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEnableURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
ppwszURL: [*]?PWSTR,
|
|
pcchURL: ?*u32,
|
|
pTrustStatus: ?*MF_URL_TRUST_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
ppwszURL: [*]?PWSTR,
|
|
pcchURL: ?*u32,
|
|
pTrustStatus: ?*MF_URL_TRUST_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEnableData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
ppbData: [*]?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
ppbData: [*]?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsAutomaticSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
pfAutomatic: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
pfAutomatic: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AutomaticEnable: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
MonitorEnable: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Cancel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentEnabler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_GetEnableType(self: *const T, pType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).GetEnableType(@as(*const IMFContentEnabler, @ptrCast(self)), pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_GetEnableURL(self: *const T, ppwszURL: [*]?PWSTR, pcchURL: ?*u32, pTrustStatus: ?*MF_URL_TRUST_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).GetEnableURL(@as(*const IMFContentEnabler, @ptrCast(self)), ppwszURL, pcchURL, pTrustStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_GetEnableData(self: *const T, ppbData: [*]?*u8, pcbData: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).GetEnableData(@as(*const IMFContentEnabler, @ptrCast(self)), ppbData, pcbData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_IsAutomaticSupported(self: *const T, pfAutomatic: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).IsAutomaticSupported(@as(*const IMFContentEnabler, @ptrCast(self)), pfAutomatic);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_AutomaticEnable(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).AutomaticEnable(@as(*const IMFContentEnabler, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_MonitorEnable(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).MonitorEnable(@as(*const IMFContentEnabler, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentEnabler_Cancel(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentEnabler.VTable, @ptrCast(self.vtable)).Cancel(@as(*const IMFContentEnabler, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFRR_COMPONENT_HASH_INFO = extern struct {
|
|
ulReason: u32,
|
|
rgHeaderHash: [43]u16,
|
|
rgPublicKeyHash: [43]u16,
|
|
wszName: [260]u16,
|
|
};
|
|
|
|
pub const MFRR_COMPONENTS = extern struct {
|
|
dwRRInfoVersion: u32,
|
|
dwRRComponents: u32,
|
|
pRRComponents: ?*MFRR_COMPONENT_HASH_INFO,
|
|
};
|
|
|
|
pub const ASF_FLAT_PICTURE = extern struct {
|
|
bPictureType: u8 align(1),
|
|
dwDataLen: u32 align(1),
|
|
};
|
|
|
|
pub const ASF_FLAT_SYNCHRONISED_LYRICS = extern struct {
|
|
bTimeStampFormat: u8 align(1),
|
|
bContentType: u8 align(1),
|
|
dwLyricsLen: u32 align(1),
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMetadata_Value = Guid.initString("f88cfb8c-ef16-4991-b450-cb8c69e51704");
|
|
pub const IID_IMFMetadata = &IID_IMFMetadata_Value;
|
|
pub const IMFMetadata = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetLanguage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
pwszRFC1766: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
pwszRFC1766: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLanguage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
ppwszRFC1766: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
ppwszRFC1766: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllLanguages: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
ppvLanguages: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
ppvLanguages: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
ppvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
ppvValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
ppvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
ppvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeleteProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
pwszName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllPropertyNames: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadata,
|
|
ppvNames: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadata,
|
|
ppvNames: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_SetLanguage(self: *const T, pwszRFC1766: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).SetLanguage(@as(*const IMFMetadata, @ptrCast(self)), pwszRFC1766);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_GetLanguage(self: *const T, ppwszRFC1766: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).GetLanguage(@as(*const IMFMetadata, @ptrCast(self)), ppwszRFC1766);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_GetAllLanguages(self: *const T, ppvLanguages: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).GetAllLanguages(@as(*const IMFMetadata, @ptrCast(self)), ppvLanguages);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_SetProperty(self: *const T, pwszName: ?[*:0]const u16, ppvValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).SetProperty(@as(*const IMFMetadata, @ptrCast(self)), pwszName, ppvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_GetProperty(self: *const T, pwszName: ?[*:0]const u16, ppvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).GetProperty(@as(*const IMFMetadata, @ptrCast(self)), pwszName, ppvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_DeleteProperty(self: *const T, pwszName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).DeleteProperty(@as(*const IMFMetadata, @ptrCast(self)), pwszName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadata_GetAllPropertyNames(self: *const T, ppvNames: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadata.VTable, @ptrCast(self.vtable)).GetAllPropertyNames(@as(*const IMFMetadata, @ptrCast(self)), ppvNames);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMetadataProvider_Value = Guid.initString("56181d2d-e221-4adb-b1c8-3cee6a53f76f");
|
|
pub const IID_IMFMetadataProvider = &IID_IMFMetadataProvider_Value;
|
|
pub const IMFMetadataProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetMFMetadata: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMetadataProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
dwStreamIdentifier: u32,
|
|
dwFlags: u32,
|
|
ppMFMetadata: ?*?*IMFMetadata,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMetadataProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
dwStreamIdentifier: u32,
|
|
dwFlags: u32,
|
|
ppMFMetadata: ?*?*IMFMetadata,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMetadataProvider_GetMFMetadata(self: *const T, pPresentationDescriptor: ?*IMFPresentationDescriptor, dwStreamIdentifier: u32, dwFlags: u32, ppMFMetadata: ?*?*IMFMetadata) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMetadataProvider.VTable, @ptrCast(self.vtable)).GetMFMetadata(@as(*const IMFMetadataProvider, @ptrCast(self)), pPresentationDescriptor, dwStreamIdentifier, dwFlags, ppMFMetadata);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFRATE_DIRECTION = enum(i32) {
|
|
FORWARD = 0,
|
|
REVERSE = 1,
|
|
};
|
|
pub const MFRATE_FORWARD = MFRATE_DIRECTION.FORWARD;
|
|
pub const MFRATE_REVERSE = MFRATE_DIRECTION.REVERSE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRateSupport_Value = Guid.initString("0a9ccdbc-d797-4563-9667-94ec5d79292d");
|
|
pub const IID_IMFRateSupport = &IID_IMFRateSupport_Value;
|
|
pub const IMFRateSupport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetSlowestRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRateSupport,
|
|
eDirection: MFRATE_DIRECTION,
|
|
fThin: BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRateSupport,
|
|
eDirection: MFRATE_DIRECTION,
|
|
fThin: BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFastestRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRateSupport,
|
|
eDirection: MFRATE_DIRECTION,
|
|
fThin: BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRateSupport,
|
|
eDirection: MFRATE_DIRECTION,
|
|
fThin: BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsRateSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRateSupport,
|
|
fThin: BOOL,
|
|
flRate: f32,
|
|
pflNearestSupportedRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRateSupport,
|
|
fThin: BOOL,
|
|
flRate: f32,
|
|
pflNearestSupportedRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRateSupport_GetSlowestRate(self: *const T, eDirection: MFRATE_DIRECTION, fThin: BOOL, pflRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRateSupport.VTable, @ptrCast(self.vtable)).GetSlowestRate(@as(*const IMFRateSupport, @ptrCast(self)), eDirection, fThin, pflRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRateSupport_GetFastestRate(self: *const T, eDirection: MFRATE_DIRECTION, fThin: BOOL, pflRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRateSupport.VTable, @ptrCast(self.vtable)).GetFastestRate(@as(*const IMFRateSupport, @ptrCast(self)), eDirection, fThin, pflRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRateSupport_IsRateSupported(self: *const T, fThin: BOOL, flRate: f32, pflNearestSupportedRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRateSupport.VTable, @ptrCast(self.vtable)).IsRateSupported(@as(*const IMFRateSupport, @ptrCast(self)), fThin, flRate, pflNearestSupportedRate);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRateControl_Value = Guid.initString("88ddcd21-03c3-4275-91ed-55ee3929328f");
|
|
pub const IID_IMFRateControl = &IID_IMFRateControl_Value;
|
|
pub const IMFRateControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRateControl,
|
|
fThin: BOOL,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRateControl,
|
|
fThin: BOOL,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRateControl,
|
|
pfThin: ?*BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRateControl,
|
|
pfThin: ?*BOOL,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRateControl_SetRate(self: *const T, fThin: BOOL, flRate: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRateControl.VTable, @ptrCast(self.vtable)).SetRate(@as(*const IMFRateControl, @ptrCast(self)), fThin, flRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRateControl_GetRate(self: *const T, pfThin: ?*BOOL, pflRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRateControl.VTable, @ptrCast(self.vtable)).GetRate(@as(*const IMFRateControl, @ptrCast(self)), pfThin, pflRate);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFTimecodeTranslate_Value = Guid.initString("ab9d8661-f7e8-4ef4-9861-89f334f94e74");
|
|
pub const IID_IMFTimecodeTranslate = &IID_IMFTimecodeTranslate_Value;
|
|
pub const IMFTimecodeTranslate = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginConvertTimecodeToHNS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pPropVarTimecode: ?*const PROPVARIANT,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pPropVarTimecode: ?*const PROPVARIANT,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndConvertTimecodeToHNS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pResult: ?*IMFAsyncResult,
|
|
phnsTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pResult: ?*IMFAsyncResult,
|
|
phnsTime: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginConvertHNSToTimecode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
hnsTime: i64,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
hnsTime: i64,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndConvertHNSToTimecode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pResult: ?*IMFAsyncResult,
|
|
pPropVarTimecode: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimecodeTranslate,
|
|
pResult: ?*IMFAsyncResult,
|
|
pPropVarTimecode: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimecodeTranslate_BeginConvertTimecodeToHNS(self: *const T, pPropVarTimecode: ?*const PROPVARIANT, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimecodeTranslate.VTable, @ptrCast(self.vtable)).BeginConvertTimecodeToHNS(@as(*const IMFTimecodeTranslate, @ptrCast(self)), pPropVarTimecode, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimecodeTranslate_EndConvertTimecodeToHNS(self: *const T, pResult: ?*IMFAsyncResult, phnsTime: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimecodeTranslate.VTable, @ptrCast(self.vtable)).EndConvertTimecodeToHNS(@as(*const IMFTimecodeTranslate, @ptrCast(self)), pResult, phnsTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimecodeTranslate_BeginConvertHNSToTimecode(self: *const T, hnsTime: i64, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimecodeTranslate.VTable, @ptrCast(self.vtable)).BeginConvertHNSToTimecode(@as(*const IMFTimecodeTranslate, @ptrCast(self)), hnsTime, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimecodeTranslate_EndConvertHNSToTimecode(self: *const T, pResult: ?*IMFAsyncResult, pPropVarTimecode: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimecodeTranslate.VTable, @ptrCast(self.vtable)).EndConvertHNSToTimecode(@as(*const IMFTimecodeTranslate, @ptrCast(self)), pResult, pPropVarTimecode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSeekInfo_Value = Guid.initString("26afea53-d9ed-42b5-ab80-e64f9ee34779");
|
|
pub const IID_IMFSeekInfo = &IID_IMFSeekInfo_Value;
|
|
pub const IMFSeekInfo = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetNearestKeyFrames: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSeekInfo,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
pvarPreviousKeyFrame: ?*PROPVARIANT,
|
|
pvarNextKeyFrame: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSeekInfo,
|
|
pguidTimeFormat: ?*const Guid,
|
|
pvarStartPosition: ?*const PROPVARIANT,
|
|
pvarPreviousKeyFrame: ?*PROPVARIANT,
|
|
pvarNextKeyFrame: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSeekInfo_GetNearestKeyFrames(self: *const T, pguidTimeFormat: ?*const Guid, pvarStartPosition: ?*const PROPVARIANT, pvarPreviousKeyFrame: ?*PROPVARIANT, pvarNextKeyFrame: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSeekInfo.VTable, @ptrCast(self.vtable)).GetNearestKeyFrames(@as(*const IMFSeekInfo, @ptrCast(self)), pguidTimeFormat, pvarStartPosition, pvarPreviousKeyFrame, pvarNextKeyFrame);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSimpleAudioVolume_Value = Guid.initString("089edf13-cf71-4338-8d13-9e569dbdc319");
|
|
pub const IID_IMFSimpleAudioVolume = &IID_IMFSimpleAudioVolume_Value;
|
|
pub const IMFSimpleAudioVolume = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetMasterVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
fLevel: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
fLevel: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMasterVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
pfLevel: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
pfLevel: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
bMute: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
bMute: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
pbMute: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSimpleAudioVolume,
|
|
pbMute: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSimpleAudioVolume_SetMasterVolume(self: *const T, fLevel: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSimpleAudioVolume.VTable, @ptrCast(self.vtable)).SetMasterVolume(@as(*const IMFSimpleAudioVolume, @ptrCast(self)), fLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSimpleAudioVolume_GetMasterVolume(self: *const T, pfLevel: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSimpleAudioVolume.VTable, @ptrCast(self.vtable)).GetMasterVolume(@as(*const IMFSimpleAudioVolume, @ptrCast(self)), pfLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSimpleAudioVolume_SetMute(self: *const T, bMute: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSimpleAudioVolume.VTable, @ptrCast(self.vtable)).SetMute(@as(*const IMFSimpleAudioVolume, @ptrCast(self)), bMute);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSimpleAudioVolume_GetMute(self: *const T, pbMute: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSimpleAudioVolume.VTable, @ptrCast(self.vtable)).GetMute(@as(*const IMFSimpleAudioVolume, @ptrCast(self)), pbMute);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAudioStreamVolume_Value = Guid.initString("76b1bbdb-4ec8-4f36-b106-70a9316df593");
|
|
pub const IID_IMFAudioStreamVolume = &IID_IMFAudioStreamVolume_Value;
|
|
pub const IMFAudioStreamVolume = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetChannelCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetChannelVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwIndex: u32,
|
|
fLevel: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwIndex: u32,
|
|
fLevel: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetChannelVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwIndex: u32,
|
|
pfLevel: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwIndex: u32,
|
|
pfLevel: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAllVolumes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwCount: u32,
|
|
pfVolumes: [*]const f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwCount: u32,
|
|
pfVolumes: [*]const f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllVolumes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwCount: u32,
|
|
pfVolumes: [*]f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioStreamVolume,
|
|
dwCount: u32,
|
|
pfVolumes: [*]f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioStreamVolume_GetChannelCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioStreamVolume.VTable, @ptrCast(self.vtable)).GetChannelCount(@as(*const IMFAudioStreamVolume, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioStreamVolume_SetChannelVolume(self: *const T, dwIndex: u32, fLevel: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioStreamVolume.VTable, @ptrCast(self.vtable)).SetChannelVolume(@as(*const IMFAudioStreamVolume, @ptrCast(self)), dwIndex, fLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioStreamVolume_GetChannelVolume(self: *const T, dwIndex: u32, pfLevel: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioStreamVolume.VTable, @ptrCast(self.vtable)).GetChannelVolume(@as(*const IMFAudioStreamVolume, @ptrCast(self)), dwIndex, pfLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioStreamVolume_SetAllVolumes(self: *const T, dwCount: u32, pfVolumes: [*]const f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioStreamVolume.VTable, @ptrCast(self.vtable)).SetAllVolumes(@as(*const IMFAudioStreamVolume, @ptrCast(self)), dwCount, pfVolumes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioStreamVolume_GetAllVolumes(self: *const T, dwCount: u32, pfVolumes: [*]f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioStreamVolume.VTable, @ptrCast(self.vtable)).GetAllVolumes(@as(*const IMFAudioStreamVolume, @ptrCast(self)), dwCount, pfVolumes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFAudioPolicy_Value = Guid.initString("a0638c2b-6465-4395-9ae7-a321a9fd2856");
|
|
pub const IID_IMFAudioPolicy = &IID_IMFAudioPolicy_Value;
|
|
pub const IMFAudioPolicy = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetGroupingParam: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
rguidClass: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
rguidClass: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetGroupingParam: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
pguidClass: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
pguidClass: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDisplayName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDisplayName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszName: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszName: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetIconPath: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszPath: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszPath: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIconPath: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszPath: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFAudioPolicy,
|
|
pszPath: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_SetGroupingParam(self: *const T, rguidClass: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).SetGroupingParam(@as(*const IMFAudioPolicy, @ptrCast(self)), rguidClass);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_GetGroupingParam(self: *const T, pguidClass: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).GetGroupingParam(@as(*const IMFAudioPolicy, @ptrCast(self)), pguidClass);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_SetDisplayName(self: *const T, pszName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).SetDisplayName(@as(*const IMFAudioPolicy, @ptrCast(self)), pszName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_GetDisplayName(self: *const T, pszName: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).GetDisplayName(@as(*const IMFAudioPolicy, @ptrCast(self)), pszName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_SetIconPath(self: *const T, pszPath: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).SetIconPath(@as(*const IMFAudioPolicy, @ptrCast(self)), pszPath);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFAudioPolicy_GetIconPath(self: *const T, pszPath: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFAudioPolicy.VTable, @ptrCast(self.vtable)).GetIconPath(@as(*const IMFAudioPolicy, @ptrCast(self)), pszPath);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSampleGrabberSinkCallback_Value = Guid.initString("8c7b80bf-ee42-4b59-b1df-55668e1bdca8");
|
|
pub const IID_IMFSampleGrabberSinkCallback = &IID_IMFSampleGrabberSinkCallback_Value;
|
|
pub const IMFSampleGrabberSinkCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFClockStateSink.VTable,
|
|
OnSetPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
pPresentationClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnProcessSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
guidMajorMediaType: ?*const Guid,
|
|
dwSampleFlags: u32,
|
|
llSampleTime: i64,
|
|
llSampleDuration: i64,
|
|
// TODO: what to do with BytesParamIndex 5?
|
|
pSampleBuffer: ?*const u8,
|
|
dwSampleSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
guidMajorMediaType: ?*const Guid,
|
|
dwSampleFlags: u32,
|
|
llSampleTime: i64,
|
|
llSampleDuration: i64,
|
|
// TODO: what to do with BytesParamIndex 5?
|
|
pSampleBuffer: ?*const u8,
|
|
dwSampleSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnShutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleGrabberSinkCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFClockStateSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleGrabberSinkCallback_OnSetPresentationClock(self: *const T, pPresentationClock: ?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleGrabberSinkCallback.VTable, @ptrCast(self.vtable)).OnSetPresentationClock(@as(*const IMFSampleGrabberSinkCallback, @ptrCast(self)), pPresentationClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleGrabberSinkCallback_OnProcessSample(self: *const T, guidMajorMediaType: ?*const Guid, dwSampleFlags: u32, llSampleTime: i64, llSampleDuration: i64, pSampleBuffer: ?*const u8, dwSampleSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleGrabberSinkCallback.VTable, @ptrCast(self.vtable)).OnProcessSample(@as(*const IMFSampleGrabberSinkCallback, @ptrCast(self)), guidMajorMediaType, dwSampleFlags, llSampleTime, llSampleDuration, pSampleBuffer, dwSampleSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleGrabberSinkCallback_OnShutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleGrabberSinkCallback.VTable, @ptrCast(self.vtable)).OnShutdown(@as(*const IMFSampleGrabberSinkCallback, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSampleGrabberSinkCallback2_Value = Guid.initString("ca86aa50-c46e-429e-ab27-16d6ac6844cb");
|
|
pub const IID_IMFSampleGrabberSinkCallback2 = &IID_IMFSampleGrabberSinkCallback2_Value;
|
|
pub const IMFSampleGrabberSinkCallback2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSampleGrabberSinkCallback.VTable,
|
|
OnProcessSampleEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleGrabberSinkCallback2,
|
|
guidMajorMediaType: ?*const Guid,
|
|
dwSampleFlags: u32,
|
|
llSampleTime: i64,
|
|
llSampleDuration: i64,
|
|
// TODO: what to do with BytesParamIndex 5?
|
|
pSampleBuffer: ?*const u8,
|
|
dwSampleSize: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleGrabberSinkCallback2,
|
|
guidMajorMediaType: ?*const Guid,
|
|
dwSampleFlags: u32,
|
|
llSampleTime: i64,
|
|
llSampleDuration: i64,
|
|
// TODO: what to do with BytesParamIndex 5?
|
|
pSampleBuffer: ?*const u8,
|
|
dwSampleSize: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSampleGrabberSinkCallback.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleGrabberSinkCallback2_OnProcessSampleEx(self: *const T, guidMajorMediaType: ?*const Guid, dwSampleFlags: u32, llSampleTime: i64, llSampleDuration: i64, pSampleBuffer: ?*const u8, dwSampleSize: u32, pAttributes: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleGrabberSinkCallback2.VTable, @ptrCast(self.vtable)).OnProcessSampleEx(@as(*const IMFSampleGrabberSinkCallback2, @ptrCast(self)), guidMajorMediaType, dwSampleFlags, llSampleTime, llSampleDuration, pSampleBuffer, dwSampleSize, pAttributes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFWorkQueueServices_Value = Guid.initString("35fe1bb8-a3a9-40fe-bbec-eb569c9ccca3");
|
|
pub const IID_IMFWorkQueueServices = &IID_IMFWorkQueueServices_Value;
|
|
pub const IMFWorkQueueServices = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginRegisterTopologyWorkQueuesWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndRegisterTopologyWorkQueuesWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginUnregisterTopologyWorkQueuesWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndUnregisterTopologyWorkQueuesWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTopologyWorkQueueMMCSSClass: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwTopologyWorkQueueId: u32,
|
|
pwszClass: [*:0]u16,
|
|
pcchClass: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwTopologyWorkQueueId: u32,
|
|
pwszClass: [*:0]u16,
|
|
pcchClass: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTopologyWorkQueueMMCSSTaskId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwTopologyWorkQueueId: u32,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwTopologyWorkQueueId: u32,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginRegisterPlatformWorkQueueWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueue: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueue: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndRegisterPlatformWorkQueueWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginUnregisterPlatformWorkQueueWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueue: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueue: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndUnregisterPlatformWorkQueueWithMMCSS: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPlaftormWorkQueueMMCSSClass: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueueId: u32,
|
|
pwszClass: [*:0]u16,
|
|
pcchClass: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueueId: u32,
|
|
pwszClass: [*:0]u16,
|
|
pcchClass: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPlatformWorkQueueMMCSSTaskId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueueId: u32,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServices,
|
|
dwPlatformWorkQueueId: u32,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_BeginRegisterTopologyWorkQueuesWithMMCSS(self: *const T, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).BeginRegisterTopologyWorkQueuesWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_EndRegisterTopologyWorkQueuesWithMMCSS(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).EndRegisterTopologyWorkQueuesWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_BeginUnregisterTopologyWorkQueuesWithMMCSS(self: *const T, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).BeginUnregisterTopologyWorkQueuesWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_EndUnregisterTopologyWorkQueuesWithMMCSS(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).EndUnregisterTopologyWorkQueuesWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_GetTopologyWorkQueueMMCSSClass(self: *const T, dwTopologyWorkQueueId: u32, pwszClass: [*:0]u16, pcchClass: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).GetTopologyWorkQueueMMCSSClass(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwTopologyWorkQueueId, pwszClass, pcchClass);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_GetTopologyWorkQueueMMCSSTaskId(self: *const T, dwTopologyWorkQueueId: u32, pdwTaskId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).GetTopologyWorkQueueMMCSSTaskId(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwTopologyWorkQueueId, pdwTaskId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_BeginRegisterPlatformWorkQueueWithMMCSS(self: *const T, dwPlatformWorkQueue: u32, wszClass: ?[*:0]const u16, dwTaskId: u32, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).BeginRegisterPlatformWorkQueueWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwPlatformWorkQueue, wszClass, dwTaskId, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_EndRegisterPlatformWorkQueueWithMMCSS(self: *const T, pResult: ?*IMFAsyncResult, pdwTaskId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).EndRegisterPlatformWorkQueueWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pResult, pdwTaskId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_BeginUnregisterPlatformWorkQueueWithMMCSS(self: *const T, dwPlatformWorkQueue: u32, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).BeginUnregisterPlatformWorkQueueWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwPlatformWorkQueue, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_EndUnregisterPlatformWorkQueueWithMMCSS(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).EndUnregisterPlatformWorkQueueWithMMCSS(@as(*const IMFWorkQueueServices, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_GetPlaftormWorkQueueMMCSSClass(self: *const T, dwPlatformWorkQueueId: u32, pwszClass: [*:0]u16, pcchClass: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).GetPlaftormWorkQueueMMCSSClass(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwPlatformWorkQueueId, pwszClass, pcchClass);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServices_GetPlatformWorkQueueMMCSSTaskId(self: *const T, dwPlatformWorkQueueId: u32, pdwTaskId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServices.VTable, @ptrCast(self.vtable)).GetPlatformWorkQueueMMCSSTaskId(@as(*const IMFWorkQueueServices, @ptrCast(self)), dwPlatformWorkQueueId, pdwTaskId);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFWorkQueueServicesEx_Value = Guid.initString("96bf961b-40fe-42f1-ba9d-320238b49700");
|
|
pub const IID_IMFWorkQueueServicesEx = &IID_IMFWorkQueueServicesEx_Value;
|
|
pub const IMFWorkQueueServicesEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFWorkQueueServices.VTable,
|
|
GetTopologyWorkQueueMMCSSPriority: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwTopologyWorkQueueId: u32,
|
|
plPriority: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwTopologyWorkQueueId: u32,
|
|
plPriority: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginRegisterPlatformWorkQueueWithMMCSSEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwPlatformWorkQueue: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
lPriority: i32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwPlatformWorkQueue: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
lPriority: i32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPlatformWorkQueueMMCSSPriority: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwPlatformWorkQueueId: u32,
|
|
plPriority: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFWorkQueueServicesEx,
|
|
dwPlatformWorkQueueId: u32,
|
|
plPriority: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFWorkQueueServices.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServicesEx_GetTopologyWorkQueueMMCSSPriority(self: *const T, dwTopologyWorkQueueId: u32, plPriority: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServicesEx.VTable, @ptrCast(self.vtable)).GetTopologyWorkQueueMMCSSPriority(@as(*const IMFWorkQueueServicesEx, @ptrCast(self)), dwTopologyWorkQueueId, plPriority);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServicesEx_BeginRegisterPlatformWorkQueueWithMMCSSEx(self: *const T, dwPlatformWorkQueue: u32, wszClass: ?[*:0]const u16, dwTaskId: u32, lPriority: i32, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServicesEx.VTable, @ptrCast(self.vtable)).BeginRegisterPlatformWorkQueueWithMMCSSEx(@as(*const IMFWorkQueueServicesEx, @ptrCast(self)), dwPlatformWorkQueue, wszClass, dwTaskId, lPriority, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFWorkQueueServicesEx_GetPlatformWorkQueueMMCSSPriority(self: *const T, dwPlatformWorkQueueId: u32, plPriority: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFWorkQueueServicesEx.VTable, @ptrCast(self.vtable)).GetPlatformWorkQueueMMCSSPriority(@as(*const IMFWorkQueueServicesEx, @ptrCast(self)), dwPlatformWorkQueueId, plPriority);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_QUALITY_DROP_MODE = enum(i32) {
|
|
DROP_MODE_NONE = 0,
|
|
DROP_MODE_1 = 1,
|
|
DROP_MODE_2 = 2,
|
|
DROP_MODE_3 = 3,
|
|
DROP_MODE_4 = 4,
|
|
DROP_MODE_5 = 5,
|
|
NUM_DROP_MODES = 6,
|
|
};
|
|
pub const MF_DROP_MODE_NONE = MF_QUALITY_DROP_MODE.DROP_MODE_NONE;
|
|
pub const MF_DROP_MODE_1 = MF_QUALITY_DROP_MODE.DROP_MODE_1;
|
|
pub const MF_DROP_MODE_2 = MF_QUALITY_DROP_MODE.DROP_MODE_2;
|
|
pub const MF_DROP_MODE_3 = MF_QUALITY_DROP_MODE.DROP_MODE_3;
|
|
pub const MF_DROP_MODE_4 = MF_QUALITY_DROP_MODE.DROP_MODE_4;
|
|
pub const MF_DROP_MODE_5 = MF_QUALITY_DROP_MODE.DROP_MODE_5;
|
|
pub const MF_NUM_DROP_MODES = MF_QUALITY_DROP_MODE.NUM_DROP_MODES;
|
|
|
|
pub const MF_QUALITY_LEVEL = enum(i32) {
|
|
QUALITY_NORMAL = 0,
|
|
QUALITY_NORMAL_MINUS_1 = 1,
|
|
QUALITY_NORMAL_MINUS_2 = 2,
|
|
QUALITY_NORMAL_MINUS_3 = 3,
|
|
QUALITY_NORMAL_MINUS_4 = 4,
|
|
QUALITY_NORMAL_MINUS_5 = 5,
|
|
NUM_QUALITY_LEVELS = 6,
|
|
};
|
|
pub const MF_QUALITY_NORMAL = MF_QUALITY_LEVEL.QUALITY_NORMAL;
|
|
pub const MF_QUALITY_NORMAL_MINUS_1 = MF_QUALITY_LEVEL.QUALITY_NORMAL_MINUS_1;
|
|
pub const MF_QUALITY_NORMAL_MINUS_2 = MF_QUALITY_LEVEL.QUALITY_NORMAL_MINUS_2;
|
|
pub const MF_QUALITY_NORMAL_MINUS_3 = MF_QUALITY_LEVEL.QUALITY_NORMAL_MINUS_3;
|
|
pub const MF_QUALITY_NORMAL_MINUS_4 = MF_QUALITY_LEVEL.QUALITY_NORMAL_MINUS_4;
|
|
pub const MF_QUALITY_NORMAL_MINUS_5 = MF_QUALITY_LEVEL.QUALITY_NORMAL_MINUS_5;
|
|
pub const MF_NUM_QUALITY_LEVELS = MF_QUALITY_LEVEL.NUM_QUALITY_LEVELS;
|
|
|
|
pub const MF_QUALITY_ADVISE_FLAGS = enum(i32) {
|
|
P = 1,
|
|
};
|
|
pub const MF_QUALITY_CANNOT_KEEP_UP = MF_QUALITY_ADVISE_FLAGS.P;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFQualityManager_Value = Guid.initString("8d009d86-5b9f-4115-b1fc-9f80d52ab8ab");
|
|
pub const IID_IMFQualityManager = &IID_IMFQualityManager_Value;
|
|
pub const IMFQualityManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
NotifyTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NotifyPresentationClock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
pClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
pClock: ?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NotifyProcessInput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
pNode: ?*IMFTopologyNode,
|
|
lInputIndex: i32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
pNode: ?*IMFTopologyNode,
|
|
lInputIndex: i32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NotifyProcessOutput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
pNode: ?*IMFTopologyNode,
|
|
lOutputIndex: i32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
pNode: ?*IMFTopologyNode,
|
|
lOutputIndex: i32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NotifyQualityEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
pObject: ?*IUnknown,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
pObject: ?*IUnknown,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_NotifyTopology(self: *const T, pTopology: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).NotifyTopology(@as(*const IMFQualityManager, @ptrCast(self)), pTopology);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_NotifyPresentationClock(self: *const T, pClock: ?*IMFPresentationClock) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).NotifyPresentationClock(@as(*const IMFQualityManager, @ptrCast(self)), pClock);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_NotifyProcessInput(self: *const T, pNode: ?*IMFTopologyNode, lInputIndex: i32, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).NotifyProcessInput(@as(*const IMFQualityManager, @ptrCast(self)), pNode, lInputIndex, pSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_NotifyProcessOutput(self: *const T, pNode: ?*IMFTopologyNode, lOutputIndex: i32, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).NotifyProcessOutput(@as(*const IMFQualityManager, @ptrCast(self)), pNode, lOutputIndex, pSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_NotifyQualityEvent(self: *const T, pObject: ?*IUnknown, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).NotifyQualityEvent(@as(*const IMFQualityManager, @ptrCast(self)), pObject, pEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityManager_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityManager.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFQualityManager, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFQualityAdvise_Value = Guid.initString("ec15e2e9-e36b-4f7c-8758-77d452ef4ce7");
|
|
pub const IID_IMFQualityAdvise = &IID_IMFQualityAdvise_Value;
|
|
pub const IMFQualityAdvise = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetDropMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise,
|
|
eDropMode: MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise,
|
|
eDropMode: MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetQualityLevel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise,
|
|
eQualityLevel: MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise,
|
|
eQualityLevel: MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDropMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise,
|
|
peDropMode: ?*MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise,
|
|
peDropMode: ?*MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetQualityLevel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise,
|
|
peQualityLevel: ?*MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise,
|
|
peQualityLevel: ?*MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DropTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise,
|
|
hnsAmountToDrop: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise,
|
|
hnsAmountToDrop: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise_SetDropMode(self: *const T, eDropMode: MF_QUALITY_DROP_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise.VTable, @ptrCast(self.vtable)).SetDropMode(@as(*const IMFQualityAdvise, @ptrCast(self)), eDropMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise_SetQualityLevel(self: *const T, eQualityLevel: MF_QUALITY_LEVEL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise.VTable, @ptrCast(self.vtable)).SetQualityLevel(@as(*const IMFQualityAdvise, @ptrCast(self)), eQualityLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise_GetDropMode(self: *const T, peDropMode: ?*MF_QUALITY_DROP_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise.VTable, @ptrCast(self.vtable)).GetDropMode(@as(*const IMFQualityAdvise, @ptrCast(self)), peDropMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise_GetQualityLevel(self: *const T, peQualityLevel: ?*MF_QUALITY_LEVEL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise.VTable, @ptrCast(self.vtable)).GetQualityLevel(@as(*const IMFQualityAdvise, @ptrCast(self)), peQualityLevel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise_DropTime(self: *const T, hnsAmountToDrop: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise.VTable, @ptrCast(self.vtable)).DropTime(@as(*const IMFQualityAdvise, @ptrCast(self)), hnsAmountToDrop);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFQualityAdvise2_Value = Guid.initString("f3706f0d-8ea2-4886-8000-7155e9ec2eae");
|
|
pub const IID_IMFQualityAdvise2 = &IID_IMFQualityAdvise2_Value;
|
|
pub const IMFQualityAdvise2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFQualityAdvise.VTable,
|
|
NotifyQualityEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdvise2,
|
|
pEvent: ?*IMFMediaEvent,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdvise2,
|
|
pEvent: ?*IMFMediaEvent,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFQualityAdvise.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdvise2_NotifyQualityEvent(self: *const T, pEvent: ?*IMFMediaEvent, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdvise2.VTable, @ptrCast(self.vtable)).NotifyQualityEvent(@as(*const IMFQualityAdvise2, @ptrCast(self)), pEvent, pdwFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFQualityAdviseLimits_Value = Guid.initString("dfcd8e4d-30b5-4567-acaa-8eb5b7853dc9");
|
|
pub const IID_IMFQualityAdviseLimits = &IID_IMFQualityAdviseLimits_Value;
|
|
pub const IMFQualityAdviseLimits = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetMaximumDropMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdviseLimits,
|
|
peDropMode: ?*MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdviseLimits,
|
|
peDropMode: ?*MF_QUALITY_DROP_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMinimumQualityLevel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFQualityAdviseLimits,
|
|
peQualityLevel: ?*MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFQualityAdviseLimits,
|
|
peQualityLevel: ?*MF_QUALITY_LEVEL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdviseLimits_GetMaximumDropMode(self: *const T, peDropMode: ?*MF_QUALITY_DROP_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdviseLimits.VTable, @ptrCast(self.vtable)).GetMaximumDropMode(@as(*const IMFQualityAdviseLimits, @ptrCast(self)), peDropMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFQualityAdviseLimits_GetMinimumQualityLevel(self: *const T, peQualityLevel: ?*MF_QUALITY_LEVEL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFQualityAdviseLimits.VTable, @ptrCast(self.vtable)).GetMinimumQualityLevel(@as(*const IMFQualityAdviseLimits, @ptrCast(self)), peQualityLevel);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRealTimeClient_Value = Guid.initString("2347d60b-3fb5-480c-8803-8df3adcd3ef0");
|
|
pub const IID_IMFRealTimeClient = &IID_IMFRealTimeClient_Value;
|
|
pub const IMFRealTimeClient = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
RegisterThreads: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClient,
|
|
dwTaskIndex: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClient,
|
|
dwTaskIndex: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnregisterThreads: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClient,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClient,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetWorkQueue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClient,
|
|
dwWorkQueueId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClient,
|
|
dwWorkQueueId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClient_RegisterThreads(self: *const T, dwTaskIndex: u32, wszClass: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClient.VTable, @ptrCast(self.vtable)).RegisterThreads(@as(*const IMFRealTimeClient, @ptrCast(self)), dwTaskIndex, wszClass);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClient_UnregisterThreads(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClient.VTable, @ptrCast(self.vtable)).UnregisterThreads(@as(*const IMFRealTimeClient, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClient_SetWorkQueue(self: *const T, dwWorkQueueId: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClient.VTable, @ptrCast(self.vtable)).SetWorkQueue(@as(*const IMFRealTimeClient, @ptrCast(self)), dwWorkQueueId);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFRealTimeClientEx_Value = Guid.initString("03910848-ab16-4611-b100-17b88ae2f248");
|
|
pub const IID_IMFRealTimeClientEx = &IID_IMFRealTimeClientEx_Value;
|
|
pub const IMFRealTimeClientEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
RegisterThreadsEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
pdwTaskIndex: ?*u32,
|
|
wszClassName: ?[*:0]const u16,
|
|
lBasePriority: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
pdwTaskIndex: ?*u32,
|
|
wszClassName: ?[*:0]const u16,
|
|
lBasePriority: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnregisterThreads: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetWorkQueueEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
dwMultithreadedWorkQueueId: u32,
|
|
lWorkItemBasePriority: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRealTimeClientEx,
|
|
dwMultithreadedWorkQueueId: u32,
|
|
lWorkItemBasePriority: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClientEx_RegisterThreadsEx(self: *const T, pdwTaskIndex: ?*u32, wszClassName: ?[*:0]const u16, lBasePriority: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClientEx.VTable, @ptrCast(self.vtable)).RegisterThreadsEx(@as(*const IMFRealTimeClientEx, @ptrCast(self)), pdwTaskIndex, wszClassName, lBasePriority);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClientEx_UnregisterThreads(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClientEx.VTable, @ptrCast(self.vtable)).UnregisterThreads(@as(*const IMFRealTimeClientEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRealTimeClientEx_SetWorkQueueEx(self: *const T, dwMultithreadedWorkQueueId: u32, lWorkItemBasePriority: i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRealTimeClientEx.VTable, @ptrCast(self.vtable)).SetWorkQueueEx(@as(*const IMFRealTimeClientEx, @ptrCast(self)), dwMultithreadedWorkQueueId, lWorkItemBasePriority);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFSequencerTopologyFlags = enum(i32) {
|
|
t = 1,
|
|
};
|
|
pub const SequencerTopologyFlags_Last = MFSequencerTopologyFlags.t;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSequencerSource_Value = Guid.initString("197cd219-19cb-4de1-a64c-acf2edcbe59e");
|
|
pub const IID_IMFSequencerSource = &IID_IMFSequencerSource_Value;
|
|
pub const IMFSequencerSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
AppendTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSequencerSource,
|
|
pTopology: ?*IMFTopology,
|
|
dwFlags: u32,
|
|
pdwId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSequencerSource,
|
|
pTopology: ?*IMFTopology,
|
|
dwFlags: u32,
|
|
pdwId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DeleteTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationContext: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSequencerSource,
|
|
pPD: ?*IMFPresentationDescriptor,
|
|
pId: ?*u32,
|
|
ppTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSequencerSource,
|
|
pPD: ?*IMFPresentationDescriptor,
|
|
pId: ?*u32,
|
|
ppTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateTopologyFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSequencerSource,
|
|
dwId: u32,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSequencerSource_AppendTopology(self: *const T, pTopology: ?*IMFTopology, dwFlags: u32, pdwId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSequencerSource.VTable, @ptrCast(self.vtable)).AppendTopology(@as(*const IMFSequencerSource, @ptrCast(self)), pTopology, dwFlags, pdwId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSequencerSource_DeleteTopology(self: *const T, dwId: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSequencerSource.VTable, @ptrCast(self.vtable)).DeleteTopology(@as(*const IMFSequencerSource, @ptrCast(self)), dwId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSequencerSource_GetPresentationContext(self: *const T, pPD: ?*IMFPresentationDescriptor, pId: ?*u32, ppTopology: ?*?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSequencerSource.VTable, @ptrCast(self.vtable)).GetPresentationContext(@as(*const IMFSequencerSource, @ptrCast(self)), pPD, pId, ppTopology);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSequencerSource_UpdateTopology(self: *const T, dwId: u32, pTopology: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSequencerSource.VTable, @ptrCast(self.vtable)).UpdateTopology(@as(*const IMFSequencerSource, @ptrCast(self)), dwId, pTopology);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSequencerSource_UpdateTopologyFlags(self: *const T, dwId: u32, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSequencerSource.VTable, @ptrCast(self.vtable)).UpdateTopologyFlags(@as(*const IMFSequencerSource, @ptrCast(self)), dwId, dwFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSourceTopologyProvider_Value = Guid.initString("0e1d6009-c9f3-442d-8c51-a42d2d49452f");
|
|
pub const IID_IMFMediaSourceTopologyProvider = &IID_IMFMediaSourceTopologyProvider_Value;
|
|
pub const IMFMediaSourceTopologyProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetMediaSourceTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceTopologyProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
ppTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceTopologyProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
ppTopology: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceTopologyProvider_GetMediaSourceTopology(self: *const T, pPresentationDescriptor: ?*IMFPresentationDescriptor, ppTopology: ?*?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceTopologyProvider.VTable, @ptrCast(self.vtable)).GetMediaSourceTopology(@as(*const IMFMediaSourceTopologyProvider, @ptrCast(self)), pPresentationDescriptor, ppTopology);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSourcePresentationProvider_Value = Guid.initString("0e1d600a-c9f3-442d-8c51-a42d2d49452f");
|
|
pub const IID_IMFMediaSourcePresentationProvider = &IID_IMFMediaSourcePresentationProvider_Value;
|
|
pub const IMFMediaSourcePresentationProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ForceEndOfPresentation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourcePresentationProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourcePresentationProvider,
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourcePresentationProvider_ForceEndOfPresentation(self: *const T, pPresentationDescriptor: ?*IMFPresentationDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourcePresentationProvider.VTable, @ptrCast(self.vtable)).ForceEndOfPresentation(@as(*const IMFMediaSourcePresentationProvider, @ptrCast(self)), pPresentationDescriptor);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFTOPONODE_ATTRIBUTE_UPDATE = extern struct {
|
|
NodeId: u64,
|
|
guidAttributeKey: Guid,
|
|
attrType: MF_ATTRIBUTE_TYPE,
|
|
Anonymous: extern union {
|
|
u32: u32,
|
|
u64: u64,
|
|
d: f64,
|
|
},
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopologyNodeAttributeEditor_Value = Guid.initString("676aa6dd-238a-410d-bb99-65668d01605a");
|
|
pub const IID_IMFTopologyNodeAttributeEditor = &IID_IMFTopologyNodeAttributeEditor_Value;
|
|
pub const IMFTopologyNodeAttributeEditor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
UpdateNodeAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyNodeAttributeEditor,
|
|
TopoId: u64,
|
|
cUpdates: u32,
|
|
pUpdates: [*]MFTOPONODE_ATTRIBUTE_UPDATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyNodeAttributeEditor,
|
|
TopoId: u64,
|
|
cUpdates: u32,
|
|
pUpdates: [*]MFTOPONODE_ATTRIBUTE_UPDATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyNodeAttributeEditor_UpdateNodeAttributes(self: *const T, TopoId: u64, cUpdates: u32, pUpdates: [*]MFTOPONODE_ATTRIBUTE_UPDATE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyNodeAttributeEditor.VTable, @ptrCast(self.vtable)).UpdateNodeAttributes(@as(*const IMFTopologyNodeAttributeEditor, @ptrCast(self)), TopoId, cUpdates, pUpdates);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_LEAKY_BUCKET_PAIR = extern struct {
|
|
dwBitrate: u32,
|
|
msBufferWindow: u32,
|
|
};
|
|
|
|
pub const MFBYTESTREAM_BUFFERING_PARAMS = extern struct {
|
|
cbTotalFileSize: u64,
|
|
cbPlayableDataSize: u64,
|
|
prgBuckets: ?*MF_LEAKY_BUCKET_PAIR,
|
|
cBuckets: u32,
|
|
qwNetBufferingTime: u64,
|
|
qwExtraBufferingTimeDuringSeek: u64,
|
|
qwPlayDuration: u64,
|
|
dRate: f32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFByteStreamBuffering_Value = Guid.initString("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e");
|
|
pub const IID_IMFByteStreamBuffering = &IID_IMFByteStreamBuffering_Value;
|
|
pub const IMFByteStreamBuffering = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetBufferingParams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
pParams: ?*MFBYTESTREAM_BUFFERING_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
pParams: ?*MFBYTESTREAM_BUFFERING_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableBuffering: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StopBuffering: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamBuffering,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamBuffering_SetBufferingParams(self: *const T, pParams: ?*MFBYTESTREAM_BUFFERING_PARAMS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamBuffering.VTable, @ptrCast(self.vtable)).SetBufferingParams(@as(*const IMFByteStreamBuffering, @ptrCast(self)), pParams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamBuffering_EnableBuffering(self: *const T, fEnable: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamBuffering.VTable, @ptrCast(self.vtable)).EnableBuffering(@as(*const IMFByteStreamBuffering, @ptrCast(self)), fEnable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamBuffering_StopBuffering(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamBuffering.VTable, @ptrCast(self.vtable)).StopBuffering(@as(*const IMFByteStreamBuffering, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFByteStreamCacheControl_Value = Guid.initString("f5042ea4-7a96-4a75-aa7b-2be1ef7f88d5");
|
|
pub const IID_IMFByteStreamCacheControl = &IID_IMFByteStreamCacheControl_Value;
|
|
pub const IMFByteStreamCacheControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
StopBackgroundTransfer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamCacheControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamCacheControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamCacheControl_StopBackgroundTransfer(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamCacheControl.VTable, @ptrCast(self.vtable)).StopBackgroundTransfer(@as(*const IMFByteStreamCacheControl, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFByteStreamTimeSeek_Value = Guid.initString("64976bfa-fb61-4041-9069-8c9a5f659beb");
|
|
pub const IID_IMFByteStreamTimeSeek = &IID_IMFByteStreamTimeSeek_Value;
|
|
pub const IMFByteStreamTimeSeek = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsTimeSeekSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
pfTimeSeekIsSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
pfTimeSeekIsSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TimeSeek: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
qwTimePosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
qwTimePosition: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTimeSeekResult: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
pqwStartTime: ?*u64,
|
|
pqwStopTime: ?*u64,
|
|
pqwDuration: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamTimeSeek,
|
|
pqwStartTime: ?*u64,
|
|
pqwStopTime: ?*u64,
|
|
pqwDuration: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamTimeSeek_IsTimeSeekSupported(self: *const T, pfTimeSeekIsSupported: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamTimeSeek.VTable, @ptrCast(self.vtable)).IsTimeSeekSupported(@as(*const IMFByteStreamTimeSeek, @ptrCast(self)), pfTimeSeekIsSupported);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamTimeSeek_TimeSeek(self: *const T, qwTimePosition: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamTimeSeek.VTable, @ptrCast(self.vtable)).TimeSeek(@as(*const IMFByteStreamTimeSeek, @ptrCast(self)), qwTimePosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamTimeSeek_GetTimeSeekResult(self: *const T, pqwStartTime: ?*u64, pqwStopTime: ?*u64, pqwDuration: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamTimeSeek.VTable, @ptrCast(self.vtable)).GetTimeSeekResult(@as(*const IMFByteStreamTimeSeek, @ptrCast(self)), pqwStartTime, pqwStopTime, pqwDuration);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_BYTE_STREAM_CACHE_RANGE = extern struct {
|
|
qwStartOffset: u64,
|
|
qwEndOffset: u64,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFByteStreamCacheControl2_Value = Guid.initString("71ce469c-f34b-49ea-a56b-2d2a10e51149");
|
|
pub const IID_IMFByteStreamCacheControl2 = &IID_IMFByteStreamCacheControl2_Value;
|
|
pub const IMFByteStreamCacheControl2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFByteStreamCacheControl.VTable,
|
|
GetByteRanges: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
pcRanges: ?*u32,
|
|
ppRanges: [*]?*MF_BYTE_STREAM_CACHE_RANGE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
pcRanges: ?*u32,
|
|
ppRanges: [*]?*MF_BYTE_STREAM_CACHE_RANGE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCacheLimit: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
qwBytes: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
qwBytes: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsBackgroundTransferActive: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
pfActive: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamCacheControl2,
|
|
pfActive: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFByteStreamCacheControl.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamCacheControl2_GetByteRanges(self: *const T, pcRanges: ?*u32, ppRanges: [*]?*MF_BYTE_STREAM_CACHE_RANGE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamCacheControl2.VTable, @ptrCast(self.vtable)).GetByteRanges(@as(*const IMFByteStreamCacheControl2, @ptrCast(self)), pcRanges, ppRanges);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamCacheControl2_SetCacheLimit(self: *const T, qwBytes: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamCacheControl2.VTable, @ptrCast(self.vtable)).SetCacheLimit(@as(*const IMFByteStreamCacheControl2, @ptrCast(self)), qwBytes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamCacheControl2_IsBackgroundTransferActive(self: *const T, pfActive: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamCacheControl2.VTable, @ptrCast(self.vtable)).IsBackgroundTransferActive(@as(*const IMFByteStreamCacheControl2, @ptrCast(self)), pfActive);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetCredential_Value = Guid.initString("5b87ef6a-7ed8-434f-ba0e-184fac1628d1");
|
|
pub const IID_IMFNetCredential = &IID_IMFNetCredential_Value;
|
|
pub const IMFNetCredential = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetUser: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredential,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
fDataIsEncrypted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredential,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
fDataIsEncrypted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPassword: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredential,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
fDataIsEncrypted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredential,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
fDataIsEncrypted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUser: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredential,
|
|
pbData: ?[*:0]u8,
|
|
pcbData: ?*u32,
|
|
fEncryptData: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredential,
|
|
pbData: ?[*:0]u8,
|
|
pcbData: ?*u32,
|
|
fEncryptData: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPassword: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredential,
|
|
pbData: ?[*:0]u8,
|
|
pcbData: ?*u32,
|
|
fEncryptData: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredential,
|
|
pbData: ?[*:0]u8,
|
|
pcbData: ?*u32,
|
|
fEncryptData: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
LoggedOnUser: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredential,
|
|
pfLoggedOnUser: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredential,
|
|
pfLoggedOnUser: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredential_SetUser(self: *const T, pbData: ?*u8, cbData: u32, fDataIsEncrypted: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredential.VTable, @ptrCast(self.vtable)).SetUser(@as(*const IMFNetCredential, @ptrCast(self)), pbData, cbData, fDataIsEncrypted);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredential_SetPassword(self: *const T, pbData: ?*u8, cbData: u32, fDataIsEncrypted: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredential.VTable, @ptrCast(self.vtable)).SetPassword(@as(*const IMFNetCredential, @ptrCast(self)), pbData, cbData, fDataIsEncrypted);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredential_GetUser(self: *const T, pbData: ?[*:0]u8, pcbData: ?*u32, fEncryptData: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredential.VTable, @ptrCast(self.vtable)).GetUser(@as(*const IMFNetCredential, @ptrCast(self)), pbData, pcbData, fEncryptData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredential_GetPassword(self: *const T, pbData: ?[*:0]u8, pcbData: ?*u32, fEncryptData: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredential.VTable, @ptrCast(self.vtable)).GetPassword(@as(*const IMFNetCredential, @ptrCast(self)), pbData, pcbData, fEncryptData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredential_LoggedOnUser(self: *const T, pfLoggedOnUser: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredential.VTable, @ptrCast(self.vtable)).LoggedOnUser(@as(*const IMFNetCredential, @ptrCast(self)), pfLoggedOnUser);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFNetCredentialManagerGetParam = extern struct {
|
|
hrOp: HRESULT,
|
|
fAllowLoggedOnUser: BOOL,
|
|
fClearTextPackage: BOOL,
|
|
pszUrl: ?[*:0]const u16,
|
|
pszSite: ?[*:0]const u16,
|
|
pszRealm: ?[*:0]const u16,
|
|
pszPackage: ?[*:0]const u16,
|
|
nRetries: i32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetCredentialManager_Value = Guid.initString("5b87ef6b-7ed8-434f-ba0e-184fac1628d1");
|
|
pub const IID_IMFNetCredentialManager = &IID_IMFNetCredentialManager_Value;
|
|
pub const IMFNetCredentialManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginGetCredentials: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pParam: ?*MFNetCredentialManagerGetParam,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pParam: ?*MFNetCredentialManagerGetParam,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndGetCredentials: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppCred: ?*?*IMFNetCredential,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppCred: ?*?*IMFNetCredential,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetGood: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pCred: ?*IMFNetCredential,
|
|
fGood: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialManager,
|
|
pCred: ?*IMFNetCredential,
|
|
fGood: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialManager_BeginGetCredentials(self: *const T, pParam: ?*MFNetCredentialManagerGetParam, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialManager.VTable, @ptrCast(self.vtable)).BeginGetCredentials(@as(*const IMFNetCredentialManager, @ptrCast(self)), pParam, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialManager_EndGetCredentials(self: *const T, pResult: ?*IMFAsyncResult, ppCred: ?*?*IMFNetCredential) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialManager.VTable, @ptrCast(self.vtable)).EndGetCredentials(@as(*const IMFNetCredentialManager, @ptrCast(self)), pResult, ppCred);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialManager_SetGood(self: *const T, pCred: ?*IMFNetCredential, fGood: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialManager.VTable, @ptrCast(self.vtable)).SetGood(@as(*const IMFNetCredentialManager, @ptrCast(self)), pCred, fGood);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFNetCredentialRequirements = enum(i32) {
|
|
PROMPT = 1,
|
|
SAVE_SELECTED = 2,
|
|
};
|
|
pub const REQUIRE_PROMPT = MFNetCredentialRequirements.PROMPT;
|
|
pub const REQUIRE_SAVE_SELECTED = MFNetCredentialRequirements.SAVE_SELECTED;
|
|
|
|
pub const MFNetCredentialOptions = enum(i32) {
|
|
SAVE = 1,
|
|
DONT_CACHE = 2,
|
|
ALLOW_CLEAR_TEXT = 4,
|
|
};
|
|
pub const MFNET_CREDENTIAL_SAVE = MFNetCredentialOptions.SAVE;
|
|
pub const MFNET_CREDENTIAL_DONT_CACHE = MFNetCredentialOptions.DONT_CACHE;
|
|
pub const MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = MFNetCredentialOptions.ALLOW_CLEAR_TEXT;
|
|
|
|
pub const MFNetAuthenticationFlags = enum(i32) {
|
|
PROXY = 1,
|
|
CLEAR_TEXT = 2,
|
|
LOGGED_ON_USER = 4,
|
|
};
|
|
pub const MFNET_AUTHENTICATION_PROXY = MFNetAuthenticationFlags.PROXY;
|
|
pub const MFNET_AUTHENTICATION_CLEAR_TEXT = MFNetAuthenticationFlags.CLEAR_TEXT;
|
|
pub const MFNET_AUTHENTICATION_LOGGED_ON_USER = MFNetAuthenticationFlags.LOGGED_ON_USER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetCredentialCache_Value = Guid.initString("5b87ef6c-7ed8-434f-ba0e-184fac1628d1");
|
|
pub const IID_IMFNetCredentialCache = &IID_IMFNetCredentialCache_Value;
|
|
pub const IMFNetCredentialCache = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCredential: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pszUrl: ?[*:0]const u16,
|
|
pszRealm: ?[*:0]const u16,
|
|
dwAuthenticationFlags: u32,
|
|
ppCred: ?*?*IMFNetCredential,
|
|
pdwRequirementsFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pszUrl: ?[*:0]const u16,
|
|
pszRealm: ?[*:0]const u16,
|
|
dwAuthenticationFlags: u32,
|
|
ppCred: ?*?*IMFNetCredential,
|
|
pdwRequirementsFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetGood: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pCred: ?*IMFNetCredential,
|
|
fGood: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pCred: ?*IMFNetCredential,
|
|
fGood: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUserOptions: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pCred: ?*IMFNetCredential,
|
|
dwOptionsFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCredentialCache,
|
|
pCred: ?*IMFNetCredential,
|
|
dwOptionsFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialCache_GetCredential(self: *const T, pszUrl: ?[*:0]const u16, pszRealm: ?[*:0]const u16, dwAuthenticationFlags: u32, ppCred: ?*?*IMFNetCredential, pdwRequirementsFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialCache.VTable, @ptrCast(self.vtable)).GetCredential(@as(*const IMFNetCredentialCache, @ptrCast(self)), pszUrl, pszRealm, dwAuthenticationFlags, ppCred, pdwRequirementsFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialCache_SetGood(self: *const T, pCred: ?*IMFNetCredential, fGood: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialCache.VTable, @ptrCast(self.vtable)).SetGood(@as(*const IMFNetCredentialCache, @ptrCast(self)), pCred, fGood);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCredentialCache_SetUserOptions(self: *const T, pCred: ?*IMFNetCredential, dwOptionsFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCredentialCache.VTable, @ptrCast(self.vtable)).SetUserOptions(@as(*const IMFNetCredentialCache, @ptrCast(self)), pCred, dwOptionsFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSSLCertificateManager_Value = Guid.initString("61f7d887-1230-4a8b-aeba-8ad434d1a64d");
|
|
pub const IID_IMFSSLCertificateManager = &IID_IMFSSLCertificateManager_Value;
|
|
pub const IMFSSLCertificateManager = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetClientCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
ppbData: ?*?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
ppbData: ?*?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginGetClientCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndGetClientCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppbData: ?*?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppbData: ?*?*u8,
|
|
pcbData: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCertificatePolicy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
pfOverrideAutomaticCheck: ?*BOOL,
|
|
pfClientCertificateAvailable: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
pfOverrideAutomaticCheck: ?*BOOL,
|
|
pfClientCertificateAvailable: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnServerCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
pfIsGood: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSSLCertificateManager,
|
|
pszURL: ?[*:0]const u16,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pbData: ?*u8,
|
|
cbData: u32,
|
|
pfIsGood: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSSLCertificateManager_GetClientCertificate(self: *const T, pszURL: ?[*:0]const u16, ppbData: ?*?*u8, pcbData: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSSLCertificateManager.VTable, @ptrCast(self.vtable)).GetClientCertificate(@as(*const IMFSSLCertificateManager, @ptrCast(self)), pszURL, ppbData, pcbData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSSLCertificateManager_BeginGetClientCertificate(self: *const T, pszURL: ?[*:0]const u16, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSSLCertificateManager.VTable, @ptrCast(self.vtable)).BeginGetClientCertificate(@as(*const IMFSSLCertificateManager, @ptrCast(self)), pszURL, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSSLCertificateManager_EndGetClientCertificate(self: *const T, pResult: ?*IMFAsyncResult, ppbData: ?*?*u8, pcbData: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSSLCertificateManager.VTable, @ptrCast(self.vtable)).EndGetClientCertificate(@as(*const IMFSSLCertificateManager, @ptrCast(self)), pResult, ppbData, pcbData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSSLCertificateManager_GetCertificatePolicy(self: *const T, pszURL: ?[*:0]const u16, pfOverrideAutomaticCheck: ?*BOOL, pfClientCertificateAvailable: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSSLCertificateManager.VTable, @ptrCast(self.vtable)).GetCertificatePolicy(@as(*const IMFSSLCertificateManager, @ptrCast(self)), pszURL, pfOverrideAutomaticCheck, pfClientCertificateAvailable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSSLCertificateManager_OnServerCertificate(self: *const T, pszURL: ?[*:0]const u16, pbData: ?*u8, cbData: u32, pfIsGood: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSSLCertificateManager.VTable, @ptrCast(self.vtable)).OnServerCertificate(@as(*const IMFSSLCertificateManager, @ptrCast(self)), pszURL, pbData, cbData, pfIsGood);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFNetResourceFilter_Value = Guid.initString("091878a3-bf11-4a5c-bc9f-33995b06ef2d");
|
|
pub const IID_IMFNetResourceFilter = &IID_IMFNetResourceFilter_Value;
|
|
pub const IMFNetResourceFilter = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnRedirect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetResourceFilter,
|
|
pszUrl: ?[*:0]const u16,
|
|
pvbCancel: ?*i16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetResourceFilter,
|
|
pszUrl: ?[*:0]const u16,
|
|
pvbCancel: ?*i16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnSendingRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetResourceFilter,
|
|
pszUrl: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetResourceFilter,
|
|
pszUrl: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetResourceFilter_OnRedirect(self: *const T, pszUrl: ?[*:0]const u16, pvbCancel: ?*i16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetResourceFilter.VTable, @ptrCast(self.vtable)).OnRedirect(@as(*const IMFNetResourceFilter, @ptrCast(self)), pszUrl, pvbCancel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetResourceFilter_OnSendingRequest(self: *const T, pszUrl: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetResourceFilter.VTable, @ptrCast(self.vtable)).OnSendingRequest(@as(*const IMFNetResourceFilter, @ptrCast(self)), pszUrl);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSourceOpenMonitor_Value = Guid.initString("059054b3-027c-494c-a27d-9113291cf87f");
|
|
pub const IID_IMFSourceOpenMonitor = &IID_IMFSourceOpenMonitor_Value;
|
|
pub const IMFSourceOpenMonitor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnSourceEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceOpenMonitor,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceOpenMonitor,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceOpenMonitor_OnSourceEvent(self: *const T, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceOpenMonitor.VTable, @ptrCast(self.vtable)).OnSourceEvent(@as(*const IMFSourceOpenMonitor, @ptrCast(self)), pEvent);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetProxyLocator_Value = Guid.initString("e9cd0383-a268-4bb4-82de-658d53574d41");
|
|
pub const IID_IMFNetProxyLocator = &IID_IMFNetProxyLocator_Value;
|
|
pub const IMFNetProxyLocator = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
FindFirstProxy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocator,
|
|
pszHost: ?[*:0]const u16,
|
|
pszUrl: ?[*:0]const u16,
|
|
fReserved: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocator,
|
|
pszHost: ?[*:0]const u16,
|
|
pszUrl: ?[*:0]const u16,
|
|
fReserved: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FindNextProxy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RegisterProxyResult: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocator,
|
|
hrOp: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocator,
|
|
hrOp: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentProxy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocator,
|
|
pszStr: ?[*:0]u16,
|
|
pcchStr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocator,
|
|
pszStr: ?[*:0]u16,
|
|
pcchStr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocator,
|
|
ppProxyLocator: ?*?*IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocator,
|
|
ppProxyLocator: ?*?*IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocator_FindFirstProxy(self: *const T, pszHost: ?[*:0]const u16, pszUrl: ?[*:0]const u16, fReserved: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocator.VTable, @ptrCast(self.vtable)).FindFirstProxy(@as(*const IMFNetProxyLocator, @ptrCast(self)), pszHost, pszUrl, fReserved);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocator_FindNextProxy(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocator.VTable, @ptrCast(self.vtable)).FindNextProxy(@as(*const IMFNetProxyLocator, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocator_RegisterProxyResult(self: *const T, hrOp: HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocator.VTable, @ptrCast(self.vtable)).RegisterProxyResult(@as(*const IMFNetProxyLocator, @ptrCast(self)), hrOp);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocator_GetCurrentProxy(self: *const T, pszStr: ?[*:0]u16, pcchStr: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocator.VTable, @ptrCast(self.vtable)).GetCurrentProxy(@as(*const IMFNetProxyLocator, @ptrCast(self)), pszStr, pcchStr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocator_Clone(self: *const T, ppProxyLocator: ?*?*IMFNetProxyLocator) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocator.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFNetProxyLocator, @ptrCast(self)), ppProxyLocator);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetProxyLocatorFactory_Value = Guid.initString("e9cd0384-a268-4bb4-82de-658d53574d41");
|
|
pub const IID_IMFNetProxyLocatorFactory = &IID_IMFNetProxyLocatorFactory_Value;
|
|
pub const IMFNetProxyLocatorFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateProxyLocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetProxyLocatorFactory,
|
|
pszProtocol: ?[*:0]const u16,
|
|
ppProxyLocator: ?*?*IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetProxyLocatorFactory,
|
|
pszProtocol: ?[*:0]const u16,
|
|
ppProxyLocator: ?*?*IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetProxyLocatorFactory_CreateProxyLocator(self: *const T, pszProtocol: ?[*:0]const u16, ppProxyLocator: ?*?*IMFNetProxyLocator) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetProxyLocatorFactory.VTable, @ptrCast(self.vtable)).CreateProxyLocator(@as(*const IMFNetProxyLocatorFactory, @ptrCast(self)), pszProtocol, ppProxyLocator);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSaveJob_Value = Guid.initString("e9931663-80bf-4c6e-98af-5dcf58747d1f");
|
|
pub const IID_IMFSaveJob = &IID_IMFSaveJob_Value;
|
|
pub const IMFSaveJob = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginSave: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSaveJob,
|
|
pStream: ?*IMFByteStream,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSaveJob,
|
|
pStream: ?*IMFByteStream,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndSave: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSaveJob,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSaveJob,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelSave: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSaveJob,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSaveJob,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProgress: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSaveJob,
|
|
pdwPercentComplete: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSaveJob,
|
|
pdwPercentComplete: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSaveJob_BeginSave(self: *const T, pStream: ?*IMFByteStream, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSaveJob.VTable, @ptrCast(self.vtable)).BeginSave(@as(*const IMFSaveJob, @ptrCast(self)), pStream, pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSaveJob_EndSave(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSaveJob.VTable, @ptrCast(self.vtable)).EndSave(@as(*const IMFSaveJob, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSaveJob_CancelSave(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSaveJob.VTable, @ptrCast(self.vtable)).CancelSave(@as(*const IMFSaveJob, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSaveJob_GetProgress(self: *const T, pdwPercentComplete: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSaveJob.VTable, @ptrCast(self.vtable)).GetProgress(@as(*const IMFSaveJob, @ptrCast(self)), pdwPercentComplete);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFNETSOURCE_PROTOCOL_TYPE = enum(i32) {
|
|
UNDEFINED = 0,
|
|
HTTP = 1,
|
|
RTSP = 2,
|
|
FILE = 3,
|
|
MULTICAST = 4,
|
|
};
|
|
pub const MFNETSOURCE_UNDEFINED = MFNETSOURCE_PROTOCOL_TYPE.UNDEFINED;
|
|
pub const MFNETSOURCE_HTTP = MFNETSOURCE_PROTOCOL_TYPE.HTTP;
|
|
pub const MFNETSOURCE_RTSP = MFNETSOURCE_PROTOCOL_TYPE.RTSP;
|
|
pub const MFNETSOURCE_FILE = MFNETSOURCE_PROTOCOL_TYPE.FILE;
|
|
pub const MFNETSOURCE_MULTICAST = MFNETSOURCE_PROTOCOL_TYPE.MULTICAST;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFNetSchemeHandlerConfig_Value = Guid.initString("7be19e73-c9bf-468a-ac5a-a5e8653bec87");
|
|
pub const IID_IMFNetSchemeHandlerConfig = &IID_IMFNetSchemeHandlerConfig_Value;
|
|
pub const IMFNetSchemeHandlerConfig = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetNumberOfSupportedProtocols: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
pcProtocols: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
pcProtocols: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSupportedProtocolType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
nProtocolIndex: u32,
|
|
pnProtocolType: ?*MFNETSOURCE_PROTOCOL_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
nProtocolIndex: u32,
|
|
pnProtocolType: ?*MFNETSOURCE_PROTOCOL_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ResetProtocolRolloverSettings: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetSchemeHandlerConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetSchemeHandlerConfig_GetNumberOfSupportedProtocols(self: *const T, pcProtocols: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetSchemeHandlerConfig.VTable, @ptrCast(self.vtable)).GetNumberOfSupportedProtocols(@as(*const IMFNetSchemeHandlerConfig, @ptrCast(self)), pcProtocols);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetSchemeHandlerConfig_GetSupportedProtocolType(self: *const T, nProtocolIndex: u32, pnProtocolType: ?*MFNETSOURCE_PROTOCOL_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetSchemeHandlerConfig.VTable, @ptrCast(self.vtable)).GetSupportedProtocolType(@as(*const IMFNetSchemeHandlerConfig, @ptrCast(self)), nProtocolIndex, pnProtocolType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetSchemeHandlerConfig_ResetProtocolRolloverSettings(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetSchemeHandlerConfig.VTable, @ptrCast(self.vtable)).ResetProtocolRolloverSettings(@as(*const IMFNetSchemeHandlerConfig, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFNETSOURCE_TRANSPORT_TYPE = enum(i32) {
|
|
UDP = 0,
|
|
TCP = 1,
|
|
};
|
|
pub const MFNETSOURCE_UDP = MFNETSOURCE_TRANSPORT_TYPE.UDP;
|
|
pub const MFNETSOURCE_TCP = MFNETSOURCE_TRANSPORT_TYPE.TCP;
|
|
|
|
pub const MFNETSOURCE_CACHE_STATE = enum(i32) {
|
|
UNAVAILABLE = 0,
|
|
ACTIVE_WRITING = 1,
|
|
ACTIVE_COMPLETE = 2,
|
|
};
|
|
pub const MFNETSOURCE_CACHE_UNAVAILABLE = MFNETSOURCE_CACHE_STATE.UNAVAILABLE;
|
|
pub const MFNETSOURCE_CACHE_ACTIVE_WRITING = MFNETSOURCE_CACHE_STATE.ACTIVE_WRITING;
|
|
pub const MFNETSOURCE_CACHE_ACTIVE_COMPLETE = MFNETSOURCE_CACHE_STATE.ACTIVE_COMPLETE;
|
|
|
|
pub const MFNETSOURCE_STATISTICS_IDS = enum(i32) {
|
|
RECVPACKETS_ID = 0,
|
|
LOSTPACKETS_ID = 1,
|
|
RESENDSREQUESTED_ID = 2,
|
|
RESENDSRECEIVED_ID = 3,
|
|
RECOVEREDBYECCPACKETS_ID = 4,
|
|
RECOVEREDBYRTXPACKETS_ID = 5,
|
|
OUTPACKETS_ID = 6,
|
|
RECVRATE_ID = 7,
|
|
AVGBANDWIDTHBPS_ID = 8,
|
|
BYTESRECEIVED_ID = 9,
|
|
PROTOCOL_ID = 10,
|
|
TRANSPORT_ID = 11,
|
|
CACHE_STATE_ID = 12,
|
|
LINKBANDWIDTH_ID = 13,
|
|
CONTENTBITRATE_ID = 14,
|
|
SPEEDFACTOR_ID = 15,
|
|
BUFFERSIZE_ID = 16,
|
|
BUFFERPROGRESS_ID = 17,
|
|
LASTBWSWITCHTS_ID = 18,
|
|
SEEKRANGESTART_ID = 19,
|
|
SEEKRANGEEND_ID = 20,
|
|
BUFFERINGCOUNT_ID = 21,
|
|
INCORRECTLYSIGNEDPACKETS_ID = 22,
|
|
SIGNEDSESSION_ID = 23,
|
|
MAXBITRATE_ID = 24,
|
|
RECEPTION_QUALITY_ID = 25,
|
|
RECOVEREDPACKETS_ID = 26,
|
|
VBR_ID = 27,
|
|
DOWNLOADPROGRESS_ID = 28,
|
|
UNPREDEFINEDPROTOCOLNAME_ID = 29,
|
|
};
|
|
pub const MFNETSOURCE_RECVPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.RECVPACKETS_ID;
|
|
pub const MFNETSOURCE_LOSTPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.LOSTPACKETS_ID;
|
|
pub const MFNETSOURCE_RESENDSREQUESTED_ID = MFNETSOURCE_STATISTICS_IDS.RESENDSREQUESTED_ID;
|
|
pub const MFNETSOURCE_RESENDSRECEIVED_ID = MFNETSOURCE_STATISTICS_IDS.RESENDSRECEIVED_ID;
|
|
pub const MFNETSOURCE_RECOVEREDBYECCPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.RECOVEREDBYECCPACKETS_ID;
|
|
pub const MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.RECOVEREDBYRTXPACKETS_ID;
|
|
pub const MFNETSOURCE_OUTPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.OUTPACKETS_ID;
|
|
pub const MFNETSOURCE_RECVRATE_ID = MFNETSOURCE_STATISTICS_IDS.RECVRATE_ID;
|
|
pub const MFNETSOURCE_AVGBANDWIDTHBPS_ID = MFNETSOURCE_STATISTICS_IDS.AVGBANDWIDTHBPS_ID;
|
|
pub const MFNETSOURCE_BYTESRECEIVED_ID = MFNETSOURCE_STATISTICS_IDS.BYTESRECEIVED_ID;
|
|
pub const MFNETSOURCE_PROTOCOL_ID = MFNETSOURCE_STATISTICS_IDS.PROTOCOL_ID;
|
|
pub const MFNETSOURCE_TRANSPORT_ID = MFNETSOURCE_STATISTICS_IDS.TRANSPORT_ID;
|
|
pub const MFNETSOURCE_CACHE_STATE_ID = MFNETSOURCE_STATISTICS_IDS.CACHE_STATE_ID;
|
|
pub const MFNETSOURCE_LINKBANDWIDTH_ID = MFNETSOURCE_STATISTICS_IDS.LINKBANDWIDTH_ID;
|
|
pub const MFNETSOURCE_CONTENTBITRATE_ID = MFNETSOURCE_STATISTICS_IDS.CONTENTBITRATE_ID;
|
|
pub const MFNETSOURCE_SPEEDFACTOR_ID = MFNETSOURCE_STATISTICS_IDS.SPEEDFACTOR_ID;
|
|
pub const MFNETSOURCE_BUFFERSIZE_ID = MFNETSOURCE_STATISTICS_IDS.BUFFERSIZE_ID;
|
|
pub const MFNETSOURCE_BUFFERPROGRESS_ID = MFNETSOURCE_STATISTICS_IDS.BUFFERPROGRESS_ID;
|
|
pub const MFNETSOURCE_LASTBWSWITCHTS_ID = MFNETSOURCE_STATISTICS_IDS.LASTBWSWITCHTS_ID;
|
|
pub const MFNETSOURCE_SEEKRANGESTART_ID = MFNETSOURCE_STATISTICS_IDS.SEEKRANGESTART_ID;
|
|
pub const MFNETSOURCE_SEEKRANGEEND_ID = MFNETSOURCE_STATISTICS_IDS.SEEKRANGEEND_ID;
|
|
pub const MFNETSOURCE_BUFFERINGCOUNT_ID = MFNETSOURCE_STATISTICS_IDS.BUFFERINGCOUNT_ID;
|
|
pub const MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.INCORRECTLYSIGNEDPACKETS_ID;
|
|
pub const MFNETSOURCE_SIGNEDSESSION_ID = MFNETSOURCE_STATISTICS_IDS.SIGNEDSESSION_ID;
|
|
pub const MFNETSOURCE_MAXBITRATE_ID = MFNETSOURCE_STATISTICS_IDS.MAXBITRATE_ID;
|
|
pub const MFNETSOURCE_RECEPTION_QUALITY_ID = MFNETSOURCE_STATISTICS_IDS.RECEPTION_QUALITY_ID;
|
|
pub const MFNETSOURCE_RECOVEREDPACKETS_ID = MFNETSOURCE_STATISTICS_IDS.RECOVEREDPACKETS_ID;
|
|
pub const MFNETSOURCE_VBR_ID = MFNETSOURCE_STATISTICS_IDS.VBR_ID;
|
|
pub const MFNETSOURCE_DOWNLOADPROGRESS_ID = MFNETSOURCE_STATISTICS_IDS.DOWNLOADPROGRESS_ID;
|
|
pub const MFNETSOURCE_UNPREDEFINEDPROTOCOLNAME_ID = MFNETSOURCE_STATISTICS_IDS.UNPREDEFINEDPROTOCOLNAME_ID;
|
|
|
|
pub const MFNET_PROXYSETTINGS = enum(i32) {
|
|
NONE = 0,
|
|
MANUAL = 1,
|
|
AUTO = 2,
|
|
BROWSER = 3,
|
|
};
|
|
pub const MFNET_PROXYSETTING_NONE = MFNET_PROXYSETTINGS.NONE;
|
|
pub const MFNET_PROXYSETTING_MANUAL = MFNET_PROXYSETTINGS.MANUAL;
|
|
pub const MFNET_PROXYSETTING_AUTO = MFNET_PROXYSETTINGS.AUTO;
|
|
pub const MFNET_PROXYSETTING_BROWSER = MFNET_PROXYSETTINGS.BROWSER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSchemeHandler_Value = Guid.initString("6d4c7b74-52a0-4bb7-b0db-55f29f47a668");
|
|
pub const IID_IMFSchemeHandler = &IID_IMFSchemeHandler_Value;
|
|
pub const IMFSchemeHandler = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSchemeHandler,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSchemeHandler,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSchemeHandler,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSchemeHandler,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelObjectCreation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSchemeHandler,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSchemeHandler,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSchemeHandler_BeginCreateObject(self: *const T, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, ppIUnknownCancelCookie: ?*?*IUnknown, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSchemeHandler.VTable, @ptrCast(self.vtable)).BeginCreateObject(@as(*const IMFSchemeHandler, @ptrCast(self)), pwszURL, dwFlags, pProps, ppIUnknownCancelCookie, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSchemeHandler_EndCreateObject(self: *const T, pResult: ?*IMFAsyncResult, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSchemeHandler.VTable, @ptrCast(self.vtable)).EndCreateObject(@as(*const IMFSchemeHandler, @ptrCast(self)), pResult, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSchemeHandler_CancelObjectCreation(self: *const T, pIUnknownCancelCookie: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSchemeHandler.VTable, @ptrCast(self.vtable)).CancelObjectCreation(@as(*const IMFSchemeHandler, @ptrCast(self)), pIUnknownCancelCookie);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFByteStreamHandler_Value = Guid.initString("bb420aa4-765b-4a1f-91fe-d6a8a143924c");
|
|
pub const IID_IMFByteStreamHandler = &IID_IMFByteStreamHandler_Value;
|
|
pub const IMFByteStreamHandler = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
BeginCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pByteStream: ?*IMFByteStream,
|
|
pwszURL: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
pProps: ?*IPropertyStore,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pResult: ?*IMFAsyncResult,
|
|
pObjectType: ?*MF_OBJECT_TYPE,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelObjectCreation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMaxNumberOfBytesRequiredForResolution: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pqwBytes: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFByteStreamHandler,
|
|
pqwBytes: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamHandler_BeginCreateObject(self: *const T, pByteStream: ?*IMFByteStream, pwszURL: ?[*:0]const u16, dwFlags: u32, pProps: ?*IPropertyStore, ppIUnknownCancelCookie: ?*?*IUnknown, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamHandler.VTable, @ptrCast(self.vtable)).BeginCreateObject(@as(*const IMFByteStreamHandler, @ptrCast(self)), pByteStream, pwszURL, dwFlags, pProps, ppIUnknownCancelCookie, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamHandler_EndCreateObject(self: *const T, pResult: ?*IMFAsyncResult, pObjectType: ?*MF_OBJECT_TYPE, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamHandler.VTable, @ptrCast(self.vtable)).EndCreateObject(@as(*const IMFByteStreamHandler, @ptrCast(self)), pResult, pObjectType, ppObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamHandler_CancelObjectCreation(self: *const T, pIUnknownCancelCookie: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamHandler.VTable, @ptrCast(self.vtable)).CancelObjectCreation(@as(*const IMFByteStreamHandler, @ptrCast(self)), pIUnknownCancelCookie);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFByteStreamHandler_GetMaxNumberOfBytesRequiredForResolution(self: *const T, pqwBytes: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFByteStreamHandler.VTable, @ptrCast(self.vtable)).GetMaxNumberOfBytesRequiredForResolution(@as(*const IMFByteStreamHandler, @ptrCast(self)), pqwBytes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTrustedInput_Value = Guid.initString("542612c4-a1b8-4632-b521-de11ea64a0b0");
|
|
pub const IID_IMFTrustedInput = &IID_IMFTrustedInput_Value;
|
|
pub const IMFTrustedInput = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetInputTrustAuthority: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTrustedInput,
|
|
dwStreamID: u32,
|
|
riid: ?*const Guid,
|
|
ppunkObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTrustedInput,
|
|
dwStreamID: u32,
|
|
riid: ?*const Guid,
|
|
ppunkObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTrustedInput_GetInputTrustAuthority(self: *const T, dwStreamID: u32, riid: ?*const Guid, ppunkObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTrustedInput.VTable, @ptrCast(self.vtable)).GetInputTrustAuthority(@as(*const IMFTrustedInput, @ptrCast(self)), dwStreamID, riid, ppunkObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFPOLICYMANAGER_ACTION = enum(i32) {
|
|
NO = 0,
|
|
PLAY = 1,
|
|
COPY = 2,
|
|
EXPORT = 3,
|
|
EXTRACT = 4,
|
|
RESERVED1 = 5,
|
|
RESERVED2 = 6,
|
|
RESERVED3 = 7,
|
|
// LAST = 7, this enum value conflicts with RESERVED3
|
|
};
|
|
pub const PEACTION_NO = MFPOLICYMANAGER_ACTION.NO;
|
|
pub const PEACTION_PLAY = MFPOLICYMANAGER_ACTION.PLAY;
|
|
pub const PEACTION_COPY = MFPOLICYMANAGER_ACTION.COPY;
|
|
pub const PEACTION_EXPORT = MFPOLICYMANAGER_ACTION.EXPORT;
|
|
pub const PEACTION_EXTRACT = MFPOLICYMANAGER_ACTION.EXTRACT;
|
|
pub const PEACTION_RESERVED1 = MFPOLICYMANAGER_ACTION.RESERVED1;
|
|
pub const PEACTION_RESERVED2 = MFPOLICYMANAGER_ACTION.RESERVED2;
|
|
pub const PEACTION_RESERVED3 = MFPOLICYMANAGER_ACTION.RESERVED3;
|
|
pub const PEACTION_LAST = MFPOLICYMANAGER_ACTION.RESERVED3;
|
|
|
|
pub const MFINPUTTRUSTAUTHORITY_ACCESS_ACTION = extern struct {
|
|
Action: MFPOLICYMANAGER_ACTION,
|
|
pbTicket: ?*u8,
|
|
cbTicket: u32,
|
|
};
|
|
|
|
pub const MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS = extern struct {
|
|
dwSize: u32,
|
|
dwVer: u32,
|
|
cbSignatureOffset: u32,
|
|
cbSignatureSize: u32,
|
|
cbExtensionOffset: u32,
|
|
cbExtensionSize: u32,
|
|
cActions: u32,
|
|
rgOutputActions: [1]MFINPUTTRUSTAUTHORITY_ACCESS_ACTION,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFInputTrustAuthority_Value = Guid.initString("d19f8e98-b126-4446-890c-5dcb7ad71453");
|
|
pub const IID_IMFInputTrustAuthority = &IID_IMFInputTrustAuthority_Value;
|
|
pub const IMFInputTrustAuthority = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDecrypter: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RequestAccess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
Action: MFPOLICYMANAGER_ACTION,
|
|
ppContentEnablerActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
Action: MFPOLICYMANAGER_ACTION,
|
|
ppContentEnablerActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPolicy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
Action: MFPOLICYMANAGER_ACTION,
|
|
ppPolicy: ?*?*IMFOutputPolicy,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
Action: MFPOLICYMANAGER_ACTION,
|
|
ppPolicy: ?*?*IMFOutputPolicy,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BindAccess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateAccess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFInputTrustAuthority,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_GetDecrypter(self: *const T, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).GetDecrypter(@as(*const IMFInputTrustAuthority, @ptrCast(self)), riid, ppv);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_RequestAccess(self: *const T, Action: MFPOLICYMANAGER_ACTION, ppContentEnablerActivate: ?*?*IMFActivate) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).RequestAccess(@as(*const IMFInputTrustAuthority, @ptrCast(self)), Action, ppContentEnablerActivate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_GetPolicy(self: *const T, Action: MFPOLICYMANAGER_ACTION, ppPolicy: ?*?*IMFOutputPolicy) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).GetPolicy(@as(*const IMFInputTrustAuthority, @ptrCast(self)), Action, ppPolicy);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_BindAccess(self: *const T, pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).BindAccess(@as(*const IMFInputTrustAuthority, @ptrCast(self)), pParam);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_UpdateAccess(self: *const T, pParam: ?*MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).UpdateAccess(@as(*const IMFInputTrustAuthority, @ptrCast(self)), pParam);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFInputTrustAuthority_Reset(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFInputTrustAuthority.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMFInputTrustAuthority, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTrustedOutput_Value = Guid.initString("d19f8e95-b126-4446-890c-5dcb7ad71453");
|
|
pub const IID_IMFTrustedOutput = &IID_IMFTrustedOutput_Value;
|
|
pub const IMFTrustedOutput = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetOutputTrustAuthorityCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTrustedOutput,
|
|
pcOutputTrustAuthorities: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTrustedOutput,
|
|
pcOutputTrustAuthorities: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputTrustAuthorityByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTrustedOutput,
|
|
dwIndex: u32,
|
|
ppauthority: ?*?*IMFOutputTrustAuthority,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTrustedOutput,
|
|
dwIndex: u32,
|
|
ppauthority: ?*?*IMFOutputTrustAuthority,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsFinal: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTrustedOutput,
|
|
pfIsFinal: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTrustedOutput,
|
|
pfIsFinal: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTrustedOutput_GetOutputTrustAuthorityCount(self: *const T, pcOutputTrustAuthorities: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTrustedOutput.VTable, @ptrCast(self.vtable)).GetOutputTrustAuthorityCount(@as(*const IMFTrustedOutput, @ptrCast(self)), pcOutputTrustAuthorities);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTrustedOutput_GetOutputTrustAuthorityByIndex(self: *const T, dwIndex: u32, ppauthority: ?*?*IMFOutputTrustAuthority) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTrustedOutput.VTable, @ptrCast(self.vtable)).GetOutputTrustAuthorityByIndex(@as(*const IMFTrustedOutput, @ptrCast(self)), dwIndex, ppauthority);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTrustedOutput_IsFinal(self: *const T, pfIsFinal: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTrustedOutput.VTable, @ptrCast(self.vtable)).IsFinal(@as(*const IMFTrustedOutput, @ptrCast(self)), pfIsFinal);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFOutputTrustAuthority_Value = Guid.initString("d19f8e94-b126-4446-890c-5dcb7ad71453");
|
|
pub const IID_IMFOutputTrustAuthority = &IID_IMFOutputTrustAuthority_Value;
|
|
pub const IMFOutputTrustAuthority = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAction: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputTrustAuthority,
|
|
pAction: ?*MFPOLICYMANAGER_ACTION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputTrustAuthority,
|
|
pAction: ?*MFPOLICYMANAGER_ACTION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPolicy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputTrustAuthority,
|
|
ppPolicy: ?[*]?*IMFOutputPolicy,
|
|
nPolicy: u32,
|
|
ppbTicket: ?*?*u8,
|
|
pcbTicket: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputTrustAuthority,
|
|
ppPolicy: ?[*]?*IMFOutputPolicy,
|
|
nPolicy: u32,
|
|
ppbTicket: ?*?*u8,
|
|
pcbTicket: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputTrustAuthority_GetAction(self: *const T, pAction: ?*MFPOLICYMANAGER_ACTION) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputTrustAuthority.VTable, @ptrCast(self.vtable)).GetAction(@as(*const IMFOutputTrustAuthority, @ptrCast(self)), pAction);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputTrustAuthority_SetPolicy(self: *const T, ppPolicy: ?[*]?*IMFOutputPolicy, nPolicy: u32, ppbTicket: ?*?*u8, pcbTicket: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputTrustAuthority.VTable, @ptrCast(self.vtable)).SetPolicy(@as(*const IMFOutputTrustAuthority, @ptrCast(self)), ppPolicy, nPolicy, ppbTicket, pcbTicket);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFOutputPolicy_Value = Guid.initString("7f00f10a-daed-41af-ab26-5fdfa4dfba3c");
|
|
pub const IID_IMFOutputPolicy = &IID_IMFOutputPolicy_Value;
|
|
pub const IMFOutputPolicy = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GenerateRequiredSchemas: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputPolicy,
|
|
dwAttributes: u32,
|
|
guidOutputSubType: Guid,
|
|
rgGuidProtectionSchemasSupported: ?*Guid,
|
|
cProtectionSchemasSupported: u32,
|
|
ppRequiredProtectionSchemas: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputPolicy,
|
|
dwAttributes: u32,
|
|
guidOutputSubType: Guid,
|
|
rgGuidProtectionSchemasSupported: ?*Guid,
|
|
cProtectionSchemasSupported: u32,
|
|
ppRequiredProtectionSchemas: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOriginatorID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputPolicy,
|
|
pguidOriginatorID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputPolicy,
|
|
pguidOriginatorID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMinimumGRLVersion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputPolicy,
|
|
pdwMinimumGRLVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputPolicy,
|
|
pdwMinimumGRLVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputPolicy_GenerateRequiredSchemas(self: *const T, dwAttributes: u32, guidOutputSubType: Guid, rgGuidProtectionSchemasSupported: ?*Guid, cProtectionSchemasSupported: u32, ppRequiredProtectionSchemas: ?*?*IMFCollection) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputPolicy.VTable, @ptrCast(self.vtable)).GenerateRequiredSchemas(@as(*const IMFOutputPolicy, @ptrCast(self)), dwAttributes, guidOutputSubType, rgGuidProtectionSchemasSupported, cProtectionSchemasSupported, ppRequiredProtectionSchemas);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputPolicy_GetOriginatorID(self: *const T, pguidOriginatorID: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputPolicy.VTable, @ptrCast(self.vtable)).GetOriginatorID(@as(*const IMFOutputPolicy, @ptrCast(self)), pguidOriginatorID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputPolicy_GetMinimumGRLVersion(self: *const T, pdwMinimumGRLVersion: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputPolicy.VTable, @ptrCast(self.vtable)).GetMinimumGRLVersion(@as(*const IMFOutputPolicy, @ptrCast(self)), pdwMinimumGRLVersion);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFOutputSchema_Value = Guid.initString("7be0fc5b-abd9-44fb-a5c8-f50136e71599");
|
|
pub const IID_IMFOutputSchema = &IID_IMFOutputSchema_Value;
|
|
pub const IMFOutputSchema = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetSchemaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputSchema,
|
|
pguidSchemaType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputSchema,
|
|
pguidSchemaType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetConfigurationData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputSchema,
|
|
pdwVal: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputSchema,
|
|
pdwVal: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOriginatorID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFOutputSchema,
|
|
pguidOriginatorID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFOutputSchema,
|
|
pguidOriginatorID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputSchema_GetSchemaType(self: *const T, pguidSchemaType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputSchema.VTable, @ptrCast(self.vtable)).GetSchemaType(@as(*const IMFOutputSchema, @ptrCast(self)), pguidSchemaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputSchema_GetConfigurationData(self: *const T, pdwVal: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputSchema.VTable, @ptrCast(self.vtable)).GetConfigurationData(@as(*const IMFOutputSchema, @ptrCast(self)), pdwVal);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFOutputSchema_GetOriginatorID(self: *const T, pguidOriginatorID: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFOutputSchema.VTable, @ptrCast(self.vtable)).GetOriginatorID(@as(*const IMFOutputSchema, @ptrCast(self)), pguidOriginatorID);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_OPM_CGMSA_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
COPY_FREELY = 1,
|
|
COPY_NO_MORE = 2,
|
|
COPY_ONE_GENERATION = 3,
|
|
COPY_NEVER = 4,
|
|
REDISTRIBUTION_CONTROL_REQUIRED = 8,
|
|
};
|
|
pub const MF_OPM_CGMSA_OFF = MF_OPM_CGMSA_PROTECTION_LEVEL.OFF;
|
|
pub const MF_OPM_CGMSA_COPY_FREELY = MF_OPM_CGMSA_PROTECTION_LEVEL.COPY_FREELY;
|
|
pub const MF_OPM_CGMSA_COPY_NO_MORE = MF_OPM_CGMSA_PROTECTION_LEVEL.COPY_NO_MORE;
|
|
pub const MF_OPM_CGMSA_COPY_ONE_GENERATION = MF_OPM_CGMSA_PROTECTION_LEVEL.COPY_ONE_GENERATION;
|
|
pub const MF_OPM_CGMSA_COPY_NEVER = MF_OPM_CGMSA_PROTECTION_LEVEL.COPY_NEVER;
|
|
pub const MF_OPM_CGMSA_REDISTRIBUTION_CONTROL_REQUIRED = MF_OPM_CGMSA_PROTECTION_LEVEL.REDISTRIBUTION_CONTROL_REQUIRED;
|
|
|
|
pub const MF_OPM_ACP_PROTECTION_LEVEL = enum(i32) {
|
|
OFF = 0,
|
|
LEVEL_ONE = 1,
|
|
LEVEL_TWO = 2,
|
|
LEVEL_THREE = 3,
|
|
FORCE_ULONG = 2147483647,
|
|
};
|
|
pub const MF_OPM_ACP_OFF = MF_OPM_ACP_PROTECTION_LEVEL.OFF;
|
|
pub const MF_OPM_ACP_LEVEL_ONE = MF_OPM_ACP_PROTECTION_LEVEL.LEVEL_ONE;
|
|
pub const MF_OPM_ACP_LEVEL_TWO = MF_OPM_ACP_PROTECTION_LEVEL.LEVEL_TWO;
|
|
pub const MF_OPM_ACP_LEVEL_THREE = MF_OPM_ACP_PROTECTION_LEVEL.LEVEL_THREE;
|
|
pub const MF_OPM_ACP_FORCE_ULONG = MF_OPM_ACP_PROTECTION_LEVEL.FORCE_ULONG;
|
|
|
|
pub const MFAudioConstriction = enum(i32) {
|
|
Off = 0,
|
|
@"48_16" = 1,
|
|
@"44_16" = 2,
|
|
@"14_14" = 3,
|
|
Mute = 4,
|
|
};
|
|
pub const MFaudioConstrictionOff = MFAudioConstriction.Off;
|
|
pub const MFaudioConstriction48_16 = MFAudioConstriction.@"48_16";
|
|
pub const MFaudioConstriction44_16 = MFAudioConstriction.@"44_16";
|
|
pub const MFaudioConstriction14_14 = MFAudioConstriction.@"14_14";
|
|
pub const MFaudioConstrictionMute = MFAudioConstriction.Mute;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSecureChannel_Value = Guid.initString("d0ae555d-3b12-4d97-b060-0990bc5aeb67");
|
|
pub const IID_IMFSecureChannel = &IID_IMFSecureChannel_Value;
|
|
pub const IMFSecureChannel = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSecureChannel,
|
|
ppCert: ?*?*u8,
|
|
pcbCert: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSecureChannel,
|
|
ppCert: ?*?*u8,
|
|
pcbCert: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetupSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSecureChannel,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbEncryptedSessionKey: ?*u8,
|
|
cbSessionKey: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSecureChannel,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbEncryptedSessionKey: ?*u8,
|
|
cbSessionKey: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSecureChannel_GetCertificate(self: *const T, ppCert: ?*?*u8, pcbCert: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSecureChannel.VTable, @ptrCast(self.vtable)).GetCertificate(@as(*const IMFSecureChannel, @ptrCast(self)), ppCert, pcbCert);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSecureChannel_SetupSession(self: *const T, pbEncryptedSessionKey: ?*u8, cbSessionKey: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSecureChannel.VTable, @ptrCast(self.vtable)).SetupSession(@as(*const IMFSecureChannel, @ptrCast(self)), pbEncryptedSessionKey, cbSessionKey);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const SAMPLE_PROTECTION_VERSION = enum(i32) {
|
|
NO = 0,
|
|
BASIC_LOKI = 1,
|
|
SCATTER = 2,
|
|
RC4 = 3,
|
|
AES128CTR = 4,
|
|
};
|
|
pub const SAMPLE_PROTECTION_VERSION_NO = SAMPLE_PROTECTION_VERSION.NO;
|
|
pub const SAMPLE_PROTECTION_VERSION_BASIC_LOKI = SAMPLE_PROTECTION_VERSION.BASIC_LOKI;
|
|
pub const SAMPLE_PROTECTION_VERSION_SCATTER = SAMPLE_PROTECTION_VERSION.SCATTER;
|
|
pub const SAMPLE_PROTECTION_VERSION_RC4 = SAMPLE_PROTECTION_VERSION.RC4;
|
|
pub const SAMPLE_PROTECTION_VERSION_AES128CTR = SAMPLE_PROTECTION_VERSION.AES128CTR;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSampleProtection_Value = Guid.initString("8e36395f-c7b9-43c4-a54d-512b4af63c95");
|
|
pub const IID_IMFSampleProtection = &IID_IMFSampleProtection_Value;
|
|
pub const IMFSampleProtection = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetInputProtectionVersion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleProtection,
|
|
pdwVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleProtection,
|
|
pdwVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputProtectionVersion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleProtection,
|
|
pdwVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleProtection,
|
|
pdwVersion: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProtectionCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
ppCert: ?*?*u8,
|
|
pcbCert: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
ppCert: ?*?*u8,
|
|
pcbCert: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InitOutputProtection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
dwOutputId: u32,
|
|
pbCert: ?*u8,
|
|
cbCert: u32,
|
|
ppbSeed: ?*?*u8,
|
|
pcbSeed: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
dwOutputId: u32,
|
|
pbCert: ?*u8,
|
|
cbCert: u32,
|
|
ppbSeed: ?*?*u8,
|
|
pcbSeed: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InitInputProtection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
dwInputId: u32,
|
|
pbSeed: ?*u8,
|
|
cbSeed: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleProtection,
|
|
dwVersion: u32,
|
|
dwInputId: u32,
|
|
pbSeed: ?*u8,
|
|
cbSeed: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleProtection_GetInputProtectionVersion(self: *const T, pdwVersion: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleProtection.VTable, @ptrCast(self.vtable)).GetInputProtectionVersion(@as(*const IMFSampleProtection, @ptrCast(self)), pdwVersion);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleProtection_GetOutputProtectionVersion(self: *const T, pdwVersion: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleProtection.VTable, @ptrCast(self.vtable)).GetOutputProtectionVersion(@as(*const IMFSampleProtection, @ptrCast(self)), pdwVersion);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleProtection_GetProtectionCertificate(self: *const T, dwVersion: u32, ppCert: ?*?*u8, pcbCert: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleProtection.VTable, @ptrCast(self.vtable)).GetProtectionCertificate(@as(*const IMFSampleProtection, @ptrCast(self)), dwVersion, ppCert, pcbCert);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleProtection_InitOutputProtection(self: *const T, dwVersion: u32, dwOutputId: u32, pbCert: ?*u8, cbCert: u32, ppbSeed: ?*?*u8, pcbSeed: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleProtection.VTable, @ptrCast(self.vtable)).InitOutputProtection(@as(*const IMFSampleProtection, @ptrCast(self)), dwVersion, dwOutputId, pbCert, cbCert, ppbSeed, pcbSeed);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleProtection_InitInputProtection(self: *const T, dwVersion: u32, dwInputId: u32, pbSeed: ?*u8, cbSeed: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleProtection.VTable, @ptrCast(self.vtable)).InitInputProtection(@as(*const IMFSampleProtection, @ptrCast(self)), dwVersion, dwInputId, pbSeed, cbSeed);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFMediaSinkPreroll_Value = Guid.initString("5dfd4b2a-7674-4110-a4e6-8a68fd5f3688");
|
|
pub const IID_IMFMediaSinkPreroll = &IID_IMFMediaSinkPreroll_Value;
|
|
pub const IMFMediaSinkPreroll = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
NotifyPreroll: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSinkPreroll,
|
|
hnsUpcomingStartTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSinkPreroll,
|
|
hnsUpcomingStartTime: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSinkPreroll_NotifyPreroll(self: *const T, hnsUpcomingStartTime: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSinkPreroll.VTable, @ptrCast(self.vtable)).NotifyPreroll(@as(*const IMFMediaSinkPreroll, @ptrCast(self)), hnsUpcomingStartTime);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFFinalizableMediaSink_Value = Guid.initString("eaecb74a-9a50-42ce-9541-6a7f57aa4ad7");
|
|
pub const IID_IMFFinalizableMediaSink = &IID_IMFFinalizableMediaSink_Value;
|
|
pub const IMFFinalizableMediaSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaSink.VTable,
|
|
BeginFinalize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFFinalizableMediaSink,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFFinalizableMediaSink,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndFinalize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFFinalizableMediaSink,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFFinalizableMediaSink,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFFinalizableMediaSink_BeginFinalize(self: *const T, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFFinalizableMediaSink.VTable, @ptrCast(self.vtable)).BeginFinalize(@as(*const IMFFinalizableMediaSink, @ptrCast(self)), pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFFinalizableMediaSink_EndFinalize(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFFinalizableMediaSink.VTable, @ptrCast(self.vtable)).EndFinalize(@as(*const IMFFinalizableMediaSink, @ptrCast(self)), pResult);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFStreamingSinkConfig_Value = Guid.initString("9db7aa41-3cc5-40d4-8509-555804ad34cc");
|
|
pub const IID_IMFStreamingSinkConfig = &IID_IMFStreamingSinkConfig_Value;
|
|
pub const IMFStreamingSinkConfig = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
StartStreaming: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFStreamingSinkConfig,
|
|
fSeekOffsetIsByteOffset: BOOL,
|
|
qwSeekOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFStreamingSinkConfig,
|
|
fSeekOffsetIsByteOffset: BOOL,
|
|
qwSeekOffset: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFStreamingSinkConfig_StartStreaming(self: *const T, fSeekOffsetIsByteOffset: BOOL, qwSeekOffset: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFStreamingSinkConfig.VTable, @ptrCast(self.vtable)).StartStreaming(@as(*const IMFStreamingSinkConfig, @ptrCast(self)), fSeekOffsetIsByteOffset, qwSeekOffset);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRemoteProxy_Value = Guid.initString("994e23ad-1cc2-493c-b9fa-46f1cb040fa4");
|
|
pub const IID_IMFRemoteProxy = &IID_IMFRemoteProxy_Value;
|
|
pub const IMFRemoteProxy = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetRemoteObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRemoteProxy,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRemoteProxy,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRemoteHost: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRemoteProxy,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRemoteProxy,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRemoteProxy_GetRemoteObject(self: *const T, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRemoteProxy.VTable, @ptrCast(self.vtable)).GetRemoteObject(@as(*const IMFRemoteProxy, @ptrCast(self)), riid, ppv);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRemoteProxy_GetRemoteHost(self: *const T, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRemoteProxy.VTable, @ptrCast(self.vtable)).GetRemoteHost(@as(*const IMFRemoteProxy, @ptrCast(self)), riid, ppv);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFObjectReferenceStream_Value = Guid.initString("09ef5be3-c8a7-469e-8b70-73bf25bb193f");
|
|
pub const IID_IMFObjectReferenceStream = &IID_IMFObjectReferenceStream_Value;
|
|
pub const IMFObjectReferenceStream = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SaveReference: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFObjectReferenceStream,
|
|
riid: ?*const Guid,
|
|
pUnk: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFObjectReferenceStream,
|
|
riid: ?*const Guid,
|
|
pUnk: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
LoadReference: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFObjectReferenceStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFObjectReferenceStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFObjectReferenceStream_SaveReference(self: *const T, riid: ?*const Guid, pUnk: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFObjectReferenceStream.VTable, @ptrCast(self.vtable)).SaveReference(@as(*const IMFObjectReferenceStream, @ptrCast(self)), riid, pUnk);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFObjectReferenceStream_LoadReference(self: *const T, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFObjectReferenceStream.VTable, @ptrCast(self.vtable)).LoadReference(@as(*const IMFObjectReferenceStream, @ptrCast(self)), riid, ppv);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPMPHost_Value = Guid.initString("f70ca1a9-fdc7-4782-b994-adffb1c98606");
|
|
pub const IID_IMFPMPHost = &IID_IMFPMPHost_Value;
|
|
pub const IMFPMPHost = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
LockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateObjectByCLSID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHost,
|
|
clsid: ?*const Guid,
|
|
pStream: ?*IStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHost,
|
|
clsid: ?*const Guid,
|
|
pStream: ?*IStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHost_LockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHost.VTable, @ptrCast(self.vtable)).LockProcess(@as(*const IMFPMPHost, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHost_UnlockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHost.VTable, @ptrCast(self.vtable)).UnlockProcess(@as(*const IMFPMPHost, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHost_CreateObjectByCLSID(self: *const T, clsid: ?*const Guid, pStream: ?*IStream, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHost.VTable, @ptrCast(self.vtable)).CreateObjectByCLSID(@as(*const IMFPMPHost, @ptrCast(self)), clsid, pStream, riid, ppv);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPMPClient_Value = Guid.initString("6c4e655d-ead8-4421-b6b9-54dcdbbdf820");
|
|
pub const IID_IMFPMPClient = &IID_IMFPMPClient_Value;
|
|
pub const IMFPMPClient = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetPMPHost: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPClient,
|
|
pPMPHost: ?*IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPClient,
|
|
pPMPHost: ?*IMFPMPHost,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPClient_SetPMPHost(self: *const T, pPMPHost: ?*IMFPMPHost) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPClient.VTable, @ptrCast(self.vtable)).SetPMPHost(@as(*const IMFPMPClient, @ptrCast(self)), pPMPHost);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFPMPServer_Value = Guid.initString("994e23af-1cc2-493c-b9fa-46f1cb040fa4");
|
|
pub const IID_IMFPMPServer = &IID_IMFPMPServer_Value;
|
|
pub const IMFPMPServer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
LockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPServer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPServer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPServer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPServer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateObjectByCLSID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPServer,
|
|
clsid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPServer,
|
|
clsid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPServer_LockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPServer.VTable, @ptrCast(self.vtable)).LockProcess(@as(*const IMFPMPServer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPServer_UnlockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPServer.VTable, @ptrCast(self.vtable)).UnlockProcess(@as(*const IMFPMPServer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPServer_CreateObjectByCLSID(self: *const T, clsid: ?*const Guid, riid: ?*const Guid, ppObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPServer.VTable, @ptrCast(self.vtable)).CreateObjectByCLSID(@as(*const IMFPMPServer, @ptrCast(self)), clsid, riid, ppObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFRemoteDesktopPlugin_Value = Guid.initString("1cde6309-cae0-4940-907e-c1ec9c3d1d4a");
|
|
pub const IID_IMFRemoteDesktopPlugin = &IID_IMFRemoteDesktopPlugin_Value;
|
|
pub const IMFRemoteDesktopPlugin = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
UpdateTopology: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRemoteDesktopPlugin,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRemoteDesktopPlugin,
|
|
pTopology: ?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRemoteDesktopPlugin_UpdateTopology(self: *const T, pTopology: ?*IMFTopology) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRemoteDesktopPlugin.VTable, @ptrCast(self.vtable)).UpdateTopology(@as(*const IMFRemoteDesktopPlugin, @ptrCast(self)), pTopology);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFSAMIStyle_Value = Guid.initString("a7e025dd-5303-4a62-89d6-e747e1efac73");
|
|
pub const IID_IMFSAMIStyle = &IID_IMFSAMIStyle_Value;
|
|
pub const IMFSAMIStyle = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStyleCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSAMIStyle,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSAMIStyle,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStyles: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSAMIStyle,
|
|
pPropVarStyleArray: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSAMIStyle,
|
|
pPropVarStyleArray: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSelectedStyle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSAMIStyle,
|
|
pwszStyle: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSAMIStyle,
|
|
pwszStyle: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSelectedStyle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSAMIStyle,
|
|
ppwszStyle: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSAMIStyle,
|
|
ppwszStyle: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSAMIStyle_GetStyleCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSAMIStyle.VTable, @ptrCast(self.vtable)).GetStyleCount(@as(*const IMFSAMIStyle, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSAMIStyle_GetStyles(self: *const T, pPropVarStyleArray: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSAMIStyle.VTable, @ptrCast(self.vtable)).GetStyles(@as(*const IMFSAMIStyle, @ptrCast(self)), pPropVarStyleArray);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSAMIStyle_SetSelectedStyle(self: *const T, pwszStyle: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSAMIStyle.VTable, @ptrCast(self.vtable)).SetSelectedStyle(@as(*const IMFSAMIStyle, @ptrCast(self)), pwszStyle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSAMIStyle_GetSelectedStyle(self: *const T, ppwszStyle: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSAMIStyle.VTable, @ptrCast(self.vtable)).GetSelectedStyle(@as(*const IMFSAMIStyle, @ptrCast(self)), ppwszStyle);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFTranscodeProfile_Value = Guid.initString("4adfdba3-7ab0-4953-a62b-461e7ff3da1e");
|
|
pub const IID_IMFTranscodeProfile = &IID_IMFTranscodeProfile_Value;
|
|
pub const IMFTranscodeProfile = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetAudioAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAudioAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetContainerAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
pAttrs: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetContainerAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeProfile,
|
|
ppAttrs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_SetAudioAttributes(self: *const T, pAttrs: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).SetAudioAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), pAttrs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_GetAudioAttributes(self: *const T, ppAttrs: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).GetAudioAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), ppAttrs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_SetVideoAttributes(self: *const T, pAttrs: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).SetVideoAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), pAttrs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_GetVideoAttributes(self: *const T, ppAttrs: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).GetVideoAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), ppAttrs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_SetContainerAttributes(self: *const T, pAttrs: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).SetContainerAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), pAttrs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeProfile_GetContainerAttributes(self: *const T, ppAttrs: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeProfile.VTable, @ptrCast(self.vtable)).GetContainerAttributes(@as(*const IMFTranscodeProfile, @ptrCast(self)), ppAttrs);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_TRANSCODE_TOPOLOGYMODE_FLAGS = enum(i32) {
|
|
SOFTWARE_ONLY = 0,
|
|
HARDWARE_ALLOWED = 1,
|
|
};
|
|
pub const MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = MF_TRANSCODE_TOPOLOGYMODE_FLAGS.SOFTWARE_ONLY;
|
|
pub const MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = MF_TRANSCODE_TOPOLOGYMODE_FLAGS.HARDWARE_ALLOWED;
|
|
|
|
pub const MF_TRANSCODE_ADJUST_PROFILE_FLAGS = enum(i32) {
|
|
DEFAULT = 0,
|
|
USE_SOURCE_ATTRIBUTES = 1,
|
|
};
|
|
pub const MF_TRANSCODE_ADJUST_PROFILE_DEFAULT = MF_TRANSCODE_ADJUST_PROFILE_FLAGS.DEFAULT;
|
|
pub const MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES = MF_TRANSCODE_ADJUST_PROFILE_FLAGS.USE_SOURCE_ATTRIBUTES;
|
|
|
|
pub const MF_VIDEO_PROCESSOR_ALGORITHM_TYPE = enum(i32) {
|
|
DEFAULT = 0,
|
|
MRF_CRF_444 = 1,
|
|
};
|
|
pub const MF_VIDEO_PROCESSOR_ALGORITHM_DEFAULT = MF_VIDEO_PROCESSOR_ALGORITHM_TYPE.DEFAULT;
|
|
pub const MF_VIDEO_PROCESSOR_ALGORITHM_MRF_CRF_444 = MF_VIDEO_PROCESSOR_ALGORITHM_TYPE.MRF_CRF_444;
|
|
|
|
pub const MF_TRANSCODE_SINK_INFO = extern struct {
|
|
dwVideoStreamID: u32,
|
|
pVideoMediaType: ?*IMFMediaType,
|
|
dwAudioStreamID: u32,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFTranscodeSinkInfoProvider_Value = Guid.initString("8cffcd2e-5a03-4a3a-aff7-edcd107c620e");
|
|
pub const IID_IMFTranscodeSinkInfoProvider = &IID_IMFTranscodeSinkInfoProvider_Value;
|
|
pub const IMFTranscodeSinkInfoProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetOutputFile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pwszFileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pByteStreamActivate: ?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pByteStreamActivate: ?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pProfile: ?*IMFTranscodeProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pProfile: ?*IMFTranscodeProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSinkInfo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pSinkInfo: ?*MF_TRANSCODE_SINK_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTranscodeSinkInfoProvider,
|
|
pSinkInfo: ?*MF_TRANSCODE_SINK_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeSinkInfoProvider_SetOutputFile(self: *const T, pwszFileName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeSinkInfoProvider.VTable, @ptrCast(self.vtable)).SetOutputFile(@as(*const IMFTranscodeSinkInfoProvider, @ptrCast(self)), pwszFileName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeSinkInfoProvider_SetOutputByteStream(self: *const T, pByteStreamActivate: ?*IMFActivate) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeSinkInfoProvider.VTable, @ptrCast(self.vtable)).SetOutputByteStream(@as(*const IMFTranscodeSinkInfoProvider, @ptrCast(self)), pByteStreamActivate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeSinkInfoProvider_SetProfile(self: *const T, pProfile: ?*IMFTranscodeProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeSinkInfoProvider.VTable, @ptrCast(self.vtable)).SetProfile(@as(*const IMFTranscodeSinkInfoProvider, @ptrCast(self)), pProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTranscodeSinkInfoProvider_GetSinkInfo(self: *const T, pSinkInfo: ?*MF_TRANSCODE_SINK_INFO) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTranscodeSinkInfoProvider.VTable, @ptrCast(self.vtable)).GetSinkInfo(@as(*const IMFTranscodeSinkInfoProvider, @ptrCast(self)), pSinkInfo);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFFieldOfUseMFTUnlock_Value = Guid.initString("508e71d3-ec66-4fc3-8775-b4b9ed6ba847");
|
|
pub const IID_IMFFieldOfUseMFTUnlock = &IID_IMFFieldOfUseMFTUnlock_Value;
|
|
pub const IMFFieldOfUseMFTUnlock = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Unlock: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFFieldOfUseMFTUnlock,
|
|
pUnkMFT: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFFieldOfUseMFTUnlock,
|
|
pUnkMFT: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFFieldOfUseMFTUnlock_Unlock(self: *const T, pUnkMFT: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFFieldOfUseMFTUnlock.VTable, @ptrCast(self.vtable)).Unlock(@as(*const IMFFieldOfUseMFTUnlock, @ptrCast(self)), pUnkMFT);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFT_REGISTRATION_INFO = extern struct {
|
|
clsid: Guid,
|
|
guidCategory: Guid,
|
|
uiFlags: u32,
|
|
pszName: ?[*:0]const u16,
|
|
cInTypes: u32,
|
|
pInTypes: ?*MFT_REGISTER_TYPE_INFO,
|
|
cOutTypes: u32,
|
|
pOutTypes: ?*MFT_REGISTER_TYPE_INFO,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFLocalMFTRegistration_Value = Guid.initString("149c4d73-b4be-4f8d-8b87-079e926b6add");
|
|
pub const IID_IMFLocalMFTRegistration = &IID_IMFLocalMFTRegistration_Value;
|
|
pub const IMFLocalMFTRegistration = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
RegisterMFTs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFLocalMFTRegistration,
|
|
pMFTs: [*]MFT_REGISTRATION_INFO,
|
|
cMFTs: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFLocalMFTRegistration,
|
|
pMFTs: [*]MFT_REGISTRATION_INFO,
|
|
cMFTs: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFLocalMFTRegistration_RegisterMFTs(self: *const T, pMFTs: [*]MFT_REGISTRATION_INFO, cMFTs: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFLocalMFTRegistration.VTable, @ptrCast(self.vtable)).RegisterMFTs(@as(*const IMFLocalMFTRegistration, @ptrCast(self)), pMFTs, cMFTs);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFCapturePhotoConfirmation_Value = Guid.initString("19f68549-ca8a-4706-a4ef-481dbc95e12c");
|
|
pub const IID_IMFCapturePhotoConfirmation = &IID_IMFCapturePhotoConfirmation_Value;
|
|
pub const IMFCapturePhotoConfirmation = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetPhotoConfirmationCallback: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
pNotificationCallback: ?*IMFAsyncCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
pNotificationCallback: ?*IMFAsyncCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPixelFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
subtype: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
subtype: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPixelFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
subtype: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoConfirmation,
|
|
subtype: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoConfirmation_SetPhotoConfirmationCallback(self: *const T, pNotificationCallback: ?*IMFAsyncCallback) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoConfirmation.VTable, @ptrCast(self.vtable)).SetPhotoConfirmationCallback(@as(*const IMFCapturePhotoConfirmation, @ptrCast(self)), pNotificationCallback);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoConfirmation_SetPixelFormat(self: *const T, subtype: Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoConfirmation.VTable, @ptrCast(self.vtable)).SetPixelFormat(@as(*const IMFCapturePhotoConfirmation, @ptrCast(self)), subtype);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoConfirmation_GetPixelFormat(self: *const T, subtype: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoConfirmation.VTable, @ptrCast(self.vtable)).GetPixelFormat(@as(*const IMFCapturePhotoConfirmation, @ptrCast(self)), subtype);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFPMPHostApp_Value = Guid.initString("84d2054a-3aa1-4728-a3b0-440a418cf49c");
|
|
pub const IID_IMFPMPHostApp = &IID_IMFPMPHostApp_Value;
|
|
pub const IMFPMPHostApp = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
LockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockProcess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ActivateClassById: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPHostApp,
|
|
id: ?[*:0]const u16,
|
|
pStream: ?*IStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPHostApp,
|
|
id: ?[*:0]const u16,
|
|
pStream: ?*IStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHostApp_LockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHostApp.VTable, @ptrCast(self.vtable)).LockProcess(@as(*const IMFPMPHostApp, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHostApp_UnlockProcess(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHostApp.VTable, @ptrCast(self.vtable)).UnlockProcess(@as(*const IMFPMPHostApp, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPHostApp_ActivateClassById(self: *const T, id: ?[*:0]const u16, pStream: ?*IStream, riid: ?*const Guid, ppv: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPHostApp.VTable, @ptrCast(self.vtable)).ActivateClassById(@as(*const IMFPMPHostApp, @ptrCast(self)), id, pStream, riid, ppv);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFPMPClientApp_Value = Guid.initString("c004f646-be2c-48f3-93a2-a0983eba1108");
|
|
pub const IID_IMFPMPClientApp = &IID_IMFPMPClientApp_Value;
|
|
pub const IMFPMPClientApp = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetPMPHost: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMPClientApp,
|
|
pPMPHost: ?*IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMPClientApp,
|
|
pPMPHost: ?*IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMPClientApp_SetPMPHost(self: *const T, pPMPHost: ?*IMFPMPHostApp) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMPClientApp.VTable, @ptrCast(self.vtable)).SetPMPHost(@as(*const IMFPMPClientApp, @ptrCast(self)), pPMPHost);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaStreamSourceSampleRequest_Value = Guid.initString("380b9af9-a85b-4e78-a2af-ea5ce645c6b4");
|
|
pub const IID_IMFMediaStreamSourceSampleRequest = &IID_IMFMediaStreamSourceSampleRequest_Value;
|
|
pub const IMFMediaStreamSourceSampleRequest = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStreamSourceSampleRequest,
|
|
value: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStreamSourceSampleRequest,
|
|
value: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStreamSourceSampleRequest_SetSample(self: *const T, value: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStreamSourceSampleRequest.VTable, @ptrCast(self.vtable)).SetSample(@as(*const IMFMediaStreamSourceSampleRequest, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTrackedSample_Value = Guid.initString("245bf8e9-0755-40f7-88a5-ae0f18d55e17");
|
|
pub const IID_IMFTrackedSample = &IID_IMFTrackedSample_Value;
|
|
pub const IMFTrackedSample = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetAllocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTrackedSample,
|
|
pSampleAllocator: ?*IMFAsyncCallback,
|
|
pUnkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTrackedSample,
|
|
pSampleAllocator: ?*IMFAsyncCallback,
|
|
pUnkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTrackedSample_SetAllocator(self: *const T, pSampleAllocator: ?*IMFAsyncCallback, pUnkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTrackedSample.VTable, @ptrCast(self.vtable)).SetAllocator(@as(*const IMFTrackedSample, @ptrCast(self)), pSampleAllocator, pUnkState);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFProtectedEnvironmentAccess_Value = Guid.initString("ef5dc845-f0d9-4ec9-b00c-cb5183d38434");
|
|
pub const IID_IMFProtectedEnvironmentAccess = &IID_IMFProtectedEnvironmentAccess_Value;
|
|
pub const IMFProtectedEnvironmentAccess = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Call: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFProtectedEnvironmentAccess,
|
|
inputLength: u32,
|
|
// TODO: what to do with BytesParamIndex 0?
|
|
input: ?*const u8,
|
|
outputLength: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
output: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFProtectedEnvironmentAccess,
|
|
inputLength: u32,
|
|
// TODO: what to do with BytesParamIndex 0?
|
|
input: ?*const u8,
|
|
outputLength: u32,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
output: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ReadGRL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFProtectedEnvironmentAccess,
|
|
outputLength: ?*u32,
|
|
output: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFProtectedEnvironmentAccess,
|
|
outputLength: ?*u32,
|
|
output: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFProtectedEnvironmentAccess_Call(self: *const T, inputLength: u32, input: ?*const u8, outputLength: u32, output: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFProtectedEnvironmentAccess.VTable, @ptrCast(self.vtable)).Call(@as(*const IMFProtectedEnvironmentAccess, @ptrCast(self)), inputLength, input, outputLength, output);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFProtectedEnvironmentAccess_ReadGRL(self: *const T, outputLength: ?*u32, output: ?*?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFProtectedEnvironmentAccess.VTable, @ptrCast(self.vtable)).ReadGRL(@as(*const IMFProtectedEnvironmentAccess, @ptrCast(self)), outputLength, output);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSignedLibrary_Value = Guid.initString("4a724bca-ff6a-4c07-8e0d-7a358421cf06");
|
|
pub const IID_IMFSignedLibrary = &IID_IMFSignedLibrary_Value;
|
|
pub const IMFSignedLibrary = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetProcedureAddress: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSignedLibrary,
|
|
name: ?[*:0]const u8,
|
|
address: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSignedLibrary,
|
|
name: ?[*:0]const u8,
|
|
address: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSignedLibrary_GetProcedureAddress(self: *const T, name: ?[*:0]const u8, address: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSignedLibrary.VTable, @ptrCast(self.vtable)).GetProcedureAddress(@as(*const IMFSignedLibrary, @ptrCast(self)), name, address);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSystemId_Value = Guid.initString("fff4af3a-1fc1-4ef9-a29b-d26c49e2f31a");
|
|
pub const IID_IMFSystemId = &IID_IMFSystemId_Value;
|
|
pub const IMFSystemId = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSystemId,
|
|
size: ?*u32,
|
|
data: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSystemId,
|
|
size: ?*u32,
|
|
data: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Setup: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSystemId,
|
|
stage: u32,
|
|
cbIn: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbIn: ?*const u8,
|
|
pcbOut: ?*u32,
|
|
ppbOut: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSystemId,
|
|
stage: u32,
|
|
cbIn: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbIn: ?*const u8,
|
|
pcbOut: ?*u32,
|
|
ppbOut: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSystemId_GetData(self: *const T, size: ?*u32, data: ?*?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSystemId.VTable, @ptrCast(self.vtable)).GetData(@as(*const IMFSystemId, @ptrCast(self)), size, data);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSystemId_Setup(self: *const T, stage: u32, cbIn: u32, pbIn: ?*const u8, pcbOut: ?*u32, ppbOut: ?*?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSystemId.VTable, @ptrCast(self.vtable)).Setup(@as(*const IMFSystemId, @ptrCast(self)), stage, cbIn, pbIn, pcbOut, ppbOut);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFCONTENTPROTECTIONDEVICE_INPUT_DATA = extern struct {
|
|
HWProtectionFunctionID: u32,
|
|
PrivateDataByteCount: u32,
|
|
HWProtectionDataByteCount: u32,
|
|
Reserved: u32,
|
|
InputData: [4]u8,
|
|
};
|
|
|
|
pub const MFCONTENTPROTECTIONDEVICE_OUTPUT_DATA = extern struct {
|
|
PrivateDataByteCount: u32,
|
|
MaxHWProtectionDataByteCount: u32,
|
|
HWProtectionDataByteCount: u32,
|
|
Status: HRESULT,
|
|
TransportTimeInHundredsOfNanoseconds: i64,
|
|
ExecutionTimeInHundredsOfNanoseconds: i64,
|
|
OutputData: [4]u8,
|
|
};
|
|
|
|
pub const MFCONTENTPROTECTIONDEVICE_REALTIMECLIENT_DATA = extern struct {
|
|
TaskIndex: u32,
|
|
ClassName: [260]u16,
|
|
BasePriority: i32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFContentProtectionDevice_Value = Guid.initString("e6257174-a060-4c9a-a088-3b1b471cad28");
|
|
pub const IID_IMFContentProtectionDevice = &IID_IMFContentProtectionDevice_Value;
|
|
pub const IMFContentProtectionDevice = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
InvokeFunction: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentProtectionDevice,
|
|
FunctionId: u32,
|
|
InputBufferByteCount: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
InputBuffer: ?*const u8,
|
|
OutputBufferByteCount: ?*u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
OutputBuffer: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentProtectionDevice,
|
|
FunctionId: u32,
|
|
InputBufferByteCount: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
InputBuffer: ?*const u8,
|
|
OutputBufferByteCount: ?*u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
OutputBuffer: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPrivateDataByteCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentProtectionDevice,
|
|
PrivateInputByteCount: ?*u32,
|
|
PrivateOutputByteCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentProtectionDevice,
|
|
PrivateInputByteCount: ?*u32,
|
|
PrivateOutputByteCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentProtectionDevice_InvokeFunction(self: *const T, FunctionId: u32, InputBufferByteCount: u32, InputBuffer: ?*const u8, OutputBufferByteCount: ?*u32, OutputBuffer: ?*u8) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentProtectionDevice.VTable, @ptrCast(self.vtable)).InvokeFunction(@as(*const IMFContentProtectionDevice, @ptrCast(self)), FunctionId, InputBufferByteCount, InputBuffer, OutputBufferByteCount, OutputBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentProtectionDevice_GetPrivateDataByteCount(self: *const T, PrivateInputByteCount: ?*u32, PrivateOutputByteCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentProtectionDevice.VTable, @ptrCast(self.vtable)).GetPrivateDataByteCount(@as(*const IMFContentProtectionDevice, @ptrCast(self)), PrivateInputByteCount, PrivateOutputByteCount);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFContentDecryptorContext_Value = Guid.initString("7ec4b1bd-43fb-4763-85d2-64fcb5c5f4cb");
|
|
pub const IID_IMFContentDecryptorContext = &IID_IMFContentDecryptorContext_Value;
|
|
pub const IMFContentDecryptorContext = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
InitializeHardwareKey: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptorContext,
|
|
InputPrivateDataByteCount: u32,
|
|
InputPrivateData: ?[*]const u8,
|
|
OutputPrivateData: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptorContext,
|
|
InputPrivateDataByteCount: u32,
|
|
InputPrivateData: ?[*]const u8,
|
|
OutputPrivateData: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptorContext_InitializeHardwareKey(self: *const T, InputPrivateDataByteCount: u32, InputPrivateData: ?[*]const u8, OutputPrivateData: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptorContext.VTable, @ptrCast(self.vtable)).InitializeHardwareKey(@as(*const IMFContentDecryptorContext, @ptrCast(self)), InputPrivateDataByteCount, InputPrivateData, OutputPrivateData);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIAKEYSESSION_TYPE = enum(i32) {
|
|
TEMPORARY = 0,
|
|
PERSISTENT_LICENSE = 1,
|
|
PERSISTENT_RELEASE_MESSAGE = 2,
|
|
PERSISTENT_USAGE_RECORD = 3,
|
|
};
|
|
pub const MF_MEDIAKEYSESSION_TYPE_TEMPORARY = MF_MEDIAKEYSESSION_TYPE.TEMPORARY;
|
|
pub const MF_MEDIAKEYSESSION_TYPE_PERSISTENT_LICENSE = MF_MEDIAKEYSESSION_TYPE.PERSISTENT_LICENSE;
|
|
pub const MF_MEDIAKEYSESSION_TYPE_PERSISTENT_RELEASE_MESSAGE = MF_MEDIAKEYSESSION_TYPE.PERSISTENT_RELEASE_MESSAGE;
|
|
pub const MF_MEDIAKEYSESSION_TYPE_PERSISTENT_USAGE_RECORD = MF_MEDIAKEYSESSION_TYPE.PERSISTENT_USAGE_RECORD;
|
|
|
|
pub const MF_MEDIAKEY_STATUS = enum(i32) {
|
|
USABLE = 0,
|
|
EXPIRED = 1,
|
|
OUTPUT_DOWNSCALED = 2,
|
|
OUTPUT_NOT_ALLOWED = 3,
|
|
STATUS_PENDING = 4,
|
|
INTERNAL_ERROR = 5,
|
|
RELEASED = 6,
|
|
OUTPUT_RESTRICTED = 7,
|
|
};
|
|
pub const MF_MEDIAKEY_STATUS_USABLE = MF_MEDIAKEY_STATUS.USABLE;
|
|
pub const MF_MEDIAKEY_STATUS_EXPIRED = MF_MEDIAKEY_STATUS.EXPIRED;
|
|
pub const MF_MEDIAKEY_STATUS_OUTPUT_DOWNSCALED = MF_MEDIAKEY_STATUS.OUTPUT_DOWNSCALED;
|
|
pub const MF_MEDIAKEY_STATUS_OUTPUT_NOT_ALLOWED = MF_MEDIAKEY_STATUS.OUTPUT_NOT_ALLOWED;
|
|
pub const MF_MEDIAKEY_STATUS_STATUS_PENDING = MF_MEDIAKEY_STATUS.STATUS_PENDING;
|
|
pub const MF_MEDIAKEY_STATUS_INTERNAL_ERROR = MF_MEDIAKEY_STATUS.INTERNAL_ERROR;
|
|
pub const MF_MEDIAKEY_STATUS_RELEASED = MF_MEDIAKEY_STATUS.RELEASED;
|
|
pub const MF_MEDIAKEY_STATUS_OUTPUT_RESTRICTED = MF_MEDIAKEY_STATUS.OUTPUT_RESTRICTED;
|
|
|
|
pub const MFMediaKeyStatus = extern struct {
|
|
pbKeyId: ?*u8,
|
|
cbKeyId: u32,
|
|
eMediaKeyStatus: MF_MEDIAKEY_STATUS,
|
|
};
|
|
|
|
pub const MF_MEDIAKEYSESSION_MESSAGETYPE = enum(i32) {
|
|
LICENSE_REQUEST = 0,
|
|
LICENSE_RENEWAL = 1,
|
|
LICENSE_RELEASE = 2,
|
|
INDIVIDUALIZATION_REQUEST = 3,
|
|
};
|
|
pub const MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_REQUEST = MF_MEDIAKEYSESSION_MESSAGETYPE.LICENSE_REQUEST;
|
|
pub const MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_RENEWAL = MF_MEDIAKEYSESSION_MESSAGETYPE.LICENSE_RENEWAL;
|
|
pub const MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_RELEASE = MF_MEDIAKEYSESSION_MESSAGETYPE.LICENSE_RELEASE;
|
|
pub const MF_MEDIAKEYSESSION_MESSAGETYPE_INDIVIDUALIZATION_REQUEST = MF_MEDIAKEYSESSION_MESSAGETYPE.INDIVIDUALIZATION_REQUEST;
|
|
|
|
pub const MF_CROSS_ORIGIN_POLICY = enum(i32) {
|
|
NONE = 0,
|
|
ANONYMOUS = 1,
|
|
USE_CREDENTIALS = 2,
|
|
};
|
|
pub const MF_CROSS_ORIGIN_POLICY_NONE = MF_CROSS_ORIGIN_POLICY.NONE;
|
|
pub const MF_CROSS_ORIGIN_POLICY_ANONYMOUS = MF_CROSS_ORIGIN_POLICY.ANONYMOUS;
|
|
pub const MF_CROSS_ORIGIN_POLICY_USE_CREDENTIALS = MF_CROSS_ORIGIN_POLICY.USE_CREDENTIALS;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFNetCrossOriginSupport_Value = Guid.initString("bc2b7d44-a72d-49d5-8376-1480dee58b22");
|
|
pub const IID_IMFNetCrossOriginSupport = &IID_IMFNetCrossOriginSupport_Value;
|
|
pub const IMFNetCrossOriginSupport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCrossOriginPolicy: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
pPolicy: ?*MF_CROSS_ORIGIN_POLICY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
pPolicy: ?*MF_CROSS_ORIGIN_POLICY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSourceOrigin: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
wszSourceOrigin: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
wszSourceOrigin: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsSameOrigin: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
wszURL: ?[*:0]const u16,
|
|
pfIsSameOrigin: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFNetCrossOriginSupport,
|
|
wszURL: ?[*:0]const u16,
|
|
pfIsSameOrigin: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCrossOriginSupport_GetCrossOriginPolicy(self: *const T, pPolicy: ?*MF_CROSS_ORIGIN_POLICY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCrossOriginSupport.VTable, @ptrCast(self.vtable)).GetCrossOriginPolicy(@as(*const IMFNetCrossOriginSupport, @ptrCast(self)), pPolicy);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCrossOriginSupport_GetSourceOrigin(self: *const T, wszSourceOrigin: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCrossOriginSupport.VTable, @ptrCast(self.vtable)).GetSourceOrigin(@as(*const IMFNetCrossOriginSupport, @ptrCast(self)), wszSourceOrigin);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFNetCrossOriginSupport_IsSameOrigin(self: *const T, wszURL: ?[*:0]const u16, pfIsSameOrigin: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFNetCrossOriginSupport.VTable, @ptrCast(self.vtable)).IsSameOrigin(@as(*const IMFNetCrossOriginSupport, @ptrCast(self)), wszURL, pfIsSameOrigin);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFHttpDownloadRequest_Value = Guid.initString("f779fddf-26e7-4270-8a8b-b983d1859de0");
|
|
pub const IID_IMFHttpDownloadRequest = &IID_IMFHttpDownloadRequest_Value;
|
|
pub const IMFHttpDownloadRequest = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
AddHeader: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
szHeader: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
szHeader: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginSendRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pbPayload: ?[*:0]const u8,
|
|
cbPayload: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pbPayload: ?[*:0]const u8,
|
|
cbPayload: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndSendRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginReceiveResponse: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndReceiveResponse: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginReadPayload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pb: [*:0]u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pb: [*:0]u8,
|
|
cb: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndReadPayload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
pqwOffset: ?*u64,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pResult: ?*IMFAsyncResult,
|
|
pqwOffset: ?*u64,
|
|
pcbRead: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
QueryHeader: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
szHeaderName: ?[*:0]const u16,
|
|
dwIndex: u32,
|
|
ppszHeaderValue: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
szHeaderName: ?[*:0]const u16,
|
|
dwIndex: u32,
|
|
ppszHeaderValue: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
ppszURL: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
ppszURL: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
HasNullSourceOrigin: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pfNullSourceOrigin: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pfNullSourceOrigin: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTimeSeekResult: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwStartTime: ?*u64,
|
|
pqwStopTime: ?*u64,
|
|
pqwDuration: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwStartTime: ?*u64,
|
|
pqwStopTime: ?*u64,
|
|
pqwDuration: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetHttpStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pdwHttpStatus: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pdwHttpStatus: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAtEndOfPayload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pfAtEndOfPayload: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pfAtEndOfPayload: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTotalLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwTotalLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwTotalLength: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRangeEndOffset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwRangeEnd: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
pqwRangeEnd: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadRequest,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_AddHeader(self: *const T, szHeader: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).AddHeader(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), szHeader);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_BeginSendRequest(self: *const T, pbPayload: ?[*:0]const u8, cbPayload: u32, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).BeginSendRequest(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pbPayload, cbPayload, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_EndSendRequest(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).EndSendRequest(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_BeginReceiveResponse(self: *const T, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).BeginReceiveResponse(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_EndReceiveResponse(self: *const T, pResult: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).EndReceiveResponse(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pResult);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_BeginReadPayload(self: *const T, pb: [*:0]u8, cb: u32, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).BeginReadPayload(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pb, cb, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_EndReadPayload(self: *const T, pResult: ?*IMFAsyncResult, pqwOffset: ?*u64, pcbRead: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).EndReadPayload(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pResult, pqwOffset, pcbRead);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_QueryHeader(self: *const T, szHeaderName: ?[*:0]const u16, dwIndex: u32, ppszHeaderValue: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).QueryHeader(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), szHeaderName, dwIndex, ppszHeaderValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetURL(self: *const T, ppszURL: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetURL(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), ppszURL);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_HasNullSourceOrigin(self: *const T, pfNullSourceOrigin: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).HasNullSourceOrigin(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pfNullSourceOrigin);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetTimeSeekResult(self: *const T, pqwStartTime: ?*u64, pqwStopTime: ?*u64, pqwDuration: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetTimeSeekResult(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pqwStartTime, pqwStopTime, pqwDuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetHttpStatus(self: *const T, pdwHttpStatus: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetHttpStatus(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pdwHttpStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetAtEndOfPayload(self: *const T, pfAtEndOfPayload: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetAtEndOfPayload(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pfAtEndOfPayload);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetTotalLength(self: *const T, pqwTotalLength: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetTotalLength(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pqwTotalLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_GetRangeEndOffset(self: *const T, pqwRangeEnd: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).GetRangeEndOffset(@as(*const IMFHttpDownloadRequest, @ptrCast(self)), pqwRangeEnd);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadRequest_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadRequest.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFHttpDownloadRequest, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFHttpDownloadSession_Value = Guid.initString("71fa9a2c-53ce-4662-a132-1a7e8cbf62db");
|
|
pub const IID_IMFHttpDownloadSession = &IID_IMFHttpDownloadSession_Value;
|
|
pub const IMFHttpDownloadSession = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetServer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
szServerName: ?[*:0]const u16,
|
|
nPort: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
szServerName: ?[*:0]const u16,
|
|
nPort: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
szObjectName: ?[*:0]const u16,
|
|
fBypassProxyCache: BOOL,
|
|
fSecure: BOOL,
|
|
szVerb: ?[*:0]const u16,
|
|
szReferrer: ?[*:0]const u16,
|
|
ppRequest: ?*?*IMFHttpDownloadRequest,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
szObjectName: ?[*:0]const u16,
|
|
fBypassProxyCache: BOOL,
|
|
fSecure: BOOL,
|
|
szVerb: ?[*:0]const u16,
|
|
szReferrer: ?[*:0]const u16,
|
|
ppRequest: ?*?*IMFHttpDownloadRequest,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadSession_SetServer(self: *const T, szServerName: ?[*:0]const u16, nPort: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadSession.VTable, @ptrCast(self.vtable)).SetServer(@as(*const IMFHttpDownloadSession, @ptrCast(self)), szServerName, nPort);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadSession_CreateRequest(self: *const T, szObjectName: ?[*:0]const u16, fBypassProxyCache: BOOL, fSecure: BOOL, szVerb: ?[*:0]const u16, szReferrer: ?[*:0]const u16, ppRequest: ?*?*IMFHttpDownloadRequest) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadSession.VTable, @ptrCast(self.vtable)).CreateRequest(@as(*const IMFHttpDownloadSession, @ptrCast(self)), szObjectName, fBypassProxyCache, fSecure, szVerb, szReferrer, ppRequest);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadSession_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadSession.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFHttpDownloadSession, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFHttpDownloadSessionProvider_Value = Guid.initString("1b4cf4b9-3a16-4115-839d-03cc5c99df01");
|
|
pub const IID_IMFHttpDownloadSessionProvider = &IID_IMFHttpDownloadSessionProvider_Value;
|
|
pub const IMFHttpDownloadSessionProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateHttpDownloadSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHttpDownloadSessionProvider,
|
|
wszScheme: ?[*:0]const u16,
|
|
ppDownloadSession: ?*?*IMFHttpDownloadSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHttpDownloadSessionProvider,
|
|
wszScheme: ?[*:0]const u16,
|
|
ppDownloadSession: ?*?*IMFHttpDownloadSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHttpDownloadSessionProvider_CreateHttpDownloadSession(self: *const T, wszScheme: ?[*:0]const u16, ppDownloadSession: ?*?*IMFHttpDownloadSession) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHttpDownloadSessionProvider.VTable, @ptrCast(self.vtable)).CreateHttpDownloadSession(@as(*const IMFHttpDownloadSessionProvider, @ptrCast(self)), wszScheme, ppDownloadSession);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_VIDEO_SPHERICAL_VIEWDIRECTION = extern struct {
|
|
iHeading: i32,
|
|
iPitch: i32,
|
|
iRoll: i32,
|
|
};
|
|
|
|
const IID_IMFMediaSource2_Value = Guid.initString("fbb03414-d13b-4786-8319-5ac51fc0a136");
|
|
pub const IID_IMFMediaSource2 = &IID_IMFMediaSource2_Value;
|
|
pub const IMFMediaSource2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaSourceEx.VTable,
|
|
SetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSource2,
|
|
dwStreamID: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSource2,
|
|
dwStreamID: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaSourceEx.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSource2_SetMediaType(self: *const T, dwStreamID: u32, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSource2.VTable, @ptrCast(self.vtable)).SetMediaType(@as(*const IMFMediaSource2, @ptrCast(self)), dwStreamID, pMediaType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaStream2_Value = Guid.initString("c5bc37d6-75c7-46a1-a132-81b5f723c20f");
|
|
pub const IID_IMFMediaStream2 = &IID_IMFMediaStream2_Value;
|
|
pub const IMFMediaStream2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaStream.VTable,
|
|
SetStreamState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStream2,
|
|
value: MF_STREAM_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStream2,
|
|
value: MF_STREAM_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaStream2,
|
|
value: ?*MF_STREAM_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaStream2,
|
|
value: ?*MF_STREAM_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaStream.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStream2_SetStreamState(self: *const T, value: MF_STREAM_STATE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStream2.VTable, @ptrCast(self.vtable)).SetStreamState(@as(*const IMFMediaStream2, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaStream2_GetStreamState(self: *const T, value: ?*MF_STREAM_STATE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaStream2.VTable, @ptrCast(self.vtable)).GetStreamState(@as(*const IMFMediaStream2, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFSensorDeviceType = enum(i32) {
|
|
Unknown = 0,
|
|
Device = 1,
|
|
MediaSource = 2,
|
|
FrameProvider = 3,
|
|
SensorTransform = 4,
|
|
};
|
|
pub const MFSensorDeviceType_Unknown = MFSensorDeviceType.Unknown;
|
|
pub const MFSensorDeviceType_Device = MFSensorDeviceType.Device;
|
|
pub const MFSensorDeviceType_MediaSource = MFSensorDeviceType.MediaSource;
|
|
pub const MFSensorDeviceType_FrameProvider = MFSensorDeviceType.FrameProvider;
|
|
pub const MFSensorDeviceType_SensorTransform = MFSensorDeviceType.SensorTransform;
|
|
|
|
pub const MFSensorStreamType = enum(i32) {
|
|
Unknown = 0,
|
|
Input = 1,
|
|
Output = 2,
|
|
};
|
|
pub const MFSensorStreamType_Unknown = MFSensorStreamType.Unknown;
|
|
pub const MFSensorStreamType_Input = MFSensorStreamType.Input;
|
|
pub const MFSensorStreamType_Output = MFSensorStreamType.Output;
|
|
|
|
pub const MFSensorDeviceMode = enum(i32) {
|
|
Controller = 0,
|
|
Shared = 1,
|
|
};
|
|
pub const MFSensorDeviceMode_Controller = MFSensorDeviceMode.Controller;
|
|
pub const MFSensorDeviceMode_Shared = MFSensorDeviceMode.Shared;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.14393'
|
|
const IID_IMFSensorDevice_Value = Guid.initString("fb9f48f2-2a18-4e28-9730-786f30f04dc4");
|
|
pub const IID_IMFSensorDevice = &IID_IMFSensorDevice_Value;
|
|
pub const IMFSensorDevice = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDeviceId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
pDeviceId: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
pDeviceId: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDeviceType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
pType: ?*MFSensorDeviceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
pType: ?*MFSensorDeviceType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
pFlags: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
pFlags: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSymbolicLink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: i32,
|
|
pcchWritten: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: i32,
|
|
pcchWritten: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDeviceAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamAttributesCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
eType: MFSensorStreamType,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
eType: MFSensorStreamType,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
eType: MFSensorStreamType,
|
|
dwIndex: u32,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
eType: MFSensorStreamType,
|
|
dwIndex: u32,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSensorDeviceMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
eMode: MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
eMode: MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSensorDeviceMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorDevice,
|
|
peMode: ?*MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorDevice,
|
|
peMode: ?*MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetDeviceId(self: *const T, pDeviceId: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetDeviceId(@as(*const IMFSensorDevice, @ptrCast(self)), pDeviceId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetDeviceType(self: *const T, pType: ?*MFSensorDeviceType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetDeviceType(@as(*const IMFSensorDevice, @ptrCast(self)), pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetFlags(self: *const T, pFlags: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFSensorDevice, @ptrCast(self)), pFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetSymbolicLink(self: *const T, SymbolicLink: [*:0]u16, cchSymbolicLink: i32, pcchWritten: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetSymbolicLink(@as(*const IMFSensorDevice, @ptrCast(self)), SymbolicLink, cchSymbolicLink, pcchWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetDeviceAttributes(self: *const T, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetDeviceAttributes(@as(*const IMFSensorDevice, @ptrCast(self)), ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetStreamAttributesCount(self: *const T, eType: MFSensorStreamType, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetStreamAttributesCount(@as(*const IMFSensorDevice, @ptrCast(self)), eType, pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetStreamAttributes(self: *const T, eType: MFSensorStreamType, dwIndex: u32, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetStreamAttributes(@as(*const IMFSensorDevice, @ptrCast(self)), eType, dwIndex, ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_SetSensorDeviceMode(self: *const T, eMode: MFSensorDeviceMode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).SetSensorDeviceMode(@as(*const IMFSensorDevice, @ptrCast(self)), eMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorDevice_GetSensorDeviceMode(self: *const T, peMode: ?*MFSensorDeviceMode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorDevice.VTable, @ptrCast(self.vtable)).GetSensorDeviceMode(@as(*const IMFSensorDevice, @ptrCast(self)), peMode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.14393'
|
|
const IID_IMFSensorGroup_Value = Guid.initString("4110243a-9757-461f-89f1-f22345bcab4e");
|
|
pub const IID_IMFSensorGroup = &IID_IMFSensorGroup_Value;
|
|
pub const IMFSensorGroup = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetSymbolicLink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: i32,
|
|
pcchWritten: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: i32,
|
|
pcchWritten: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
pFlags: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
pFlags: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSensorGroupAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSensorDeviceCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSensorDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
dwIndex: u32,
|
|
ppDevice: ?*?*IMFSensorDevice,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
dwIndex: u32,
|
|
ppDevice: ?*?*IMFSensorDevice,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDefaultSensorDeviceIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
dwIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
dwIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDefaultSensorDeviceIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
pdwIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
pdwIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateMediaSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorGroup,
|
|
ppSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorGroup,
|
|
ppSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetSymbolicLink(self: *const T, SymbolicLink: [*:0]u16, cchSymbolicLink: i32, pcchWritten: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetSymbolicLink(@as(*const IMFSensorGroup, @ptrCast(self)), SymbolicLink, cchSymbolicLink, pcchWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetFlags(self: *const T, pFlags: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFSensorGroup, @ptrCast(self)), pFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetSensorGroupAttributes(self: *const T, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetSensorGroupAttributes(@as(*const IMFSensorGroup, @ptrCast(self)), ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetSensorDeviceCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetSensorDeviceCount(@as(*const IMFSensorGroup, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetSensorDevice(self: *const T, dwIndex: u32, ppDevice: ?*?*IMFSensorDevice) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetSensorDevice(@as(*const IMFSensorGroup, @ptrCast(self)), dwIndex, ppDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_SetDefaultSensorDeviceIndex(self: *const T, dwIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).SetDefaultSensorDeviceIndex(@as(*const IMFSensorGroup, @ptrCast(self)), dwIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_GetDefaultSensorDeviceIndex(self: *const T, pdwIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).GetDefaultSensorDeviceIndex(@as(*const IMFSensorGroup, @ptrCast(self)), pdwIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorGroup_CreateMediaSource(self: *const T, ppSource: ?*?*IMFMediaSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorGroup.VTable, @ptrCast(self.vtable)).CreateMediaSource(@as(*const IMFSensorGroup, @ptrCast(self)), ppSource);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorStream_Value = Guid.initString("e9a42171-c56e-498a-8b39-eda5a070b7fc");
|
|
pub const IID_IMFSensorStream = &IID_IMFSensorStream_Value;
|
|
pub const IMFSensorStream = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetMediaTypeCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorStream,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorStream,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorStream,
|
|
dwIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorStream,
|
|
dwIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CloneSensorStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorStream,
|
|
ppStream: ?*?*IMFSensorStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorStream,
|
|
ppStream: ?*?*IMFSensorStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorStream_GetMediaTypeCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorStream.VTable, @ptrCast(self.vtable)).GetMediaTypeCount(@as(*const IMFSensorStream, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorStream_GetMediaType(self: *const T, dwIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorStream.VTable, @ptrCast(self.vtable)).GetMediaType(@as(*const IMFSensorStream, @ptrCast(self)), dwIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorStream_CloneSensorStream(self: *const T, ppStream: ?*?*IMFSensorStream) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorStream.VTable, @ptrCast(self.vtable)).CloneSensorStream(@as(*const IMFSensorStream, @ptrCast(self)), ppStream);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorTransformFactory_Value = Guid.initString("eed9c2ee-66b4-4f18-a697-ac7d3960215c");
|
|
pub const IID_IMFSensorTransformFactory = &IID_IMFSensorTransformFactory_Value;
|
|
pub const IMFSensorTransformFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetFactoryAttributes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InitializeFactory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
dwMaxTransformCount: u32,
|
|
pSensorDevices: ?*IMFCollection,
|
|
pAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
dwMaxTransformCount: u32,
|
|
pSensorDevices: ?*IMFCollection,
|
|
pAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTransformCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTransformInformation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
TransformIndex: u32,
|
|
pguidTransformId: ?*Guid,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
ppStreamInformation: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
TransformIndex: u32,
|
|
pguidTransformId: ?*Guid,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
ppStreamInformation: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateTransform: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
guidSensorTransformID: ?*const Guid,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppDeviceMFT: ?*?*IMFDeviceTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorTransformFactory,
|
|
guidSensorTransformID: ?*const Guid,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppDeviceMFT: ?*?*IMFDeviceTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorTransformFactory_GetFactoryAttributes(self: *const T, ppAttributes: ?*?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorTransformFactory.VTable, @ptrCast(self.vtable)).GetFactoryAttributes(@as(*const IMFSensorTransformFactory, @ptrCast(self)), ppAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorTransformFactory_InitializeFactory(self: *const T, dwMaxTransformCount: u32, pSensorDevices: ?*IMFCollection, pAttributes: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorTransformFactory.VTable, @ptrCast(self.vtable)).InitializeFactory(@as(*const IMFSensorTransformFactory, @ptrCast(self)), dwMaxTransformCount, pSensorDevices, pAttributes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorTransformFactory_GetTransformCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorTransformFactory.VTable, @ptrCast(self.vtable)).GetTransformCount(@as(*const IMFSensorTransformFactory, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorTransformFactory_GetTransformInformation(self: *const T, TransformIndex: u32, pguidTransformId: ?*Guid, ppAttributes: ?*?*IMFAttributes, ppStreamInformation: ?*?*IMFCollection) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorTransformFactory.VTable, @ptrCast(self.vtable)).GetTransformInformation(@as(*const IMFSensorTransformFactory, @ptrCast(self)), TransformIndex, pguidTransformId, ppAttributes, ppStreamInformation);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorTransformFactory_CreateTransform(self: *const T, guidSensorTransformID: ?*const Guid, pAttributes: ?*IMFAttributes, ppDeviceMFT: ?*?*IMFDeviceTransform) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorTransformFactory.VTable, @ptrCast(self.vtable)).CreateTransform(@as(*const IMFSensorTransformFactory, @ptrCast(self)), guidSensorTransformID, pAttributes, ppDeviceMFT);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const SENSORPROFILEID = extern struct {
|
|
Type: Guid,
|
|
Index: u32,
|
|
Unused: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.17134'
|
|
const IID_IMFSensorProfile_Value = Guid.initString("22f765d1-8dab-4107-846d-56baf72215e7");
|
|
pub const IID_IMFSensorProfile = &IID_IMFSensorProfile_Value;
|
|
pub const IMFSensorProfile = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetProfileId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfile,
|
|
pId: ?*SENSORPROFILEID,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfile,
|
|
pId: ?*SENSORPROFILEID,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddProfileFilter: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfile,
|
|
StreamId: u32,
|
|
wzFilterSetString: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfile,
|
|
StreamId: u32,
|
|
wzFilterSetString: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsMediaTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfile,
|
|
StreamId: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pfSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfile,
|
|
StreamId: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pfSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddBlockedControl: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfile,
|
|
wzBlockedControl: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfile,
|
|
wzBlockedControl: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfile_GetProfileId(self: *const T, pId: ?*SENSORPROFILEID) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfile.VTable, @ptrCast(self.vtable)).GetProfileId(@as(*const IMFSensorProfile, @ptrCast(self)), pId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfile_AddProfileFilter(self: *const T, StreamId: u32, wzFilterSetString: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfile.VTable, @ptrCast(self.vtable)).AddProfileFilter(@as(*const IMFSensorProfile, @ptrCast(self)), StreamId, wzFilterSetString);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfile_IsMediaTypeSupported(self: *const T, StreamId: u32, pMediaType: ?*IMFMediaType, pfSupported: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfile.VTable, @ptrCast(self.vtable)).IsMediaTypeSupported(@as(*const IMFSensorProfile, @ptrCast(self)), StreamId, pMediaType, pfSupported);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfile_AddBlockedControl(self: *const T, wzBlockedControl: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfile.VTable, @ptrCast(self.vtable)).AddBlockedControl(@as(*const IMFSensorProfile, @ptrCast(self)), wzBlockedControl);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.17134'
|
|
const IID_IMFSensorProfileCollection_Value = Guid.initString("c95ea55b-0187-48be-9353-8d2507662351");
|
|
pub const IID_IMFSensorProfileCollection = &IID_IMFSensorProfileCollection_Value;
|
|
pub const IMFSensorProfileCollection = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetProfileCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
Index: u32,
|
|
ppProfile: ?*?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
Index: u32,
|
|
ppProfile: ?*?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
pProfile: ?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
pProfile: ?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FindProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
ProfileId: ?*SENSORPROFILEID,
|
|
ppProfile: ?*?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
ProfileId: ?*SENSORPROFILEID,
|
|
ppProfile: ?*?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveProfileByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
Index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
RemoveProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
ProfileId: ?*SENSORPROFILEID,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSensorProfileCollection,
|
|
ProfileId: ?*SENSORPROFILEID,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_GetProfileCount(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).GetProfileCount(@as(*const IMFSensorProfileCollection, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_GetProfile(self: *const T, Index: u32, ppProfile: ?*?*IMFSensorProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).GetProfile(@as(*const IMFSensorProfileCollection, @ptrCast(self)), Index, ppProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_AddProfile(self: *const T, pProfile: ?*IMFSensorProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).AddProfile(@as(*const IMFSensorProfileCollection, @ptrCast(self)), pProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_FindProfile(self: *const T, ProfileId: ?*SENSORPROFILEID, ppProfile: ?*?*IMFSensorProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).FindProfile(@as(*const IMFSensorProfileCollection, @ptrCast(self)), ProfileId, ppProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_RemoveProfileByIndex(self: *const T, Index: u32) callconv(.Inline) void {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).RemoveProfileByIndex(@as(*const IMFSensorProfileCollection, @ptrCast(self)), Index);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProfileCollection_RemoveProfile(self: *const T, ProfileId: ?*SENSORPROFILEID) callconv(.Inline) void {
|
|
return @as(*const IMFSensorProfileCollection.VTable, @ptrCast(self.vtable)).RemoveProfile(@as(*const IMFSensorProfileCollection, @ptrCast(self)), ProfileId);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorProcessActivity_Value = Guid.initString("39dc7f4a-b141-4719-813c-a7f46162a2b8");
|
|
pub const IID_IMFSensorProcessActivity = &IID_IMFSensorProcessActivity_Value;
|
|
pub const IMFSensorProcessActivity = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetProcessId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pPID: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pPID: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamingState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pfStreaming: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pfStreaming: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamingMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pMode: ?*MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pMode: ?*MFSensorDeviceMode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetReportTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pft: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorProcessActivity,
|
|
pft: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProcessActivity_GetProcessId(self: *const T, pPID: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProcessActivity.VTable, @ptrCast(self.vtable)).GetProcessId(@as(*const IMFSensorProcessActivity, @ptrCast(self)), pPID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProcessActivity_GetStreamingState(self: *const T, pfStreaming: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProcessActivity.VTable, @ptrCast(self.vtable)).GetStreamingState(@as(*const IMFSensorProcessActivity, @ptrCast(self)), pfStreaming);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProcessActivity_GetStreamingMode(self: *const T, pMode: ?*MFSensorDeviceMode) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProcessActivity.VTable, @ptrCast(self.vtable)).GetStreamingMode(@as(*const IMFSensorProcessActivity, @ptrCast(self)), pMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorProcessActivity_GetReportTime(self: *const T, pft: ?*FILETIME) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorProcessActivity.VTable, @ptrCast(self.vtable)).GetReportTime(@as(*const IMFSensorProcessActivity, @ptrCast(self)), pft);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorActivityReport_Value = Guid.initString("3e8c4be1-a8c2-4528-90de-2851bde5fead");
|
|
pub const IID_IMFSensorActivityReport = &IID_IMFSensorActivityReport_Value;
|
|
pub const IMFSensorActivityReport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetFriendlyName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityReport,
|
|
FriendlyName: [*:0]u16,
|
|
cchFriendlyName: u32,
|
|
pcchWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityReport,
|
|
FriendlyName: [*:0]u16,
|
|
cchFriendlyName: u32,
|
|
pcchWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSymbolicLink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityReport,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: u32,
|
|
pcchWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityReport,
|
|
SymbolicLink: [*:0]u16,
|
|
cchSymbolicLink: u32,
|
|
pcchWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcessCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityReport,
|
|
pcCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityReport,
|
|
pcCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcessActivity: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityReport,
|
|
Index: u32,
|
|
ppProcessActivity: ?*?*IMFSensorProcessActivity,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityReport,
|
|
Index: u32,
|
|
ppProcessActivity: ?*?*IMFSensorProcessActivity,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityReport_GetFriendlyName(self: *const T, FriendlyName: [*:0]u16, cchFriendlyName: u32, pcchWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityReport.VTable, @ptrCast(self.vtable)).GetFriendlyName(@as(*const IMFSensorActivityReport, @ptrCast(self)), FriendlyName, cchFriendlyName, pcchWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityReport_GetSymbolicLink(self: *const T, SymbolicLink: [*:0]u16, cchSymbolicLink: u32, pcchWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityReport.VTable, @ptrCast(self.vtable)).GetSymbolicLink(@as(*const IMFSensorActivityReport, @ptrCast(self)), SymbolicLink, cchSymbolicLink, pcchWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityReport_GetProcessCount(self: *const T, pcCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityReport.VTable, @ptrCast(self.vtable)).GetProcessCount(@as(*const IMFSensorActivityReport, @ptrCast(self)), pcCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityReport_GetProcessActivity(self: *const T, Index: u32, ppProcessActivity: ?*?*IMFSensorProcessActivity) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityReport.VTable, @ptrCast(self.vtable)).GetProcessActivity(@as(*const IMFSensorActivityReport, @ptrCast(self)), Index, ppProcessActivity);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorActivitiesReport_Value = Guid.initString("683f7a5e-4a19-43cd-b1a9-dbf4ab3f7777");
|
|
pub const IID_IMFSensorActivitiesReport = &IID_IMFSensorActivitiesReport_Value;
|
|
pub const IMFSensorActivitiesReport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
pcCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
pcCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetActivityReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
Index: u32,
|
|
sensorActivityReport: ?*?*IMFSensorActivityReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
Index: u32,
|
|
sensorActivityReport: ?*?*IMFSensorActivityReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetActivityReportByDeviceName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
SymbolicName: ?[*:0]const u16,
|
|
sensorActivityReport: ?*?*IMFSensorActivityReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivitiesReport,
|
|
SymbolicName: ?[*:0]const u16,
|
|
sensorActivityReport: ?*?*IMFSensorActivityReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivitiesReport_GetCount(self: *const T, pcCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivitiesReport.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IMFSensorActivitiesReport, @ptrCast(self)), pcCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivitiesReport_GetActivityReport(self: *const T, Index: u32, sensorActivityReport: ?*?*IMFSensorActivityReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivitiesReport.VTable, @ptrCast(self.vtable)).GetActivityReport(@as(*const IMFSensorActivitiesReport, @ptrCast(self)), Index, sensorActivityReport);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivitiesReport_GetActivityReportByDeviceName(self: *const T, SymbolicName: ?[*:0]const u16, sensorActivityReport: ?*?*IMFSensorActivityReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivitiesReport.VTable, @ptrCast(self.vtable)).GetActivityReportByDeviceName(@as(*const IMFSensorActivitiesReport, @ptrCast(self)), SymbolicName, sensorActivityReport);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorActivitiesReportCallback_Value = Guid.initString("de5072ee-dbe3-46dc-8a87-b6f631194751");
|
|
pub const IID_IMFSensorActivitiesReportCallback = &IID_IMFSensorActivitiesReportCallback_Value;
|
|
pub const IMFSensorActivitiesReportCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnActivitiesReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivitiesReportCallback,
|
|
sensorActivitiesReport: ?*IMFSensorActivitiesReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivitiesReportCallback,
|
|
sensorActivitiesReport: ?*IMFSensorActivitiesReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivitiesReportCallback_OnActivitiesReport(self: *const T, sensorActivitiesReport: ?*IMFSensorActivitiesReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivitiesReportCallback.VTable, @ptrCast(self.vtable)).OnActivitiesReport(@as(*const IMFSensorActivitiesReportCallback, @ptrCast(self)), sensorActivitiesReport);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSensorActivityMonitor_Value = Guid.initString("d0cef145-b3f4-4340-a2e5-7a5080ca05cb");
|
|
pub const IID_IMFSensorActivityMonitor = &IID_IMFSensorActivityMonitor_Value;
|
|
pub const IMFSensorActivityMonitor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSensorActivityMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSensorActivityMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityMonitor_Start(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityMonitor.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFSensorActivityMonitor, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSensorActivityMonitor_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSensorActivityMonitor.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFSensorActivityMonitor, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_CameraModel = extern struct {
|
|
FocalLength_x: f32,
|
|
FocalLength_y: f32,
|
|
PrincipalPoint_x: f32,
|
|
PrincipalPoint_y: f32,
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_DistortionModel6KT = extern struct {
|
|
Radial_k1: f32,
|
|
Radial_k2: f32,
|
|
Radial_k3: f32,
|
|
Radial_k4: f32,
|
|
Radial_k5: f32,
|
|
Radial_k6: f32,
|
|
Tangential_p1: f32,
|
|
Tangential_p2: f32,
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_DistortionModelArcTan = extern struct {
|
|
Radial_k0: f32,
|
|
DistortionCenter_x: f32,
|
|
DistortionCenter_y: f32,
|
|
Tangential_x: f32,
|
|
Tangential_y: f32,
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_DistortionModelType = enum(i32) {
|
|
@"6KT" = 0,
|
|
ArcTan = 1,
|
|
};
|
|
pub const MFCameraIntrinsic_DistortionModelType_6KT = MFCameraIntrinsic_DistortionModelType.@"6KT";
|
|
pub const MFCameraIntrinsic_DistortionModelType_ArcTan = MFCameraIntrinsic_DistortionModelType.ArcTan;
|
|
|
|
pub const MFExtendedCameraIntrinsic_IntrinsicModel = extern struct {
|
|
Width: u32,
|
|
Height: u32,
|
|
SplitFrameId: u32,
|
|
CameraModel: MFCameraIntrinsic_CameraModel,
|
|
};
|
|
|
|
const IID_IMFExtendedCameraIntrinsicModel_Value = Guid.initString("5c595e64-4630-4231-855a-12842f733245");
|
|
pub const IID_IMFExtendedCameraIntrinsicModel = &IID_IMFExtendedCameraIntrinsicModel_Value;
|
|
pub const IMFExtendedCameraIntrinsicModel = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pIntrinsicModel: ?*MFExtendedCameraIntrinsic_IntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pIntrinsicModel: ?*MFExtendedCameraIntrinsic_IntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pIntrinsicModel: ?*const MFExtendedCameraIntrinsic_IntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pIntrinsicModel: ?*const MFExtendedCameraIntrinsic_IntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDistortionModelType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pDistortionModelType: ?*MFCameraIntrinsic_DistortionModelType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicModel,
|
|
pDistortionModelType: ?*MFCameraIntrinsic_DistortionModelType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicModel_GetModel(self: *const T, pIntrinsicModel: ?*MFExtendedCameraIntrinsic_IntrinsicModel) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicModel.VTable, @ptrCast(self.vtable)).GetModel(@as(*const IMFExtendedCameraIntrinsicModel, @ptrCast(self)), pIntrinsicModel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicModel_SetModel(self: *const T, pIntrinsicModel: ?*const MFExtendedCameraIntrinsic_IntrinsicModel) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicModel.VTable, @ptrCast(self.vtable)).SetModel(@as(*const IMFExtendedCameraIntrinsicModel, @ptrCast(self)), pIntrinsicModel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicModel_GetDistortionModelType(self: *const T, pDistortionModelType: ?*MFCameraIntrinsic_DistortionModelType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicModel.VTable, @ptrCast(self.vtable)).GetDistortionModelType(@as(*const IMFExtendedCameraIntrinsicModel, @ptrCast(self)), pDistortionModelType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedCameraIntrinsicsDistortionModel6KT_Value = Guid.initString("74c2653b-5f55-4eb1-9f0f-18b8f68b7d3d");
|
|
pub const IID_IMFExtendedCameraIntrinsicsDistortionModel6KT = &IID_IMFExtendedCameraIntrinsicsDistortionModel6KT_Value;
|
|
pub const IMFExtendedCameraIntrinsicsDistortionModel6KT = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDistortionModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModel6KT,
|
|
pDistortionModel: ?*MFCameraIntrinsic_DistortionModel6KT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModel6KT,
|
|
pDistortionModel: ?*MFCameraIntrinsic_DistortionModel6KT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDistortionModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModel6KT,
|
|
pDistortionModel: ?*const MFCameraIntrinsic_DistortionModel6KT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModel6KT,
|
|
pDistortionModel: ?*const MFCameraIntrinsic_DistortionModel6KT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicsDistortionModel6KT_GetDistortionModel(self: *const T, pDistortionModel: ?*MFCameraIntrinsic_DistortionModel6KT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicsDistortionModel6KT.VTable, @ptrCast(self.vtable)).GetDistortionModel(@as(*const IMFExtendedCameraIntrinsicsDistortionModel6KT, @ptrCast(self)), pDistortionModel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicsDistortionModel6KT_SetDistortionModel(self: *const T, pDistortionModel: ?*const MFCameraIntrinsic_DistortionModel6KT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicsDistortionModel6KT.VTable, @ptrCast(self.vtable)).SetDistortionModel(@as(*const IMFExtendedCameraIntrinsicsDistortionModel6KT, @ptrCast(self)), pDistortionModel);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedCameraIntrinsicsDistortionModelArcTan_Value = Guid.initString("812d5f95-b572-45dc-bafc-ae24199ddda8");
|
|
pub const IID_IMFExtendedCameraIntrinsicsDistortionModelArcTan = &IID_IMFExtendedCameraIntrinsicsDistortionModelArcTan_Value;
|
|
pub const IMFExtendedCameraIntrinsicsDistortionModelArcTan = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDistortionModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModelArcTan,
|
|
pDistortionModel: ?*MFCameraIntrinsic_DistortionModelArcTan,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModelArcTan,
|
|
pDistortionModel: ?*MFCameraIntrinsic_DistortionModelArcTan,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDistortionModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModelArcTan,
|
|
pDistortionModel: ?*const MFCameraIntrinsic_DistortionModelArcTan,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsicsDistortionModelArcTan,
|
|
pDistortionModel: ?*const MFCameraIntrinsic_DistortionModelArcTan,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicsDistortionModelArcTan_GetDistortionModel(self: *const T, pDistortionModel: ?*MFCameraIntrinsic_DistortionModelArcTan) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicsDistortionModelArcTan.VTable, @ptrCast(self.vtable)).GetDistortionModel(@as(*const IMFExtendedCameraIntrinsicsDistortionModelArcTan, @ptrCast(self)), pDistortionModel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsicsDistortionModelArcTan_SetDistortionModel(self: *const T, pDistortionModel: ?*const MFCameraIntrinsic_DistortionModelArcTan) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsicsDistortionModelArcTan.VTable, @ptrCast(self.vtable)).SetDistortionModel(@as(*const IMFExtendedCameraIntrinsicsDistortionModelArcTan, @ptrCast(self)), pDistortionModel);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedCameraIntrinsics_Value = Guid.initString("687f6dac-6987-4750-a16a-734d1e7a10fe");
|
|
pub const IID_IMFExtendedCameraIntrinsics = &IID_IMFExtendedCameraIntrinsics_Value;
|
|
pub const IMFExtendedCameraIntrinsics = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
InitializeFromBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBuffer: ?*u8,
|
|
dwBufferSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBuffer: ?*u8,
|
|
dwBufferSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBufferSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pdwBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pdwBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SerializeToBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBuffer: ?*u8,
|
|
pdwBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBuffer: ?*u8,
|
|
pdwBufferSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIntrinsicModelCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pdwCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIntrinsicModelByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
dwIndex: u32,
|
|
ppIntrinsicModel: ?*?*IMFExtendedCameraIntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
dwIndex: u32,
|
|
ppIntrinsicModel: ?*?*IMFExtendedCameraIntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddIntrinsicModel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pIntrinsicModel: ?*IMFExtendedCameraIntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraIntrinsics,
|
|
pIntrinsicModel: ?*IMFExtendedCameraIntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_InitializeFromBuffer(self: *const T, pbBuffer: ?*u8, dwBufferSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).InitializeFromBuffer(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), pbBuffer, dwBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_GetBufferSize(self: *const T, pdwBufferSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).GetBufferSize(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), pdwBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_SerializeToBuffer(self: *const T, pbBuffer: ?*u8, pdwBufferSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).SerializeToBuffer(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), pbBuffer, pdwBufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_GetIntrinsicModelCount(self: *const T, pdwCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).GetIntrinsicModelCount(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), pdwCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_GetIntrinsicModelByIndex(self: *const T, dwIndex: u32, ppIntrinsicModel: ?*?*IMFExtendedCameraIntrinsicModel) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).GetIntrinsicModelByIndex(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), dwIndex, ppIntrinsicModel);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraIntrinsics_AddIntrinsicModel(self: *const T, pIntrinsicModel: ?*IMFExtendedCameraIntrinsicModel) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraIntrinsics.VTable, @ptrCast(self.vtable)).AddIntrinsicModel(@as(*const IMFExtendedCameraIntrinsics, @ptrCast(self)), pIntrinsicModel);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedCameraControl_Value = Guid.initString("38e33520-fca1-4845-a27a-68b7c6ab3789");
|
|
pub const IID_IMFExtendedCameraControl = &IID_IMFExtendedCameraControl_Value;
|
|
pub const IMFExtendedCameraControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCapabilities: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
},
|
|
SetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
ulFlags: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
ulFlags: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) u64,
|
|
},
|
|
LockPayload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
ppPayload: ?*?*u8,
|
|
pulPayload: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
ppPayload: ?*?*u8,
|
|
pulPayload: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnlockPayload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CommitSettings: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_GetCapabilities(self: *const T) callconv(.Inline) u64 {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).GetCapabilities(@as(*const IMFExtendedCameraControl, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_SetFlags(self: *const T, ulFlags: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).SetFlags(@as(*const IMFExtendedCameraControl, @ptrCast(self)), ulFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_GetFlags(self: *const T) callconv(.Inline) u64 {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFExtendedCameraControl, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_LockPayload(self: *const T, ppPayload: ?*?*u8, pulPayload: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).LockPayload(@as(*const IMFExtendedCameraControl, @ptrCast(self)), ppPayload, pulPayload);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_UnlockPayload(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).UnlockPayload(@as(*const IMFExtendedCameraControl, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraControl_CommitSettings(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraControl.VTable, @ptrCast(self.vtable)).CommitSettings(@as(*const IMFExtendedCameraControl, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedCameraController_Value = Guid.initString("b91ebfee-ca03-4af4-8a82-a31752f4a0fc");
|
|
pub const IID_IMFExtendedCameraController = &IID_IMFExtendedCameraController_Value;
|
|
pub const IMFExtendedCameraController = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetExtendedCameraControl: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedCameraController,
|
|
dwStreamIndex: u32,
|
|
ulPropertyId: u32,
|
|
ppControl: ?*?*IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedCameraController,
|
|
dwStreamIndex: u32,
|
|
ulPropertyId: u32,
|
|
ppControl: ?*?*IMFExtendedCameraControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedCameraController_GetExtendedCameraControl(self: *const T, dwStreamIndex: u32, ulPropertyId: u32, ppControl: ?*?*IMFExtendedCameraControl) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedCameraController.VTable, @ptrCast(self.vtable)).GetExtendedCameraControl(@as(*const IMFExtendedCameraController, @ptrCast(self)), dwStreamIndex, ulPropertyId, ppControl);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFRelativePanelReport_Value = Guid.initString("f25362ea-2c0e-447f-81e2-755914cdc0c3");
|
|
pub const IID_IMFRelativePanelReport = &IID_IMFRelativePanelReport_Value;
|
|
pub const IMFRelativePanelReport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetRelativePanel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRelativePanelReport,
|
|
panel: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRelativePanelReport,
|
|
panel: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRelativePanelReport_GetRelativePanel(self: *const T, panel: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRelativePanelReport.VTable, @ptrCast(self.vtable)).GetRelativePanel(@as(*const IMFRelativePanelReport, @ptrCast(self)), panel);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFRelativePanelWatcher_Value = Guid.initString("421af7f6-573e-4ad0-8fda-2e57cedb18c6");
|
|
pub const IID_IMFRelativePanelWatcher = &IID_IMFRelativePanelWatcher_Value;
|
|
pub const IMFRelativePanelWatcher = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFShutdown.VTable,
|
|
BeginGetReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndGetReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppRelativePanelReport: ?*?*IMFRelativePanelReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppRelativePanelReport: ?*?*IMFRelativePanelReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
ppRelativePanelReport: ?*?*IMFRelativePanelReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFRelativePanelWatcher,
|
|
ppRelativePanelReport: ?*?*IMFRelativePanelReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFShutdown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRelativePanelWatcher_BeginGetReport(self: *const T, pCallback: ?*IMFAsyncCallback, pState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRelativePanelWatcher.VTable, @ptrCast(self.vtable)).BeginGetReport(@as(*const IMFRelativePanelWatcher, @ptrCast(self)), pCallback, pState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRelativePanelWatcher_EndGetReport(self: *const T, pResult: ?*IMFAsyncResult, ppRelativePanelReport: ?*?*IMFRelativePanelReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRelativePanelWatcher.VTable, @ptrCast(self.vtable)).EndGetReport(@as(*const IMFRelativePanelWatcher, @ptrCast(self)), pResult, ppRelativePanelReport);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFRelativePanelWatcher_GetReport(self: *const T, ppRelativePanelReport: ?*?*IMFRelativePanelReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFRelativePanelWatcher.VTable, @ptrCast(self.vtable)).GetReport(@as(*const IMFRelativePanelWatcher, @ptrCast(self)), ppRelativePanelReport);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFCameraOcclusionState = enum(i32) {
|
|
pen = 0,
|
|
ccludedByLid = 1,
|
|
ccludedByCameraHardware = 2,
|
|
};
|
|
pub const MFCameraOcclusionState_Open = MFCameraOcclusionState.pen;
|
|
pub const MFCameraOcclusionState_OccludedByLid = MFCameraOcclusionState.ccludedByLid;
|
|
pub const MFCameraOcclusionState_OccludedByCameraHardware = MFCameraOcclusionState.ccludedByCameraHardware;
|
|
|
|
const IID_IMFCameraOcclusionStateReport_Value = Guid.initString("1640b2cf-74da-4462-a43b-b76d3bdc1434");
|
|
pub const IID_IMFCameraOcclusionStateReport = &IID_IMFCameraOcclusionStateReport_Value;
|
|
pub const IMFCameraOcclusionStateReport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetOcclusionState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraOcclusionStateReport,
|
|
occlusionState: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCameraOcclusionStateReport,
|
|
occlusionState: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraOcclusionStateReport_GetOcclusionState(self: *const T, occlusionState: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCameraOcclusionStateReport.VTable, @ptrCast(self.vtable)).GetOcclusionState(@as(*const IMFCameraOcclusionStateReport, @ptrCast(self)), occlusionState);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFCameraOcclusionStateReportCallback_Value = Guid.initString("6e5841c7-3889-4019-9035-783fb19b5948");
|
|
pub const IID_IMFCameraOcclusionStateReportCallback = &IID_IMFCameraOcclusionStateReportCallback_Value;
|
|
pub const IMFCameraOcclusionStateReportCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnOcclusionStateReport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraOcclusionStateReportCallback,
|
|
occlusionStateReport: ?*IMFCameraOcclusionStateReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCameraOcclusionStateReportCallback,
|
|
occlusionStateReport: ?*IMFCameraOcclusionStateReport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraOcclusionStateReportCallback_OnOcclusionStateReport(self: *const T, occlusionStateReport: ?*IMFCameraOcclusionStateReport) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCameraOcclusionStateReportCallback.VTable, @ptrCast(self.vtable)).OnOcclusionStateReport(@as(*const IMFCameraOcclusionStateReportCallback, @ptrCast(self)), occlusionStateReport);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFCameraOcclusionStateMonitor_Value = Guid.initString("cc692f46-c697-47e2-a72d-7b064617749b");
|
|
pub const IID_IMFCameraOcclusionStateMonitor = &IID_IMFCameraOcclusionStateMonitor_Value;
|
|
pub const IMFCameraOcclusionStateMonitor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSupportedStates: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraOcclusionStateMonitor_Start(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCameraOcclusionStateMonitor.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFCameraOcclusionStateMonitor, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraOcclusionStateMonitor_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCameraOcclusionStateMonitor.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFCameraOcclusionStateMonitor, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraOcclusionStateMonitor_GetSupportedStates(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFCameraOcclusionStateMonitor.VTable, @ptrCast(self.vtable)).GetSupportedStates(@as(*const IMFCameraOcclusionStateMonitor, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFVideoCaptureSampleAllocator_Value = Guid.initString("725b77c7-ca9f-4fe5-9d72-9946bf9b3c70");
|
|
pub const IID_IMFVideoCaptureSampleAllocator = &IID_IMFVideoCaptureSampleAllocator_Value;
|
|
pub const IMFVideoCaptureSampleAllocator = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoSampleAllocator.VTable,
|
|
InitializeCaptureSampleAllocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoCaptureSampleAllocator,
|
|
cbSampleSize: u32,
|
|
cbCaptureMetadataSize: u32,
|
|
cbAlignment: u32,
|
|
cMinimumSamples: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoCaptureSampleAllocator,
|
|
cbSampleSize: u32,
|
|
cbCaptureMetadataSize: u32,
|
|
cbAlignment: u32,
|
|
cMinimumSamples: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoSampleAllocator.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoCaptureSampleAllocator_InitializeCaptureSampleAllocator(self: *const T, cbSampleSize: u32, cbCaptureMetadataSize: u32, cbAlignment: u32, cMinimumSamples: u32, pAttributes: ?*IMFAttributes, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoCaptureSampleAllocator.VTable, @ptrCast(self.vtable)).InitializeCaptureSampleAllocator(@as(*const IMFVideoCaptureSampleAllocator, @ptrCast(self)), cbSampleSize, cbCaptureMetadataSize, cbAlignment, cMinimumSamples, pAttributes, pMediaType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFSampleAllocatorUsage = enum(i32) {
|
|
UsesProvidedAllocator = 0,
|
|
UsesCustomAllocator = 1,
|
|
DoesNotAllocate = 2,
|
|
};
|
|
pub const MFSampleAllocatorUsage_UsesProvidedAllocator = MFSampleAllocatorUsage.UsesProvidedAllocator;
|
|
pub const MFSampleAllocatorUsage_UsesCustomAllocator = MFSampleAllocatorUsage.UsesCustomAllocator;
|
|
pub const MFSampleAllocatorUsage_DoesNotAllocate = MFSampleAllocatorUsage.DoesNotAllocate;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFSampleAllocatorControl_Value = Guid.initString("da62b958-3a38-4a97-bd27-149c640c0771");
|
|
pub const IID_IMFSampleAllocatorControl = &IID_IMFSampleAllocatorControl_Value;
|
|
pub const IMFSampleAllocatorControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetDefaultAllocator: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleAllocatorControl,
|
|
dwOutputStreamID: u32,
|
|
pAllocator: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleAllocatorControl,
|
|
dwOutputStreamID: u32,
|
|
pAllocator: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAllocatorUsage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSampleAllocatorControl,
|
|
dwOutputStreamID: u32,
|
|
pdwInputStreamID: ?*u32,
|
|
peUsage: ?*MFSampleAllocatorUsage,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSampleAllocatorControl,
|
|
dwOutputStreamID: u32,
|
|
pdwInputStreamID: ?*u32,
|
|
peUsage: ?*MFSampleAllocatorUsage,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleAllocatorControl_SetDefaultAllocator(self: *const T, dwOutputStreamID: u32, pAllocator: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleAllocatorControl.VTable, @ptrCast(self.vtable)).SetDefaultAllocator(@as(*const IMFSampleAllocatorControl, @ptrCast(self)), dwOutputStreamID, pAllocator);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSampleAllocatorControl_GetAllocatorUsage(self: *const T, dwOutputStreamID: u32, pdwInputStreamID: ?*u32, peUsage: ?*MFSampleAllocatorUsage) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSampleAllocatorControl.VTable, @ptrCast(self.vtable)).GetAllocatorUsage(@as(*const IMFSampleAllocatorControl, @ptrCast(self)), dwOutputStreamID, pdwInputStreamID, peUsage);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFContentInfo_Value = Guid.initString("b1dca5cd-d5da-4451-8e9e-db5c59914ead");
|
|
pub const IID_IMFASFContentInfo = &IID_IMFASFContentInfo_Value;
|
|
pub const IMFASFContentInfo = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetHeaderSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIStartOfContent: ?*IMFMediaBuffer,
|
|
cbHeaderSize: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIStartOfContent: ?*IMFMediaBuffer,
|
|
cbHeaderSize: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ParseHeader: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIHeaderBuffer: ?*IMFMediaBuffer,
|
|
cbOffsetWithinHeader: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIHeaderBuffer: ?*IMFMediaBuffer,
|
|
cbOffsetWithinHeader: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GenerateHeader: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIHeader: ?*IMFMediaBuffer,
|
|
pcbHeader: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIHeader: ?*IMFMediaBuffer,
|
|
pcbHeader: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetProfile: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIProfile: ?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
pIProfile: ?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GeneratePresentationDescriptor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
ppIPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
ppIPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEncodingConfigurationPropertyStore: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFContentInfo,
|
|
wStreamNumber: u16,
|
|
ppIStore: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFContentInfo,
|
|
wStreamNumber: u16,
|
|
ppIStore: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_GetHeaderSize(self: *const T, pIStartOfContent: ?*IMFMediaBuffer, cbHeaderSize: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).GetHeaderSize(@as(*const IMFASFContentInfo, @ptrCast(self)), pIStartOfContent, cbHeaderSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_ParseHeader(self: *const T, pIHeaderBuffer: ?*IMFMediaBuffer, cbOffsetWithinHeader: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).ParseHeader(@as(*const IMFASFContentInfo, @ptrCast(self)), pIHeaderBuffer, cbOffsetWithinHeader);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_GenerateHeader(self: *const T, pIHeader: ?*IMFMediaBuffer, pcbHeader: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).GenerateHeader(@as(*const IMFASFContentInfo, @ptrCast(self)), pIHeader, pcbHeader);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_GetProfile(self: *const T, ppIProfile: ?*?*IMFASFProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).GetProfile(@as(*const IMFASFContentInfo, @ptrCast(self)), ppIProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_SetProfile(self: *const T, pIProfile: ?*IMFASFProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).SetProfile(@as(*const IMFASFContentInfo, @ptrCast(self)), pIProfile);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_GeneratePresentationDescriptor(self: *const T, ppIPresentationDescriptor: ?*?*IMFPresentationDescriptor) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).GeneratePresentationDescriptor(@as(*const IMFASFContentInfo, @ptrCast(self)), ppIPresentationDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFContentInfo_GetEncodingConfigurationPropertyStore(self: *const T, wStreamNumber: u16, ppIStore: ?*?*IPropertyStore) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFContentInfo.VTable, @ptrCast(self.vtable)).GetEncodingConfigurationPropertyStore(@as(*const IMFASFContentInfo, @ptrCast(self)), wStreamNumber, ppIStore);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFProfile_Value = Guid.initString("d267bf6a-028b-4e0d-903d-43f0ef82d0d4");
|
|
pub const IID_IMFASFProfile = &IID_IMFASFProfile_Value;
|
|
pub const IMFASFProfile = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
dwStreamIndex: u32,
|
|
pwStreamNumber: ?*u16,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
dwStreamIndex: u32,
|
|
pwStreamNumber: ?*u16,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamByNumber: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
wStreamNumber: u16,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
wStreamNumber: u16,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pIStream: ?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pIStream: ?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pIMediaType: ?*IMFMediaType,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pIMediaType: ?*IMFMediaType,
|
|
ppIStream: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMutualExclusionCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pcMutexs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pcMutexs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMutualExclusion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
dwMutexIndex: u32,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
dwMutexIndex: u32,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddMutualExclusion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pIMutex: ?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pIMutex: ?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveMutualExclusion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
dwMutexIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
dwMutexIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateMutualExclusion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamPrioritization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStreamPrioritization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
pIStreamPrioritization: ?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
pIStreamPrioritization: ?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStreamPrioritization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateStreamPrioritization: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFProfile,
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFProfile,
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetStreamCount(self: *const T, pcStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFASFProfile, @ptrCast(self)), pcStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetStream(self: *const T, dwStreamIndex: u32, pwStreamNumber: ?*u16, ppIStream: ?*?*IMFASFStreamConfig) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetStream(@as(*const IMFASFProfile, @ptrCast(self)), dwStreamIndex, pwStreamNumber, ppIStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetStreamByNumber(self: *const T, wStreamNumber: u16, ppIStream: ?*?*IMFASFStreamConfig) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetStreamByNumber(@as(*const IMFASFProfile, @ptrCast(self)), wStreamNumber, ppIStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_SetStream(self: *const T, pIStream: ?*IMFASFStreamConfig) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).SetStream(@as(*const IMFASFProfile, @ptrCast(self)), pIStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_RemoveStream(self: *const T, wStreamNumber: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).RemoveStream(@as(*const IMFASFProfile, @ptrCast(self)), wStreamNumber);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_CreateStream(self: *const T, pIMediaType: ?*IMFMediaType, ppIStream: ?*?*IMFASFStreamConfig) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).CreateStream(@as(*const IMFASFProfile, @ptrCast(self)), pIMediaType, ppIStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetMutualExclusionCount(self: *const T, pcMutexs: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetMutualExclusionCount(@as(*const IMFASFProfile, @ptrCast(self)), pcMutexs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetMutualExclusion(self: *const T, dwMutexIndex: u32, ppIMutex: ?*?*IMFASFMutualExclusion) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetMutualExclusion(@as(*const IMFASFProfile, @ptrCast(self)), dwMutexIndex, ppIMutex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_AddMutualExclusion(self: *const T, pIMutex: ?*IMFASFMutualExclusion) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).AddMutualExclusion(@as(*const IMFASFProfile, @ptrCast(self)), pIMutex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_RemoveMutualExclusion(self: *const T, dwMutexIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).RemoveMutualExclusion(@as(*const IMFASFProfile, @ptrCast(self)), dwMutexIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_CreateMutualExclusion(self: *const T, ppIMutex: ?*?*IMFASFMutualExclusion) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).CreateMutualExclusion(@as(*const IMFASFProfile, @ptrCast(self)), ppIMutex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_GetStreamPrioritization(self: *const T, ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).GetStreamPrioritization(@as(*const IMFASFProfile, @ptrCast(self)), ppIStreamPrioritization);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_AddStreamPrioritization(self: *const T, pIStreamPrioritization: ?*IMFASFStreamPrioritization) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).AddStreamPrioritization(@as(*const IMFASFProfile, @ptrCast(self)), pIStreamPrioritization);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_RemoveStreamPrioritization(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).RemoveStreamPrioritization(@as(*const IMFASFProfile, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_CreateStreamPrioritization(self: *const T, ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).CreateStreamPrioritization(@as(*const IMFASFProfile, @ptrCast(self)), ppIStreamPrioritization);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFProfile_Clone(self: *const T, ppIProfile: ?*?*IMFASFProfile) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFProfile.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFASFProfile, @ptrCast(self)), ppIProfile);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFStreamConfig_Value = Guid.initString("9e8ae8d2-dbbd-4200-9aca-06e6df484913");
|
|
pub const IID_IMFASFStreamConfig = &IID_IMFASFStreamConfig_Value;
|
|
pub const IMFASFStreamConfig = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
GetStreamType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pguidStreamType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pguidStreamType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamNumber: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
},
|
|
SetStreamNumber: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
wStreamNum: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
wStreamNum: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
ppIMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
ppIMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pIMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pIMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPayloadExtensionCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pcPayloadExtensions: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
pcPayloadExtensions: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPayloadExtension: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
wPayloadExtensionNumber: u16,
|
|
pguidExtensionSystemID: ?*Guid,
|
|
pcbExtensionDataSize: ?*u16,
|
|
pbExtensionSystemInfo: ?*u8,
|
|
pcbExtensionSystemInfo: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
wPayloadExtensionNumber: u16,
|
|
pguidExtensionSystemID: ?*Guid,
|
|
pcbExtensionDataSize: ?*u16,
|
|
pbExtensionSystemInfo: ?*u8,
|
|
pcbExtensionSystemInfo: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddPayloadExtension: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
guidExtensionSystemID: Guid,
|
|
cbExtensionDataSize: u16,
|
|
pbExtensionSystemInfo: [*:0]u8,
|
|
cbExtensionSystemInfo: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
guidExtensionSystemID: Guid,
|
|
cbExtensionDataSize: u16,
|
|
pbExtensionSystemInfo: [*:0]u8,
|
|
cbExtensionSystemInfo: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllPayloadExtensions: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamConfig,
|
|
ppIStreamConfig: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamConfig,
|
|
ppIStreamConfig: ?*?*IMFASFStreamConfig,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_GetStreamType(self: *const T, pguidStreamType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).GetStreamType(@as(*const IMFASFStreamConfig, @ptrCast(self)), pguidStreamType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_GetStreamNumber(self: *const T) callconv(.Inline) u16 {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).GetStreamNumber(@as(*const IMFASFStreamConfig, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_SetStreamNumber(self: *const T, wStreamNum: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).SetStreamNumber(@as(*const IMFASFStreamConfig, @ptrCast(self)), wStreamNum);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_GetMediaType(self: *const T, ppIMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).GetMediaType(@as(*const IMFASFStreamConfig, @ptrCast(self)), ppIMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_SetMediaType(self: *const T, pIMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).SetMediaType(@as(*const IMFASFStreamConfig, @ptrCast(self)), pIMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_GetPayloadExtensionCount(self: *const T, pcPayloadExtensions: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).GetPayloadExtensionCount(@as(*const IMFASFStreamConfig, @ptrCast(self)), pcPayloadExtensions);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_GetPayloadExtension(self: *const T, wPayloadExtensionNumber: u16, pguidExtensionSystemID: ?*Guid, pcbExtensionDataSize: ?*u16, pbExtensionSystemInfo: ?*u8, pcbExtensionSystemInfo: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).GetPayloadExtension(@as(*const IMFASFStreamConfig, @ptrCast(self)), wPayloadExtensionNumber, pguidExtensionSystemID, pcbExtensionDataSize, pbExtensionSystemInfo, pcbExtensionSystemInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_AddPayloadExtension(self: *const T, guidExtensionSystemID: Guid, cbExtensionDataSize: u16, pbExtensionSystemInfo: [*:0]u8, cbExtensionSystemInfo: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).AddPayloadExtension(@as(*const IMFASFStreamConfig, @ptrCast(self)), guidExtensionSystemID, cbExtensionDataSize, pbExtensionSystemInfo, cbExtensionSystemInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_RemoveAllPayloadExtensions(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).RemoveAllPayloadExtensions(@as(*const IMFASFStreamConfig, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamConfig_Clone(self: *const T, ppIStreamConfig: ?*?*IMFASFStreamConfig) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamConfig.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFASFStreamConfig, @ptrCast(self)), ppIStreamConfig);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFMutualExclusion_Value = Guid.initString("12558291-e399-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const IID_IMFASFMutualExclusion = &IID_IMFASFMutualExclusion_Value;
|
|
pub const IMFASFMutualExclusion = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pguidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pguidType: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
guidType: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
guidType: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRecordCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pdwRecordCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pdwRecordCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamsForRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
pwStreamNumArray: ?*u16,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
pwStreamNumArray: ?*u16,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStreamForRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStreamFromRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
wStreamNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
dwRecordNumber: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pdwRecordNumber: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
pdwRecordNumber: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMutualExclusion,
|
|
ppIMutex: ?*?*IMFASFMutualExclusion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_GetType(self: *const T, pguidType: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).GetType(@as(*const IMFASFMutualExclusion, @ptrCast(self)), pguidType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_SetType(self: *const T, guidType: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).SetType(@as(*const IMFASFMutualExclusion, @ptrCast(self)), guidType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_GetRecordCount(self: *const T, pdwRecordCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).GetRecordCount(@as(*const IMFASFMutualExclusion, @ptrCast(self)), pdwRecordCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_GetStreamsForRecord(self: *const T, dwRecordNumber: u32, pwStreamNumArray: ?*u16, pcStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).GetStreamsForRecord(@as(*const IMFASFMutualExclusion, @ptrCast(self)), dwRecordNumber, pwStreamNumArray, pcStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_AddStreamForRecord(self: *const T, dwRecordNumber: u32, wStreamNumber: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).AddStreamForRecord(@as(*const IMFASFMutualExclusion, @ptrCast(self)), dwRecordNumber, wStreamNumber);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_RemoveStreamFromRecord(self: *const T, dwRecordNumber: u32, wStreamNumber: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).RemoveStreamFromRecord(@as(*const IMFASFMutualExclusion, @ptrCast(self)), dwRecordNumber, wStreamNumber);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_RemoveRecord(self: *const T, dwRecordNumber: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).RemoveRecord(@as(*const IMFASFMutualExclusion, @ptrCast(self)), dwRecordNumber);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_AddRecord(self: *const T, pdwRecordNumber: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).AddRecord(@as(*const IMFASFMutualExclusion, @ptrCast(self)), pdwRecordNumber);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMutualExclusion_Clone(self: *const T, ppIMutex: ?*?*IMFASFMutualExclusion) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMutualExclusion.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFASFMutualExclusion, @ptrCast(self)), ppIMutex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFStreamPrioritization_Value = Guid.initString("699bdc27-bbaf-49ff-8e38-9c39c9b5e088");
|
|
pub const IID_IMFASFStreamPrioritization = &IID_IMFASFStreamPrioritization_Value;
|
|
pub const IMFASFStreamPrioritization = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
dwStreamIndex: u32,
|
|
pwStreamNumber: ?*u16,
|
|
pwStreamFlags: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
dwStreamIndex: u32,
|
|
pwStreamNumber: ?*u16,
|
|
pwStreamFlags: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
wStreamNumber: u16,
|
|
wStreamFlags: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
wStreamNumber: u16,
|
|
wStreamFlags: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clone: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamPrioritization,
|
|
ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamPrioritization_GetStreamCount(self: *const T, pdwStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamPrioritization.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFASFStreamPrioritization, @ptrCast(self)), pdwStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamPrioritization_GetStream(self: *const T, dwStreamIndex: u32, pwStreamNumber: ?*u16, pwStreamFlags: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamPrioritization.VTable, @ptrCast(self.vtable)).GetStream(@as(*const IMFASFStreamPrioritization, @ptrCast(self)), dwStreamIndex, pwStreamNumber, pwStreamFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamPrioritization_AddStream(self: *const T, wStreamNumber: u16, wStreamFlags: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamPrioritization.VTable, @ptrCast(self.vtable)).AddStream(@as(*const IMFASFStreamPrioritization, @ptrCast(self)), wStreamNumber, wStreamFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamPrioritization_RemoveStream(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamPrioritization.VTable, @ptrCast(self.vtable)).RemoveStream(@as(*const IMFASFStreamPrioritization, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamPrioritization_Clone(self: *const T, ppIStreamPrioritization: ?*?*IMFASFStreamPrioritization) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamPrioritization.VTable, @ptrCast(self.vtable)).Clone(@as(*const IMFASFStreamPrioritization, @ptrCast(self)), ppIStreamPrioritization);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFASF_INDEXER_FLAGS = enum(i32) {
|
|
WRITE_NEW_INDEX = 1,
|
|
READ_FOR_REVERSEPLAYBACK = 2,
|
|
WRITE_FOR_LIVEREAD = 4,
|
|
};
|
|
pub const MFASF_INDEXER_WRITE_NEW_INDEX = MFASF_INDEXER_FLAGS.WRITE_NEW_INDEX;
|
|
pub const MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = MFASF_INDEXER_FLAGS.READ_FOR_REVERSEPLAYBACK;
|
|
pub const MFASF_INDEXER_WRITE_FOR_LIVEREAD = MFASF_INDEXER_FLAGS.WRITE_FOR_LIVEREAD;
|
|
|
|
pub const ASF_INDEX_IDENTIFIER = extern struct {
|
|
guidIndexType: Guid,
|
|
wStreamNumber: u16,
|
|
};
|
|
|
|
pub const ASF_INDEX_DESCRIPTOR = extern struct {
|
|
Identifier: ASF_INDEX_IDENTIFIER,
|
|
cPerEntryBytes: u16,
|
|
szDescription: [32]u16,
|
|
dwInterval: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFIndexer_Value = Guid.initString("53590f48-dc3b-4297-813f-787761ad7b3e");
|
|
pub const IID_IMFASFIndexer = &IID_IMFASFIndexer_Value;
|
|
pub const IMFASFIndexer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIndexPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
pcbIndexOffset: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
pcbIndexOffset: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetIndexByteStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
ppIByteStreams: ?*?*IMFByteStream,
|
|
cByteStreams: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
ppIByteStreams: ?*?*IMFByteStream,
|
|
cByteStreams: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIndexByteStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pcByteStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pcByteStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIndexStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER,
|
|
pfIsIndexed: ?*BOOL,
|
|
pbIndexDescriptor: ?*u8,
|
|
pcbIndexDescriptor: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER,
|
|
pfIsIndexed: ?*BOOL,
|
|
pbIndexDescriptor: ?*u8,
|
|
pcbIndexDescriptor: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetIndexStatus: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pbIndexDescriptor: ?*u8,
|
|
cbIndexDescriptor: u32,
|
|
fGenerateIndex: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pbIndexDescriptor: ?*u8,
|
|
cbIndexDescriptor: u32,
|
|
fGenerateIndex: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSeekPositionForValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pvarValue: ?*const PROPVARIANT,
|
|
pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER,
|
|
pcbOffsetWithinData: ?*u64,
|
|
phnsApproxTime: ?*i64,
|
|
pdwPayloadNumberOfStreamWithinPacket: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pvarValue: ?*const PROPVARIANT,
|
|
pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER,
|
|
pcbOffsetWithinData: ?*u64,
|
|
phnsApproxTime: ?*i64,
|
|
pdwPayloadNumberOfStreamWithinPacket: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GenerateIndexEntries: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIASFPacketSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIASFPacketSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CommitIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIndexWriteSpace: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pcbIndexWriteSpace: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pcbIndexWriteSpace: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCompletedIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFIndexer,
|
|
pIIndexBuffer: ?*IMFMediaBuffer,
|
|
cbOffsetWithinIndex: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFIndexer,
|
|
pIIndexBuffer: ?*IMFMediaBuffer,
|
|
cbOffsetWithinIndex: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_SetFlags(self: *const T, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).SetFlags(@as(*const IMFASFIndexer, @ptrCast(self)), dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetFlags(self: *const T, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFASFIndexer, @ptrCast(self)), pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_Initialize(self: *const T, pIContentInfo: ?*IMFASFContentInfo) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IMFASFIndexer, @ptrCast(self)), pIContentInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetIndexPosition(self: *const T, pIContentInfo: ?*IMFASFContentInfo, pcbIndexOffset: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetIndexPosition(@as(*const IMFASFIndexer, @ptrCast(self)), pIContentInfo, pcbIndexOffset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_SetIndexByteStreams(self: *const T, ppIByteStreams: ?*?*IMFByteStream, cByteStreams: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).SetIndexByteStreams(@as(*const IMFASFIndexer, @ptrCast(self)), ppIByteStreams, cByteStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetIndexByteStreamCount(self: *const T, pcByteStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetIndexByteStreamCount(@as(*const IMFASFIndexer, @ptrCast(self)), pcByteStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetIndexStatus(self: *const T, pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER, pfIsIndexed: ?*BOOL, pbIndexDescriptor: ?*u8, pcbIndexDescriptor: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetIndexStatus(@as(*const IMFASFIndexer, @ptrCast(self)), pIndexIdentifier, pfIsIndexed, pbIndexDescriptor, pcbIndexDescriptor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_SetIndexStatus(self: *const T, pbIndexDescriptor: ?*u8, cbIndexDescriptor: u32, fGenerateIndex: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).SetIndexStatus(@as(*const IMFASFIndexer, @ptrCast(self)), pbIndexDescriptor, cbIndexDescriptor, fGenerateIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetSeekPositionForValue(self: *const T, pvarValue: ?*const PROPVARIANT, pIndexIdentifier: ?*ASF_INDEX_IDENTIFIER, pcbOffsetWithinData: ?*u64, phnsApproxTime: ?*i64, pdwPayloadNumberOfStreamWithinPacket: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetSeekPositionForValue(@as(*const IMFASFIndexer, @ptrCast(self)), pvarValue, pIndexIdentifier, pcbOffsetWithinData, phnsApproxTime, pdwPayloadNumberOfStreamWithinPacket);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GenerateIndexEntries(self: *const T, pIASFPacketSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GenerateIndexEntries(@as(*const IMFASFIndexer, @ptrCast(self)), pIASFPacketSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_CommitIndex(self: *const T, pIContentInfo: ?*IMFASFContentInfo) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).CommitIndex(@as(*const IMFASFIndexer, @ptrCast(self)), pIContentInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetIndexWriteSpace(self: *const T, pcbIndexWriteSpace: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetIndexWriteSpace(@as(*const IMFASFIndexer, @ptrCast(self)), pcbIndexWriteSpace);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFIndexer_GetCompletedIndex(self: *const T, pIIndexBuffer: ?*IMFMediaBuffer, cbOffsetWithinIndex: u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFIndexer.VTable, @ptrCast(self.vtable)).GetCompletedIndex(@as(*const IMFASFIndexer, @ptrCast(self)), pIIndexBuffer, cbOffsetWithinIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFSplitter_Value = Guid.initString("12558295-e399-11d5-bc2a-00b0d0f3f4ab");
|
|
pub const IID_IMFASFSplitter = &IID_IMFASFSplitter_Value;
|
|
pub const IMFASFSplitter = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SelectStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pwStreamNumbers: ?*u16,
|
|
wNumStreams: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pwStreamNumbers: ?*u16,
|
|
wNumStreams: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSelectedStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pwStreamNumbers: ?*u16,
|
|
pwNumStreams: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pwStreamNumbers: ?*u16,
|
|
pwNumStreams: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ParseData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pIBuffer: ?*IMFMediaBuffer,
|
|
cbBufferOffset: u32,
|
|
cbLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pIBuffer: ?*IMFMediaBuffer,
|
|
cbBufferOffset: u32,
|
|
cbLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNextSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwStatusFlags: ?*ASF_STATUSFLAGS,
|
|
pwStreamNumber: ?*u16,
|
|
ppISample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwStatusFlags: ?*ASF_STATUSFLAGS,
|
|
pwStreamNumber: ?*u16,
|
|
ppISample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLastSendTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwLastSendTime: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFSplitter,
|
|
pdwLastSendTime: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_Initialize(self: *const T, pIContentInfo: ?*IMFASFContentInfo) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IMFASFSplitter, @ptrCast(self)), pIContentInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_SetFlags(self: *const T, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).SetFlags(@as(*const IMFASFSplitter, @ptrCast(self)), dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_GetFlags(self: *const T, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFASFSplitter, @ptrCast(self)), pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_SelectStreams(self: *const T, pwStreamNumbers: ?*u16, wNumStreams: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).SelectStreams(@as(*const IMFASFSplitter, @ptrCast(self)), pwStreamNumbers, wNumStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_GetSelectedStreams(self: *const T, pwStreamNumbers: ?*u16, pwNumStreams: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).GetSelectedStreams(@as(*const IMFASFSplitter, @ptrCast(self)), pwStreamNumbers, pwNumStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_ParseData(self: *const T, pIBuffer: ?*IMFMediaBuffer, cbBufferOffset: u32, cbLength: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).ParseData(@as(*const IMFASFSplitter, @ptrCast(self)), pIBuffer, cbBufferOffset, cbLength);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_GetNextSample(self: *const T, pdwStatusFlags: ?*ASF_STATUSFLAGS, pwStreamNumber: ?*u16, ppISample: ?*?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).GetNextSample(@as(*const IMFASFSplitter, @ptrCast(self)), pdwStatusFlags, pwStreamNumber, ppISample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_Flush(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFASFSplitter, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFSplitter_GetLastSendTime(self: *const T, pdwLastSendTime: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFSplitter.VTable, @ptrCast(self.vtable)).GetLastSendTime(@as(*const IMFASFSplitter, @ptrCast(self)), pdwLastSendTime);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFASF_SPLITTERFLAGS = enum(i32) {
|
|
REVERSE = 1,
|
|
WMDRM = 2,
|
|
};
|
|
pub const MFASF_SPLITTER_REVERSE = MFASF_SPLITTERFLAGS.REVERSE;
|
|
pub const MFASF_SPLITTER_WMDRM = MFASF_SPLITTERFLAGS.WMDRM;
|
|
|
|
pub const ASF_STATUSFLAGS = enum(i32) {
|
|
INCOMPLETE = 1,
|
|
NONFATAL_ERROR = 2,
|
|
};
|
|
pub const ASF_STATUSFLAGS_INCOMPLETE = ASF_STATUSFLAGS.INCOMPLETE;
|
|
pub const ASF_STATUSFLAGS_NONFATAL_ERROR = ASF_STATUSFLAGS.NONFATAL_ERROR;
|
|
|
|
pub const MFASF_MULTIPLEXERFLAGS = enum(i32) {
|
|
E = 1,
|
|
};
|
|
pub const MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = MFASF_MULTIPLEXERFLAGS.E;
|
|
|
|
pub const ASF_MUX_STATISTICS = extern struct {
|
|
cFramesWritten: u32,
|
|
cFramesDropped: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFMultiplexer_Value = Guid.initString("57bdd80a-9b38-4838-b737-c58f670d7d4f");
|
|
pub const IID_IMFASFMultiplexer = &IID_IMFASFMultiplexer_Value;
|
|
pub const IMFASFMultiplexer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ProcessSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
wStreamNumber: u16,
|
|
pISample: ?*IMFSample,
|
|
hnsTimestampAdjust: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
wStreamNumber: u16,
|
|
pISample: ?*IMFSample,
|
|
hnsTimestampAdjust: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNextPacket: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pdwStatusFlags: ?*u32,
|
|
ppIPacket: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pdwStatusFlags: ?*u32,
|
|
ppIPacket: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
End: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
pIContentInfo: ?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStatistics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
wStreamNumber: u16,
|
|
pMuxStats: ?*ASF_MUX_STATISTICS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
wStreamNumber: u16,
|
|
pMuxStats: ?*ASF_MUX_STATISTICS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSyncTolerance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFMultiplexer,
|
|
msSyncTolerance: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFMultiplexer,
|
|
msSyncTolerance: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_Initialize(self: *const T, pIContentInfo: ?*IMFASFContentInfo) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IMFASFMultiplexer, @ptrCast(self)), pIContentInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_SetFlags(self: *const T, dwFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).SetFlags(@as(*const IMFASFMultiplexer, @ptrCast(self)), dwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_GetFlags(self: *const T, pdwFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).GetFlags(@as(*const IMFASFMultiplexer, @ptrCast(self)), pdwFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_ProcessSample(self: *const T, wStreamNumber: u16, pISample: ?*IMFSample, hnsTimestampAdjust: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).ProcessSample(@as(*const IMFASFMultiplexer, @ptrCast(self)), wStreamNumber, pISample, hnsTimestampAdjust);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_GetNextPacket(self: *const T, pdwStatusFlags: ?*u32, ppIPacket: ?*?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).GetNextPacket(@as(*const IMFASFMultiplexer, @ptrCast(self)), pdwStatusFlags, ppIPacket);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_Flush(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFASFMultiplexer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_End(self: *const T, pIContentInfo: ?*IMFASFContentInfo) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).End(@as(*const IMFASFMultiplexer, @ptrCast(self)), pIContentInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_GetStatistics(self: *const T, wStreamNumber: u16, pMuxStats: ?*ASF_MUX_STATISTICS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).GetStatistics(@as(*const IMFASFMultiplexer, @ptrCast(self)), wStreamNumber, pMuxStats);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFMultiplexer_SetSyncTolerance(self: *const T, msSyncTolerance: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFMultiplexer.VTable, @ptrCast(self.vtable)).SetSyncTolerance(@as(*const IMFASFMultiplexer, @ptrCast(self)), msSyncTolerance);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFASF_STREAMSELECTOR_FLAGS = enum(i32) {
|
|
DISABLE_THINNING = 1,
|
|
USE_AVERAGE_BITRATE = 2,
|
|
};
|
|
pub const MFASF_STREAMSELECTOR_DISABLE_THINNING = MFASF_STREAMSELECTOR_FLAGS.DISABLE_THINNING;
|
|
pub const MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = MFASF_STREAMSELECTOR_FLAGS.USE_AVERAGE_BITRATE;
|
|
|
|
pub const ASF_SELECTION_STATUS = enum(i32) {
|
|
NOTSELECTED = 0,
|
|
CLEANPOINTSONLY = 1,
|
|
ALLDATAUNITS = 2,
|
|
};
|
|
pub const ASF_STATUS_NOTSELECTED = ASF_SELECTION_STATUS.NOTSELECTED;
|
|
pub const ASF_STATUS_CLEANPOINTSONLY = ASF_SELECTION_STATUS.CLEANPOINTSONLY;
|
|
pub const ASF_STATUS_ALLDATAUNITS = ASF_SELECTION_STATUS.ALLDATAUNITS;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFASFStreamSelector_Value = Guid.initString("d01bad4a-4fa0-4a60-9349-c27e62da9d41");
|
|
pub const IID_IMFASFStreamSelector = &IID_IMFASFStreamSelector_Value;
|
|
pub const IMFASFStreamSelector = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcOutputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcOutputs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pcStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputStreamNumbers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
rgwStreamNumbers: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
rgwStreamNumbers: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputFromStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
wStreamNum: u16,
|
|
pdwOutput: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
wStreamNum: u16,
|
|
pdwOutput: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputOverride: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pSelection: ?*ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pSelection: ?*ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputOverride: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
Selection: ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
Selection: ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputMutexCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pcMutexes: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
pcMutexes: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetOutputMutex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
dwMutexNum: u32,
|
|
ppMutex: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
dwMutexNum: u32,
|
|
ppMutex: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputMutexSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
dwMutexNum: u32,
|
|
wSelectedRecord: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwOutputNum: u32,
|
|
dwMutexNum: u32,
|
|
wSelectedRecord: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBandwidthStepCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcStepCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
pcStepCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBandwidthStep: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwStepNum: u32,
|
|
pdwBitrate: ?*u32,
|
|
rgwStreamNumbers: ?*u16,
|
|
rgSelections: ?*ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwStepNum: u32,
|
|
pdwBitrate: ?*u32,
|
|
rgwStreamNumbers: ?*u16,
|
|
rgSelections: ?*ASF_SELECTION_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BitrateToStepNumber: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwBitrate: u32,
|
|
pdwStepNum: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwBitrate: u32,
|
|
pdwStepNum: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamSelectorFlags: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwStreamSelectorFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFASFStreamSelector,
|
|
dwStreamSelectorFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetStreamCount(self: *const T, pcStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetStreamCount(@as(*const IMFASFStreamSelector, @ptrCast(self)), pcStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputCount(self: *const T, pcOutputs: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputCount(@as(*const IMFASFStreamSelector, @ptrCast(self)), pcOutputs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputStreamCount(self: *const T, dwOutputNum: u32, pcStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputStreamCount(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, pcStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputStreamNumbers(self: *const T, dwOutputNum: u32, rgwStreamNumbers: ?*u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputStreamNumbers(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, rgwStreamNumbers);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputFromStream(self: *const T, wStreamNum: u16, pdwOutput: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputFromStream(@as(*const IMFASFStreamSelector, @ptrCast(self)), wStreamNum, pdwOutput);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputOverride(self: *const T, dwOutputNum: u32, pSelection: ?*ASF_SELECTION_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputOverride(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, pSelection);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_SetOutputOverride(self: *const T, dwOutputNum: u32, Selection: ASF_SELECTION_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).SetOutputOverride(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, Selection);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputMutexCount(self: *const T, dwOutputNum: u32, pcMutexes: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputMutexCount(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, pcMutexes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetOutputMutex(self: *const T, dwOutputNum: u32, dwMutexNum: u32, ppMutex: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetOutputMutex(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, dwMutexNum, ppMutex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_SetOutputMutexSelection(self: *const T, dwOutputNum: u32, dwMutexNum: u32, wSelectedRecord: u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).SetOutputMutexSelection(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwOutputNum, dwMutexNum, wSelectedRecord);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetBandwidthStepCount(self: *const T, pcStepCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetBandwidthStepCount(@as(*const IMFASFStreamSelector, @ptrCast(self)), pcStepCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_GetBandwidthStep(self: *const T, dwStepNum: u32, pdwBitrate: ?*u32, rgwStreamNumbers: ?*u16, rgSelections: ?*ASF_SELECTION_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).GetBandwidthStep(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwStepNum, pdwBitrate, rgwStreamNumbers, rgSelections);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_BitrateToStepNumber(self: *const T, dwBitrate: u32, pdwStepNum: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).BitrateToStepNumber(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwBitrate, pdwStepNum);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFASFStreamSelector_SetStreamSelectorFlags(self: *const T, dwStreamSelectorFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFASFStreamSelector.VTable, @ptrCast(self.vtable)).SetStreamSelectorFlags(@as(*const IMFASFStreamSelector, @ptrCast(self)), dwStreamSelectorFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFSINK_WMDRMACTION = enum(i32) {
|
|
UNDEFINED = 0,
|
|
ENCODE = 1,
|
|
TRANSCODE = 2,
|
|
TRANSCRYPT = 3,
|
|
// LAST = 3, this enum value conflicts with TRANSCRYPT
|
|
};
|
|
pub const MFSINK_WMDRMACTION_UNDEFINED = MFSINK_WMDRMACTION.UNDEFINED;
|
|
pub const MFSINK_WMDRMACTION_ENCODE = MFSINK_WMDRMACTION.ENCODE;
|
|
pub const MFSINK_WMDRMACTION_TRANSCODE = MFSINK_WMDRMACTION.TRANSCODE;
|
|
pub const MFSINK_WMDRMACTION_TRANSCRYPT = MFSINK_WMDRMACTION.TRANSCRYPT;
|
|
pub const MFSINK_WMDRMACTION_LAST = MFSINK_WMDRMACTION.TRANSCRYPT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFDRMNetHelper_Value = Guid.initString("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15");
|
|
pub const IID_IMFDRMNetHelper = &IID_IMFDRMNetHelper_Value;
|
|
pub const IMFDRMNetHelper = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ProcessLicenseRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDRMNetHelper,
|
|
pLicenseRequest: [*:0]u8,
|
|
cbLicenseRequest: u32,
|
|
ppLicenseResponse: [*]?*u8,
|
|
pcbLicenseResponse: ?*u32,
|
|
pbstrKID: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDRMNetHelper,
|
|
pLicenseRequest: [*:0]u8,
|
|
cbLicenseRequest: u32,
|
|
ppLicenseResponse: [*]?*u8,
|
|
pcbLicenseResponse: ?*u32,
|
|
pbstrKID: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetChainedLicenseResponse: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDRMNetHelper,
|
|
ppLicenseResponse: [*]?*u8,
|
|
pcbLicenseResponse: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDRMNetHelper,
|
|
ppLicenseResponse: [*]?*u8,
|
|
pcbLicenseResponse: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDRMNetHelper_ProcessLicenseRequest(self: *const T, pLicenseRequest: [*:0]u8, cbLicenseRequest: u32, ppLicenseResponse: [*]?*u8, pcbLicenseResponse: ?*u32, pbstrKID: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDRMNetHelper.VTable, @ptrCast(self.vtable)).ProcessLicenseRequest(@as(*const IMFDRMNetHelper, @ptrCast(self)), pLicenseRequest, cbLicenseRequest, ppLicenseResponse, pcbLicenseResponse, pbstrKID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDRMNetHelper_GetChainedLicenseResponse(self: *const T, ppLicenseResponse: [*]?*u8, pcbLicenseResponse: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDRMNetHelper.VTable, @ptrCast(self.vtable)).GetChainedLicenseResponse(@as(*const IMFDRMNetHelper, @ptrCast(self)), ppLicenseResponse, pcbLicenseResponse);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVideoNormalizedRect = extern struct {
|
|
left: f32,
|
|
top: f32,
|
|
right: f32,
|
|
bottom: f32,
|
|
};
|
|
|
|
pub const MF_CAPTURE_ENGINE_DEVICE_TYPE = enum(i32) {
|
|
AUDIO = 0,
|
|
VIDEO = 1,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_DEVICE_TYPE_AUDIO = MF_CAPTURE_ENGINE_DEVICE_TYPE.AUDIO;
|
|
pub const MF_CAPTURE_ENGINE_DEVICE_TYPE_VIDEO = MF_CAPTURE_ENGINE_DEVICE_TYPE.VIDEO;
|
|
|
|
pub const MF_CAPTURE_ENGINE_SINK_TYPE = enum(i32) {
|
|
RECORD = 0,
|
|
PREVIEW = 1,
|
|
PHOTO = 2,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_SINK_TYPE_RECORD = MF_CAPTURE_ENGINE_SINK_TYPE.RECORD;
|
|
pub const MF_CAPTURE_ENGINE_SINK_TYPE_PREVIEW = MF_CAPTURE_ENGINE_SINK_TYPE.PREVIEW;
|
|
pub const MF_CAPTURE_ENGINE_SINK_TYPE_PHOTO = MF_CAPTURE_ENGINE_SINK_TYPE.PHOTO;
|
|
|
|
pub const MF_CAPTURE_ENGINE_SOURCE = enum(u32) {
|
|
PREFERRED_SOURCE_STREAM_FOR_VIDEO_PREVIEW = 4294967290,
|
|
PREFERRED_SOURCE_STREAM_FOR_VIDEO_RECORD = 4294967289,
|
|
PREFERRED_SOURCE_STREAM_FOR_PHOTO = 4294967288,
|
|
PREFERRED_SOURCE_STREAM_FOR_AUDIO = 4294967287,
|
|
PREFERRED_SOURCE_STREAM_FOR_METADATA = 4294967286,
|
|
MEDIASOURCE = 4294967295,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_PREVIEW = MF_CAPTURE_ENGINE_SOURCE.PREFERRED_SOURCE_STREAM_FOR_VIDEO_PREVIEW;
|
|
pub const MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_RECORD = MF_CAPTURE_ENGINE_SOURCE.PREFERRED_SOURCE_STREAM_FOR_VIDEO_RECORD;
|
|
pub const MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_PHOTO = MF_CAPTURE_ENGINE_SOURCE.PREFERRED_SOURCE_STREAM_FOR_PHOTO;
|
|
pub const MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_AUDIO = MF_CAPTURE_ENGINE_SOURCE.PREFERRED_SOURCE_STREAM_FOR_AUDIO;
|
|
pub const MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_METADATA = MF_CAPTURE_ENGINE_SOURCE.PREFERRED_SOURCE_STREAM_FOR_METADATA;
|
|
pub const MF_CAPTURE_ENGINE_MEDIASOURCE = MF_CAPTURE_ENGINE_SOURCE.MEDIASOURCE;
|
|
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY = enum(i32) {
|
|
VIDEO_PREVIEW = 0,
|
|
VIDEO_CAPTURE = 1,
|
|
PHOTO_INDEPENDENT = 2,
|
|
PHOTO_DEPENDENT = 3,
|
|
AUDIO = 4,
|
|
UNSUPPORTED = 5,
|
|
METADATA = 6,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_PREVIEW = MF_CAPTURE_ENGINE_STREAM_CATEGORY.VIDEO_PREVIEW;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_CAPTURE = MF_CAPTURE_ENGINE_STREAM_CATEGORY.VIDEO_CAPTURE;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_INDEPENDENT = MF_CAPTURE_ENGINE_STREAM_CATEGORY.PHOTO_INDEPENDENT;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_DEPENDENT = MF_CAPTURE_ENGINE_STREAM_CATEGORY.PHOTO_DEPENDENT;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_AUDIO = MF_CAPTURE_ENGINE_STREAM_CATEGORY.AUDIO;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_UNSUPPORTED = MF_CAPTURE_ENGINE_STREAM_CATEGORY.UNSUPPORTED;
|
|
pub const MF_CAPTURE_ENGINE_STREAM_CATEGORY_METADATA = MF_CAPTURE_ENGINE_STREAM_CATEGORY.METADATA;
|
|
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE = enum(i32) {
|
|
OTHER = 0,
|
|
COMMUNICATIONS = 1,
|
|
MEDIA = 2,
|
|
GAMECHAT = 3,
|
|
SPEECH = 4,
|
|
FARFIELDSPEECH = 5,
|
|
UNIFORMSPEECH = 6,
|
|
VOICETYPING = 7,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_OTHER = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.OTHER;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_COMMUNICATIONS = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.COMMUNICATIONS;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_MEDIA = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.MEDIA;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_GAMECHAT = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.GAMECHAT;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_SPEECH = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.SPEECH;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_FARFIELDSPEECH = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.FARFIELDSPEECH;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_UNIFORMSPEECH = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.UNIFORMSPEECH;
|
|
pub const MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_VOICETYPING = MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE.VOICETYPING;
|
|
|
|
pub const MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE = enum(i32) {
|
|
DEFAULT = 0,
|
|
RAW = 1,
|
|
};
|
|
pub const MF_CAPTURE_ENGINE_AUDIO_PROCESSING_DEFAULT = MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE.DEFAULT;
|
|
pub const MF_CAPTURE_ENGINE_AUDIO_PROCESSING_RAW = MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE.RAW;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureEngineOnEventCallback_Value = Guid.initString("aeda51c0-9025-4983-9012-de597b88b089");
|
|
pub const IID_IMFCaptureEngineOnEventCallback = &IID_IMFCaptureEngineOnEventCallback_Value;
|
|
pub const IMFCaptureEngineOnEventCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngineOnEventCallback,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngineOnEventCallback,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngineOnEventCallback_OnEvent(self: *const T, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngineOnEventCallback.VTable, @ptrCast(self.vtable)).OnEvent(@as(*const IMFCaptureEngineOnEventCallback, @ptrCast(self)), pEvent);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureEngineOnSampleCallback_Value = Guid.initString("52150b82-ab39-4467-980f-e48bf0822ecd");
|
|
pub const IID_IMFCaptureEngineOnSampleCallback = &IID_IMFCaptureEngineOnSampleCallback_Value;
|
|
pub const IMFCaptureEngineOnSampleCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngineOnSampleCallback,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngineOnSampleCallback,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngineOnSampleCallback_OnSample(self: *const T, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngineOnSampleCallback.VTable, @ptrCast(self.vtable)).OnSample(@as(*const IMFCaptureEngineOnSampleCallback, @ptrCast(self)), pSample);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureSink_Value = Guid.initString("72d6135b-35e9-412c-b926-fd5265f2a885");
|
|
pub const IID_IMFCaptureSink = &IID_IMFCaptureSink_Value;
|
|
pub const IMFCaptureSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetOutputMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSinkStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSinkStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSinkStreamIndex: u32,
|
|
rguidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSinkStreamIndex: u32,
|
|
rguidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSourceStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pAttributes: ?*IMFAttributes,
|
|
pdwSinkStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink,
|
|
dwSourceStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pAttributes: ?*IMFAttributes,
|
|
pdwSinkStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Prepare: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink_GetOutputMediaType(self: *const T, dwSinkStreamIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink.VTable, @ptrCast(self.vtable)).GetOutputMediaType(@as(*const IMFCaptureSink, @ptrCast(self)), dwSinkStreamIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink_GetService(self: *const T, dwSinkStreamIndex: u32, rguidService: ?*const Guid, riid: ?*const Guid, ppUnknown: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink.VTable, @ptrCast(self.vtable)).GetService(@as(*const IMFCaptureSink, @ptrCast(self)), dwSinkStreamIndex, rguidService, riid, ppUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink_AddStream(self: *const T, dwSourceStreamIndex: u32, pMediaType: ?*IMFMediaType, pAttributes: ?*IMFAttributes, pdwSinkStreamIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink.VTable, @ptrCast(self.vtable)).AddStream(@as(*const IMFCaptureSink, @ptrCast(self)), dwSourceStreamIndex, pMediaType, pAttributes, pdwSinkStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink_Prepare(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink.VTable, @ptrCast(self.vtable)).Prepare(@as(*const IMFCaptureSink, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink_RemoveAllStreams(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink.VTable, @ptrCast(self.vtable)).RemoveAllStreams(@as(*const IMFCaptureSink, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureRecordSink_Value = Guid.initString("3323b55a-f92a-4fe2-8edc-e9bfc0634d77");
|
|
pub const IID_IMFCaptureRecordSink = &IID_IMFCaptureRecordSink_Value;
|
|
pub const IMFCaptureRecordSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFCaptureSink.VTable,
|
|
SetOutputByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
pByteStream: ?*IMFByteStream,
|
|
guidContainerType: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
pByteStream: ?*IMFByteStream,
|
|
guidContainerType: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputFileName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
fileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
fileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleCallback: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamSinkIndex: u32,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamSinkIndex: u32,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCustomSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
pMediaSink: ?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
pMediaSink: ?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRotation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamIndex: u32,
|
|
pdwRotationValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamIndex: u32,
|
|
pdwRotationValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRotation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamIndex: u32,
|
|
dwRotationValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureRecordSink,
|
|
dwStreamIndex: u32,
|
|
dwRotationValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFCaptureSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_SetOutputByteStream(self: *const T, pByteStream: ?*IMFByteStream, guidContainerType: ?*const Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).SetOutputByteStream(@as(*const IMFCaptureRecordSink, @ptrCast(self)), pByteStream, guidContainerType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_SetOutputFileName(self: *const T, fileName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).SetOutputFileName(@as(*const IMFCaptureRecordSink, @ptrCast(self)), fileName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_SetSampleCallback(self: *const T, dwStreamSinkIndex: u32, pCallback: ?*IMFCaptureEngineOnSampleCallback) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).SetSampleCallback(@as(*const IMFCaptureRecordSink, @ptrCast(self)), dwStreamSinkIndex, pCallback);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_SetCustomSink(self: *const T, pMediaSink: ?*IMFMediaSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).SetCustomSink(@as(*const IMFCaptureRecordSink, @ptrCast(self)), pMediaSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_GetRotation(self: *const T, dwStreamIndex: u32, pdwRotationValue: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).GetRotation(@as(*const IMFCaptureRecordSink, @ptrCast(self)), dwStreamIndex, pdwRotationValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureRecordSink_SetRotation(self: *const T, dwStreamIndex: u32, dwRotationValue: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureRecordSink.VTable, @ptrCast(self.vtable)).SetRotation(@as(*const IMFCaptureRecordSink, @ptrCast(self)), dwStreamIndex, dwRotationValue);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCapturePreviewSink_Value = Guid.initString("77346cfd-5b49-4d73-ace0-5b52a859f2e0");
|
|
pub const IID_IMFCapturePreviewSink = &IID_IMFCapturePreviewSink_Value;
|
|
pub const IMFCapturePreviewSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFCaptureSink.VTable,
|
|
SetRenderHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
handle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
handle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRenderSurface: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pSurface: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pSurface: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateVideo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleCallback: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamSinkIndex: u32,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamSinkIndex: u32,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMirrorState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pfMirrorState: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pfMirrorState: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMirrorState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
fMirrorState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
fMirrorState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRotation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamIndex: u32,
|
|
pdwRotationValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamIndex: u32,
|
|
pdwRotationValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRotation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamIndex: u32,
|
|
dwRotationValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
dwStreamIndex: u32,
|
|
dwRotationValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCustomSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pMediaSink: ?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePreviewSink,
|
|
pMediaSink: ?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFCaptureSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetRenderHandle(self: *const T, handle: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetRenderHandle(@as(*const IMFCapturePreviewSink, @ptrCast(self)), handle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetRenderSurface(self: *const T, pSurface: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetRenderSurface(@as(*const IMFCapturePreviewSink, @ptrCast(self)), pSurface);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_UpdateVideo(self: *const T, pSrc: ?*const MFVideoNormalizedRect, pDst: ?*const RECT, pBorderClr: ?*const u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).UpdateVideo(@as(*const IMFCapturePreviewSink, @ptrCast(self)), pSrc, pDst, pBorderClr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetSampleCallback(self: *const T, dwStreamSinkIndex: u32, pCallback: ?*IMFCaptureEngineOnSampleCallback) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetSampleCallback(@as(*const IMFCapturePreviewSink, @ptrCast(self)), dwStreamSinkIndex, pCallback);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_GetMirrorState(self: *const T, pfMirrorState: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).GetMirrorState(@as(*const IMFCapturePreviewSink, @ptrCast(self)), pfMirrorState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetMirrorState(self: *const T, fMirrorState: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetMirrorState(@as(*const IMFCapturePreviewSink, @ptrCast(self)), fMirrorState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_GetRotation(self: *const T, dwStreamIndex: u32, pdwRotationValue: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).GetRotation(@as(*const IMFCapturePreviewSink, @ptrCast(self)), dwStreamIndex, pdwRotationValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetRotation(self: *const T, dwStreamIndex: u32, dwRotationValue: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetRotation(@as(*const IMFCapturePreviewSink, @ptrCast(self)), dwStreamIndex, dwRotationValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePreviewSink_SetCustomSink(self: *const T, pMediaSink: ?*IMFMediaSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePreviewSink.VTable, @ptrCast(self.vtable)).SetCustomSink(@as(*const IMFCapturePreviewSink, @ptrCast(self)), pMediaSink);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCapturePhotoSink_Value = Guid.initString("d2d43cc8-48bb-4aa7-95db-10c06977e777");
|
|
pub const IID_IMFCapturePhotoSink = &IID_IMFCapturePhotoSink_Value;
|
|
pub const IMFCapturePhotoSink = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFCaptureSink.VTable,
|
|
SetOutputFileName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
fileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
fileName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSampleCallback: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
pCallback: ?*IMFCaptureEngineOnSampleCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOutputByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
pByteStream: ?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCapturePhotoSink,
|
|
pByteStream: ?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFCaptureSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoSink_SetOutputFileName(self: *const T, fileName: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoSink.VTable, @ptrCast(self.vtable)).SetOutputFileName(@as(*const IMFCapturePhotoSink, @ptrCast(self)), fileName);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoSink_SetSampleCallback(self: *const T, pCallback: ?*IMFCaptureEngineOnSampleCallback) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoSink.VTable, @ptrCast(self.vtable)).SetSampleCallback(@as(*const IMFCapturePhotoSink, @ptrCast(self)), pCallback);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCapturePhotoSink_SetOutputByteStream(self: *const T, pByteStream: ?*IMFByteStream) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCapturePhotoSink.VTable, @ptrCast(self.vtable)).SetOutputByteStream(@as(*const IMFCapturePhotoSink, @ptrCast(self)), pByteStream);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureSource_Value = Guid.initString("439a42a8-0d2c-4505-be83-f79b2a05d5c4");
|
|
pub const IID_IMFCaptureSource = &IID_IMFCaptureSource_Value;
|
|
pub const IMFCaptureSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetCaptureDeviceSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCaptureDeviceActivate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
rguidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
rguidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pUnknown: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllEffects: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAvailableDeviceMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
dwMediaTypeIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
dwMediaTypeIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentDeviceMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentDeviceMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDeviceStreamCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDeviceStreamCategory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pStreamCategory: ?*MF_CAPTURE_ENGINE_STREAM_CATEGORY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwSourceStreamIndex: u32,
|
|
pStreamCategory: ?*MF_CAPTURE_ENGINE_STREAM_CATEGORY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMirrorState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwStreamIndex: u32,
|
|
pfMirrorState: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwStreamIndex: u32,
|
|
pfMirrorState: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMirrorState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
dwStreamIndex: u32,
|
|
fMirrorState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
dwStreamIndex: u32,
|
|
fMirrorState: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamIndexFromFriendlyName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSource,
|
|
uifriendlyName: u32,
|
|
pdwActualStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSource,
|
|
uifriendlyName: u32,
|
|
pdwActualStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetCaptureDeviceSource(self: *const T, mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE, ppMediaSource: ?*?*IMFMediaSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetCaptureDeviceSource(@as(*const IMFCaptureSource, @ptrCast(self)), mfCaptureEngineDeviceType, ppMediaSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetCaptureDeviceActivate(self: *const T, mfCaptureEngineDeviceType: MF_CAPTURE_ENGINE_DEVICE_TYPE, ppActivate: ?*?*IMFActivate) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetCaptureDeviceActivate(@as(*const IMFCaptureSource, @ptrCast(self)), mfCaptureEngineDeviceType, ppActivate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetService(self: *const T, rguidService: ?*const Guid, riid: ?*const Guid, ppUnknown: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetService(@as(*const IMFCaptureSource, @ptrCast(self)), rguidService, riid, ppUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_AddEffect(self: *const T, dwSourceStreamIndex: u32, pUnknown: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).AddEffect(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, pUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_RemoveEffect(self: *const T, dwSourceStreamIndex: u32, pUnknown: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).RemoveEffect(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, pUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_RemoveAllEffects(self: *const T, dwSourceStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).RemoveAllEffects(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetAvailableDeviceMediaType(self: *const T, dwSourceStreamIndex: u32, dwMediaTypeIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetAvailableDeviceMediaType(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, dwMediaTypeIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_SetCurrentDeviceMediaType(self: *const T, dwSourceStreamIndex: u32, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).SetCurrentDeviceMediaType(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, pMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetCurrentDeviceMediaType(self: *const T, dwSourceStreamIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetCurrentDeviceMediaType(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetDeviceStreamCount(self: *const T, pdwStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetDeviceStreamCount(@as(*const IMFCaptureSource, @ptrCast(self)), pdwStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetDeviceStreamCategory(self: *const T, dwSourceStreamIndex: u32, pStreamCategory: ?*MF_CAPTURE_ENGINE_STREAM_CATEGORY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetDeviceStreamCategory(@as(*const IMFCaptureSource, @ptrCast(self)), dwSourceStreamIndex, pStreamCategory);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetMirrorState(self: *const T, dwStreamIndex: u32, pfMirrorState: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetMirrorState(@as(*const IMFCaptureSource, @ptrCast(self)), dwStreamIndex, pfMirrorState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_SetMirrorState(self: *const T, dwStreamIndex: u32, fMirrorState: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).SetMirrorState(@as(*const IMFCaptureSource, @ptrCast(self)), dwStreamIndex, fMirrorState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSource_GetStreamIndexFromFriendlyName(self: *const T, uifriendlyName: u32, pdwActualStreamIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSource.VTable, @ptrCast(self.vtable)).GetStreamIndexFromFriendlyName(@as(*const IMFCaptureSource, @ptrCast(self)), uifriendlyName, pdwActualStreamIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureEngine_Value = Guid.initString("a6bba433-176b-48b2-b375-53aa03473207");
|
|
pub const IID_IMFCaptureEngine = &IID_IMFCaptureEngine_Value;
|
|
pub const IMFCaptureEngine = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
pEventCallback: ?*IMFCaptureEngineOnEventCallback,
|
|
pAttributes: ?*IMFAttributes,
|
|
pAudioSource: ?*IUnknown,
|
|
pVideoSource: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
pEventCallback: ?*IMFCaptureEngineOnEventCallback,
|
|
pAttributes: ?*IMFAttributes,
|
|
pAudioSource: ?*IUnknown,
|
|
pVideoSource: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StartPreview: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StopPreview: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StartRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
StopRecord: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
bFinalize: BOOL,
|
|
bFlushUnprocessedSamples: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
bFinalize: BOOL,
|
|
bFlushUnprocessedSamples: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TakePhoto: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
mfCaptureEngineSinkType: MF_CAPTURE_ENGINE_SINK_TYPE,
|
|
ppSink: ?*?*IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
mfCaptureEngineSinkType: MF_CAPTURE_ENGINE_SINK_TYPE,
|
|
ppSink: ?*?*IMFCaptureSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngine,
|
|
ppSource: ?*?*IMFCaptureSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngine,
|
|
ppSource: ?*?*IMFCaptureSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_Initialize(self: *const T, pEventCallback: ?*IMFCaptureEngineOnEventCallback, pAttributes: ?*IMFAttributes, pAudioSource: ?*IUnknown, pVideoSource: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IMFCaptureEngine, @ptrCast(self)), pEventCallback, pAttributes, pAudioSource, pVideoSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_StartPreview(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).StartPreview(@as(*const IMFCaptureEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_StopPreview(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).StopPreview(@as(*const IMFCaptureEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_StartRecord(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).StartRecord(@as(*const IMFCaptureEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_StopRecord(self: *const T, bFinalize: BOOL, bFlushUnprocessedSamples: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).StopRecord(@as(*const IMFCaptureEngine, @ptrCast(self)), bFinalize, bFlushUnprocessedSamples);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_TakePhoto(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).TakePhoto(@as(*const IMFCaptureEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_GetSink(self: *const T, mfCaptureEngineSinkType: MF_CAPTURE_ENGINE_SINK_TYPE, ppSink: ?*?*IMFCaptureSink) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).GetSink(@as(*const IMFCaptureEngine, @ptrCast(self)), mfCaptureEngineSinkType, ppSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngine_GetSource(self: *const T, ppSource: ?*?*IMFCaptureSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngine.VTable, @ptrCast(self.vtable)).GetSource(@as(*const IMFCaptureEngine, @ptrCast(self)), ppSource);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFCaptureEngineClassFactory_Value = Guid.initString("8f02d140-56fc-4302-a705-3a97c78be779");
|
|
pub const IID_IMFCaptureEngineClassFactory = &IID_IMFCaptureEngineClassFactory_Value;
|
|
pub const IMFCaptureEngineClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngineClassFactory,
|
|
clsid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngineClassFactory,
|
|
clsid: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngineClassFactory_CreateInstance(self: *const T, clsid: ?*const Guid, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IMFCaptureEngineClassFactory, @ptrCast(self)), clsid, riid, ppvObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFCaptureEngineOnSampleCallback2_Value = Guid.initString("e37ceed7-340f-4514-9f4d-9c2ae026100b");
|
|
pub const IID_IMFCaptureEngineOnSampleCallback2 = &IID_IMFCaptureEngineOnSampleCallback2_Value;
|
|
pub const IMFCaptureEngineOnSampleCallback2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFCaptureEngineOnSampleCallback.VTable,
|
|
OnSynchronizedEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureEngineOnSampleCallback2,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureEngineOnSampleCallback2,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFCaptureEngineOnSampleCallback.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureEngineOnSampleCallback2_OnSynchronizedEvent(self: *const T, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureEngineOnSampleCallback2.VTable, @ptrCast(self.vtable)).OnSynchronizedEvent(@as(*const IMFCaptureEngineOnSampleCallback2, @ptrCast(self)), pEvent);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFCaptureSink2_Value = Guid.initString("f9e4219e-6197-4b5e-b888-bee310ab2c59");
|
|
pub const IID_IMFCaptureSink2 = &IID_IMFCaptureSink2_Value;
|
|
pub const IMFCaptureSink2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFCaptureSink.VTable,
|
|
SetOutputMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCaptureSink2,
|
|
dwStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pEncodingAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCaptureSink2,
|
|
dwStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pEncodingAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFCaptureSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCaptureSink2_SetOutputMediaType(self: *const T, dwStreamIndex: u32, pMediaType: ?*IMFMediaType, pEncodingAttributes: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCaptureSink2.VTable, @ptrCast(self.vtable)).SetOutputMediaType(@as(*const IMFCaptureSink2, @ptrCast(self)), dwStreamIndex, pMediaType, pEncodingAttributes);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFD3D12SynchronizationObjectCommands_Value = Guid.initString("09d0f835-92ff-4e53-8efa-40faa551f233");
|
|
pub const IID_IMFD3D12SynchronizationObjectCommands = &IID_IMFD3D12SynchronizationObjectCommands_Value;
|
|
pub const IMFD3D12SynchronizationObjectCommands = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
EnqueueResourceReady: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pProducerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pProducerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnqueueResourceReadyWait: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pConsumerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pConsumerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SignalEventOnResourceReady: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnqueueResourceRelease: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pConsumerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObjectCommands,
|
|
pConsumerCommandQueue: ?*ID3D12CommandQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObjectCommands_EnqueueResourceReady(self: *const T, pProducerCommandQueue: ?*ID3D12CommandQueue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObjectCommands.VTable, @ptrCast(self.vtable)).EnqueueResourceReady(@as(*const IMFD3D12SynchronizationObjectCommands, @ptrCast(self)), pProducerCommandQueue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObjectCommands_EnqueueResourceReadyWait(self: *const T, pConsumerCommandQueue: ?*ID3D12CommandQueue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObjectCommands.VTable, @ptrCast(self.vtable)).EnqueueResourceReadyWait(@as(*const IMFD3D12SynchronizationObjectCommands, @ptrCast(self)), pConsumerCommandQueue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObjectCommands_SignalEventOnResourceReady(self: *const T, hEvent: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObjectCommands.VTable, @ptrCast(self.vtable)).SignalEventOnResourceReady(@as(*const IMFD3D12SynchronizationObjectCommands, @ptrCast(self)), hEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObjectCommands_EnqueueResourceRelease(self: *const T, pConsumerCommandQueue: ?*ID3D12CommandQueue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObjectCommands.VTable, @ptrCast(self.vtable)).EnqueueResourceRelease(@as(*const IMFD3D12SynchronizationObjectCommands, @ptrCast(self)), pConsumerCommandQueue);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFD3D12SynchronizationObject_Value = Guid.initString("802302b0-82de-45e1-b421-f19ee5bdaf23");
|
|
pub const IID_IMFD3D12SynchronizationObject = &IID_IMFD3D12SynchronizationObject_Value;
|
|
pub const IMFD3D12SynchronizationObject = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SignalEventOnFinalResourceRelease: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObject,
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObject,
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFD3D12SynchronizationObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFD3D12SynchronizationObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObject_SignalEventOnFinalResourceRelease(self: *const T, hEvent: ?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObject.VTable, @ptrCast(self.vtable)).SignalEventOnFinalResourceRelease(@as(*const IMFD3D12SynchronizationObject, @ptrCast(self)), hEvent);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFD3D12SynchronizationObject_Reset(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFD3D12SynchronizationObject.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMFD3D12SynchronizationObject, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MT_D3D_RESOURCE_VERSION_ENUM = enum(i32) {
|
|
@"1_RESOURCE" = 0,
|
|
@"2_RESOURCE" = 1,
|
|
};
|
|
pub const MF_D3D11_RESOURCE = MF_MT_D3D_RESOURCE_VERSION_ENUM.@"1_RESOURCE";
|
|
pub const MF_D3D12_RESOURCE = MF_MT_D3D_RESOURCE_VERSION_ENUM.@"2_RESOURCE";
|
|
|
|
pub const MFPERIODICCALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pContext: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
pContext: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const MFASYNC_WORKQUEUE_TYPE = enum(i32) {
|
|
STANDARD_WORKQUEUE = 0,
|
|
WINDOW_WORKQUEUE = 1,
|
|
MULTITHREADED_WORKQUEUE = 2,
|
|
};
|
|
pub const MF_STANDARD_WORKQUEUE = MFASYNC_WORKQUEUE_TYPE.STANDARD_WORKQUEUE;
|
|
pub const MF_WINDOW_WORKQUEUE = MFASYNC_WORKQUEUE_TYPE.WINDOW_WORKQUEUE;
|
|
pub const MF_MULTITHREADED_WORKQUEUE = MFASYNC_WORKQUEUE_TYPE.MULTITHREADED_WORKQUEUE;
|
|
|
|
pub const MFASYNCRESULT = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAsyncResult.VTable,
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAsyncResult.MethodMixin(T);
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_TOPOSTATUS = enum(i32) {
|
|
INVALID = 0,
|
|
READY = 100,
|
|
STARTED_SOURCE = 200,
|
|
DYNAMIC_CHANGED = 210,
|
|
SINK_SWITCHED = 300,
|
|
ENDED = 400,
|
|
};
|
|
pub const MF_TOPOSTATUS_INVALID = MF_TOPOSTATUS.INVALID;
|
|
pub const MF_TOPOSTATUS_READY = MF_TOPOSTATUS.READY;
|
|
pub const MF_TOPOSTATUS_STARTED_SOURCE = MF_TOPOSTATUS.STARTED_SOURCE;
|
|
pub const MF_TOPOSTATUS_DYNAMIC_CHANGED = MF_TOPOSTATUS.DYNAMIC_CHANGED;
|
|
pub const MF_TOPOSTATUS_SINK_SWITCHED = MF_TOPOSTATUS.SINK_SWITCHED;
|
|
pub const MF_TOPOSTATUS_ENDED = MF_TOPOSTATUS.ENDED;
|
|
|
|
pub const MFSampleEncryptionProtectionScheme = enum(i32) {
|
|
NONE = 0,
|
|
AES_CTR = 1,
|
|
AES_CBC = 2,
|
|
};
|
|
pub const MF_SAMPLE_ENCRYPTION_PROTECTION_SCHEME_NONE = MFSampleEncryptionProtectionScheme.NONE;
|
|
pub const MF_SAMPLE_ENCRYPTION_PROTECTION_SCHEME_AES_CTR = MFSampleEncryptionProtectionScheme.AES_CTR;
|
|
pub const MF_SAMPLE_ENCRYPTION_PROTECTION_SCHEME_AES_CBC = MFSampleEncryptionProtectionScheme.AES_CBC;
|
|
|
|
pub const MOVE_RECT = extern struct {
|
|
SourcePoint: POINT,
|
|
DestRect: RECT,
|
|
};
|
|
|
|
pub const DIRTYRECT_INFO = extern struct {
|
|
FrameNumber: u32,
|
|
NumDirtyRects: u32,
|
|
DirtyRects: [1]RECT,
|
|
};
|
|
|
|
pub const MOVEREGION_INFO = extern struct {
|
|
FrameNumber: u32,
|
|
NumMoveRegions: u32,
|
|
MoveRegions: [1]MOVE_RECT,
|
|
};
|
|
|
|
pub const ROI_AREA = extern struct {
|
|
rect: RECT,
|
|
QPDelta: i32,
|
|
};
|
|
|
|
pub const MACROBLOCK_DATA = extern struct {
|
|
flags: u32,
|
|
motionVectorX: i16,
|
|
motionVectorY: i16,
|
|
QPDelta: i32,
|
|
};
|
|
|
|
pub const DigitalWindowSetting = extern struct {
|
|
OriginX: f64,
|
|
OriginY: f64,
|
|
WindowSize: f64,
|
|
};
|
|
|
|
pub const _MFT_ENUM_FLAG = enum(i32) {
|
|
SYNCMFT = 1,
|
|
ASYNCMFT = 2,
|
|
HARDWARE = 4,
|
|
FIELDOFUSE = 8,
|
|
LOCALMFT = 16,
|
|
TRANSCODE_ONLY = 32,
|
|
SORTANDFILTER = 64,
|
|
SORTANDFILTER_APPROVED_ONLY = 192,
|
|
SORTANDFILTER_WEB_ONLY = 320,
|
|
SORTANDFILTER_WEB_ONLY_EDGEMODE = 576,
|
|
UNTRUSTED_STOREMFT = 1024,
|
|
ALL = 63,
|
|
};
|
|
pub const MFT_ENUM_FLAG_SYNCMFT = _MFT_ENUM_FLAG.SYNCMFT;
|
|
pub const MFT_ENUM_FLAG_ASYNCMFT = _MFT_ENUM_FLAG.ASYNCMFT;
|
|
pub const MFT_ENUM_FLAG_HARDWARE = _MFT_ENUM_FLAG.HARDWARE;
|
|
pub const MFT_ENUM_FLAG_FIELDOFUSE = _MFT_ENUM_FLAG.FIELDOFUSE;
|
|
pub const MFT_ENUM_FLAG_LOCALMFT = _MFT_ENUM_FLAG.LOCALMFT;
|
|
pub const MFT_ENUM_FLAG_TRANSCODE_ONLY = _MFT_ENUM_FLAG.TRANSCODE_ONLY;
|
|
pub const MFT_ENUM_FLAG_SORTANDFILTER = _MFT_ENUM_FLAG.SORTANDFILTER;
|
|
pub const MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY = _MFT_ENUM_FLAG.SORTANDFILTER_APPROVED_ONLY;
|
|
pub const MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY = _MFT_ENUM_FLAG.SORTANDFILTER_WEB_ONLY;
|
|
pub const MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY_EDGEMODE = _MFT_ENUM_FLAG.SORTANDFILTER_WEB_ONLY_EDGEMODE;
|
|
pub const MFT_ENUM_FLAG_UNTRUSTED_STOREMFT = _MFT_ENUM_FLAG.UNTRUSTED_STOREMFT;
|
|
pub const MFT_ENUM_FLAG_ALL = _MFT_ENUM_FLAG.ALL;
|
|
|
|
pub const MFFrameSourceTypes = enum(i32) {
|
|
Color = 1,
|
|
Infrared = 2,
|
|
Depth = 4,
|
|
Image = 8,
|
|
Custom = 128,
|
|
};
|
|
pub const MFFrameSourceTypes_Color = MFFrameSourceTypes.Color;
|
|
pub const MFFrameSourceTypes_Infrared = MFFrameSourceTypes.Infrared;
|
|
pub const MFFrameSourceTypes_Depth = MFFrameSourceTypes.Depth;
|
|
pub const MFFrameSourceTypes_Image = MFFrameSourceTypes.Image;
|
|
pub const MFFrameSourceTypes_Custom = MFFrameSourceTypes.Custom;
|
|
|
|
pub const MFVideo3DFormat = enum(i32) {
|
|
BaseView = 0,
|
|
MultiView = 1,
|
|
Packed_LeftRight = 2,
|
|
Packed_TopBottom = 3,
|
|
};
|
|
pub const MFVideo3DSampleFormat_BaseView = MFVideo3DFormat.BaseView;
|
|
pub const MFVideo3DSampleFormat_MultiView = MFVideo3DFormat.MultiView;
|
|
pub const MFVideo3DSampleFormat_Packed_LeftRight = MFVideo3DFormat.Packed_LeftRight;
|
|
pub const MFVideo3DSampleFormat_Packed_TopBottom = MFVideo3DFormat.Packed_TopBottom;
|
|
|
|
pub const MFVideo3DSampleFormat = enum(i32) {
|
|
MultiView = 1,
|
|
Packed = 0,
|
|
};
|
|
pub const MFSampleExtension_3DVideo_MultiView = MFVideo3DSampleFormat.MultiView;
|
|
pub const MFSampleExtension_3DVideo_Packed = MFVideo3DSampleFormat.Packed;
|
|
|
|
pub const MFVideoRotationFormat = enum(i32) {
|
|
@"0" = 0,
|
|
@"90" = 90,
|
|
@"180" = 180,
|
|
@"270" = 270,
|
|
};
|
|
pub const MFVideoRotationFormat_0 = MFVideoRotationFormat.@"0";
|
|
pub const MFVideoRotationFormat_90 = MFVideoRotationFormat.@"90";
|
|
pub const MFVideoRotationFormat_180 = MFVideoRotationFormat.@"180";
|
|
pub const MFVideoRotationFormat_270 = MFVideoRotationFormat.@"270";
|
|
|
|
pub const MFDepthMeasurement = enum(i32) {
|
|
FocalPlane = 0,
|
|
OpticalCenter = 1,
|
|
};
|
|
pub const DistanceToFocalPlane = MFDepthMeasurement.FocalPlane;
|
|
pub const DistanceToOpticalCenter = MFDepthMeasurement.OpticalCenter;
|
|
|
|
pub const MF_CUSTOM_DECODE_UNIT_TYPE = enum(i32) {
|
|
NAL = 0,
|
|
SEI = 1,
|
|
};
|
|
pub const MF_DECODE_UNIT_NAL = MF_CUSTOM_DECODE_UNIT_TYPE.NAL;
|
|
pub const MF_DECODE_UNIT_SEI = MF_CUSTOM_DECODE_UNIT_TYPE.SEI;
|
|
|
|
pub const MFFOLDDOWN_MATRIX = extern struct {
|
|
cbSize: u32,
|
|
cSrcChannels: u32,
|
|
cDstChannels: u32,
|
|
dwChannelMask: u32,
|
|
Coeff: [64]i32,
|
|
};
|
|
|
|
pub const MFVideoDRMFlags = enum(i32) {
|
|
None = 0,
|
|
AnalogProtected = 1,
|
|
DigitallyProtected = 2,
|
|
};
|
|
pub const MFVideoDRMFlag_None = MFVideoDRMFlags.None;
|
|
pub const MFVideoDRMFlag_AnalogProtected = MFVideoDRMFlags.AnalogProtected;
|
|
pub const MFVideoDRMFlag_DigitallyProtected = MFVideoDRMFlags.DigitallyProtected;
|
|
|
|
pub const MFVideoPadFlags = enum(i32) {
|
|
None = 0,
|
|
@"4x3" = 1,
|
|
@"16x9" = 2,
|
|
};
|
|
pub const MFVideoPadFlag_PAD_TO_None = MFVideoPadFlags.None;
|
|
pub const MFVideoPadFlag_PAD_TO_4x3 = MFVideoPadFlags.@"4x3";
|
|
pub const MFVideoPadFlag_PAD_TO_16x9 = MFVideoPadFlags.@"16x9";
|
|
|
|
pub const MFVideoSrcContentHintFlags = enum(i32) {
|
|
None = 0,
|
|
@"16x9" = 1,
|
|
@"235_1" = 2,
|
|
};
|
|
pub const MFVideoSrcContentHintFlag_None = MFVideoSrcContentHintFlags.None;
|
|
pub const MFVideoSrcContentHintFlag_16x9 = MFVideoSrcContentHintFlags.@"16x9";
|
|
pub const MFVideoSrcContentHintFlag_235_1 = MFVideoSrcContentHintFlags.@"235_1";
|
|
|
|
pub const MT_CUSTOM_VIDEO_PRIMARIES = extern struct {
|
|
fRx: f32,
|
|
fRy: f32,
|
|
fGx: f32,
|
|
fGy: f32,
|
|
fBx: f32,
|
|
fBy: f32,
|
|
fWx: f32,
|
|
fWy: f32,
|
|
};
|
|
|
|
pub const MT_ARBITRARY_HEADER = extern struct {
|
|
majortype: Guid,
|
|
subtype: Guid,
|
|
bFixedSizeSamples: BOOL,
|
|
bTemporalCompression: BOOL,
|
|
lSampleSize: u32,
|
|
formattype: Guid,
|
|
};
|
|
|
|
pub const MF_FLOAT2 = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
};
|
|
|
|
pub const MF_FLOAT3 = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
z: f32,
|
|
};
|
|
|
|
pub const MF_QUATERNION = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
z: f32,
|
|
w: f32,
|
|
};
|
|
|
|
pub const MFCameraExtrinsic_CalibratedTransform = extern struct {
|
|
CalibrationId: Guid,
|
|
Position: MF_FLOAT3,
|
|
Orientation: MF_QUATERNION,
|
|
};
|
|
|
|
pub const MFCameraExtrinsics = extern struct {
|
|
TransformCount: u32,
|
|
CalibratedTransforms: [1]MFCameraExtrinsic_CalibratedTransform,
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_PinholeCameraModel = extern struct {
|
|
FocalLength: MF_FLOAT2,
|
|
PrincipalPoint: MF_FLOAT2,
|
|
};
|
|
|
|
pub const MFCameraIntrinsic_DistortionModel = extern struct {
|
|
Radial_k1: f32,
|
|
Radial_k2: f32,
|
|
Radial_k3: f32,
|
|
Tangential_p1: f32,
|
|
Tangential_p2: f32,
|
|
};
|
|
|
|
pub const MFPinholeCameraIntrinsic_IntrinsicModel = extern struct {
|
|
Width: u32,
|
|
Height: u32,
|
|
CameraModel: MFCameraIntrinsic_PinholeCameraModel,
|
|
DistortionModel: MFCameraIntrinsic_DistortionModel,
|
|
};
|
|
|
|
pub const MFPinholeCameraIntrinsics = extern struct {
|
|
IntrinsicModelCount: u32,
|
|
IntrinsicModels: [1]MFPinholeCameraIntrinsic_IntrinsicModel,
|
|
};
|
|
|
|
pub const MFWaveFormatExConvertFlags = enum(i32) {
|
|
Normal = 0,
|
|
ForceExtensible = 1,
|
|
};
|
|
pub const MFWaveFormatExConvertFlag_Normal = MFWaveFormatExConvertFlags.Normal;
|
|
pub const MFWaveFormatExConvertFlag_ForceExtensible = MFWaveFormatExConvertFlags.ForceExtensible;
|
|
|
|
pub const EAllocationType = enum(i32) {
|
|
Dynamic = 0,
|
|
RT = 1,
|
|
Pageable = 2,
|
|
Ignore = 3,
|
|
};
|
|
pub const eAllocationTypeDynamic = EAllocationType.Dynamic;
|
|
pub const eAllocationTypeRT = EAllocationType.RT;
|
|
pub const eAllocationTypePageable = EAllocationType.Pageable;
|
|
pub const eAllocationTypeIgnore = EAllocationType.Ignore;
|
|
|
|
pub const MF_MEDIA_ENGINE_ERR = enum(i32) {
|
|
NOERROR = 0,
|
|
ABORTED = 1,
|
|
NETWORK = 2,
|
|
DECODE = 3,
|
|
SRC_NOT_SUPPORTED = 4,
|
|
ENCRYPTED = 5,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_ERR_NOERROR = MF_MEDIA_ENGINE_ERR.NOERROR;
|
|
pub const MF_MEDIA_ENGINE_ERR_ABORTED = MF_MEDIA_ENGINE_ERR.ABORTED;
|
|
pub const MF_MEDIA_ENGINE_ERR_NETWORK = MF_MEDIA_ENGINE_ERR.NETWORK;
|
|
pub const MF_MEDIA_ENGINE_ERR_DECODE = MF_MEDIA_ENGINE_ERR.DECODE;
|
|
pub const MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED = MF_MEDIA_ENGINE_ERR.SRC_NOT_SUPPORTED;
|
|
pub const MF_MEDIA_ENGINE_ERR_ENCRYPTED = MF_MEDIA_ENGINE_ERR.ENCRYPTED;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaError_Value = Guid.initString("fc0e10d2-ab2a-4501-a951-06bb1075184c");
|
|
pub const IID_IMFMediaError = &IID_IMFMediaError_Value;
|
|
pub const IMFMediaError = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
else => *const fn(
|
|
self: *const IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
},
|
|
GetExtendedErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaError,
|
|
@"error": MF_MEDIA_ENGINE_ERR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaError,
|
|
@"error": MF_MEDIA_ENGINE_ERR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetExtendedErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaError,
|
|
@"error": HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaError,
|
|
@"error": HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaError_GetErrorCode(self: *const T) callconv(.Inline) u16 {
|
|
return @as(*const IMFMediaError.VTable, @ptrCast(self.vtable)).GetErrorCode(@as(*const IMFMediaError, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaError_GetExtendedErrorCode(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaError.VTable, @ptrCast(self.vtable)).GetExtendedErrorCode(@as(*const IMFMediaError, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaError_SetErrorCode(self: *const T, @"error": MF_MEDIA_ENGINE_ERR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaError.VTable, @ptrCast(self.vtable)).SetErrorCode(@as(*const IMFMediaError, @ptrCast(self)), @"error");
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaError_SetExtendedErrorCode(self: *const T, @"error": HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaError.VTable, @ptrCast(self.vtable)).SetExtendedErrorCode(@as(*const IMFMediaError, @ptrCast(self)), @"error");
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaTimeRange_Value = Guid.initString("db71a2fc-078a-414e-9df9-8c2531b0aa6c");
|
|
pub const IID_IMFMediaTimeRange = &IID_IMFMediaTimeRange_Value;
|
|
pub const IMFMediaTimeRange = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetStart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
index: u32,
|
|
pStart: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
index: u32,
|
|
pStart: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetEnd: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
index: u32,
|
|
pEnd: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
index: u32,
|
|
pEnd: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ContainsTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
AddRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
startTime: f64,
|
|
endTime: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
startTime: f64,
|
|
endTime: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Clear: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_GetLength(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFMediaTimeRange, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_GetStart(self: *const T, index: u32, pStart: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).GetStart(@as(*const IMFMediaTimeRange, @ptrCast(self)), index, pStart);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_GetEnd(self: *const T, index: u32, pEnd: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).GetEnd(@as(*const IMFMediaTimeRange, @ptrCast(self)), index, pEnd);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_ContainsTime(self: *const T, time: f64) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).ContainsTime(@as(*const IMFMediaTimeRange, @ptrCast(self)), time);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_AddRange(self: *const T, startTime: f64, endTime: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).AddRange(@as(*const IMFMediaTimeRange, @ptrCast(self)), startTime, endTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaTimeRange_Clear(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaTimeRange.VTable, @ptrCast(self.vtable)).Clear(@as(*const IMFMediaTimeRange, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_EVENT = enum(i32) {
|
|
LOADSTART = 1,
|
|
PROGRESS = 2,
|
|
SUSPEND = 3,
|
|
ABORT = 4,
|
|
ERROR = 5,
|
|
EMPTIED = 6,
|
|
STALLED = 7,
|
|
PLAY = 8,
|
|
PAUSE = 9,
|
|
LOADEDMETADATA = 10,
|
|
LOADEDDATA = 11,
|
|
WAITING = 12,
|
|
PLAYING = 13,
|
|
CANPLAY = 14,
|
|
CANPLAYTHROUGH = 15,
|
|
SEEKING = 16,
|
|
SEEKED = 17,
|
|
TIMEUPDATE = 18,
|
|
ENDED = 19,
|
|
RATECHANGE = 20,
|
|
DURATIONCHANGE = 21,
|
|
VOLUMECHANGE = 22,
|
|
FORMATCHANGE = 1000,
|
|
PURGEQUEUEDEVENTS = 1001,
|
|
TIMELINE_MARKER = 1002,
|
|
BALANCECHANGE = 1003,
|
|
DOWNLOADCOMPLETE = 1004,
|
|
BUFFERINGSTARTED = 1005,
|
|
BUFFERINGENDED = 1006,
|
|
FRAMESTEPCOMPLETED = 1007,
|
|
NOTIFYSTABLESTATE = 1008,
|
|
FIRSTFRAMEREADY = 1009,
|
|
TRACKSCHANGE = 1010,
|
|
OPMINFO = 1011,
|
|
RESOURCELOST = 1012,
|
|
DELAYLOADEVENT_CHANGED = 1013,
|
|
STREAMRENDERINGERROR = 1014,
|
|
SUPPORTEDRATES_CHANGED = 1015,
|
|
AUDIOENDPOINTCHANGE = 1016,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_EVENT_LOADSTART = MF_MEDIA_ENGINE_EVENT.LOADSTART;
|
|
pub const MF_MEDIA_ENGINE_EVENT_PROGRESS = MF_MEDIA_ENGINE_EVENT.PROGRESS;
|
|
pub const MF_MEDIA_ENGINE_EVENT_SUSPEND = MF_MEDIA_ENGINE_EVENT.SUSPEND;
|
|
pub const MF_MEDIA_ENGINE_EVENT_ABORT = MF_MEDIA_ENGINE_EVENT.ABORT;
|
|
pub const MF_MEDIA_ENGINE_EVENT_ERROR = MF_MEDIA_ENGINE_EVENT.ERROR;
|
|
pub const MF_MEDIA_ENGINE_EVENT_EMPTIED = MF_MEDIA_ENGINE_EVENT.EMPTIED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_STALLED = MF_MEDIA_ENGINE_EVENT.STALLED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_PLAY = MF_MEDIA_ENGINE_EVENT.PLAY;
|
|
pub const MF_MEDIA_ENGINE_EVENT_PAUSE = MF_MEDIA_ENGINE_EVENT.PAUSE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA = MF_MEDIA_ENGINE_EVENT.LOADEDMETADATA;
|
|
pub const MF_MEDIA_ENGINE_EVENT_LOADEDDATA = MF_MEDIA_ENGINE_EVENT.LOADEDDATA;
|
|
pub const MF_MEDIA_ENGINE_EVENT_WAITING = MF_MEDIA_ENGINE_EVENT.WAITING;
|
|
pub const MF_MEDIA_ENGINE_EVENT_PLAYING = MF_MEDIA_ENGINE_EVENT.PLAYING;
|
|
pub const MF_MEDIA_ENGINE_EVENT_CANPLAY = MF_MEDIA_ENGINE_EVENT.CANPLAY;
|
|
pub const MF_MEDIA_ENGINE_EVENT_CANPLAYTHROUGH = MF_MEDIA_ENGINE_EVENT.CANPLAYTHROUGH;
|
|
pub const MF_MEDIA_ENGINE_EVENT_SEEKING = MF_MEDIA_ENGINE_EVENT.SEEKING;
|
|
pub const MF_MEDIA_ENGINE_EVENT_SEEKED = MF_MEDIA_ENGINE_EVENT.SEEKED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_TIMEUPDATE = MF_MEDIA_ENGINE_EVENT.TIMEUPDATE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_ENDED = MF_MEDIA_ENGINE_EVENT.ENDED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_RATECHANGE = MF_MEDIA_ENGINE_EVENT.RATECHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_DURATIONCHANGE = MF_MEDIA_ENGINE_EVENT.DURATIONCHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_VOLUMECHANGE = MF_MEDIA_ENGINE_EVENT.VOLUMECHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_FORMATCHANGE = MF_MEDIA_ENGINE_EVENT.FORMATCHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS = MF_MEDIA_ENGINE_EVENT.PURGEQUEUEDEVENTS;
|
|
pub const MF_MEDIA_ENGINE_EVENT_TIMELINE_MARKER = MF_MEDIA_ENGINE_EVENT.TIMELINE_MARKER;
|
|
pub const MF_MEDIA_ENGINE_EVENT_BALANCECHANGE = MF_MEDIA_ENGINE_EVENT.BALANCECHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_DOWNLOADCOMPLETE = MF_MEDIA_ENGINE_EVENT.DOWNLOADCOMPLETE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_BUFFERINGSTARTED = MF_MEDIA_ENGINE_EVENT.BUFFERINGSTARTED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_BUFFERINGENDED = MF_MEDIA_ENGINE_EVENT.BUFFERINGENDED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_FRAMESTEPCOMPLETED = MF_MEDIA_ENGINE_EVENT.FRAMESTEPCOMPLETED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE = MF_MEDIA_ENGINE_EVENT.NOTIFYSTABLESTATE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY = MF_MEDIA_ENGINE_EVENT.FIRSTFRAMEREADY;
|
|
pub const MF_MEDIA_ENGINE_EVENT_TRACKSCHANGE = MF_MEDIA_ENGINE_EVENT.TRACKSCHANGE;
|
|
pub const MF_MEDIA_ENGINE_EVENT_OPMINFO = MF_MEDIA_ENGINE_EVENT.OPMINFO;
|
|
pub const MF_MEDIA_ENGINE_EVENT_RESOURCELOST = MF_MEDIA_ENGINE_EVENT.RESOURCELOST;
|
|
pub const MF_MEDIA_ENGINE_EVENT_DELAYLOADEVENT_CHANGED = MF_MEDIA_ENGINE_EVENT.DELAYLOADEVENT_CHANGED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_STREAMRENDERINGERROR = MF_MEDIA_ENGINE_EVENT.STREAMRENDERINGERROR;
|
|
pub const MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED = MF_MEDIA_ENGINE_EVENT.SUPPORTEDRATES_CHANGED;
|
|
pub const MF_MEDIA_ENGINE_EVENT_AUDIOENDPOINTCHANGE = MF_MEDIA_ENGINE_EVENT.AUDIOENDPOINTCHANGE;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineNotify_Value = Guid.initString("fee7c112-e776-42b5-9bbf-0048524e2bd5");
|
|
pub const IID_IMFMediaEngineNotify = &IID_IMFMediaEngineNotify_Value;
|
|
pub const IMFMediaEngineNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
EventNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineNotify,
|
|
event: u32,
|
|
param1: usize,
|
|
param2: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineNotify,
|
|
event: u32,
|
|
param1: usize,
|
|
param2: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineNotify_EventNotify(self: *const T, event: u32, param1: usize, param2: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineNotify.VTable, @ptrCast(self.vtable)).EventNotify(@as(*const IMFMediaEngineNotify, @ptrCast(self)), event, param1, param2);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineSrcElements_Value = Guid.initString("7a5e5354-b114-4c72-b991-3131d75032ea");
|
|
pub const IID_IMFMediaEngineSrcElements = &IID_IMFMediaEngineSrcElements_Value;
|
|
pub const IMFMediaEngineSrcElements = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pURL: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pURL: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pType: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pType: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMedia: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pMedia: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
index: u32,
|
|
pMedia: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddElement: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
pURL: ?BSTR,
|
|
pType: ?BSTR,
|
|
pMedia: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
pURL: ?BSTR,
|
|
pType: ?BSTR,
|
|
pMedia: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllElements: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_GetLength(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_GetURL(self: *const T, index: u32, pURL: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).GetURL(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)), index, pURL);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_GetType(self: *const T, index: u32, pType: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).GetType(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)), index, pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_GetMedia(self: *const T, index: u32, pMedia: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).GetMedia(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)), index, pMedia);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_AddElement(self: *const T, pURL: ?BSTR, pType: ?BSTR, pMedia: ?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).AddElement(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)), pURL, pType, pMedia);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElements_RemoveAllElements(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElements.VTable, @ptrCast(self.vtable)).RemoveAllElements(@as(*const IMFMediaEngineSrcElements, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_NETWORK = enum(i32) {
|
|
EMPTY = 0,
|
|
IDLE = 1,
|
|
LOADING = 2,
|
|
NO_SOURCE = 3,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_NETWORK_EMPTY = MF_MEDIA_ENGINE_NETWORK.EMPTY;
|
|
pub const MF_MEDIA_ENGINE_NETWORK_IDLE = MF_MEDIA_ENGINE_NETWORK.IDLE;
|
|
pub const MF_MEDIA_ENGINE_NETWORK_LOADING = MF_MEDIA_ENGINE_NETWORK.LOADING;
|
|
pub const MF_MEDIA_ENGINE_NETWORK_NO_SOURCE = MF_MEDIA_ENGINE_NETWORK.NO_SOURCE;
|
|
|
|
pub const MF_MEDIA_ENGINE_READY = enum(i32) {
|
|
NOTHING = 0,
|
|
METADATA = 1,
|
|
CURRENT_DATA = 2,
|
|
FUTURE_DATA = 3,
|
|
ENOUGH_DATA = 4,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_READY_HAVE_NOTHING = MF_MEDIA_ENGINE_READY.NOTHING;
|
|
pub const MF_MEDIA_ENGINE_READY_HAVE_METADATA = MF_MEDIA_ENGINE_READY.METADATA;
|
|
pub const MF_MEDIA_ENGINE_READY_HAVE_CURRENT_DATA = MF_MEDIA_ENGINE_READY.CURRENT_DATA;
|
|
pub const MF_MEDIA_ENGINE_READY_HAVE_FUTURE_DATA = MF_MEDIA_ENGINE_READY.FUTURE_DATA;
|
|
pub const MF_MEDIA_ENGINE_READY_HAVE_ENOUGH_DATA = MF_MEDIA_ENGINE_READY.ENOUGH_DATA;
|
|
|
|
pub const MF_MEDIA_ENGINE_CANPLAY = enum(i32) {
|
|
NOT_SUPPORTED = 0,
|
|
MAYBE = 1,
|
|
PROBABLY = 2,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_CANPLAY_NOT_SUPPORTED = MF_MEDIA_ENGINE_CANPLAY.NOT_SUPPORTED;
|
|
pub const MF_MEDIA_ENGINE_CANPLAY_MAYBE = MF_MEDIA_ENGINE_CANPLAY.MAYBE;
|
|
pub const MF_MEDIA_ENGINE_CANPLAY_PROBABLY = MF_MEDIA_ENGINE_CANPLAY.PROBABLY;
|
|
|
|
pub const MF_MEDIA_ENGINE_PRELOAD = enum(i32) {
|
|
MISSING = 0,
|
|
EMPTY = 1,
|
|
NONE = 2,
|
|
METADATA = 3,
|
|
AUTOMATIC = 4,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_PRELOAD_MISSING = MF_MEDIA_ENGINE_PRELOAD.MISSING;
|
|
pub const MF_MEDIA_ENGINE_PRELOAD_EMPTY = MF_MEDIA_ENGINE_PRELOAD.EMPTY;
|
|
pub const MF_MEDIA_ENGINE_PRELOAD_NONE = MF_MEDIA_ENGINE_PRELOAD.NONE;
|
|
pub const MF_MEDIA_ENGINE_PRELOAD_METADATA = MF_MEDIA_ENGINE_PRELOAD.METADATA;
|
|
pub const MF_MEDIA_ENGINE_PRELOAD_AUTOMATIC = MF_MEDIA_ENGINE_PRELOAD.AUTOMATIC;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngine_Value = Guid.initString("98a1b0bb-03eb-4935-ae7c-93c1fa0e1c93");
|
|
pub const IID_IMFMediaEngine = &IID_IMFMediaEngine_Value;
|
|
pub const IMFMediaEngine = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
ppError: ?*?*IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
ppError: ?*?*IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
@"error": MF_MEDIA_ENGINE_ERR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
@"error": MF_MEDIA_ENGINE_ERR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSourceElements: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
pSrcElements: ?*IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
pSrcElements: ?*IMFMediaEngineSrcElements,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
pUrl: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
pUrl: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
ppUrl: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
ppUrl: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNetworkState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
},
|
|
GetPreload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MEDIA_ENGINE_PRELOAD,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MEDIA_ENGINE_PRELOAD,
|
|
},
|
|
SetPreload: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Preload: MF_MEDIA_ENGINE_PRELOAD,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Preload: MF_MEDIA_ENGINE_PRELOAD,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBuffered: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
ppBuffered: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
ppBuffered: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Load: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CanPlayType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
type: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
type: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetReadyState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) u16,
|
|
},
|
|
IsSeeking: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetCurrentTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetCurrentTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
seekTime: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
seekTime: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStartTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
GetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
IsPaused: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetDefaultPlaybackRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetDefaultPlaybackRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPlaybackRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetPlaybackRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPlayed: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
ppPlayed: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
ppPlayed: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSeekable: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
ppSeekable: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
ppSeekable: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsEnded: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetAutoPlay: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
SetAutoPlay: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
AutoPlay: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
AutoPlay: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLoop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
SetLoop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Loop: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Loop: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Play: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Pause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMuted: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
SetMuted: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Muted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Muted: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
Volume: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
Volume: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
HasVideo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
HasAudio: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetNativeVideoSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
cx: ?*u32,
|
|
cy: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
cx: ?*u32,
|
|
cy: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoAspectRatio: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
cx: ?*u32,
|
|
cy: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
cx: ?*u32,
|
|
cy: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TransferVideoFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
pDstSurf: ?*IUnknown,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
pDstSurf: ?*IUnknown,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnVideoStreamTick: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngine,
|
|
pPts: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngine,
|
|
pPts: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetError(self: *const T, ppError: ?*?*IMFMediaError) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetError(@as(*const IMFMediaEngine, @ptrCast(self)), ppError);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetErrorCode(self: *const T, @"error": MF_MEDIA_ENGINE_ERR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetErrorCode(@as(*const IMFMediaEngine, @ptrCast(self)), @"error");
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetSourceElements(self: *const T, pSrcElements: ?*IMFMediaEngineSrcElements) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetSourceElements(@as(*const IMFMediaEngine, @ptrCast(self)), pSrcElements);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetSource(self: *const T, pUrl: ?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetSource(@as(*const IMFMediaEngine, @ptrCast(self)), pUrl);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetCurrentSource(self: *const T, ppUrl: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetCurrentSource(@as(*const IMFMediaEngine, @ptrCast(self)), ppUrl);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetNetworkState(self: *const T) callconv(.Inline) u16 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetNetworkState(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetPreload(self: *const T) callconv(.Inline) MF_MEDIA_ENGINE_PRELOAD {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetPreload(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetPreload(self: *const T, Preload: MF_MEDIA_ENGINE_PRELOAD) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetPreload(@as(*const IMFMediaEngine, @ptrCast(self)), Preload);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetBuffered(self: *const T, ppBuffered: ?*?*IMFMediaTimeRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetBuffered(@as(*const IMFMediaEngine, @ptrCast(self)), ppBuffered);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_Load(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).Load(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_CanPlayType(self: *const T, type_: ?BSTR, pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).CanPlayType(@as(*const IMFMediaEngine, @ptrCast(self)), type_, pAnswer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetReadyState(self: *const T) callconv(.Inline) u16 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetReadyState(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_IsSeeking(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).IsSeeking(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetCurrentTime(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetCurrentTime(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetCurrentTime(self: *const T, seekTime: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetCurrentTime(@as(*const IMFMediaEngine, @ptrCast(self)), seekTime);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetStartTime(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetStartTime(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetDuration(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetDuration(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_IsPaused(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).IsPaused(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetDefaultPlaybackRate(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetDefaultPlaybackRate(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetDefaultPlaybackRate(self: *const T, Rate: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetDefaultPlaybackRate(@as(*const IMFMediaEngine, @ptrCast(self)), Rate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetPlaybackRate(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetPlaybackRate(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetPlaybackRate(self: *const T, Rate: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetPlaybackRate(@as(*const IMFMediaEngine, @ptrCast(self)), Rate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetPlayed(self: *const T, ppPlayed: ?*?*IMFMediaTimeRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetPlayed(@as(*const IMFMediaEngine, @ptrCast(self)), ppPlayed);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetSeekable(self: *const T, ppSeekable: ?*?*IMFMediaTimeRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetSeekable(@as(*const IMFMediaEngine, @ptrCast(self)), ppSeekable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_IsEnded(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).IsEnded(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetAutoPlay(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetAutoPlay(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetAutoPlay(self: *const T, AutoPlay: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetAutoPlay(@as(*const IMFMediaEngine, @ptrCast(self)), AutoPlay);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetLoop(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetLoop(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetLoop(self: *const T, Loop: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetLoop(@as(*const IMFMediaEngine, @ptrCast(self)), Loop);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_Play(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).Play(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_Pause(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetMuted(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetMuted(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetMuted(self: *const T, Muted: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetMuted(@as(*const IMFMediaEngine, @ptrCast(self)), Muted);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetVolume(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetVolume(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_SetVolume(self: *const T, Volume: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).SetVolume(@as(*const IMFMediaEngine, @ptrCast(self)), Volume);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_HasVideo(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).HasVideo(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_HasAudio(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).HasAudio(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetNativeVideoSize(self: *const T, cx: ?*u32, cy: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetNativeVideoSize(@as(*const IMFMediaEngine, @ptrCast(self)), cx, cy);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_GetVideoAspectRatio(self: *const T, cx: ?*u32, cy: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).GetVideoAspectRatio(@as(*const IMFMediaEngine, @ptrCast(self)), cx, cy);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaEngine, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_TransferVideoFrame(self: *const T, pDstSurf: ?*IUnknown, pSrc: ?*const MFVideoNormalizedRect, pDst: ?*const RECT, pBorderClr: ?*const MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).TransferVideoFrame(@as(*const IMFMediaEngine, @ptrCast(self)), pDstSurf, pSrc, pDst, pBorderClr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngine_OnVideoStreamTick(self: *const T, pPts: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngine.VTable, @ptrCast(self.vtable)).OnVideoStreamTick(@as(*const IMFMediaEngine, @ptrCast(self)), pPts);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_S3D_PACKING_MODE = enum(i32) {
|
|
NONE = 0,
|
|
SIDE_BY_SIDE = 1,
|
|
TOP_BOTTOM = 2,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_S3D_PACKING_MODE_NONE = MF_MEDIA_ENGINE_S3D_PACKING_MODE.NONE;
|
|
pub const MF_MEDIA_ENGINE_S3D_PACKING_MODE_SIDE_BY_SIDE = MF_MEDIA_ENGINE_S3D_PACKING_MODE.SIDE_BY_SIDE;
|
|
pub const MF_MEDIA_ENGINE_S3D_PACKING_MODE_TOP_BOTTOM = MF_MEDIA_ENGINE_S3D_PACKING_MODE.TOP_BOTTOM;
|
|
|
|
pub const MF_MEDIA_ENGINE_STATISTIC = enum(i32) {
|
|
FRAMES_RENDERED = 0,
|
|
FRAMES_DROPPED = 1,
|
|
BYTES_DOWNLOADED = 2,
|
|
BUFFER_PROGRESS = 3,
|
|
FRAMES_PER_SECOND = 4,
|
|
PLAYBACK_JITTER = 5,
|
|
FRAMES_CORRUPTED = 6,
|
|
TOTAL_FRAME_DELAY = 7,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_FRAMES_RENDERED = MF_MEDIA_ENGINE_STATISTIC.FRAMES_RENDERED;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_FRAMES_DROPPED = MF_MEDIA_ENGINE_STATISTIC.FRAMES_DROPPED;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_BYTES_DOWNLOADED = MF_MEDIA_ENGINE_STATISTIC.BYTES_DOWNLOADED;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_BUFFER_PROGRESS = MF_MEDIA_ENGINE_STATISTIC.BUFFER_PROGRESS;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_FRAMES_PER_SECOND = MF_MEDIA_ENGINE_STATISTIC.FRAMES_PER_SECOND;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_PLAYBACK_JITTER = MF_MEDIA_ENGINE_STATISTIC.PLAYBACK_JITTER;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_FRAMES_CORRUPTED = MF_MEDIA_ENGINE_STATISTIC.FRAMES_CORRUPTED;
|
|
pub const MF_MEDIA_ENGINE_STATISTIC_TOTAL_FRAME_DELAY = MF_MEDIA_ENGINE_STATISTIC.TOTAL_FRAME_DELAY;
|
|
|
|
pub const MF_MEDIA_ENGINE_SEEK_MODE = enum(i32) {
|
|
NORMAL = 0,
|
|
APPROXIMATE = 1,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_SEEK_MODE_NORMAL = MF_MEDIA_ENGINE_SEEK_MODE.NORMAL;
|
|
pub const MF_MEDIA_ENGINE_SEEK_MODE_APPROXIMATE = MF_MEDIA_ENGINE_SEEK_MODE.APPROXIMATE;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineEx_Value = Guid.initString("83015ead-b1e6-40d0-a98a-37145ffe1ad1");
|
|
pub const IID_IMFMediaEngineEx = &IID_IMFMediaEngineEx_Value;
|
|
pub const IMFMediaEngineEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEngine.VTable,
|
|
SetSourceFromByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pByteStream: ?*IMFByteStream,
|
|
pURL: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pByteStream: ?*IMFByteStream,
|
|
pURL: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStatistics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
StatisticID: MF_MEDIA_ENGINE_STATISTIC,
|
|
pStatistic: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
StatisticID: MF_MEDIA_ENGINE_STATISTIC,
|
|
pStatistic: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateVideoStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBalance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetBalance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
balance: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
balance: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsPlaybackRateSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
rate: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
FrameStep: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
Forward: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
Forward: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetResourceCharacteristics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationAttribute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNumberOfStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamAttribute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
pEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
pEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
Enabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
dwStreamIndex: u32,
|
|
Enabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ApplyStreamSelections: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsProtected: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pProtected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pProtected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InsertVideoEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InsertAudioEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllEffects: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetTimelineMarkerTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
timeToFire: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
timeToFire: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTimelineMarkerTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pTimeToFire: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pTimeToFire: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelTimelineMarkerTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsStereo3D: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetStereo3DFramePackingMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
packMode: ?*MF_MEDIA_ENGINE_S3D_PACKING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
packMode: ?*MF_MEDIA_ENGINE_S3D_PACKING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStereo3DFramePackingMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
packMode: MF_MEDIA_ENGINE_S3D_PACKING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
packMode: MF_MEDIA_ENGINE_S3D_PACKING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStereo3DRenderMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
outputType: ?*MF3DVideoOutputType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
outputType: ?*MF3DVideoOutputType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStereo3DRenderMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
outputType: MF3DVideoOutputType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
outputType: MF3DVideoOutputType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableWindowlessSwapchainMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoSwapchainHandle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
phSwapchain: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
phSwapchain: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableHorizontalMirrorMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAudioStreamCategory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pCategory: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pCategory: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAudioStreamCategory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
category: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
category: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAudioEndpointRole: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pRole: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pRole: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAudioEndpointRole: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
role: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
role: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRealTimeMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pfEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
pfEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRealTimeMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentTimeEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
seekTime: f64,
|
|
seekMode: MF_MEDIA_ENGINE_SEEK_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
seekTime: f64,
|
|
seekMode: MF_MEDIA_ENGINE_SEEK_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EnableTimeUpdateTimer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnableTimer: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEx,
|
|
fEnableTimer: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEngine.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetSourceFromByteStream(self: *const T, pByteStream: ?*IMFByteStream, pURL: ?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetSourceFromByteStream(@as(*const IMFMediaEngineEx, @ptrCast(self)), pByteStream, pURL);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetStatistics(self: *const T, StatisticID: MF_MEDIA_ENGINE_STATISTIC, pStatistic: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetStatistics(@as(*const IMFMediaEngineEx, @ptrCast(self)), StatisticID, pStatistic);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_UpdateVideoStream(self: *const T, pSrc: ?*const MFVideoNormalizedRect, pDst: ?*const RECT, pBorderClr: ?*const MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).UpdateVideoStream(@as(*const IMFMediaEngineEx, @ptrCast(self)), pSrc, pDst, pBorderClr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetBalance(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetBalance(@as(*const IMFMediaEngineEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetBalance(self: *const T, balance: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetBalance(@as(*const IMFMediaEngineEx, @ptrCast(self)), balance);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_IsPlaybackRateSupported(self: *const T, rate: f64) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).IsPlaybackRateSupported(@as(*const IMFMediaEngineEx, @ptrCast(self)), rate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_FrameStep(self: *const T, Forward: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).FrameStep(@as(*const IMFMediaEngineEx, @ptrCast(self)), Forward);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetResourceCharacteristics(self: *const T, pCharacteristics: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetResourceCharacteristics(@as(*const IMFMediaEngineEx, @ptrCast(self)), pCharacteristics);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetPresentationAttribute(self: *const T, guidMFAttribute: ?*const Guid, pvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetPresentationAttribute(@as(*const IMFMediaEngineEx, @ptrCast(self)), guidMFAttribute, pvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetNumberOfStreams(self: *const T, pdwStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetNumberOfStreams(@as(*const IMFMediaEngineEx, @ptrCast(self)), pdwStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetStreamAttribute(self: *const T, dwStreamIndex: u32, guidMFAttribute: ?*const Guid, pvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetStreamAttribute(@as(*const IMFMediaEngineEx, @ptrCast(self)), dwStreamIndex, guidMFAttribute, pvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetStreamSelection(self: *const T, dwStreamIndex: u32, pEnabled: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetStreamSelection(@as(*const IMFMediaEngineEx, @ptrCast(self)), dwStreamIndex, pEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetStreamSelection(self: *const T, dwStreamIndex: u32, Enabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetStreamSelection(@as(*const IMFMediaEngineEx, @ptrCast(self)), dwStreamIndex, Enabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_ApplyStreamSelections(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).ApplyStreamSelections(@as(*const IMFMediaEngineEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_IsProtected(self: *const T, pProtected: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).IsProtected(@as(*const IMFMediaEngineEx, @ptrCast(self)), pProtected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_InsertVideoEffect(self: *const T, pEffect: ?*IUnknown, fOptional: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).InsertVideoEffect(@as(*const IMFMediaEngineEx, @ptrCast(self)), pEffect, fOptional);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_InsertAudioEffect(self: *const T, pEffect: ?*IUnknown, fOptional: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).InsertAudioEffect(@as(*const IMFMediaEngineEx, @ptrCast(self)), pEffect, fOptional);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_RemoveAllEffects(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).RemoveAllEffects(@as(*const IMFMediaEngineEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetTimelineMarkerTimer(self: *const T, timeToFire: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetTimelineMarkerTimer(@as(*const IMFMediaEngineEx, @ptrCast(self)), timeToFire);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetTimelineMarkerTimer(self: *const T, pTimeToFire: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetTimelineMarkerTimer(@as(*const IMFMediaEngineEx, @ptrCast(self)), pTimeToFire);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_CancelTimelineMarkerTimer(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).CancelTimelineMarkerTimer(@as(*const IMFMediaEngineEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_IsStereo3D(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).IsStereo3D(@as(*const IMFMediaEngineEx, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetStereo3DFramePackingMode(self: *const T, packMode: ?*MF_MEDIA_ENGINE_S3D_PACKING_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetStereo3DFramePackingMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), packMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetStereo3DFramePackingMode(self: *const T, packMode: MF_MEDIA_ENGINE_S3D_PACKING_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetStereo3DFramePackingMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), packMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetStereo3DRenderMode(self: *const T, outputType: ?*MF3DVideoOutputType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetStereo3DRenderMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), outputType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetStereo3DRenderMode(self: *const T, outputType: MF3DVideoOutputType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetStereo3DRenderMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), outputType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_EnableWindowlessSwapchainMode(self: *const T, fEnable: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).EnableWindowlessSwapchainMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), fEnable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetVideoSwapchainHandle(self: *const T, phSwapchain: ?*?HANDLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetVideoSwapchainHandle(@as(*const IMFMediaEngineEx, @ptrCast(self)), phSwapchain);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_EnableHorizontalMirrorMode(self: *const T, fEnable: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).EnableHorizontalMirrorMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), fEnable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetAudioStreamCategory(self: *const T, pCategory: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetAudioStreamCategory(@as(*const IMFMediaEngineEx, @ptrCast(self)), pCategory);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetAudioStreamCategory(self: *const T, category: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetAudioStreamCategory(@as(*const IMFMediaEngineEx, @ptrCast(self)), category);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetAudioEndpointRole(self: *const T, pRole: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetAudioEndpointRole(@as(*const IMFMediaEngineEx, @ptrCast(self)), pRole);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetAudioEndpointRole(self: *const T, role: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetAudioEndpointRole(@as(*const IMFMediaEngineEx, @ptrCast(self)), role);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_GetRealTimeMode(self: *const T, pfEnabled: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).GetRealTimeMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), pfEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetRealTimeMode(self: *const T, fEnable: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetRealTimeMode(@as(*const IMFMediaEngineEx, @ptrCast(self)), fEnable);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_SetCurrentTimeEx(self: *const T, seekTime: f64, seekMode: MF_MEDIA_ENGINE_SEEK_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).SetCurrentTimeEx(@as(*const IMFMediaEngineEx, @ptrCast(self)), seekTime, seekMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEx_EnableTimeUpdateTimer(self: *const T, fEnableTimer: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEx.VTable, @ptrCast(self.vtable)).EnableTimeUpdateTimer(@as(*const IMFMediaEngineEx, @ptrCast(self)), fEnableTimer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaEngineAudioEndpointId_Value = Guid.initString("7a3bac98-0e76-49fb-8c20-8a86fd98eaf2");
|
|
pub const IID_IMFMediaEngineAudioEndpointId = &IID_IMFMediaEngineAudioEndpointId_Value;
|
|
pub const IMFMediaEngineAudioEndpointId = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetAudioEndpointId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineAudioEndpointId,
|
|
pszEndpointId: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineAudioEndpointId,
|
|
pszEndpointId: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAudioEndpointId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineAudioEndpointId,
|
|
ppszEndpointId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineAudioEndpointId,
|
|
ppszEndpointId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineAudioEndpointId_SetAudioEndpointId(self: *const T, pszEndpointId: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineAudioEndpointId.VTable, @ptrCast(self.vtable)).SetAudioEndpointId(@as(*const IMFMediaEngineAudioEndpointId, @ptrCast(self)), pszEndpointId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineAudioEndpointId_GetAudioEndpointId(self: *const T, ppszEndpointId: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineAudioEndpointId.VTable, @ptrCast(self.vtable)).GetAudioEndpointId(@as(*const IMFMediaEngineAudioEndpointId, @ptrCast(self)), ppszEndpointId);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_EXTENSION_TYPE = enum(i32) {
|
|
MEDIASOURCE = 0,
|
|
BYTESTREAM = 1,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_EXTENSION_TYPE_MEDIASOURCE = MF_MEDIA_ENGINE_EXTENSION_TYPE.MEDIASOURCE;
|
|
pub const MF_MEDIA_ENGINE_EXTENSION_TYPE_BYTESTREAM = MF_MEDIA_ENGINE_EXTENSION_TYPE.BYTESTREAM;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineExtension_Value = Guid.initString("2f69d622-20b5-41e9-afdf-89ced1dda04e");
|
|
pub const IID_IMFMediaEngineExtension = &IID_IMFMediaEngineExtension_Value;
|
|
pub const IMFMediaEngineExtension = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CanPlayType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
AudioOnly: BOOL,
|
|
MimeType: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
AudioOnly: BOOL,
|
|
MimeType: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
bstrURL: ?BSTR,
|
|
pByteStream: ?*IMFByteStream,
|
|
type: MF_OBJECT_TYPE,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
bstrURL: ?BSTR,
|
|
pByteStream: ?*IMFByteStream,
|
|
type: MF_OBJECT_TYPE,
|
|
ppIUnknownCancelCookie: ?*?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CancelObjectCreation: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
pIUnknownCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
EndCreateObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineExtension,
|
|
pResult: ?*IMFAsyncResult,
|
|
ppObject: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineExtension_CanPlayType(self: *const T, AudioOnly: BOOL, MimeType: ?BSTR, pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineExtension.VTable, @ptrCast(self.vtable)).CanPlayType(@as(*const IMFMediaEngineExtension, @ptrCast(self)), AudioOnly, MimeType, pAnswer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineExtension_BeginCreateObject(self: *const T, bstrURL: ?BSTR, pByteStream: ?*IMFByteStream, type_: MF_OBJECT_TYPE, ppIUnknownCancelCookie: ?*?*IUnknown, pCallback: ?*IMFAsyncCallback, punkState: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineExtension.VTable, @ptrCast(self.vtable)).BeginCreateObject(@as(*const IMFMediaEngineExtension, @ptrCast(self)), bstrURL, pByteStream, type_, ppIUnknownCancelCookie, pCallback, punkState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineExtension_CancelObjectCreation(self: *const T, pIUnknownCancelCookie: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineExtension.VTable, @ptrCast(self.vtable)).CancelObjectCreation(@as(*const IMFMediaEngineExtension, @ptrCast(self)), pIUnknownCancelCookie);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineExtension_EndCreateObject(self: *const T, pResult: ?*IMFAsyncResult, ppObject: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineExtension.VTable, @ptrCast(self.vtable)).EndCreateObject(@as(*const IMFMediaEngineExtension, @ptrCast(self)), pResult, ppObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAGS = enum(i32) {
|
|
PROTECTED = 1,
|
|
REQUIRES_SURFACE_PROTECTION = 2,
|
|
REQUIRES_ANTI_SCREEN_SCRAPE_PROTECTION = 4,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAG_PROTECTED = MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAGS.PROTECTED;
|
|
pub const MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAG_REQUIRES_SURFACE_PROTECTION = MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAGS.REQUIRES_SURFACE_PROTECTION;
|
|
pub const MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAG_REQUIRES_ANTI_SCREEN_SCRAPE_PROTECTION = MF_MEDIA_ENGINE_FRAME_PROTECTION_FLAGS.REQUIRES_ANTI_SCREEN_SCRAPE_PROTECTION;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineProtectedContent_Value = Guid.initString("9f8021e8-9c8c-487e-bb5c-79aa4779938c");
|
|
pub const IID_IMFMediaEngineProtectedContent = &IID_IMFMediaEngineProtectedContent_Value;
|
|
pub const IMFMediaEngineProtectedContent = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ShareResources: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pUnkDeviceContext: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pUnkDeviceContext: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRequiredProtections: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pFrameProtectionFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pFrameProtectionFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetOPMWindow: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
hwnd: ?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
hwnd: ?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
TransferVideoFrame: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pDstSurf: ?*IUnknown,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
pFrameProtectionFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pDstSurf: ?*IUnknown,
|
|
pSrc: ?*const MFVideoNormalizedRect,
|
|
pDst: ?*const RECT,
|
|
pBorderClr: ?*const MFARGB,
|
|
pFrameProtectionFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetContentProtectionManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pCPM: ?*IMFContentProtectionManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
pCPM: ?*IMFContentProtectionManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetApplicationCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBlob: ?*const u8,
|
|
cbBlob: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineProtectedContent,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbBlob: ?*const u8,
|
|
cbBlob: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_ShareResources(self: *const T, pUnkDeviceContext: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).ShareResources(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), pUnkDeviceContext);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_GetRequiredProtections(self: *const T, pFrameProtectionFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).GetRequiredProtections(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), pFrameProtectionFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_SetOPMWindow(self: *const T, hwnd: ?HWND) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).SetOPMWindow(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), hwnd);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_TransferVideoFrame(self: *const T, pDstSurf: ?*IUnknown, pSrc: ?*const MFVideoNormalizedRect, pDst: ?*const RECT, pBorderClr: ?*const MFARGB, pFrameProtectionFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).TransferVideoFrame(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), pDstSurf, pSrc, pDst, pBorderClr, pFrameProtectionFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_SetContentProtectionManager(self: *const T, pCPM: ?*IMFContentProtectionManager) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).SetContentProtectionManager(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), pCPM);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineProtectedContent_SetApplicationCertificate(self: *const T, pbBlob: ?*const u8, cbBlob: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineProtectedContent.VTable, @ptrCast(self.vtable)).SetApplicationCertificate(@as(*const IMFMediaEngineProtectedContent, @ptrCast(self)), pbBlob, cbBlob);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IAudioSourceProvider_Value = Guid.initString("ebbaf249-afc2-4582-91c6-b60df2e84954");
|
|
pub const IID_IAudioSourceProvider = &IID_IAudioSourceProvider_Value;
|
|
pub const IAudioSourceProvider = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ProvideInput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IAudioSourceProvider,
|
|
dwSampleCount: u32,
|
|
pdwChannelCount: ?*u32,
|
|
pInterleavedAudioData: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IAudioSourceProvider,
|
|
dwSampleCount: u32,
|
|
pdwChannelCount: ?*u32,
|
|
pInterleavedAudioData: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IAudioSourceProvider_ProvideInput(self: *const T, dwSampleCount: u32, pdwChannelCount: ?*u32, pInterleavedAudioData: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IAudioSourceProvider.VTable, @ptrCast(self.vtable)).ProvideInput(@as(*const IAudioSourceProvider, @ptrCast(self)), dwSampleCount, pdwChannelCount, pInterleavedAudioData);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaEngineWebSupport_Value = Guid.initString("ba2743a1-07e0-48ef-84b6-9a2ed023ca6c");
|
|
pub const IID_IMFMediaEngineWebSupport = &IID_IMFMediaEngineWebSupport_Value;
|
|
pub const IMFMediaEngineWebSupport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ShouldDelayTheLoadEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
ConnectWebAudio: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
dwSampleRate: u32,
|
|
ppSourceProvider: ?*?*IAudioSourceProvider,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
dwSampleRate: u32,
|
|
ppSourceProvider: ?*?*IAudioSourceProvider,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DisconnectWebAudio: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineWebSupport,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineWebSupport_ShouldDelayTheLoadEvent(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaEngineWebSupport.VTable, @ptrCast(self.vtable)).ShouldDelayTheLoadEvent(@as(*const IMFMediaEngineWebSupport, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineWebSupport_ConnectWebAudio(self: *const T, dwSampleRate: u32, ppSourceProvider: ?*?*IAudioSourceProvider) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineWebSupport.VTable, @ptrCast(self.vtable)).ConnectWebAudio(@as(*const IMFMediaEngineWebSupport, @ptrCast(self)), dwSampleRate, ppSourceProvider);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineWebSupport_DisconnectWebAudio(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineWebSupport.VTable, @ptrCast(self.vtable)).DisconnectWebAudio(@as(*const IMFMediaEngineWebSupport, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MSE_VP9_SUPPORT_TYPE = enum(i32) {
|
|
DEFAULT = 0,
|
|
ON = 1,
|
|
OFF = 2,
|
|
};
|
|
pub const MF_MSE_VP9_SUPPORT_DEFAULT = MF_MSE_VP9_SUPPORT_TYPE.DEFAULT;
|
|
pub const MF_MSE_VP9_SUPPORT_ON = MF_MSE_VP9_SUPPORT_TYPE.ON;
|
|
pub const MF_MSE_VP9_SUPPORT_OFF = MF_MSE_VP9_SUPPORT_TYPE.OFF;
|
|
|
|
pub const MF_MSE_OPUS_SUPPORT_TYPE = enum(i32) {
|
|
N = 0,
|
|
FF = 1,
|
|
};
|
|
pub const MF_MSE_OPUS_SUPPORT_ON = MF_MSE_OPUS_SUPPORT_TYPE.N;
|
|
pub const MF_MSE_OPUS_SUPPORT_OFF = MF_MSE_OPUS_SUPPORT_TYPE.FF;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaSourceExtensionNotify_Value = Guid.initString("a7901327-05dd-4469-a7b7-0e01979e361d");
|
|
pub const IID_IMFMediaSourceExtensionNotify = &IID_IMFMediaSourceExtensionNotify_Value;
|
|
pub const IMFMediaSourceExtensionNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnSourceOpen: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnSourceEnded: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnSourceClose: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtensionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtensionNotify_OnSourceOpen(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaSourceExtensionNotify.VTable, @ptrCast(self.vtable)).OnSourceOpen(@as(*const IMFMediaSourceExtensionNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtensionNotify_OnSourceEnded(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaSourceExtensionNotify.VTable, @ptrCast(self.vtable)).OnSourceEnded(@as(*const IMFMediaSourceExtensionNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtensionNotify_OnSourceClose(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaSourceExtensionNotify.VTable, @ptrCast(self.vtable)).OnSourceClose(@as(*const IMFMediaSourceExtensionNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFBufferListNotify_Value = Guid.initString("24cd47f7-81d8-4785-adb2-af697a963cd2");
|
|
pub const IID_IMFBufferListNotify = &IID_IMFBufferListNotify_Value;
|
|
pub const IMFBufferListNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnAddSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFBufferListNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFBufferListNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnRemoveSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFBufferListNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFBufferListNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFBufferListNotify_OnAddSourceBuffer(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFBufferListNotify.VTable, @ptrCast(self.vtable)).OnAddSourceBuffer(@as(*const IMFBufferListNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFBufferListNotify_OnRemoveSourceBuffer(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFBufferListNotify.VTable, @ptrCast(self.vtable)).OnRemoveSourceBuffer(@as(*const IMFBufferListNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFSourceBufferNotify_Value = Guid.initString("87e47623-2ceb-45d6-9b88-d8520c4dcbbc");
|
|
pub const IID_IMFSourceBufferNotify = &IID_IMFSourceBufferNotify_Value;
|
|
pub const IMFSourceBufferNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnUpdateStart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnAbort: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
hr: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
hr: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnUpdate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
OnUpdateEnd: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferNotify_OnUpdateStart(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFSourceBufferNotify.VTable, @ptrCast(self.vtable)).OnUpdateStart(@as(*const IMFSourceBufferNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferNotify_OnAbort(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFSourceBufferNotify.VTable, @ptrCast(self.vtable)).OnAbort(@as(*const IMFSourceBufferNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferNotify_OnError(self: *const T, hr: HRESULT) callconv(.Inline) void {
|
|
return @as(*const IMFSourceBufferNotify.VTable, @ptrCast(self.vtable)).OnError(@as(*const IMFSourceBufferNotify, @ptrCast(self)), hr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferNotify_OnUpdate(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFSourceBufferNotify.VTable, @ptrCast(self.vtable)).OnUpdate(@as(*const IMFSourceBufferNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferNotify_OnUpdateEnd(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFSourceBufferNotify.VTable, @ptrCast(self.vtable)).OnUpdateEnd(@as(*const IMFSourceBufferNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFSourceBuffer_Value = Guid.initString("e2cd3a4b-af25-4d3d-9110-da0e6f8ee877");
|
|
pub const IID_IMFSourceBuffer = &IID_IMFSourceBuffer_Value;
|
|
pub const IMFSourceBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetUpdating: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetBuffered: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
ppBuffered: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
ppBuffered: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTimeStampOffset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetTimeStampOffset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
offset: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
offset: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAppendWindowStart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetAppendWindowStart: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAppendWindowEnd: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetAppendWindowEnd: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
time: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Append: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*const u8,
|
|
len: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pData: ?*const u8,
|
|
len: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AppendByteStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
pStream: ?*IMFByteStream,
|
|
pMaxLen: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
pStream: ?*IMFByteStream,
|
|
pMaxLen: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Abort: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Remove: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBuffer,
|
|
start: f64,
|
|
end: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBuffer,
|
|
start: f64,
|
|
end: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_GetUpdating(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).GetUpdating(@as(*const IMFSourceBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_GetBuffered(self: *const T, ppBuffered: ?*?*IMFMediaTimeRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).GetBuffered(@as(*const IMFSourceBuffer, @ptrCast(self)), ppBuffered);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_GetTimeStampOffset(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).GetTimeStampOffset(@as(*const IMFSourceBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_SetTimeStampOffset(self: *const T, offset: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).SetTimeStampOffset(@as(*const IMFSourceBuffer, @ptrCast(self)), offset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_GetAppendWindowStart(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).GetAppendWindowStart(@as(*const IMFSourceBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_SetAppendWindowStart(self: *const T, time: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).SetAppendWindowStart(@as(*const IMFSourceBuffer, @ptrCast(self)), time);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_GetAppendWindowEnd(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).GetAppendWindowEnd(@as(*const IMFSourceBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_SetAppendWindowEnd(self: *const T, time: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).SetAppendWindowEnd(@as(*const IMFSourceBuffer, @ptrCast(self)), time);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_Append(self: *const T, pData: ?*const u8, len: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).Append(@as(*const IMFSourceBuffer, @ptrCast(self)), pData, len);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_AppendByteStream(self: *const T, pStream: ?*IMFByteStream, pMaxLen: ?*u64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).AppendByteStream(@as(*const IMFSourceBuffer, @ptrCast(self)), pStream, pMaxLen);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_Abort(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).Abort(@as(*const IMFSourceBuffer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBuffer_Remove(self: *const T, start: f64, end: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBuffer.VTable, @ptrCast(self.vtable)).Remove(@as(*const IMFSourceBuffer, @ptrCast(self)), start, end);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MSE_APPEND_MODE = enum(i32) {
|
|
GMENTS = 0,
|
|
QUENCE = 1,
|
|
};
|
|
pub const MF_MSE_APPEND_MODE_SEGMENTS = MF_MSE_APPEND_MODE.GMENTS;
|
|
pub const MF_MSE_APPEND_MODE_SEQUENCE = MF_MSE_APPEND_MODE.QUENCE;
|
|
|
|
const IID_IMFSourceBufferAppendMode_Value = Guid.initString("19666fb4-babe-4c55-bc03-0a074da37e2a");
|
|
pub const IID_IMFSourceBufferAppendMode = &IID_IMFSourceBufferAppendMode_Value;
|
|
pub const IMFSourceBufferAppendMode = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAppendMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferAppendMode,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MSE_APPEND_MODE,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferAppendMode,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MSE_APPEND_MODE,
|
|
},
|
|
SetAppendMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferAppendMode,
|
|
mode: MF_MSE_APPEND_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferAppendMode,
|
|
mode: MF_MSE_APPEND_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferAppendMode_GetAppendMode(self: *const T) callconv(.Inline) MF_MSE_APPEND_MODE {
|
|
return @as(*const IMFSourceBufferAppendMode.VTable, @ptrCast(self.vtable)).GetAppendMode(@as(*const IMFSourceBufferAppendMode, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferAppendMode_SetAppendMode(self: *const T, mode: MF_MSE_APPEND_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceBufferAppendMode.VTable, @ptrCast(self.vtable)).SetAppendMode(@as(*const IMFSourceBufferAppendMode, @ptrCast(self)), mode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFSourceBufferList_Value = Guid.initString("249981f8-8325-41f3-b80c-3b9e3aad0cbe");
|
|
pub const IID_IMFSourceBufferList = &IID_IMFSourceBufferList_Value;
|
|
pub const IMFSourceBufferList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceBufferList,
|
|
index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBuffer,
|
|
else => *const fn(
|
|
self: *const IMFSourceBufferList,
|
|
index: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBuffer,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferList_GetLength(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFSourceBufferList.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFSourceBufferList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceBufferList_GetSourceBuffer(self: *const T, index: u32) callconv(.Inline) ?*IMFSourceBuffer {
|
|
return @as(*const IMFSourceBufferList.VTable, @ptrCast(self.vtable)).GetSourceBuffer(@as(*const IMFSourceBufferList, @ptrCast(self)), index);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MSE_READY = enum(i32) {
|
|
CLOSED = 1,
|
|
OPEN = 2,
|
|
ENDED = 3,
|
|
};
|
|
pub const MF_MSE_READY_CLOSED = MF_MSE_READY.CLOSED;
|
|
pub const MF_MSE_READY_OPEN = MF_MSE_READY.OPEN;
|
|
pub const MF_MSE_READY_ENDED = MF_MSE_READY.ENDED;
|
|
|
|
pub const MF_MSE_ERROR = enum(i32) {
|
|
NOERROR = 0,
|
|
NETWORK = 1,
|
|
DECODE = 2,
|
|
UNKNOWN_ERROR = 3,
|
|
};
|
|
pub const MF_MSE_ERROR_NOERROR = MF_MSE_ERROR.NOERROR;
|
|
pub const MF_MSE_ERROR_NETWORK = MF_MSE_ERROR.NETWORK;
|
|
pub const MF_MSE_ERROR_DECODE = MF_MSE_ERROR.DECODE;
|
|
pub const MF_MSE_ERROR_UNKNOWN_ERROR = MF_MSE_ERROR.UNKNOWN_ERROR;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaSourceExtension_Value = Guid.initString("e467b94e-a713-4562-a802-816a42e9008a");
|
|
pub const IID_IMFMediaSourceExtension = &IID_IMFMediaSourceExtension_Value;
|
|
pub const IMFMediaSourceExtension = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetSourceBuffers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBufferList,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBufferList,
|
|
},
|
|
GetActiveSourceBuffers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBufferList,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBufferList,
|
|
},
|
|
GetReadyState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MSE_READY,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_MSE_READY,
|
|
},
|
|
GetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
SetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
duration: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
duration: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
type: ?BSTR,
|
|
pNotify: ?*IMFSourceBufferNotify,
|
|
ppSourceBuffer: ?*?*IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
type: ?BSTR,
|
|
pNotify: ?*IMFSourceBufferNotify,
|
|
ppSourceBuffer: ?*?*IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
pSourceBuffer: ?*IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
pSourceBuffer: ?*IMFSourceBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetEndOfStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
@"error": MF_MSE_ERROR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
@"error": MF_MSE_ERROR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
type: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
type: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetSourceBuffer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBuffer,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtension,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*IMFSourceBuffer,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_GetSourceBuffers(self: *const T) callconv(.Inline) ?*IMFSourceBufferList {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).GetSourceBuffers(@as(*const IMFMediaSourceExtension, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_GetActiveSourceBuffers(self: *const T) callconv(.Inline) ?*IMFSourceBufferList {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).GetActiveSourceBuffers(@as(*const IMFMediaSourceExtension, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_GetReadyState(self: *const T) callconv(.Inline) MF_MSE_READY {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).GetReadyState(@as(*const IMFMediaSourceExtension, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_GetDuration(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).GetDuration(@as(*const IMFMediaSourceExtension, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_SetDuration(self: *const T, duration: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).SetDuration(@as(*const IMFMediaSourceExtension, @ptrCast(self)), duration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_AddSourceBuffer(self: *const T, type_: ?BSTR, pNotify: ?*IMFSourceBufferNotify, ppSourceBuffer: ?*?*IMFSourceBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).AddSourceBuffer(@as(*const IMFMediaSourceExtension, @ptrCast(self)), type_, pNotify, ppSourceBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_RemoveSourceBuffer(self: *const T, pSourceBuffer: ?*IMFSourceBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).RemoveSourceBuffer(@as(*const IMFMediaSourceExtension, @ptrCast(self)), pSourceBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_SetEndOfStream(self: *const T, @"error": MF_MSE_ERROR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).SetEndOfStream(@as(*const IMFMediaSourceExtension, @ptrCast(self)), @"error");
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_IsTypeSupported(self: *const T, type_: ?BSTR) callconv(.Inline) BOOL {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).IsTypeSupported(@as(*const IMFMediaSourceExtension, @ptrCast(self)), type_);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtension_GetSourceBuffer(self: *const T, dwStreamIndex: u32) callconv(.Inline) ?*IMFSourceBuffer {
|
|
return @as(*const IMFMediaSourceExtension.VTable, @ptrCast(self.vtable)).GetSourceBuffer(@as(*const IMFMediaSourceExtension, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaSourceExtensionLiveSeekableRange_Value = Guid.initString("5d1abfd6-450a-4d92-9efc-d6b6cbc1f4da");
|
|
pub const IID_IMFMediaSourceExtensionLiveSeekableRange = &IID_IMFMediaSourceExtensionLiveSeekableRange_Value;
|
|
pub const IMFMediaSourceExtensionLiveSeekableRange = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetLiveSeekableRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtensionLiveSeekableRange,
|
|
start: f64,
|
|
end: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtensionLiveSeekableRange,
|
|
start: f64,
|
|
end: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearLiveSeekableRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSourceExtensionLiveSeekableRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSourceExtensionLiveSeekableRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtensionLiveSeekableRange_SetLiveSeekableRange(self: *const T, start: f64, end: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtensionLiveSeekableRange.VTable, @ptrCast(self.vtable)).SetLiveSeekableRange(@as(*const IMFMediaSourceExtensionLiveSeekableRange, @ptrCast(self)), start, end);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSourceExtensionLiveSeekableRange_ClearLiveSeekableRange(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSourceExtensionLiveSeekableRange.VTable, @ptrCast(self.vtable)).ClearLiveSeekableRange(@as(*const IMFMediaSourceExtensionLiveSeekableRange, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineEME_Value = Guid.initString("50dc93e4-ba4f-4275-ae66-83e836e57469");
|
|
pub const IID_IMFMediaEngineEME = &IID_IMFMediaEngineEME_Value;
|
|
pub const IMFMediaEngineEME = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_Keys: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEME,
|
|
keys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEME,
|
|
keys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMediaKeys: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEME,
|
|
keys: ?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEME,
|
|
keys: ?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEME_get_Keys(self: *const T, keys: ?*?*IMFMediaKeys) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEME.VTable, @ptrCast(self.vtable)).get_Keys(@as(*const IMFMediaEngineEME, @ptrCast(self)), keys);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEME_SetMediaKeys(self: *const T, keys: ?*IMFMediaKeys) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineEME.VTable, @ptrCast(self.vtable)).SetMediaKeys(@as(*const IMFMediaEngineEME, @ptrCast(self)), keys);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineSrcElementsEx_Value = Guid.initString("654a6bb3-e1a3-424a-9908-53a43a0dfda0");
|
|
pub const IID_IMFMediaEngineSrcElementsEx = &IID_IMFMediaEngineSrcElementsEx_Value;
|
|
pub const IMFMediaEngineSrcElementsEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEngineSrcElements.VTable,
|
|
AddElementEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElementsEx,
|
|
pURL: ?BSTR,
|
|
pType: ?BSTR,
|
|
pMedia: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElementsEx,
|
|
pURL: ?BSTR,
|
|
pType: ?BSTR,
|
|
pMedia: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetKeySystem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSrcElementsEx,
|
|
index: u32,
|
|
pType: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSrcElementsEx,
|
|
index: u32,
|
|
pType: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEngineSrcElements.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElementsEx_AddElementEx(self: *const T, pURL: ?BSTR, pType: ?BSTR, pMedia: ?BSTR, keySystem: ?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElementsEx.VTable, @ptrCast(self.vtable)).AddElementEx(@as(*const IMFMediaEngineSrcElementsEx, @ptrCast(self)), pURL, pType, pMedia, keySystem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSrcElementsEx_GetKeySystem(self: *const T, index: u32, pType: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSrcElementsEx.VTable, @ptrCast(self.vtable)).GetKeySystem(@as(*const IMFMediaEngineSrcElementsEx, @ptrCast(self)), index, pType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineNeedKeyNotify_Value = Guid.initString("46a30204-a696-4b18-8804-246b8f031bb1");
|
|
pub const IID_IMFMediaEngineNeedKeyNotify = &IID_IMFMediaEngineNeedKeyNotify_Value;
|
|
pub const IMFMediaEngineNeedKeyNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
NeedKey: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineNeedKeyNotify,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
initData: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineNeedKeyNotify,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
initData: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineNeedKeyNotify_NeedKey(self: *const T, initData: ?*const u8, cb: u32) callconv(.Inline) void {
|
|
return @as(*const IMFMediaEngineNeedKeyNotify.VTable, @ptrCast(self.vtable)).NeedKey(@as(*const IMFMediaEngineNeedKeyNotify, @ptrCast(self)), initData, cb);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaKeys_Value = Guid.initString("5cb31c05-61ff-418f-afda-caaf41421a38");
|
|
pub const IID_IMFMediaKeys = &IID_IMFMediaKeys_Value;
|
|
pub const IMFMediaKeys = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys,
|
|
mimeType: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
initData: ?*const u8,
|
|
cb: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
customData: ?*const u8,
|
|
cbCustomData: u32,
|
|
notify: ?*IMFMediaKeySessionNotify,
|
|
ppSession: ?*?*IMFMediaKeySession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys,
|
|
mimeType: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
initData: ?*const u8,
|
|
cb: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
customData: ?*const u8,
|
|
cbCustomData: u32,
|
|
notify: ?*IMFMediaKeySessionNotify,
|
|
ppSession: ?*?*IMFMediaKeySession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_KeySystem: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys,
|
|
keySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys,
|
|
keySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSuspendNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys,
|
|
notify: ?*?*IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys,
|
|
notify: ?*?*IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys_CreateSession(self: *const T, mimeType: ?BSTR, initData: ?*const u8, cb: u32, customData: ?*const u8, cbCustomData: u32, notify: ?*IMFMediaKeySessionNotify, ppSession: ?*?*IMFMediaKeySession) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys.VTable, @ptrCast(self.vtable)).CreateSession(@as(*const IMFMediaKeys, @ptrCast(self)), mimeType, initData, cb, customData, cbCustomData, notify, ppSession);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys_get_KeySystem(self: *const T, keySystem: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys.VTable, @ptrCast(self.vtable)).get_KeySystem(@as(*const IMFMediaKeys, @ptrCast(self)), keySystem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaKeys, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys_GetSuspendNotify(self: *const T, notify: ?*?*IMFCdmSuspendNotify) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys.VTable, @ptrCast(self.vtable)).GetSuspendNotify(@as(*const IMFMediaKeys, @ptrCast(self)), notify);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_KEYERR = enum(i32) {
|
|
UNKNOWN = 1,
|
|
CLIENT = 2,
|
|
SERVICE = 3,
|
|
OUTPUT = 4,
|
|
HARDWARECHANGE = 5,
|
|
DOMAIN = 6,
|
|
};
|
|
pub const MF_MEDIAENGINE_KEYERR_UNKNOWN = MF_MEDIA_ENGINE_KEYERR.UNKNOWN;
|
|
pub const MF_MEDIAENGINE_KEYERR_CLIENT = MF_MEDIA_ENGINE_KEYERR.CLIENT;
|
|
pub const MF_MEDIAENGINE_KEYERR_SERVICE = MF_MEDIA_ENGINE_KEYERR.SERVICE;
|
|
pub const MF_MEDIAENGINE_KEYERR_OUTPUT = MF_MEDIA_ENGINE_KEYERR.OUTPUT;
|
|
pub const MF_MEDIAENGINE_KEYERR_HARDWARECHANGE = MF_MEDIA_ENGINE_KEYERR.HARDWARECHANGE;
|
|
pub const MF_MEDIAENGINE_KEYERR_DOMAIN = MF_MEDIA_ENGINE_KEYERR.DOMAIN;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaKeySession_Value = Guid.initString("24fa67d5-d1d0-4dc5-995c-c0efdc191fb5");
|
|
pub const IID_IMFMediaKeySession = &IID_IMFMediaKeySession_Value;
|
|
pub const IMFMediaKeySession = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession,
|
|
code: ?*u16,
|
|
systemCode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession,
|
|
code: ?*u16,
|
|
systemCode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_KeySystem: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession,
|
|
keySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession,
|
|
keySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_SessionId: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession,
|
|
sessionId: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession,
|
|
sessionId: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Update: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
key: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
key: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession_GetError(self: *const T, code: ?*u16, systemCode: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession.VTable, @ptrCast(self.vtable)).GetError(@as(*const IMFMediaKeySession, @ptrCast(self)), code, systemCode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession_get_KeySystem(self: *const T, keySystem: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession.VTable, @ptrCast(self.vtable)).get_KeySystem(@as(*const IMFMediaKeySession, @ptrCast(self)), keySystem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession_get_SessionId(self: *const T, sessionId: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession.VTable, @ptrCast(self.vtable)).get_SessionId(@as(*const IMFMediaKeySession, @ptrCast(self)), sessionId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession_Update(self: *const T, key: ?*const u8, cb: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession.VTable, @ptrCast(self.vtable)).Update(@as(*const IMFMediaKeySession, @ptrCast(self)), key, cb);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFMediaKeySession, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaKeySessionNotify_Value = Guid.initString("6a0083f9-8947-4c1d-9ce0-cdee22b23135");
|
|
pub const IID_IMFMediaKeySessionNotify = &IID_IMFMediaKeySessionNotify_Value;
|
|
pub const IMFMediaKeySessionNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
KeyMessage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
destinationURL: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
message: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
destinationURL: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
message: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
KeyAdded: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
KeyError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
code: u16,
|
|
systemCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySessionNotify,
|
|
code: u16,
|
|
systemCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySessionNotify_KeyMessage(self: *const T, destinationURL: ?BSTR, message: ?*const u8, cb: u32) callconv(.Inline) void {
|
|
return @as(*const IMFMediaKeySessionNotify.VTable, @ptrCast(self.vtable)).KeyMessage(@as(*const IMFMediaKeySessionNotify, @ptrCast(self)), destinationURL, message, cb);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySessionNotify_KeyAdded(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaKeySessionNotify.VTable, @ptrCast(self.vtable)).KeyAdded(@as(*const IMFMediaKeySessionNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySessionNotify_KeyError(self: *const T, code: u16, systemCode: u32) callconv(.Inline) void {
|
|
return @as(*const IMFMediaKeySessionNotify.VTable, @ptrCast(self.vtable)).KeyError(@as(*const IMFMediaKeySessionNotify, @ptrCast(self)), code, systemCode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFCdmSuspendNotify_Value = Guid.initString("7a5645d2-43bd-47fd-87b7-dcd24cc7d692");
|
|
pub const IID_IMFCdmSuspendNotify = &IID_IMFCdmSuspendNotify_Value;
|
|
pub const IMFCdmSuspendNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Begin: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
End: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCdmSuspendNotify_Begin(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCdmSuspendNotify.VTable, @ptrCast(self.vtable)).Begin(@as(*const IMFCdmSuspendNotify, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCdmSuspendNotify_End(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCdmSuspendNotify.VTable, @ptrCast(self.vtable)).End(@as(*const IMFCdmSuspendNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_HDCP_STATUS = enum(i32) {
|
|
N = 0,
|
|
FF = 1,
|
|
N_WITH_TYPE_ENFORCEMENT = 2,
|
|
};
|
|
pub const MF_HDCP_STATUS_ON = MF_HDCP_STATUS.N;
|
|
pub const MF_HDCP_STATUS_OFF = MF_HDCP_STATUS.FF;
|
|
pub const MF_HDCP_STATUS_ON_WITH_TYPE_ENFORCEMENT = MF_HDCP_STATUS.N_WITH_TYPE_ENFORCEMENT;
|
|
|
|
const IID_IMFHDCPStatus_Value = Guid.initString("de400f54-5bf1-40cf-8964-0bea136b1e3d");
|
|
pub const IID_IMFHDCPStatus = &IID_IMFHDCPStatus_Value;
|
|
pub const IMFHDCPStatus = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Query: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHDCPStatus,
|
|
pStatus: ?*MF_HDCP_STATUS,
|
|
pfStatus: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHDCPStatus,
|
|
pStatus: ?*MF_HDCP_STATUS,
|
|
pfStatus: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Set: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFHDCPStatus,
|
|
status: MF_HDCP_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFHDCPStatus,
|
|
status: MF_HDCP_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHDCPStatus_Query(self: *const T, pStatus: ?*MF_HDCP_STATUS, pfStatus: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHDCPStatus.VTable, @ptrCast(self.vtable)).Query(@as(*const IMFHDCPStatus, @ptrCast(self)), pStatus, pfStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFHDCPStatus_Set(self: *const T, status: MF_HDCP_STATUS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFHDCPStatus.VTable, @ptrCast(self.vtable)).Set(@as(*const IMFHDCPStatus, @ptrCast(self)), status);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_OPM_STATUS = enum(i32) {
|
|
NOT_REQUESTED = 0,
|
|
ESTABLISHED = 1,
|
|
FAILED_VM = 2,
|
|
FAILED_BDA = 3,
|
|
FAILED_UNSIGNED_DRIVER = 4,
|
|
FAILED = 5,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_OPM_NOT_REQUESTED = MF_MEDIA_ENGINE_OPM_STATUS.NOT_REQUESTED;
|
|
pub const MF_MEDIA_ENGINE_OPM_ESTABLISHED = MF_MEDIA_ENGINE_OPM_STATUS.ESTABLISHED;
|
|
pub const MF_MEDIA_ENGINE_OPM_FAILED_VM = MF_MEDIA_ENGINE_OPM_STATUS.FAILED_VM;
|
|
pub const MF_MEDIA_ENGINE_OPM_FAILED_BDA = MF_MEDIA_ENGINE_OPM_STATUS.FAILED_BDA;
|
|
pub const MF_MEDIA_ENGINE_OPM_FAILED_UNSIGNED_DRIVER = MF_MEDIA_ENGINE_OPM_STATUS.FAILED_UNSIGNED_DRIVER;
|
|
pub const MF_MEDIA_ENGINE_OPM_FAILED = MF_MEDIA_ENGINE_OPM_STATUS.FAILED;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineOPMInfo_Value = Guid.initString("765763e6-6c01-4b01-bb0f-b829f60ed28c");
|
|
pub const IID_IMFMediaEngineOPMInfo = &IID_IMFMediaEngineOPMInfo_Value;
|
|
pub const IMFMediaEngineOPMInfo = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetOPMInfo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineOPMInfo,
|
|
pStatus: ?*MF_MEDIA_ENGINE_OPM_STATUS,
|
|
pConstricted: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineOPMInfo,
|
|
pStatus: ?*MF_MEDIA_ENGINE_OPM_STATUS,
|
|
pConstricted: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineOPMInfo_GetOPMInfo(self: *const T, pStatus: ?*MF_MEDIA_ENGINE_OPM_STATUS, pConstricted: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineOPMInfo.VTable, @ptrCast(self.vtable)).GetOPMInfo(@as(*const IMFMediaEngineOPMInfo, @ptrCast(self)), pStatus, pConstricted);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_CREATEFLAGS = enum(i32) {
|
|
AUDIOONLY = 1,
|
|
WAITFORSTABLE_STATE = 2,
|
|
FORCEMUTE = 4,
|
|
REAL_TIME_MODE = 8,
|
|
DISABLE_LOCAL_PLUGINS = 16,
|
|
CREATEFLAGS_MASK = 31,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_AUDIOONLY = MF_MEDIA_ENGINE_CREATEFLAGS.AUDIOONLY;
|
|
pub const MF_MEDIA_ENGINE_WAITFORSTABLE_STATE = MF_MEDIA_ENGINE_CREATEFLAGS.WAITFORSTABLE_STATE;
|
|
pub const MF_MEDIA_ENGINE_FORCEMUTE = MF_MEDIA_ENGINE_CREATEFLAGS.FORCEMUTE;
|
|
pub const MF_MEDIA_ENGINE_REAL_TIME_MODE = MF_MEDIA_ENGINE_CREATEFLAGS.REAL_TIME_MODE;
|
|
pub const MF_MEDIA_ENGINE_DISABLE_LOCAL_PLUGINS = MF_MEDIA_ENGINE_CREATEFLAGS.DISABLE_LOCAL_PLUGINS;
|
|
pub const MF_MEDIA_ENGINE_CREATEFLAGS_MASK = MF_MEDIA_ENGINE_CREATEFLAGS.CREATEFLAGS_MASK;
|
|
|
|
pub const MF_MEDIA_ENGINE_PROTECTION_FLAGS = enum(i32) {
|
|
ENABLE_PROTECTED_CONTENT = 1,
|
|
USE_PMP_FOR_ALL_CONTENT = 2,
|
|
USE_UNPROTECTED_PMP = 4,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_ENABLE_PROTECTED_CONTENT = MF_MEDIA_ENGINE_PROTECTION_FLAGS.ENABLE_PROTECTED_CONTENT;
|
|
pub const MF_MEDIA_ENGINE_USE_PMP_FOR_ALL_CONTENT = MF_MEDIA_ENGINE_PROTECTION_FLAGS.USE_PMP_FOR_ALL_CONTENT;
|
|
pub const MF_MEDIA_ENGINE_USE_UNPROTECTED_PMP = MF_MEDIA_ENGINE_PROTECTION_FLAGS.USE_UNPROTECTED_PMP;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaEngineClassFactory_Value = Guid.initString("4d645ace-26aa-4688-9be1-df3516990b93");
|
|
pub const IID_IMFMediaEngineClassFactory = &IID_IMFMediaEngineClassFactory_Value;
|
|
pub const IMFMediaEngineClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppPlayer: ?*?*IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppPlayer: ?*?*IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateTimeRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
ppTimeRange: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
ppTimeRange: ?*?*IMFMediaTimeRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
ppError: ?*?*IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory,
|
|
ppError: ?*?*IMFMediaError,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory_CreateInstance(self: *const T, dwFlags: u32, pAttr: ?*IMFAttributes, ppPlayer: ?*?*IMFMediaEngine) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IMFMediaEngineClassFactory, @ptrCast(self)), dwFlags, pAttr, ppPlayer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory_CreateTimeRange(self: *const T, ppTimeRange: ?*?*IMFMediaTimeRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateTimeRange(@as(*const IMFMediaEngineClassFactory, @ptrCast(self)), ppTimeRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory_CreateError(self: *const T, ppError: ?*?*IMFMediaError) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateError(@as(*const IMFMediaEngineClassFactory, @ptrCast(self)), ppError);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineClassFactoryEx_Value = Guid.initString("c56156c6-ea5b-48a5-9df8-fbe035d0929e");
|
|
pub const IID_IMFMediaEngineClassFactoryEx = &IID_IMFMediaEngineClassFactoryEx_Value;
|
|
pub const IMFMediaEngineClassFactoryEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEngineClassFactory.VTable,
|
|
CreateMediaSourceExtension: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppMSE: ?*?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppMSE: ?*?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateMediaKeys: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
keySystem: ?BSTR,
|
|
cdmStorePath: ?BSTR,
|
|
ppKeys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
keySystem: ?BSTR,
|
|
cdmStorePath: ?BSTR,
|
|
ppKeys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
type: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
isSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactoryEx,
|
|
type: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
isSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEngineClassFactory.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactoryEx_CreateMediaSourceExtension(self: *const T, dwFlags: u32, pAttr: ?*IMFAttributes, ppMSE: ?*?*IMFMediaSourceExtension) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactoryEx.VTable, @ptrCast(self.vtable)).CreateMediaSourceExtension(@as(*const IMFMediaEngineClassFactoryEx, @ptrCast(self)), dwFlags, pAttr, ppMSE);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactoryEx_CreateMediaKeys(self: *const T, keySystem: ?BSTR, cdmStorePath: ?BSTR, ppKeys: ?*?*IMFMediaKeys) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactoryEx.VTable, @ptrCast(self.vtable)).CreateMediaKeys(@as(*const IMFMediaEngineClassFactoryEx, @ptrCast(self)), keySystem, cdmStorePath, ppKeys);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactoryEx_IsTypeSupported(self: *const T, type_: ?BSTR, keySystem: ?BSTR, isSupported: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactoryEx.VTable, @ptrCast(self.vtable)).IsTypeSupported(@as(*const IMFMediaEngineClassFactoryEx, @ptrCast(self)), type_, keySystem, isSupported);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineClassFactory2_Value = Guid.initString("09083cef-867f-4bf6-8776-dee3a7b42fca");
|
|
pub const IID_IMFMediaEngineClassFactory2 = &IID_IMFMediaEngineClassFactory2_Value;
|
|
pub const IMFMediaEngineClassFactory2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateMediaKeys2: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory2,
|
|
keySystem: ?BSTR,
|
|
defaultCdmStorePath: ?BSTR,
|
|
inprivateCdmStorePath: ?BSTR,
|
|
ppKeys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory2,
|
|
keySystem: ?BSTR,
|
|
defaultCdmStorePath: ?BSTR,
|
|
inprivateCdmStorePath: ?BSTR,
|
|
ppKeys: ?*?*IMFMediaKeys,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory2_CreateMediaKeys2(self: *const T, keySystem: ?BSTR, defaultCdmStorePath: ?BSTR, inprivateCdmStorePath: ?BSTR, ppKeys: ?*?*IMFMediaKeys) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory2.VTable, @ptrCast(self.vtable)).CreateMediaKeys2(@as(*const IMFMediaEngineClassFactory2, @ptrCast(self)), keySystem, defaultCdmStorePath, inprivateCdmStorePath, ppKeys);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFExtendedDRMTypeSupport_Value = Guid.initString("332ec562-3758-468d-a784-e38f23552128");
|
|
pub const IID_IMFExtendedDRMTypeSupport = &IID_IMFExtendedDRMTypeSupport_Value;
|
|
pub const IMFExtendedDRMTypeSupport = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsTypeSupportedEx: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFExtendedDRMTypeSupport,
|
|
type: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFExtendedDRMTypeSupport,
|
|
type: ?BSTR,
|
|
keySystem: ?BSTR,
|
|
pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFExtendedDRMTypeSupport_IsTypeSupportedEx(self: *const T, type_: ?BSTR, keySystem: ?BSTR, pAnswer: ?*MF_MEDIA_ENGINE_CANPLAY) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFExtendedDRMTypeSupport.VTable, @ptrCast(self.vtable)).IsTypeSupportedEx(@as(*const IMFExtendedDRMTypeSupport, @ptrCast(self)), type_, keySystem, pAnswer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFMediaEngineSupportsSourceTransfer_Value = Guid.initString("a724b056-1b2e-4642-a6f3-db9420c52908");
|
|
pub const IID_IMFMediaEngineSupportsSourceTransfer = &IID_IMFMediaEngineSupportsSourceTransfer_Value;
|
|
pub const IMFMediaEngineSupportsSourceTransfer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
ShouldTransferSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
pfShouldTransfer: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
pfShouldTransfer: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DetachMediaSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
ppByteStream: ?*?*IMFByteStream,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
ppMSE: ?*?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
ppByteStream: ?*?*IMFByteStream,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
ppMSE: ?*?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AttachMediaSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
pByteStream: ?*IMFByteStream,
|
|
pMediaSource: ?*IMFMediaSource,
|
|
pMSE: ?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineSupportsSourceTransfer,
|
|
pByteStream: ?*IMFByteStream,
|
|
pMediaSource: ?*IMFMediaSource,
|
|
pMSE: ?*IMFMediaSourceExtension,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSupportsSourceTransfer_ShouldTransferSource(self: *const T, pfShouldTransfer: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSupportsSourceTransfer.VTable, @ptrCast(self.vtable)).ShouldTransferSource(@as(*const IMFMediaEngineSupportsSourceTransfer, @ptrCast(self)), pfShouldTransfer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSupportsSourceTransfer_DetachMediaSource(self: *const T, ppByteStream: ?*?*IMFByteStream, ppMediaSource: ?*?*IMFMediaSource, ppMSE: ?*?*IMFMediaSourceExtension) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSupportsSourceTransfer.VTable, @ptrCast(self.vtable)).DetachMediaSource(@as(*const IMFMediaEngineSupportsSourceTransfer, @ptrCast(self)), ppByteStream, ppMediaSource, ppMSE);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineSupportsSourceTransfer_AttachMediaSource(self: *const T, pByteStream: ?*IMFByteStream, pMediaSource: ?*IMFMediaSource, pMSE: ?*IMFMediaSourceExtension) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineSupportsSourceTransfer.VTable, @ptrCast(self.vtable)).AttachMediaSource(@as(*const IMFMediaEngineSupportsSourceTransfer, @ptrCast(self)), pByteStream, pMediaSource, pMSE);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaEngineTransferSource_Value = Guid.initString("24230452-fe54-40cc-94f3-fcc394c340d6");
|
|
pub const IID_IMFMediaEngineTransferSource = &IID_IMFMediaEngineTransferSource_Value;
|
|
pub const IMFMediaEngineTransferSource = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
TransferSourceToMediaEngine: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineTransferSource,
|
|
destination: ?*IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineTransferSource,
|
|
destination: ?*IMFMediaEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineTransferSource_TransferSourceToMediaEngine(self: *const T, destination: ?*IMFMediaEngine) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineTransferSource.VTable, @ptrCast(self.vtable)).TransferSourceToMediaEngine(@as(*const IMFMediaEngineTransferSource, @ptrCast(self)), destination);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_TIMED_TEXT_TRACK_KIND = enum(i32) {
|
|
UNKNOWN = 0,
|
|
SUBTITLES = 1,
|
|
CAPTIONS = 2,
|
|
METADATA = 3,
|
|
};
|
|
pub const MF_TIMED_TEXT_TRACK_KIND_UNKNOWN = MF_TIMED_TEXT_TRACK_KIND.UNKNOWN;
|
|
pub const MF_TIMED_TEXT_TRACK_KIND_SUBTITLES = MF_TIMED_TEXT_TRACK_KIND.SUBTITLES;
|
|
pub const MF_TIMED_TEXT_TRACK_KIND_CAPTIONS = MF_TIMED_TEXT_TRACK_KIND.CAPTIONS;
|
|
pub const MF_TIMED_TEXT_TRACK_KIND_METADATA = MF_TIMED_TEXT_TRACK_KIND.METADATA;
|
|
|
|
pub const MF_TIMED_TEXT_UNIT_TYPE = enum(i32) {
|
|
IXELS = 0,
|
|
ERCENTAGE = 1,
|
|
};
|
|
pub const MF_TIMED_TEXT_UNIT_TYPE_PIXELS = MF_TIMED_TEXT_UNIT_TYPE.IXELS;
|
|
pub const MF_TIMED_TEXT_UNIT_TYPE_PERCENTAGE = MF_TIMED_TEXT_UNIT_TYPE.ERCENTAGE;
|
|
|
|
pub const MF_TIMED_TEXT_FONT_STYLE = enum(i32) {
|
|
NORMAL = 0,
|
|
OBLIQUE = 1,
|
|
ITALIC = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_FONT_STYLE_NORMAL = MF_TIMED_TEXT_FONT_STYLE.NORMAL;
|
|
pub const MF_TIMED_TEXT_FONT_STYLE_OBLIQUE = MF_TIMED_TEXT_FONT_STYLE.OBLIQUE;
|
|
pub const MF_TIMED_TEXT_FONT_STYLE_ITALIC = MF_TIMED_TEXT_FONT_STYLE.ITALIC;
|
|
|
|
pub const MF_TIMED_TEXT_ALIGNMENT = enum(i32) {
|
|
START = 0,
|
|
END = 1,
|
|
CENTER = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_ALIGNMENT_START = MF_TIMED_TEXT_ALIGNMENT.START;
|
|
pub const MF_TIMED_TEXT_ALIGNMENT_END = MF_TIMED_TEXT_ALIGNMENT.END;
|
|
pub const MF_TIMED_TEXT_ALIGNMENT_CENTER = MF_TIMED_TEXT_ALIGNMENT.CENTER;
|
|
|
|
pub const MF_TIMED_TEXT_DISPLAY_ALIGNMENT = enum(i32) {
|
|
BEFORE = 0,
|
|
AFTER = 1,
|
|
CENTER = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_DISPLAY_ALIGNMENT_BEFORE = MF_TIMED_TEXT_DISPLAY_ALIGNMENT.BEFORE;
|
|
pub const MF_TIMED_TEXT_DISPLAY_ALIGNMENT_AFTER = MF_TIMED_TEXT_DISPLAY_ALIGNMENT.AFTER;
|
|
pub const MF_TIMED_TEXT_DISPLAY_ALIGNMENT_CENTER = MF_TIMED_TEXT_DISPLAY_ALIGNMENT.CENTER;
|
|
|
|
pub const MF_TIMED_TEXT_DECORATION = enum(i32) {
|
|
NONE = 0,
|
|
UNDERLINE = 1,
|
|
LINE_THROUGH = 2,
|
|
OVERLINE = 4,
|
|
};
|
|
pub const MF_TIMED_TEXT_DECORATION_NONE = MF_TIMED_TEXT_DECORATION.NONE;
|
|
pub const MF_TIMED_TEXT_DECORATION_UNDERLINE = MF_TIMED_TEXT_DECORATION.UNDERLINE;
|
|
pub const MF_TIMED_TEXT_DECORATION_LINE_THROUGH = MF_TIMED_TEXT_DECORATION.LINE_THROUGH;
|
|
pub const MF_TIMED_TEXT_DECORATION_OVERLINE = MF_TIMED_TEXT_DECORATION.OVERLINE;
|
|
|
|
pub const MF_TIMED_TEXT_WRITING_MODE = enum(i32) {
|
|
LRTB = 0,
|
|
RLTB = 1,
|
|
TBRL = 2,
|
|
TBLR = 3,
|
|
LR = 4,
|
|
RL = 5,
|
|
TB = 6,
|
|
};
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_LRTB = MF_TIMED_TEXT_WRITING_MODE.LRTB;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_RLTB = MF_TIMED_TEXT_WRITING_MODE.RLTB;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_TBRL = MF_TIMED_TEXT_WRITING_MODE.TBRL;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_TBLR = MF_TIMED_TEXT_WRITING_MODE.TBLR;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_LR = MF_TIMED_TEXT_WRITING_MODE.LR;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_RL = MF_TIMED_TEXT_WRITING_MODE.RL;
|
|
pub const MF_TIMED_TEXT_WRITING_MODE_TB = MF_TIMED_TEXT_WRITING_MODE.TB;
|
|
|
|
pub const MF_TIMED_TEXT_SCROLL_MODE = enum(i32) {
|
|
POP_ON = 0,
|
|
ROLL_UP = 1,
|
|
};
|
|
pub const MF_TIMED_TEXT_SCROLL_MODE_POP_ON = MF_TIMED_TEXT_SCROLL_MODE.POP_ON;
|
|
pub const MF_TIMED_TEXT_SCROLL_MODE_ROLL_UP = MF_TIMED_TEXT_SCROLL_MODE.ROLL_UP;
|
|
|
|
pub const MF_TIMED_TEXT_ERROR_CODE = enum(i32) {
|
|
NOERROR = 0,
|
|
FATAL = 1,
|
|
DATA_FORMAT = 2,
|
|
NETWORK = 3,
|
|
INTERNAL = 4,
|
|
};
|
|
pub const MF_TIMED_TEXT_ERROR_CODE_NOERROR = MF_TIMED_TEXT_ERROR_CODE.NOERROR;
|
|
pub const MF_TIMED_TEXT_ERROR_CODE_FATAL = MF_TIMED_TEXT_ERROR_CODE.FATAL;
|
|
pub const MF_TIMED_TEXT_ERROR_CODE_DATA_FORMAT = MF_TIMED_TEXT_ERROR_CODE.DATA_FORMAT;
|
|
pub const MF_TIMED_TEXT_ERROR_CODE_NETWORK = MF_TIMED_TEXT_ERROR_CODE.NETWORK;
|
|
pub const MF_TIMED_TEXT_ERROR_CODE_INTERNAL = MF_TIMED_TEXT_ERROR_CODE.INTERNAL;
|
|
|
|
pub const MF_TIMED_TEXT_CUE_EVENT = enum(i32) {
|
|
ACTIVE = 0,
|
|
INACTIVE = 1,
|
|
CLEAR = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_CUE_EVENT_ACTIVE = MF_TIMED_TEXT_CUE_EVENT.ACTIVE;
|
|
pub const MF_TIMED_TEXT_CUE_EVENT_INACTIVE = MF_TIMED_TEXT_CUE_EVENT.INACTIVE;
|
|
pub const MF_TIMED_TEXT_CUE_EVENT_CLEAR = MF_TIMED_TEXT_CUE_EVENT.CLEAR;
|
|
|
|
pub const MF_TIMED_TEXT_TRACK_READY_STATE = enum(i32) {
|
|
NONE = 0,
|
|
LOADING = 1,
|
|
LOADED = 2,
|
|
ERROR = 3,
|
|
};
|
|
pub const MF_TIMED_TEXT_TRACK_READY_STATE_NONE = MF_TIMED_TEXT_TRACK_READY_STATE.NONE;
|
|
pub const MF_TIMED_TEXT_TRACK_READY_STATE_LOADING = MF_TIMED_TEXT_TRACK_READY_STATE.LOADING;
|
|
pub const MF_TIMED_TEXT_TRACK_READY_STATE_LOADED = MF_TIMED_TEXT_TRACK_READY_STATE.LOADED;
|
|
pub const MF_TIMED_TEXT_TRACK_READY_STATE_ERROR = MF_TIMED_TEXT_TRACK_READY_STATE.ERROR;
|
|
|
|
pub const MF_TIMED_TEXT_RUBY_POSITION = enum(i32) {
|
|
BEFORE = 0,
|
|
AFTER = 1,
|
|
OUTSIDE = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_RUBY_POSITION_BEFORE = MF_TIMED_TEXT_RUBY_POSITION.BEFORE;
|
|
pub const MF_TIMED_TEXT_RUBY_POSITION_AFTER = MF_TIMED_TEXT_RUBY_POSITION.AFTER;
|
|
pub const MF_TIMED_TEXT_RUBY_POSITION_OUTSIDE = MF_TIMED_TEXT_RUBY_POSITION.OUTSIDE;
|
|
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN = enum(i32) {
|
|
CENTER = 0,
|
|
START = 1,
|
|
END = 2,
|
|
SPACEAROUND = 3,
|
|
SPACEBETWEEN = 4,
|
|
WITHBASE = 5,
|
|
};
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_CENTER = MF_TIMED_TEXT_RUBY_ALIGN.CENTER;
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_START = MF_TIMED_TEXT_RUBY_ALIGN.START;
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_END = MF_TIMED_TEXT_RUBY_ALIGN.END;
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_SPACEAROUND = MF_TIMED_TEXT_RUBY_ALIGN.SPACEAROUND;
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_SPACEBETWEEN = MF_TIMED_TEXT_RUBY_ALIGN.SPACEBETWEEN;
|
|
pub const MF_TIMED_TEXT_RUBY_ALIGN_WITHBASE = MF_TIMED_TEXT_RUBY_ALIGN.WITHBASE;
|
|
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE = enum(i32) {
|
|
NONE = 0,
|
|
BEFORE = 1,
|
|
AFTER = 2,
|
|
BOTH = 3,
|
|
OUTSIDE = 4,
|
|
};
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE_NONE = MF_TIMED_TEXT_RUBY_RESERVE.NONE;
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE_BEFORE = MF_TIMED_TEXT_RUBY_RESERVE.BEFORE;
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE_AFTER = MF_TIMED_TEXT_RUBY_RESERVE.AFTER;
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE_BOTH = MF_TIMED_TEXT_RUBY_RESERVE.BOTH;
|
|
pub const MF_TIMED_TEXT_RUBY_RESERVE_OUTSIDE = MF_TIMED_TEXT_RUBY_RESERVE.OUTSIDE;
|
|
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE = enum(i32) {
|
|
NONE = 0,
|
|
AUTO = 1,
|
|
FILLEDCIRCLE = 2,
|
|
OPENCIRCLE = 3,
|
|
FILLEDDOT = 4,
|
|
OPENDOT = 5,
|
|
FILLEDSESAME = 6,
|
|
OPENSESAME = 7,
|
|
};
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_NONE = MF_TIMED_TEXT_BOUTEN_TYPE.NONE;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_AUTO = MF_TIMED_TEXT_BOUTEN_TYPE.AUTO;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_FILLEDCIRCLE = MF_TIMED_TEXT_BOUTEN_TYPE.FILLEDCIRCLE;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_OPENCIRCLE = MF_TIMED_TEXT_BOUTEN_TYPE.OPENCIRCLE;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_FILLEDDOT = MF_TIMED_TEXT_BOUTEN_TYPE.FILLEDDOT;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_OPENDOT = MF_TIMED_TEXT_BOUTEN_TYPE.OPENDOT;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_FILLEDSESAME = MF_TIMED_TEXT_BOUTEN_TYPE.FILLEDSESAME;
|
|
pub const MF_TIMED_TEXT_BOUTEN_TYPE_OPENSESAME = MF_TIMED_TEXT_BOUTEN_TYPE.OPENSESAME;
|
|
|
|
pub const MF_TIMED_TEXT_BOUTEN_POSITION = enum(i32) {
|
|
BEFORE = 0,
|
|
AFTER = 1,
|
|
OUTSIDE = 2,
|
|
};
|
|
pub const MF_TIMED_TEXT_BOUTEN_POSITION_BEFORE = MF_TIMED_TEXT_BOUTEN_POSITION.BEFORE;
|
|
pub const MF_TIMED_TEXT_BOUTEN_POSITION_AFTER = MF_TIMED_TEXT_BOUTEN_POSITION.AFTER;
|
|
pub const MF_TIMED_TEXT_BOUTEN_POSITION_OUTSIDE = MF_TIMED_TEXT_BOUTEN_POSITION.OUTSIDE;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedText_Value = Guid.initString("1f2a94c9-a3df-430d-9d0f-acd85ddc29af");
|
|
pub const IID_IMFTimedText = &IID_IMFTimedText_Value;
|
|
pub const IMFTimedText = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
RegisterNotifications: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
notify: ?*IMFTimedTextNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
notify: ?*IMFTimedTextNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SelectTrack: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
trackId: u32,
|
|
selected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
trackId: u32,
|
|
selected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddDataSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
byteStream: ?*IMFByteStream,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
isDefault: BOOL,
|
|
trackId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
byteStream: ?*IMFByteStream,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
isDefault: BOOL,
|
|
trackId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddDataSourceFromUrl: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
url: ?[*:0]const u16,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
isDefault: BOOL,
|
|
trackId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
url: ?[*:0]const u16,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
isDefault: BOOL,
|
|
trackId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddTrack: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
label: ?[*:0]const u16,
|
|
language: ?[*:0]const u16,
|
|
kind: MF_TIMED_TEXT_TRACK_KIND,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveTrack: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
track: ?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
track: ?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCueTimeOffset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
offset: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
offset: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCueTimeOffset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
offset: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
offset: f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTracks: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
tracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
tracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetActiveTracks: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
activeTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
activeTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTextTracks: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
textTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
textTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMetadataTracks: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
metadataTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
metadataTracks: ?*?*IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInBandEnabled: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
enabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
enabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsInBandEnabled: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedText,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFTimedText,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_RegisterNotifications(self: *const T, notify: ?*IMFTimedTextNotify) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).RegisterNotifications(@as(*const IMFTimedText, @ptrCast(self)), notify);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_SelectTrack(self: *const T, trackId: u32, selected: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).SelectTrack(@as(*const IMFTimedText, @ptrCast(self)), trackId, selected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_AddDataSource(self: *const T, byteStream: ?*IMFByteStream, label: ?[*:0]const u16, language: ?[*:0]const u16, kind: MF_TIMED_TEXT_TRACK_KIND, isDefault: BOOL, trackId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).AddDataSource(@as(*const IMFTimedText, @ptrCast(self)), byteStream, label, language, kind, isDefault, trackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_AddDataSourceFromUrl(self: *const T, url: ?[*:0]const u16, label: ?[*:0]const u16, language: ?[*:0]const u16, kind: MF_TIMED_TEXT_TRACK_KIND, isDefault: BOOL, trackId: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).AddDataSourceFromUrl(@as(*const IMFTimedText, @ptrCast(self)), url, label, language, kind, isDefault, trackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_AddTrack(self: *const T, label: ?[*:0]const u16, language: ?[*:0]const u16, kind: MF_TIMED_TEXT_TRACK_KIND, track: ?*?*IMFTimedTextTrack) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).AddTrack(@as(*const IMFTimedText, @ptrCast(self)), label, language, kind, track);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_RemoveTrack(self: *const T, track: ?*IMFTimedTextTrack) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).RemoveTrack(@as(*const IMFTimedText, @ptrCast(self)), track);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_GetCueTimeOffset(self: *const T, offset: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).GetCueTimeOffset(@as(*const IMFTimedText, @ptrCast(self)), offset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_SetCueTimeOffset(self: *const T, offset: f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).SetCueTimeOffset(@as(*const IMFTimedText, @ptrCast(self)), offset);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_GetTracks(self: *const T, tracks: ?*?*IMFTimedTextTrackList) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).GetTracks(@as(*const IMFTimedText, @ptrCast(self)), tracks);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_GetActiveTracks(self: *const T, activeTracks: ?*?*IMFTimedTextTrackList) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).GetActiveTracks(@as(*const IMFTimedText, @ptrCast(self)), activeTracks);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_GetTextTracks(self: *const T, textTracks: ?*?*IMFTimedTextTrackList) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).GetTextTracks(@as(*const IMFTimedText, @ptrCast(self)), textTracks);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_GetMetadataTracks(self: *const T, metadataTracks: ?*?*IMFTimedTextTrackList) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).GetMetadataTracks(@as(*const IMFTimedText, @ptrCast(self)), metadataTracks);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_SetInBandEnabled(self: *const T, enabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).SetInBandEnabled(@as(*const IMFTimedText, @ptrCast(self)), enabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedText_IsInBandEnabled(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFTimedText.VTable, @ptrCast(self.vtable)).IsInBandEnabled(@as(*const IMFTimedText, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextNotify_Value = Guid.initString("df6b87b6-ce12-45db-aba7-432fe054e57d");
|
|
pub const IID_IMFTimedTextNotify = &IID_IMFTimedTextNotify_Value;
|
|
pub const IMFTimedTextNotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
TrackAdded: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
TrackRemoved: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
TrackSelected: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
selected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
selected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
TrackReadyStateChanged: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
trackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
Error: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
errorCode: MF_TIMED_TEXT_ERROR_CODE,
|
|
extendedErrorCode: HRESULT,
|
|
sourceTrackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
errorCode: MF_TIMED_TEXT_ERROR_CODE,
|
|
extendedErrorCode: HRESULT,
|
|
sourceTrackId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
Cue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
cueEvent: MF_TIMED_TEXT_CUE_EVENT,
|
|
currentTime: f64,
|
|
cue: ?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
cueEvent: MF_TIMED_TEXT_CUE_EVENT,
|
|
currentTime: f64,
|
|
cue: ?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
Reset: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_TrackAdded(self: *const T, trackId: u32) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).TrackAdded(@as(*const IMFTimedTextNotify, @ptrCast(self)), trackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_TrackRemoved(self: *const T, trackId: u32) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).TrackRemoved(@as(*const IMFTimedTextNotify, @ptrCast(self)), trackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_TrackSelected(self: *const T, trackId: u32, selected: BOOL) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).TrackSelected(@as(*const IMFTimedTextNotify, @ptrCast(self)), trackId, selected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_TrackReadyStateChanged(self: *const T, trackId: u32) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).TrackReadyStateChanged(@as(*const IMFTimedTextNotify, @ptrCast(self)), trackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_Error(self: *const T, errorCode: MF_TIMED_TEXT_ERROR_CODE, extendedErrorCode: HRESULT, sourceTrackId: u32) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).Error(@as(*const IMFTimedTextNotify, @ptrCast(self)), errorCode, extendedErrorCode, sourceTrackId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_Cue(self: *const T, cueEvent: MF_TIMED_TEXT_CUE_EVENT, currentTime: f64, cue: ?*IMFTimedTextCue) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).Cue(@as(*const IMFTimedTextNotify, @ptrCast(self)), cueEvent, currentTime, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextNotify_Reset(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFTimedTextNotify.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMFTimedTextNotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextTrack_Value = Guid.initString("8822c32d-654e-4233-bf21-d7f2e67d30d4");
|
|
pub const IID_IMFTimedTextTrack = &IID_IMFTimedTextTrack_Value;
|
|
pub const IMFTimedTextTrack = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetLabel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
label: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
label: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetLabel: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
label: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
label: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLanguage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
language: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
language: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTrackKind: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_KIND,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_KIND,
|
|
},
|
|
IsInBand: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetInBandMetadataTrackDispatchType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
dispatchType: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
dispatchType: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsActive: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_ERROR_CODE,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_ERROR_CODE,
|
|
},
|
|
GetExtendedErrorCode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDataFormat: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
format: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
format: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetReadyState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_READY_STATE,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_READY_STATE,
|
|
},
|
|
GetCueList: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrack,
|
|
cues: ?*?*IMFTimedTextCueList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrack,
|
|
cues: ?*?*IMFTimedTextCueList,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetId(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetId(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetLabel(self: *const T, label: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetLabel(@as(*const IMFTimedTextTrack, @ptrCast(self)), label);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_SetLabel(self: *const T, label: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).SetLabel(@as(*const IMFTimedTextTrack, @ptrCast(self)), label);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetLanguage(self: *const T, language: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetLanguage(@as(*const IMFTimedTextTrack, @ptrCast(self)), language);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetTrackKind(self: *const T) callconv(.Inline) MF_TIMED_TEXT_TRACK_KIND {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetTrackKind(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_IsInBand(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).IsInBand(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetInBandMetadataTrackDispatchType(self: *const T, dispatchType: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetInBandMetadataTrackDispatchType(@as(*const IMFTimedTextTrack, @ptrCast(self)), dispatchType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_IsActive(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).IsActive(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetErrorCode(self: *const T) callconv(.Inline) MF_TIMED_TEXT_ERROR_CODE {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetErrorCode(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetExtendedErrorCode(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetExtendedErrorCode(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetDataFormat(self: *const T, format: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetDataFormat(@as(*const IMFTimedTextTrack, @ptrCast(self)), format);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetReadyState(self: *const T) callconv(.Inline) MF_TIMED_TEXT_TRACK_READY_STATE {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetReadyState(@as(*const IMFTimedTextTrack, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrack_GetCueList(self: *const T, cues: ?*?*IMFTimedTextCueList) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrack.VTable, @ptrCast(self.vtable)).GetCueList(@as(*const IMFTimedTextTrack, @ptrCast(self)), cues);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextTrackList_Value = Guid.initString("23ff334c-442c-445f-bccc-edc438aa11e2");
|
|
pub const IID_IMFTimedTextTrackList = &IID_IMFTimedTextTrackList_Value;
|
|
pub const IMFTimedTextTrackList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetTrack: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
index: u32,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
index: u32,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTrackById: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
trackId: u32,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextTrackList,
|
|
trackId: u32,
|
|
track: ?*?*IMFTimedTextTrack,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrackList_GetLength(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextTrackList.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFTimedTextTrackList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrackList_GetTrack(self: *const T, index: u32, track: ?*?*IMFTimedTextTrack) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrackList.VTable, @ptrCast(self.vtable)).GetTrack(@as(*const IMFTimedTextTrackList, @ptrCast(self)), index, track);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextTrackList_GetTrackById(self: *const T, trackId: u32, track: ?*?*IMFTimedTextTrack) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextTrackList.VTable, @ptrCast(self.vtable)).GetTrackById(@as(*const IMFTimedTextTrackList, @ptrCast(self)), trackId, track);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextCue_Value = Guid.initString("1e560447-9a2b-43e1-a94c-b0aaabfbfbc9");
|
|
pub const IID_IMFTimedTextCue = &IID_IMFTimedTextCue_Value;
|
|
pub const IMFTimedTextCue = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetOriginalId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
originalId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
originalId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCueKind: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_KIND,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) MF_TIMED_TEXT_TRACK_KIND,
|
|
},
|
|
GetStartTime: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
GetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) f64,
|
|
},
|
|
GetTrackId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
data: ?*?*IMFTimedTextBinary,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
data: ?*?*IMFTimedTextBinary,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRegion: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
region: ?*?*IMFTimedTextRegion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
region: ?*?*IMFTimedTextRegion,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStyle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
style: ?*?*IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
style: ?*?*IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLineCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetLine: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCue,
|
|
index: u32,
|
|
line: ?*?*IMFTimedTextFormattedText,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCue,
|
|
index: u32,
|
|
line: ?*?*IMFTimedTextFormattedText,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetId(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetId(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetOriginalId(self: *const T, originalId: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetOriginalId(@as(*const IMFTimedTextCue, @ptrCast(self)), originalId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetCueKind(self: *const T) callconv(.Inline) MF_TIMED_TEXT_TRACK_KIND {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetCueKind(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetStartTime(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetStartTime(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetDuration(self: *const T) callconv(.Inline) f64 {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetDuration(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetTrackId(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetTrackId(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetData(self: *const T, data: ?*?*IMFTimedTextBinary) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetData(@as(*const IMFTimedTextCue, @ptrCast(self)), data);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetRegion(self: *const T, region: ?*?*IMFTimedTextRegion) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetRegion(@as(*const IMFTimedTextCue, @ptrCast(self)), region);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetStyle(self: *const T, style: ?*?*IMFTimedTextStyle) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetStyle(@as(*const IMFTimedTextCue, @ptrCast(self)), style);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetLineCount(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetLineCount(@as(*const IMFTimedTextCue, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCue_GetLine(self: *const T, index: u32, line: ?*?*IMFTimedTextFormattedText) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCue.VTable, @ptrCast(self.vtable)).GetLine(@as(*const IMFTimedTextCue, @ptrCast(self)), index, line);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextFormattedText_Value = Guid.initString("e13af3c1-4d47-4354-b1f5-e83ae0ecae60");
|
|
pub const IID_IMFTimedTextFormattedText = &IID_IMFTimedTextFormattedText_Value;
|
|
pub const IMFTimedTextFormattedText = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetText: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
text: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
text: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSubformattingCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetSubformatting: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
index: u32,
|
|
firstChar: ?*u32,
|
|
charLength: ?*u32,
|
|
style: ?*?*IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextFormattedText,
|
|
index: u32,
|
|
firstChar: ?*u32,
|
|
charLength: ?*u32,
|
|
style: ?*?*IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextFormattedText_GetText(self: *const T, text: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextFormattedText.VTable, @ptrCast(self.vtable)).GetText(@as(*const IMFTimedTextFormattedText, @ptrCast(self)), text);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextFormattedText_GetSubformattingCount(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextFormattedText.VTable, @ptrCast(self.vtable)).GetSubformattingCount(@as(*const IMFTimedTextFormattedText, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextFormattedText_GetSubformatting(self: *const T, index: u32, firstChar: ?*u32, charLength: ?*u32, style: ?*?*IMFTimedTextStyle) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextFormattedText.VTable, @ptrCast(self.vtable)).GetSubformatting(@as(*const IMFTimedTextFormattedText, @ptrCast(self)), index, firstChar, charLength, style);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextStyle_Value = Guid.initString("09b2455d-b834-4f01-a347-9052e21c450e");
|
|
pub const IID_IMFTimedTextStyle = &IID_IMFTimedTextStyle_Value;
|
|
pub const IMFTimedTextStyle = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
name: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
name: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsExternal: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
GetFontFamily: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontFamily: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontFamily: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFontSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontSize: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontSize: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
color: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
color: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBackgroundColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
bgColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
bgColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetShowBackgroundAlways: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
showBackgroundAlways: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
showBackgroundAlways: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFontStyle: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontStyle: ?*MF_TIMED_TEXT_FONT_STYLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
fontStyle: ?*MF_TIMED_TEXT_FONT_STYLE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBold: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
bold: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
bold: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRightToLeft: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
rightToLeft: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
rightToLeft: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTextAlignment: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
textAlign: ?*MF_TIMED_TEXT_ALIGNMENT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
textAlign: ?*MF_TIMED_TEXT_ALIGNMENT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTextDecoration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
textDecoration: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
textDecoration: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTextOutline: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle,
|
|
color: ?*MFARGB,
|
|
thickness: ?*f64,
|
|
blurRadius: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle,
|
|
color: ?*MFARGB,
|
|
thickness: ?*f64,
|
|
blurRadius: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetName(self: *const T, name: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetName(@as(*const IMFTimedTextStyle, @ptrCast(self)), name);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_IsExternal(self: *const T) callconv(.Inline) BOOL {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).IsExternal(@as(*const IMFTimedTextStyle, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetFontFamily(self: *const T, fontFamily: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetFontFamily(@as(*const IMFTimedTextStyle, @ptrCast(self)), fontFamily);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetFontSize(self: *const T, fontSize: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetFontSize(@as(*const IMFTimedTextStyle, @ptrCast(self)), fontSize, unitType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetColor(self: *const T, color: ?*MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetColor(@as(*const IMFTimedTextStyle, @ptrCast(self)), color);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetBackgroundColor(self: *const T, bgColor: ?*MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetBackgroundColor(@as(*const IMFTimedTextStyle, @ptrCast(self)), bgColor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetShowBackgroundAlways(self: *const T, showBackgroundAlways: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetShowBackgroundAlways(@as(*const IMFTimedTextStyle, @ptrCast(self)), showBackgroundAlways);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetFontStyle(self: *const T, fontStyle: ?*MF_TIMED_TEXT_FONT_STYLE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetFontStyle(@as(*const IMFTimedTextStyle, @ptrCast(self)), fontStyle);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetBold(self: *const T, bold: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetBold(@as(*const IMFTimedTextStyle, @ptrCast(self)), bold);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetRightToLeft(self: *const T, rightToLeft: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetRightToLeft(@as(*const IMFTimedTextStyle, @ptrCast(self)), rightToLeft);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetTextAlignment(self: *const T, textAlign: ?*MF_TIMED_TEXT_ALIGNMENT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetTextAlignment(@as(*const IMFTimedTextStyle, @ptrCast(self)), textAlign);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetTextDecoration(self: *const T, textDecoration: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetTextDecoration(@as(*const IMFTimedTextStyle, @ptrCast(self)), textDecoration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle_GetTextOutline(self: *const T, color: ?*MFARGB, thickness: ?*f64, blurRadius: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle.VTable, @ptrCast(self.vtable)).GetTextOutline(@as(*const IMFTimedTextStyle, @ptrCast(self)), color, thickness, blurRadius, unitType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextRegion_Value = Guid.initString("c8d22afc-bc47-4bdf-9b04-787e49ce3f58");
|
|
pub const IID_IMFTimedTextRegion = &IID_IMFTimedTextRegion_Value;
|
|
pub const IMFTimedTextRegion = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetName: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
name: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
name: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pX: ?*f64,
|
|
pY: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pX: ?*f64,
|
|
pY: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetExtent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pWidth: ?*f64,
|
|
pHeight: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pWidth: ?*f64,
|
|
pHeight: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBackgroundColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
bgColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
bgColor: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetWritingMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
writingMode: ?*MF_TIMED_TEXT_WRITING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
writingMode: ?*MF_TIMED_TEXT_WRITING_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDisplayAlignment: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
displayAlign: ?*MF_TIMED_TEXT_DISPLAY_ALIGNMENT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
displayAlign: ?*MF_TIMED_TEXT_DISPLAY_ALIGNMENT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetLineHeight: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pLineHeight: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
pLineHeight: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetClipOverflow: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
clipOverflow: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
clipOverflow: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPadding: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
before: ?*f64,
|
|
start: ?*f64,
|
|
after: ?*f64,
|
|
end: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
before: ?*f64,
|
|
start: ?*f64,
|
|
after: ?*f64,
|
|
end: ?*f64,
|
|
unitType: ?*MF_TIMED_TEXT_UNIT_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetWrap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
wrap: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
wrap: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetZIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
zIndex: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
zIndex: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetScrollMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRegion,
|
|
scrollMode: ?*MF_TIMED_TEXT_SCROLL_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRegion,
|
|
scrollMode: ?*MF_TIMED_TEXT_SCROLL_MODE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetName(self: *const T, name: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetName(@as(*const IMFTimedTextRegion, @ptrCast(self)), name);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetPosition(self: *const T, pX: ?*f64, pY: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetPosition(@as(*const IMFTimedTextRegion, @ptrCast(self)), pX, pY, unitType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetExtent(self: *const T, pWidth: ?*f64, pHeight: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetExtent(@as(*const IMFTimedTextRegion, @ptrCast(self)), pWidth, pHeight, unitType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetBackgroundColor(self: *const T, bgColor: ?*MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetBackgroundColor(@as(*const IMFTimedTextRegion, @ptrCast(self)), bgColor);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetWritingMode(self: *const T, writingMode: ?*MF_TIMED_TEXT_WRITING_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetWritingMode(@as(*const IMFTimedTextRegion, @ptrCast(self)), writingMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetDisplayAlignment(self: *const T, displayAlign: ?*MF_TIMED_TEXT_DISPLAY_ALIGNMENT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetDisplayAlignment(@as(*const IMFTimedTextRegion, @ptrCast(self)), displayAlign);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetLineHeight(self: *const T, pLineHeight: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetLineHeight(@as(*const IMFTimedTextRegion, @ptrCast(self)), pLineHeight, unitType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetClipOverflow(self: *const T, clipOverflow: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetClipOverflow(@as(*const IMFTimedTextRegion, @ptrCast(self)), clipOverflow);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetPadding(self: *const T, before: ?*f64, start: ?*f64, after: ?*f64, end: ?*f64, unitType: ?*MF_TIMED_TEXT_UNIT_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetPadding(@as(*const IMFTimedTextRegion, @ptrCast(self)), before, start, after, end, unitType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetWrap(self: *const T, wrap: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetWrap(@as(*const IMFTimedTextRegion, @ptrCast(self)), wrap);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetZIndex(self: *const T, zIndex: ?*i32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetZIndex(@as(*const IMFTimedTextRegion, @ptrCast(self)), zIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRegion_GetScrollMode(self: *const T, scrollMode: ?*MF_TIMED_TEXT_SCROLL_MODE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRegion.VTable, @ptrCast(self.vtable)).GetScrollMode(@as(*const IMFTimedTextRegion, @ptrCast(self)), scrollMode);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
const IID_IMFTimedTextBinary_Value = Guid.initString("4ae3a412-0545-43c4-bf6f-6b97a5c6c432");
|
|
pub const IID_IMFTimedTextBinary = &IID_IMFTimedTextBinary_Value;
|
|
pub const IMFTimedTextBinary = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextBinary,
|
|
data: ?*const ?*u8,
|
|
length: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextBinary,
|
|
data: ?*const ?*u8,
|
|
length: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextBinary_GetData(self: *const T, data: ?*const ?*u8, length: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextBinary.VTable, @ptrCast(self.vtable)).GetData(@as(*const IMFTimedTextBinary, @ptrCast(self)), data, length);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFTimedTextCueList_Value = Guid.initString("ad128745-211b-40a0-9981-fe65f166d0fd");
|
|
pub const IID_IMFTimedTextCueList = &IID_IMFTimedTextCueList_Value;
|
|
pub const IMFTimedTextCueList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetLength: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
GetCueByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
index: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
index: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCueById: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
id: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
id: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCueByOriginalId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
originalId: ?[*:0]const u16,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
originalId: ?[*:0]const u16,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddTextCue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
start: f64,
|
|
duration: f64,
|
|
text: ?[*:0]const u16,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
start: f64,
|
|
duration: f64,
|
|
text: ?[*:0]const u16,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddDataCue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
start: f64,
|
|
duration: f64,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
data: ?*const u8,
|
|
dataSize: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
start: f64,
|
|
duration: f64,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
data: ?*const u8,
|
|
dataSize: u32,
|
|
cue: ?*?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveCue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextCueList,
|
|
cue: ?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextCueList,
|
|
cue: ?*IMFTimedTextCue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_GetLength(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).GetLength(@as(*const IMFTimedTextCueList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_GetCueByIndex(self: *const T, index: u32, cue: ?*?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).GetCueByIndex(@as(*const IMFTimedTextCueList, @ptrCast(self)), index, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_GetCueById(self: *const T, id: u32, cue: ?*?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).GetCueById(@as(*const IMFTimedTextCueList, @ptrCast(self)), id, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_GetCueByOriginalId(self: *const T, originalId: ?[*:0]const u16, cue: ?*?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).GetCueByOriginalId(@as(*const IMFTimedTextCueList, @ptrCast(self)), originalId, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_AddTextCue(self: *const T, start: f64, duration: f64, text: ?[*:0]const u16, cue: ?*?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).AddTextCue(@as(*const IMFTimedTextCueList, @ptrCast(self)), start, duration, text, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_AddDataCue(self: *const T, start: f64, duration: f64, data: ?*const u8, dataSize: u32, cue: ?*?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).AddDataCue(@as(*const IMFTimedTextCueList, @ptrCast(self)), start, duration, data, dataSize, cue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextCueList_RemoveCue(self: *const T, cue: ?*IMFTimedTextCue) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextCueList.VTable, @ptrCast(self.vtable)).RemoveCue(@as(*const IMFTimedTextCueList, @ptrCast(self)), cue);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFTimedTextRuby_Value = Guid.initString("76c6a6f5-4955-4de5-b27b-14b734cc14b4");
|
|
pub const IID_IMFTimedTextRuby = &IID_IMFTimedTextRuby_Value;
|
|
pub const IMFTimedTextRuby = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetRubyText: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRuby,
|
|
rubyText: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRuby,
|
|
rubyText: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRubyPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_POSITION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_POSITION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRubyAlign: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_ALIGN,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_ALIGN,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRubyReserve: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_RESERVE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextRuby,
|
|
value: ?*MF_TIMED_TEXT_RUBY_RESERVE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRuby_GetRubyText(self: *const T, rubyText: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRuby.VTable, @ptrCast(self.vtable)).GetRubyText(@as(*const IMFTimedTextRuby, @ptrCast(self)), rubyText);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRuby_GetRubyPosition(self: *const T, value: ?*MF_TIMED_TEXT_RUBY_POSITION) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRuby.VTable, @ptrCast(self.vtable)).GetRubyPosition(@as(*const IMFTimedTextRuby, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRuby_GetRubyAlign(self: *const T, value: ?*MF_TIMED_TEXT_RUBY_ALIGN) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRuby.VTable, @ptrCast(self.vtable)).GetRubyAlign(@as(*const IMFTimedTextRuby, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextRuby_GetRubyReserve(self: *const T, value: ?*MF_TIMED_TEXT_RUBY_RESERVE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextRuby.VTable, @ptrCast(self.vtable)).GetRubyReserve(@as(*const IMFTimedTextRuby, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFTimedTextBouten_Value = Guid.initString("3c5f3e8a-90c0-464e-8136-898d2975f847");
|
|
pub const IID_IMFTimedTextBouten = &IID_IMFTimedTextBouten_Value;
|
|
pub const IMFTimedTextBouten = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetBoutenType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MF_TIMED_TEXT_BOUTEN_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MF_TIMED_TEXT_BOUTEN_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBoutenColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MFARGB,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBoutenPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MF_TIMED_TEXT_BOUTEN_POSITION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextBouten,
|
|
value: ?*MF_TIMED_TEXT_BOUTEN_POSITION,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextBouten_GetBoutenType(self: *const T, value: ?*MF_TIMED_TEXT_BOUTEN_TYPE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextBouten.VTable, @ptrCast(self.vtable)).GetBoutenType(@as(*const IMFTimedTextBouten, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextBouten_GetBoutenColor(self: *const T, value: ?*MFARGB) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextBouten.VTable, @ptrCast(self.vtable)).GetBoutenColor(@as(*const IMFTimedTextBouten, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextBouten_GetBoutenPosition(self: *const T, value: ?*MF_TIMED_TEXT_BOUTEN_POSITION) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextBouten.VTable, @ptrCast(self.vtable)).GetBoutenPosition(@as(*const IMFTimedTextBouten, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFTimedTextStyle2_Value = Guid.initString("db639199-c809-4c89-bfca-d0bbb9729d6e");
|
|
pub const IID_IMFTimedTextStyle2 = &IID_IMFTimedTextStyle2_Value;
|
|
pub const IMFTimedTextStyle2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetRuby: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
ruby: ?*?*IMFTimedTextRuby,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
ruby: ?*?*IMFTimedTextRuby,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBouten: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
bouten: ?*?*IMFTimedTextBouten,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
bouten: ?*?*IMFTimedTextBouten,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsTextCombined: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
value: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
value: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFontAngleInDegrees: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
value: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTimedTextStyle2,
|
|
value: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle2_GetRuby(self: *const T, ruby: ?*?*IMFTimedTextRuby) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle2.VTable, @ptrCast(self.vtable)).GetRuby(@as(*const IMFTimedTextStyle2, @ptrCast(self)), ruby);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle2_GetBouten(self: *const T, bouten: ?*?*IMFTimedTextBouten) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle2.VTable, @ptrCast(self.vtable)).GetBouten(@as(*const IMFTimedTextStyle2, @ptrCast(self)), bouten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle2_IsTextCombined(self: *const T, value: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle2.VTable, @ptrCast(self.vtable)).IsTextCombined(@as(*const IMFTimedTextStyle2, @ptrCast(self)), value);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTimedTextStyle2_GetFontAngleInDegrees(self: *const T, value: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTimedTextStyle2.VTable, @ptrCast(self.vtable)).GetFontAngleInDegrees(@as(*const IMFTimedTextStyle2, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIA_ENGINE_STREAMTYPE_FAILED = enum(i32) {
|
|
UNKNOWN = 0,
|
|
AUDIO = 1,
|
|
VIDEO = 2,
|
|
};
|
|
pub const MF_MEDIA_ENGINE_STREAMTYPE_FAILED_UNKNOWN = MF_MEDIA_ENGINE_STREAMTYPE_FAILED.UNKNOWN;
|
|
pub const MF_MEDIA_ENGINE_STREAMTYPE_FAILED_AUDIO = MF_MEDIA_ENGINE_STREAMTYPE_FAILED.AUDIO;
|
|
pub const MF_MEDIA_ENGINE_STREAMTYPE_FAILED_VIDEO = MF_MEDIA_ENGINE_STREAMTYPE_FAILED.VIDEO;
|
|
|
|
const IID_IMFMediaEngineEMENotify_Value = Guid.initString("9e184d15-cdb7-4f86-b49e-566689f4a601");
|
|
pub const IID_IMFMediaEngineEMENotify = &IID_IMFMediaEngineEMENotify_Value;
|
|
pub const IMFMediaEngineEMENotify = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Encrypted: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEMENotify,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbInitData: ?*const u8,
|
|
cb: u32,
|
|
bstrInitDataType: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEMENotify,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbInitData: ?*const u8,
|
|
cb: u32,
|
|
bstrInitDataType: ?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
WaitingForKey: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineEMENotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineEMENotify,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEMENotify_Encrypted(self: *const T, pbInitData: ?*const u8, cb: u32, bstrInitDataType: ?BSTR) callconv(.Inline) void {
|
|
return @as(*const IMFMediaEngineEMENotify.VTable, @ptrCast(self.vtable)).Encrypted(@as(*const IMFMediaEngineEMENotify, @ptrCast(self)), pbInitData, cb, bstrInitDataType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineEMENotify_WaitingForKey(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaEngineEMENotify.VTable, @ptrCast(self.vtable)).WaitingForKey(@as(*const IMFMediaEngineEMENotify, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_MEDIAKEYS_REQUIREMENT = enum(i32) {
|
|
REQUIRED = 1,
|
|
OPTIONAL = 2,
|
|
NOT_ALLOWED = 3,
|
|
};
|
|
pub const MF_MEDIAKEYS_REQUIREMENT_REQUIRED = MF_MEDIAKEYS_REQUIREMENT.REQUIRED;
|
|
pub const MF_MEDIAKEYS_REQUIREMENT_OPTIONAL = MF_MEDIAKEYS_REQUIREMENT.OPTIONAL;
|
|
pub const MF_MEDIAKEYS_REQUIREMENT_NOT_ALLOWED = MF_MEDIAKEYS_REQUIREMENT.NOT_ALLOWED;
|
|
|
|
const IID_IMFMediaKeySessionNotify2_Value = Guid.initString("c3a9e92a-da88-46b0-a110-6cf953026cb9");
|
|
pub const IID_IMFMediaKeySessionNotify2 = &IID_IMFMediaKeySessionNotify2_Value;
|
|
pub const IMFMediaKeySessionNotify2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaKeySessionNotify.VTable,
|
|
KeyMessage2: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySessionNotify2,
|
|
eMessageType: MF_MEDIAKEYSESSION_MESSAGETYPE,
|
|
destinationURL: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pbMessage: ?*const u8,
|
|
cbMessage: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySessionNotify2,
|
|
eMessageType: MF_MEDIAKEYSESSION_MESSAGETYPE,
|
|
destinationURL: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pbMessage: ?*const u8,
|
|
cbMessage: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
KeyStatusChange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySessionNotify2,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySessionNotify2,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaKeySessionNotify.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySessionNotify2_KeyMessage2(self: *const T, eMessageType: MF_MEDIAKEYSESSION_MESSAGETYPE, destinationURL: ?BSTR, pbMessage: ?*const u8, cbMessage: u32) callconv(.Inline) void {
|
|
return @as(*const IMFMediaKeySessionNotify2.VTable, @ptrCast(self.vtable)).KeyMessage2(@as(*const IMFMediaKeySessionNotify2, @ptrCast(self)), eMessageType, destinationURL, pbMessage, cbMessage);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySessionNotify2_KeyStatusChange(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFMediaKeySessionNotify2.VTable, @ptrCast(self.vtable)).KeyStatusChange(@as(*const IMFMediaKeySessionNotify2, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaKeySystemAccess_Value = Guid.initString("aec63fda-7a97-4944-b35c-6c6df8085cc3");
|
|
pub const IID_IMFMediaKeySystemAccess = &IID_IMFMediaKeySystemAccess_Value;
|
|
pub const IMFMediaKeySystemAccess = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateMediaKeys: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
pCdmCustomConfig: ?*IPropertyStore,
|
|
ppKeys: ?*?*IMFMediaKeys2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
pCdmCustomConfig: ?*IPropertyStore,
|
|
ppKeys: ?*?*IMFMediaKeys2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_SupportedConfiguration: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
ppSupportedConfiguration: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
ppSupportedConfiguration: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_KeySystem: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
pKeySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySystemAccess,
|
|
pKeySystem: ?*?BSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySystemAccess_CreateMediaKeys(self: *const T, pCdmCustomConfig: ?*IPropertyStore, ppKeys: ?*?*IMFMediaKeys2) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySystemAccess.VTable, @ptrCast(self.vtable)).CreateMediaKeys(@as(*const IMFMediaKeySystemAccess, @ptrCast(self)), pCdmCustomConfig, ppKeys);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySystemAccess_get_SupportedConfiguration(self: *const T, ppSupportedConfiguration: ?*?*IPropertyStore) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySystemAccess.VTable, @ptrCast(self.vtable)).get_SupportedConfiguration(@as(*const IMFMediaKeySystemAccess, @ptrCast(self)), ppSupportedConfiguration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySystemAccess_get_KeySystem(self: *const T, pKeySystem: ?*?BSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySystemAccess.VTable, @ptrCast(self.vtable)).get_KeySystem(@as(*const IMFMediaKeySystemAccess, @ptrCast(self)), pKeySystem);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaEngineClassFactory3_Value = Guid.initString("3787614f-65f7-4003-b673-ead8293a0e60");
|
|
pub const IID_IMFMediaEngineClassFactory3 = &IID_IMFMediaEngineClassFactory3_Value;
|
|
pub const IMFMediaEngineClassFactory3 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateMediaKeySystemAccess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory3,
|
|
keySystem: ?BSTR,
|
|
ppSupportedConfigurationsArray: [*]?*IPropertyStore,
|
|
uSize: u32,
|
|
ppKeyAccess: ?*?*IMFMediaKeySystemAccess,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory3,
|
|
keySystem: ?BSTR,
|
|
ppSupportedConfigurationsArray: [*]?*IPropertyStore,
|
|
uSize: u32,
|
|
ppKeyAccess: ?*?*IMFMediaKeySystemAccess,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory3_CreateMediaKeySystemAccess(self: *const T, keySystem: ?BSTR, ppSupportedConfigurationsArray: [*]?*IPropertyStore, uSize: u32, ppKeyAccess: ?*?*IMFMediaKeySystemAccess) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory3.VTable, @ptrCast(self.vtable)).CreateMediaKeySystemAccess(@as(*const IMFMediaEngineClassFactory3, @ptrCast(self)), keySystem, ppSupportedConfigurationsArray, uSize, ppKeyAccess);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaKeys2_Value = Guid.initString("45892507-ad66-4de2-83a2-acbb13cd8d43");
|
|
pub const IID_IMFMediaKeys2 = &IID_IMFMediaKeys2_Value;
|
|
pub const IMFMediaKeys2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaKeys.VTable,
|
|
CreateSession2: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys2,
|
|
eSessionType: MF_MEDIAKEYSESSION_TYPE,
|
|
pMFMediaKeySessionNotify2: ?*IMFMediaKeySessionNotify2,
|
|
ppSession: ?*?*IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys2,
|
|
eSessionType: MF_MEDIAKEYSESSION_TYPE,
|
|
pMFMediaKeySessionNotify2: ?*IMFMediaKeySessionNotify2,
|
|
ppSession: ?*?*IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetServerCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys2,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbServerCertificate: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys2,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbServerCertificate: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDOMException: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeys2,
|
|
systemCode: HRESULT,
|
|
code: ?*HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeys2,
|
|
systemCode: HRESULT,
|
|
code: ?*HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaKeys.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys2_CreateSession2(self: *const T, eSessionType: MF_MEDIAKEYSESSION_TYPE, pMFMediaKeySessionNotify2: ?*IMFMediaKeySessionNotify2, ppSession: ?*?*IMFMediaKeySession2) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys2.VTable, @ptrCast(self.vtable)).CreateSession2(@as(*const IMFMediaKeys2, @ptrCast(self)), eSessionType, pMFMediaKeySessionNotify2, ppSession);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys2_SetServerCertificate(self: *const T, pbServerCertificate: ?*const u8, cb: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys2.VTable, @ptrCast(self.vtable)).SetServerCertificate(@as(*const IMFMediaKeys2, @ptrCast(self)), pbServerCertificate, cb);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeys2_GetDOMException(self: *const T, systemCode: HRESULT, code: ?*HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeys2.VTable, @ptrCast(self.vtable)).GetDOMException(@as(*const IMFMediaKeys2, @ptrCast(self)), systemCode, code);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaKeySession2_Value = Guid.initString("e9707e05-6d55-4636-b185-3de21210bd75");
|
|
pub const IID_IMFMediaKeySession2 = &IID_IMFMediaKeySession2_Value;
|
|
pub const IMFMediaKeySession2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaKeySession.VTable,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_KeyStatuses: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
pKeyStatusesArray: ?*?*MFMediaKeyStatus,
|
|
puSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
pKeyStatusesArray: ?*?*MFMediaKeyStatus,
|
|
puSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Load: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
bstrSessionId: ?BSTR,
|
|
pfLoaded: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
bstrSessionId: ?BSTR,
|
|
pfLoaded: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GenerateRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
initDataType: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pbInitData: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
initDataType: ?BSTR,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pbInitData: ?*const u8,
|
|
cb: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
get_Expiration: switch (@import("builtin").zig_backend) {
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
dblExpiration: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
// TODO: this function has a "SpecialName", should Zig do anything with this?
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
dblExpiration: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Remove: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaKeySession2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaKeySession.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_get_KeyStatuses(self: *const T, pKeyStatusesArray: ?*?*MFMediaKeyStatus, puSize: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).get_KeyStatuses(@as(*const IMFMediaKeySession2, @ptrCast(self)), pKeyStatusesArray, puSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_Load(self: *const T, bstrSessionId: ?BSTR, pfLoaded: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).Load(@as(*const IMFMediaKeySession2, @ptrCast(self)), bstrSessionId, pfLoaded);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_GenerateRequest(self: *const T, initDataType: ?BSTR, pbInitData: ?*const u8, cb: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).GenerateRequest(@as(*const IMFMediaKeySession2, @ptrCast(self)), initDataType, pbInitData, cb);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_get_Expiration(self: *const T, dblExpiration: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).get_Expiration(@as(*const IMFMediaKeySession2, @ptrCast(self)), dblExpiration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_Remove(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).Remove(@as(*const IMFMediaKeySession2, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaKeySession2_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaKeySession2.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFMediaKeySession2, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFMediaEngineClassFactory4_Value = Guid.initString("fbe256c1-43cf-4a9b-8cb8-ce8632a34186");
|
|
pub const IID_IMFMediaEngineClassFactory4 = &IID_IMFMediaEngineClassFactory4_Value;
|
|
pub const IMFMediaEngineClassFactory4 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateContentDecryptionModuleFactory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaEngineClassFactory4,
|
|
keySystem: ?[*:0]const u16,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaEngineClassFactory4,
|
|
keySystem: ?[*:0]const u16,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaEngineClassFactory4_CreateContentDecryptionModuleFactory(self: *const T, keySystem: ?[*:0]const u16, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaEngineClassFactory4.VTable, @ptrCast(self.vtable)).CreateContentDecryptionModuleFactory(@as(*const IMFMediaEngineClassFactory4, @ptrCast(self)), keySystem, riid, ppvObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFDLNASinkInit_Value = Guid.initString("0c012799-1b61-4c10-bda9-04445be5f561");
|
|
pub const IID_IMFDLNASinkInit = &IID_IMFDLNASinkInit_Value;
|
|
pub const IMFDLNASinkInit = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Initialize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDLNASinkInit,
|
|
pByteStream: ?*IMFByteStream,
|
|
fPal: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDLNASinkInit,
|
|
pByteStream: ?*IMFByteStream,
|
|
fPal: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDLNASinkInit_Initialize(self: *const T, pByteStream: ?*IMFByteStream, fPal: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDLNASinkInit.VTable, @ptrCast(self.vtable)).Initialize(@as(*const IMFDLNASinkInit, @ptrCast(self)), pByteStream, fPal);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFMPEG2DLNASINKSTATS = extern struct {
|
|
cBytesWritten: u64,
|
|
fPAL: BOOL,
|
|
fccVideo: u32,
|
|
dwVideoWidth: u32,
|
|
dwVideoHeight: u32,
|
|
cVideoFramesReceived: u64,
|
|
cVideoFramesEncoded: u64,
|
|
cVideoFramesSkipped: u64,
|
|
cBlackVideoFramesEncoded: u64,
|
|
cVideoFramesDuplicated: u64,
|
|
cAudioSamplesPerSec: u32,
|
|
cAudioChannels: u32,
|
|
cAudioBytesReceived: u64,
|
|
cAudioFramesEncoded: u64,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFReadWriteClassFactory_Value = Guid.initString("e7fe2e12-661c-40da-92f9-4f002ab67627");
|
|
pub const IID_IMFReadWriteClassFactory = &IID_IMFReadWriteClassFactory_Value;
|
|
pub const IMFReadWriteClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstanceFromURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFReadWriteClassFactory,
|
|
clsid: ?*const Guid,
|
|
pwszURL: ?[*:0]const u16,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFReadWriteClassFactory,
|
|
clsid: ?*const Guid,
|
|
pwszURL: ?[*:0]const u16,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateInstanceFromObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFReadWriteClassFactory,
|
|
clsid: ?*const Guid,
|
|
punkObject: ?*IUnknown,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFReadWriteClassFactory,
|
|
clsid: ?*const Guid,
|
|
punkObject: ?*IUnknown,
|
|
pAttributes: ?*IMFAttributes,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFReadWriteClassFactory_CreateInstanceFromURL(self: *const T, clsid: ?*const Guid, pwszURL: ?[*:0]const u16, pAttributes: ?*IMFAttributes, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFReadWriteClassFactory.VTable, @ptrCast(self.vtable)).CreateInstanceFromURL(@as(*const IMFReadWriteClassFactory, @ptrCast(self)), clsid, pwszURL, pAttributes, riid, ppvObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFReadWriteClassFactory_CreateInstanceFromObject(self: *const T, clsid: ?*const Guid, punkObject: ?*IUnknown, pAttributes: ?*IMFAttributes, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFReadWriteClassFactory.VTable, @ptrCast(self.vtable)).CreateInstanceFromObject(@as(*const IMFReadWriteClassFactory, @ptrCast(self)), clsid, punkObject, pAttributes, riid, ppvObject);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_SOURCE_READER_FLAG = enum(i32) {
|
|
ERROR = 1,
|
|
ENDOFSTREAM = 2,
|
|
NEWSTREAM = 4,
|
|
NATIVEMEDIATYPECHANGED = 16,
|
|
CURRENTMEDIATYPECHANGED = 32,
|
|
STREAMTICK = 256,
|
|
ALLEFFECTSREMOVED = 512,
|
|
};
|
|
pub const MF_SOURCE_READERF_ERROR = MF_SOURCE_READER_FLAG.ERROR;
|
|
pub const MF_SOURCE_READERF_ENDOFSTREAM = MF_SOURCE_READER_FLAG.ENDOFSTREAM;
|
|
pub const MF_SOURCE_READERF_NEWSTREAM = MF_SOURCE_READER_FLAG.NEWSTREAM;
|
|
pub const MF_SOURCE_READERF_NATIVEMEDIATYPECHANGED = MF_SOURCE_READER_FLAG.NATIVEMEDIATYPECHANGED;
|
|
pub const MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED = MF_SOURCE_READER_FLAG.CURRENTMEDIATYPECHANGED;
|
|
pub const MF_SOURCE_READERF_STREAMTICK = MF_SOURCE_READER_FLAG.STREAMTICK;
|
|
pub const MF_SOURCE_READERF_ALLEFFECTSREMOVED = MF_SOURCE_READER_FLAG.ALLEFFECTSREMOVED;
|
|
|
|
pub const MF_SOURCE_READER_CONTROL_FLAG = enum(i32) {
|
|
N = 1,
|
|
};
|
|
pub const MF_SOURCE_READER_CONTROLF_DRAIN = MF_SOURCE_READER_CONTROL_FLAG.N;
|
|
|
|
pub const MF_SOURCE_READER_CONSTANTS = enum(i32) {
|
|
INVALID_STREAM_INDEX = -1,
|
|
ALL_STREAMS = -2,
|
|
// ANY_STREAM = -2, this enum value conflicts with ALL_STREAMS
|
|
FIRST_AUDIO_STREAM = -3,
|
|
FIRST_VIDEO_STREAM = -4,
|
|
// MEDIASOURCE = -1, this enum value conflicts with INVALID_STREAM_INDEX
|
|
};
|
|
pub const MF_SOURCE_READER_INVALID_STREAM_INDEX = MF_SOURCE_READER_CONSTANTS.INVALID_STREAM_INDEX;
|
|
pub const MF_SOURCE_READER_ALL_STREAMS = MF_SOURCE_READER_CONSTANTS.ALL_STREAMS;
|
|
pub const MF_SOURCE_READER_ANY_STREAM = MF_SOURCE_READER_CONSTANTS.ALL_STREAMS;
|
|
pub const MF_SOURCE_READER_FIRST_AUDIO_STREAM = MF_SOURCE_READER_CONSTANTS.FIRST_AUDIO_STREAM;
|
|
pub const MF_SOURCE_READER_FIRST_VIDEO_STREAM = MF_SOURCE_READER_CONSTANTS.FIRST_VIDEO_STREAM;
|
|
pub const MF_SOURCE_READER_MEDIASOURCE = MF_SOURCE_READER_CONSTANTS.INVALID_STREAM_INDEX;
|
|
|
|
pub const MF_SOURCE_READER_CURRENT_TYPE_CONSTANTS = enum(i32) {
|
|
X = -1,
|
|
};
|
|
pub const MF_SOURCE_READER_CURRENT_TYPE_INDEX = MF_SOURCE_READER_CURRENT_TYPE_CONSTANTS.X;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSourceReader_Value = Guid.initString("70ae66f2-c809-4e4f-8915-bdcb406b7993");
|
|
pub const IID_IMFSourceReader = &IID_IMFSourceReader_Value;
|
|
pub const IMFSourceReader = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
fSelected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
fSelected: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNativeMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
dwMediaTypeIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
dwMediaTypeIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
pdwReserved: ?*u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
pdwReserved: ?*u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetCurrentPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
guidTimeFormat: ?*const Guid,
|
|
varPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
guidTimeFormat: ?*const Guid,
|
|
varPosition: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ReadSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
dwControlFlags: u32,
|
|
pdwActualStreamIndex: ?*u32,
|
|
pdwStreamFlags: ?*u32,
|
|
pllTimestamp: ?*i64,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
dwControlFlags: u32,
|
|
pdwActualStreamIndex: ?*u32,
|
|
pdwStreamFlags: ?*u32,
|
|
pllTimestamp: ?*i64,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetServiceForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationAttribute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
guidAttribute: ?*const Guid,
|
|
pvarAttribute: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReader,
|
|
dwStreamIndex: u32,
|
|
guidAttribute: ?*const Guid,
|
|
pvarAttribute: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_GetStreamSelection(self: *const T, dwStreamIndex: u32, pfSelected: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).GetStreamSelection(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, pfSelected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_SetStreamSelection(self: *const T, dwStreamIndex: u32, fSelected: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).SetStreamSelection(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, fSelected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_GetNativeMediaType(self: *const T, dwStreamIndex: u32, dwMediaTypeIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).GetNativeMediaType(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, dwMediaTypeIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_GetCurrentMediaType(self: *const T, dwStreamIndex: u32, ppMediaType: ?*?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).GetCurrentMediaType(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, ppMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_SetCurrentMediaType(self: *const T, dwStreamIndex: u32, pdwReserved: ?*u32, pMediaType: ?*IMFMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).SetCurrentMediaType(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, pdwReserved, pMediaType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_SetCurrentPosition(self: *const T, guidTimeFormat: ?*const Guid, varPosition: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).SetCurrentPosition(@as(*const IMFSourceReader, @ptrCast(self)), guidTimeFormat, varPosition);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_ReadSample(self: *const T, dwStreamIndex: u32, dwControlFlags: u32, pdwActualStreamIndex: ?*u32, pdwStreamFlags: ?*u32, pllTimestamp: ?*i64, ppSample: ?*?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).ReadSample(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, dwControlFlags, pdwActualStreamIndex, pdwStreamFlags, pllTimestamp, ppSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_Flush(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_GetServiceForStream(self: *const T, dwStreamIndex: u32, guidService: ?*const Guid, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).GetServiceForStream(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, guidService, riid, ppvObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReader_GetPresentationAttribute(self: *const T, dwStreamIndex: u32, guidAttribute: ?*const Guid, pvarAttribute: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReader.VTable, @ptrCast(self.vtable)).GetPresentationAttribute(@as(*const IMFSourceReader, @ptrCast(self)), dwStreamIndex, guidAttribute, pvarAttribute);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSourceReaderEx_Value = Guid.initString("7b981cf0-560e-4116-9875-b099895f23d7");
|
|
pub const IID_IMFSourceReaderEx = &IID_IMFSourceReaderEx_Value;
|
|
pub const IMFSourceReaderEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSourceReader.VTable,
|
|
SetNativeMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pdwStreamFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
pMediaType: ?*IMFMediaType,
|
|
pdwStreamFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddTransformForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
pTransformOrActivate: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
pTransformOrActivate: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllTransformsForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetTransformForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
dwTransformIndex: u32,
|
|
pGuidCategory: ?*Guid,
|
|
ppTransform: ?*?*IMFTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderEx,
|
|
dwStreamIndex: u32,
|
|
dwTransformIndex: u32,
|
|
pGuidCategory: ?*Guid,
|
|
ppTransform: ?*?*IMFTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSourceReader.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderEx_SetNativeMediaType(self: *const T, dwStreamIndex: u32, pMediaType: ?*IMFMediaType, pdwStreamFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderEx.VTable, @ptrCast(self.vtable)).SetNativeMediaType(@as(*const IMFSourceReaderEx, @ptrCast(self)), dwStreamIndex, pMediaType, pdwStreamFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderEx_AddTransformForStream(self: *const T, dwStreamIndex: u32, pTransformOrActivate: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderEx.VTable, @ptrCast(self.vtable)).AddTransformForStream(@as(*const IMFSourceReaderEx, @ptrCast(self)), dwStreamIndex, pTransformOrActivate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderEx_RemoveAllTransformsForStream(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderEx.VTable, @ptrCast(self.vtable)).RemoveAllTransformsForStream(@as(*const IMFSourceReaderEx, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderEx_GetTransformForStream(self: *const T, dwStreamIndex: u32, dwTransformIndex: u32, pGuidCategory: ?*Guid, ppTransform: ?*?*IMFTransform) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderEx.VTable, @ptrCast(self.vtable)).GetTransformForStream(@as(*const IMFSourceReaderEx, @ptrCast(self)), dwStreamIndex, dwTransformIndex, pGuidCategory, ppTransform);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSourceReaderCallback_Value = Guid.initString("deec8d99-fa1d-4d82-84c2-2c8969944867");
|
|
pub const IID_IMFSourceReaderCallback = &IID_IMFSourceReaderCallback_Value;
|
|
pub const IMFSourceReaderCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnReadSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
hrStatus: HRESULT,
|
|
dwStreamIndex: u32,
|
|
dwStreamFlags: u32,
|
|
llTimestamp: i64,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
hrStatus: HRESULT,
|
|
dwStreamIndex: u32,
|
|
dwStreamFlags: u32,
|
|
llTimestamp: i64,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnFlush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
dwStreamIndex: u32,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderCallback,
|
|
dwStreamIndex: u32,
|
|
pEvent: ?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderCallback_OnReadSample(self: *const T, hrStatus: HRESULT, dwStreamIndex: u32, dwStreamFlags: u32, llTimestamp: i64, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderCallback.VTable, @ptrCast(self.vtable)).OnReadSample(@as(*const IMFSourceReaderCallback, @ptrCast(self)), hrStatus, dwStreamIndex, dwStreamFlags, llTimestamp, pSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderCallback_OnFlush(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderCallback.VTable, @ptrCast(self.vtable)).OnFlush(@as(*const IMFSourceReaderCallback, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderCallback_OnEvent(self: *const T, dwStreamIndex: u32, pEvent: ?*IMFMediaEvent) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderCallback.VTable, @ptrCast(self.vtable)).OnEvent(@as(*const IMFSourceReaderCallback, @ptrCast(self)), dwStreamIndex, pEvent);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFSourceReaderCallback2_Value = Guid.initString("cf839fe6-8c2a-4dd2-b6ea-c22d6961af05");
|
|
pub const IID_IMFSourceReaderCallback2 = &IID_IMFSourceReaderCallback2_Value;
|
|
pub const IMFSourceReaderCallback2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSourceReaderCallback.VTable,
|
|
OnTransformChange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderCallback2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderCallback2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnStreamError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSourceReaderCallback2,
|
|
dwStreamIndex: u32,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSourceReaderCallback2,
|
|
dwStreamIndex: u32,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSourceReaderCallback.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderCallback2_OnTransformChange(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderCallback2.VTable, @ptrCast(self.vtable)).OnTransformChange(@as(*const IMFSourceReaderCallback2, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSourceReaderCallback2_OnStreamError(self: *const T, dwStreamIndex: u32, hrStatus: HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSourceReaderCallback2.VTable, @ptrCast(self.vtable)).OnStreamError(@as(*const IMFSourceReaderCallback2, @ptrCast(self)), dwStreamIndex, hrStatus);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_SINK_WRITER_CONSTANTS = enum(u32) {
|
|
INVALID_STREAM_INDEX = 4294967295,
|
|
ALL_STREAMS = 4294967294,
|
|
// MEDIASINK = 4294967295, this enum value conflicts with INVALID_STREAM_INDEX
|
|
};
|
|
pub const MF_SINK_WRITER_INVALID_STREAM_INDEX = MF_SINK_WRITER_CONSTANTS.INVALID_STREAM_INDEX;
|
|
pub const MF_SINK_WRITER_ALL_STREAMS = MF_SINK_WRITER_CONSTANTS.ALL_STREAMS;
|
|
pub const MF_SINK_WRITER_MEDIASINK = MF_SINK_WRITER_CONSTANTS.INVALID_STREAM_INDEX;
|
|
|
|
pub const MF_SINK_WRITER_STATISTICS = extern struct {
|
|
cb: u32,
|
|
llLastTimestampReceived: i64,
|
|
llLastTimestampEncoded: i64,
|
|
llLastTimestampProcessed: i64,
|
|
llLastStreamTickReceived: i64,
|
|
llLastSinkSampleRequest: i64,
|
|
qwNumSamplesReceived: u64,
|
|
qwNumSamplesEncoded: u64,
|
|
qwNumSamplesProcessed: u64,
|
|
qwNumStreamTicksReceived: u64,
|
|
dwByteCountQueued: u32,
|
|
qwByteCountProcessed: u64,
|
|
dwNumOutstandingSinkSampleRequests: u32,
|
|
dwAverageSampleRateReceived: u32,
|
|
dwAverageSampleRateEncoded: u32,
|
|
dwAverageSampleRateProcessed: u32,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSinkWriter_Value = Guid.initString("3137f1cd-fe5e-4805-a5d8-fb477448cb3d");
|
|
pub const IID_IMFSinkWriter = &IID_IMFSinkWriter_Value;
|
|
pub const IMFSinkWriter = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
AddStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
pTargetMediaType: ?*IMFMediaType,
|
|
pdwStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
pTargetMediaType: ?*IMFMediaType,
|
|
pdwStreamIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetInputMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pInputMediaType: ?*IMFMediaType,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pInputMediaType: ?*IMFMediaType,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
BeginWriting: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
WriteSample: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pSample: ?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SendStreamTick: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
llTimestamp: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
llTimestamp: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
PlaceMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pvContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pvContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
NotifyEndOfSegment: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Flush: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Finalize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetServiceForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStatistics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pStats: ?*MF_SINK_WRITER_STATISTICS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriter,
|
|
dwStreamIndex: u32,
|
|
pStats: ?*MF_SINK_WRITER_STATISTICS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_AddStream(self: *const T, pTargetMediaType: ?*IMFMediaType, pdwStreamIndex: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).AddStream(@as(*const IMFSinkWriter, @ptrCast(self)), pTargetMediaType, pdwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_SetInputMediaType(self: *const T, dwStreamIndex: u32, pInputMediaType: ?*IMFMediaType, pEncodingParameters: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).SetInputMediaType(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, pInputMediaType, pEncodingParameters);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_BeginWriting(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).BeginWriting(@as(*const IMFSinkWriter, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_WriteSample(self: *const T, dwStreamIndex: u32, pSample: ?*IMFSample) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).WriteSample(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, pSample);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_SendStreamTick(self: *const T, dwStreamIndex: u32, llTimestamp: i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).SendStreamTick(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, llTimestamp);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_PlaceMarker(self: *const T, dwStreamIndex: u32, pvContext: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).PlaceMarker(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, pvContext);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_NotifyEndOfSegment(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).NotifyEndOfSegment(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_Flush(self: *const T, dwStreamIndex: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).Flush(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_Finalize(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).Finalize(@as(*const IMFSinkWriter, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_GetServiceForStream(self: *const T, dwStreamIndex: u32, guidService: ?*const Guid, riid: ?*const Guid, ppvObject: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).GetServiceForStream(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, guidService, riid, ppvObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriter_GetStatistics(self: *const T, dwStreamIndex: u32, pStats: ?*MF_SINK_WRITER_STATISTICS) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriter.VTable, @ptrCast(self.vtable)).GetStatistics(@as(*const IMFSinkWriter, @ptrCast(self)), dwStreamIndex, pStats);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSinkWriterEx_Value = Guid.initString("588d72ab-5bc1-496a-8714-b70617141b25");
|
|
pub const IID_IMFSinkWriterEx = &IID_IMFSinkWriterEx_Value;
|
|
pub const IMFSinkWriterEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSinkWriter.VTable,
|
|
GetTransformForStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterEx,
|
|
dwStreamIndex: u32,
|
|
dwTransformIndex: u32,
|
|
pGuidCategory: ?*Guid,
|
|
ppTransform: ?*?*IMFTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterEx,
|
|
dwStreamIndex: u32,
|
|
dwTransformIndex: u32,
|
|
pGuidCategory: ?*Guid,
|
|
ppTransform: ?*?*IMFTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSinkWriter.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterEx_GetTransformForStream(self: *const T, dwStreamIndex: u32, dwTransformIndex: u32, pGuidCategory: ?*Guid, ppTransform: ?*?*IMFTransform) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterEx.VTable, @ptrCast(self.vtable)).GetTransformForStream(@as(*const IMFSinkWriterEx, @ptrCast(self)), dwStreamIndex, dwTransformIndex, pGuidCategory, ppTransform);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IMFSinkWriterEncoderConfig_Value = Guid.initString("17c3779e-3cde-4ede-8c60-3899f5f53ad6");
|
|
pub const IID_IMFSinkWriterEncoderConfig = &IID_IMFSinkWriterEncoderConfig_Value;
|
|
pub const IMFSinkWriterEncoderConfig = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetTargetMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterEncoderConfig,
|
|
dwStreamIndex: u32,
|
|
pTargetMediaType: ?*IMFMediaType,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterEncoderConfig,
|
|
dwStreamIndex: u32,
|
|
pTargetMediaType: ?*IMFMediaType,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
PlaceEncodingParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterEncoderConfig,
|
|
dwStreamIndex: u32,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterEncoderConfig,
|
|
dwStreamIndex: u32,
|
|
pEncodingParameters: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterEncoderConfig_SetTargetMediaType(self: *const T, dwStreamIndex: u32, pTargetMediaType: ?*IMFMediaType, pEncodingParameters: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterEncoderConfig.VTable, @ptrCast(self.vtable)).SetTargetMediaType(@as(*const IMFSinkWriterEncoderConfig, @ptrCast(self)), dwStreamIndex, pTargetMediaType, pEncodingParameters);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterEncoderConfig_PlaceEncodingParameters(self: *const T, dwStreamIndex: u32, pEncodingParameters: ?*IMFAttributes) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterEncoderConfig.VTable, @ptrCast(self.vtable)).PlaceEncodingParameters(@as(*const IMFSinkWriterEncoderConfig, @ptrCast(self)), dwStreamIndex, pEncodingParameters);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFSinkWriterCallback_Value = Guid.initString("666f76de-33d2-41b9-a458-29ed0a972c58");
|
|
pub const IID_IMFSinkWriterCallback = &IID_IMFSinkWriterCallback_Value;
|
|
pub const IMFSinkWriterCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnFinalize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterCallback,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterCallback,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnMarker: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterCallback,
|
|
dwStreamIndex: u32,
|
|
pvContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterCallback,
|
|
dwStreamIndex: u32,
|
|
pvContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterCallback_OnFinalize(self: *const T, hrStatus: HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterCallback.VTable, @ptrCast(self.vtable)).OnFinalize(@as(*const IMFSinkWriterCallback, @ptrCast(self)), hrStatus);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterCallback_OnMarker(self: *const T, dwStreamIndex: u32, pvContext: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterCallback.VTable, @ptrCast(self.vtable)).OnMarker(@as(*const IMFSinkWriterCallback, @ptrCast(self)), dwStreamIndex, pvContext);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFSinkWriterCallback2_Value = Guid.initString("2456bd58-c067-4513-84fe-8d0c88ffdc61");
|
|
pub const IID_IMFSinkWriterCallback2 = &IID_IMFSinkWriterCallback2_Value;
|
|
pub const IMFSinkWriterCallback2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSinkWriterCallback.VTable,
|
|
OnTransformChange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterCallback2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterCallback2,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
OnStreamError: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSinkWriterCallback2,
|
|
dwStreamIndex: u32,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSinkWriterCallback2,
|
|
dwStreamIndex: u32,
|
|
hrStatus: HRESULT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSinkWriterCallback.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterCallback2_OnTransformChange(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterCallback2.VTable, @ptrCast(self.vtable)).OnTransformChange(@as(*const IMFSinkWriterCallback2, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSinkWriterCallback2_OnStreamError(self: *const T, dwStreamIndex: u32, hrStatus: HRESULT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSinkWriterCallback2.VTable, @ptrCast(self.vtable)).OnStreamError(@as(*const IMFSinkWriterCallback2, @ptrCast(self)), dwStreamIndex, hrStatus);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoPositionMapper_Value = Guid.initString("1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae");
|
|
pub const IID_IMFVideoPositionMapper = &IID_IMFVideoPositionMapper_Value;
|
|
pub const IMFVideoPositionMapper = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
MapOutputCoordinateToInputStream: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoPositionMapper,
|
|
xOut: f32,
|
|
yOut: f32,
|
|
dwOutputStreamIndex: u32,
|
|
dwInputStreamIndex: u32,
|
|
pxIn: ?*f32,
|
|
pyIn: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoPositionMapper,
|
|
xOut: f32,
|
|
yOut: f32,
|
|
dwOutputStreamIndex: u32,
|
|
dwInputStreamIndex: u32,
|
|
pxIn: ?*f32,
|
|
pyIn: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoPositionMapper_MapOutputCoordinateToInputStream(self: *const T, xOut: f32, yOut: f32, dwOutputStreamIndex: u32, dwInputStreamIndex: u32, pxIn: ?*f32, pyIn: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoPositionMapper.VTable, @ptrCast(self.vtable)).MapOutputCoordinateToInputStream(@as(*const IMFVideoPositionMapper, @ptrCast(self)), xOut, yOut, dwOutputStreamIndex, dwInputStreamIndex, pxIn, pyIn);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoDeviceID_Value = Guid.initString("a38d9567-5a9c-4f3c-b293-8eb415b279ba");
|
|
pub const IID_IMFVideoDeviceID = &IID_IMFVideoDeviceID_Value;
|
|
pub const IMFVideoDeviceID = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDeviceID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDeviceID,
|
|
pDeviceID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDeviceID,
|
|
pDeviceID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDeviceID_GetDeviceID(self: *const T, pDeviceID: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDeviceID.VTable, @ptrCast(self.vtable)).GetDeviceID(@as(*const IMFVideoDeviceID, @ptrCast(self)), pDeviceID);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVideoAspectRatioMode = enum(i32) {
|
|
None = 0,
|
|
PreservePicture = 1,
|
|
PreservePixel = 2,
|
|
NonLinearStretch = 4,
|
|
Mask = 7,
|
|
};
|
|
pub const MFVideoARMode_None = MFVideoAspectRatioMode.None;
|
|
pub const MFVideoARMode_PreservePicture = MFVideoAspectRatioMode.PreservePicture;
|
|
pub const MFVideoARMode_PreservePixel = MFVideoAspectRatioMode.PreservePixel;
|
|
pub const MFVideoARMode_NonLinearStretch = MFVideoAspectRatioMode.NonLinearStretch;
|
|
pub const MFVideoARMode_Mask = MFVideoAspectRatioMode.Mask;
|
|
|
|
pub const MFVideoRenderPrefs = enum(i32) {
|
|
DoNotRenderBorder = 1,
|
|
DoNotClipToDevice = 2,
|
|
AllowOutputThrottling = 4,
|
|
ForceOutputThrottling = 8,
|
|
ForceBatching = 16,
|
|
AllowBatching = 32,
|
|
ForceScaling = 64,
|
|
AllowScaling = 128,
|
|
DoNotRepaintOnStop = 256,
|
|
Mask = 511,
|
|
};
|
|
pub const MFVideoRenderPrefs_DoNotRenderBorder = MFVideoRenderPrefs.DoNotRenderBorder;
|
|
pub const MFVideoRenderPrefs_DoNotClipToDevice = MFVideoRenderPrefs.DoNotClipToDevice;
|
|
pub const MFVideoRenderPrefs_AllowOutputThrottling = MFVideoRenderPrefs.AllowOutputThrottling;
|
|
pub const MFVideoRenderPrefs_ForceOutputThrottling = MFVideoRenderPrefs.ForceOutputThrottling;
|
|
pub const MFVideoRenderPrefs_ForceBatching = MFVideoRenderPrefs.ForceBatching;
|
|
pub const MFVideoRenderPrefs_AllowBatching = MFVideoRenderPrefs.AllowBatching;
|
|
pub const MFVideoRenderPrefs_ForceScaling = MFVideoRenderPrefs.ForceScaling;
|
|
pub const MFVideoRenderPrefs_AllowScaling = MFVideoRenderPrefs.AllowScaling;
|
|
pub const MFVideoRenderPrefs_DoNotRepaintOnStop = MFVideoRenderPrefs.DoNotRepaintOnStop;
|
|
pub const MFVideoRenderPrefs_Mask = MFVideoRenderPrefs.Mask;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoDisplayControl_Value = Guid.initString("a490b1e4-ab84-4d31-a1b2-181e03b1077a");
|
|
pub const IID_IMFVideoDisplayControl = &IID_IMFVideoDisplayControl_Value;
|
|
pub const IMFVideoDisplayControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetNativeVideoSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pszVideo: ?*SIZE,
|
|
pszARVideo: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pszVideo: ?*SIZE,
|
|
pszARVideo: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIdealVideoSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pszMin: ?*SIZE,
|
|
pszMax: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pszMin: ?*SIZE,
|
|
pszMax: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pnrcSource: ?*const MFVideoNormalizedRect,
|
|
prcDest: ?*const RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pnrcSource: ?*const MFVideoNormalizedRect,
|
|
prcDest: ?*const RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pnrcSource: ?*MFVideoNormalizedRect,
|
|
prcDest: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pnrcSource: ?*MFVideoNormalizedRect,
|
|
prcDest: ?*RECT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAspectRatioMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
dwAspectRatioMode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
dwAspectRatioMode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAspectRatioMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pdwAspectRatioMode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pdwAspectRatioMode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoWindow: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
hwndVideo: ?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
hwndVideo: ?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoWindow: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
phwndVideo: ?*?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
phwndVideo: ?*?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RepaintVideo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentImage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pBih: ?*BITMAPINFOHEADER,
|
|
pDib: [*]?*u8,
|
|
pcbDib: ?*u32,
|
|
pTimeStamp: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pBih: ?*BITMAPINFOHEADER,
|
|
pDib: [*]?*u8,
|
|
pcbDib: ?*u32,
|
|
pTimeStamp: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBorderColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
Clr: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
Clr: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBorderColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pClr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pClr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRenderingPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
dwRenderFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
dwRenderFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRenderingPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pdwRenderFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pdwRenderFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFullscreen: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
fFullscreen: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
fFullscreen: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFullscreen: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pfFullscreen: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoDisplayControl,
|
|
pfFullscreen: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetNativeVideoSize(self: *const T, pszVideo: ?*SIZE, pszARVideo: ?*SIZE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetNativeVideoSize(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pszVideo, pszARVideo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetIdealVideoSize(self: *const T, pszMin: ?*SIZE, pszMax: ?*SIZE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetIdealVideoSize(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pszMin, pszMax);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetVideoPosition(self: *const T, pnrcSource: ?*const MFVideoNormalizedRect, prcDest: ?*const RECT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetVideoPosition(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pnrcSource, prcDest);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetVideoPosition(self: *const T, pnrcSource: ?*MFVideoNormalizedRect, prcDest: ?*RECT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetVideoPosition(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pnrcSource, prcDest);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetAspectRatioMode(self: *const T, dwAspectRatioMode: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetAspectRatioMode(@as(*const IMFVideoDisplayControl, @ptrCast(self)), dwAspectRatioMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetAspectRatioMode(self: *const T, pdwAspectRatioMode: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetAspectRatioMode(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pdwAspectRatioMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetVideoWindow(self: *const T, hwndVideo: ?HWND) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetVideoWindow(@as(*const IMFVideoDisplayControl, @ptrCast(self)), hwndVideo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetVideoWindow(self: *const T, phwndVideo: ?*?HWND) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetVideoWindow(@as(*const IMFVideoDisplayControl, @ptrCast(self)), phwndVideo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_RepaintVideo(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).RepaintVideo(@as(*const IMFVideoDisplayControl, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetCurrentImage(self: *const T, pBih: ?*BITMAPINFOHEADER, pDib: [*]?*u8, pcbDib: ?*u32, pTimeStamp: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetCurrentImage(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pBih, pDib, pcbDib, pTimeStamp);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetBorderColor(self: *const T, Clr: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetBorderColor(@as(*const IMFVideoDisplayControl, @ptrCast(self)), Clr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetBorderColor(self: *const T, pClr: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetBorderColor(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pClr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetRenderingPrefs(self: *const T, dwRenderFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetRenderingPrefs(@as(*const IMFVideoDisplayControl, @ptrCast(self)), dwRenderFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetRenderingPrefs(self: *const T, pdwRenderFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetRenderingPrefs(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pdwRenderFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_SetFullscreen(self: *const T, fFullscreen: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).SetFullscreen(@as(*const IMFVideoDisplayControl, @ptrCast(self)), fFullscreen);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoDisplayControl_GetFullscreen(self: *const T, pfFullscreen: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoDisplayControl.VTable, @ptrCast(self.vtable)).GetFullscreen(@as(*const IMFVideoDisplayControl, @ptrCast(self)), pfFullscreen);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVP_MESSAGE_TYPE = enum(i32) {
|
|
FLUSH = 0,
|
|
INVALIDATEMEDIATYPE = 1,
|
|
PROCESSINPUTNOTIFY = 2,
|
|
BEGINSTREAMING = 3,
|
|
ENDSTREAMING = 4,
|
|
ENDOFSTREAM = 5,
|
|
STEP = 6,
|
|
CANCELSTEP = 7,
|
|
};
|
|
pub const MFVP_MESSAGE_FLUSH = MFVP_MESSAGE_TYPE.FLUSH;
|
|
pub const MFVP_MESSAGE_INVALIDATEMEDIATYPE = MFVP_MESSAGE_TYPE.INVALIDATEMEDIATYPE;
|
|
pub const MFVP_MESSAGE_PROCESSINPUTNOTIFY = MFVP_MESSAGE_TYPE.PROCESSINPUTNOTIFY;
|
|
pub const MFVP_MESSAGE_BEGINSTREAMING = MFVP_MESSAGE_TYPE.BEGINSTREAMING;
|
|
pub const MFVP_MESSAGE_ENDSTREAMING = MFVP_MESSAGE_TYPE.ENDSTREAMING;
|
|
pub const MFVP_MESSAGE_ENDOFSTREAM = MFVP_MESSAGE_TYPE.ENDOFSTREAM;
|
|
pub const MFVP_MESSAGE_STEP = MFVP_MESSAGE_TYPE.STEP;
|
|
pub const MFVP_MESSAGE_CANCELSTEP = MFVP_MESSAGE_TYPE.CANCELSTEP;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoPresenter_Value = Guid.initString("29aff080-182a-4a5d-af3b-448f3a6346cb");
|
|
pub const IID_IMFVideoPresenter = &IID_IMFVideoPresenter_Value;
|
|
pub const IMFVideoPresenter = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFClockStateSink.VTable,
|
|
ProcessMessage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoPresenter,
|
|
eMessage: MFVP_MESSAGE_TYPE,
|
|
ulParam: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoPresenter,
|
|
eMessage: MFVP_MESSAGE_TYPE,
|
|
ulParam: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCurrentMediaType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoPresenter,
|
|
ppMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoPresenter,
|
|
ppMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFClockStateSink.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoPresenter_ProcessMessage(self: *const T, eMessage: MFVP_MESSAGE_TYPE, ulParam: usize) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoPresenter.VTable, @ptrCast(self.vtable)).ProcessMessage(@as(*const IMFVideoPresenter, @ptrCast(self)), eMessage, ulParam);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoPresenter_GetCurrentMediaType(self: *const T, ppMediaType: ?*?*IMFVideoMediaType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoPresenter.VTable, @ptrCast(self.vtable)).GetCurrentMediaType(@as(*const IMFVideoPresenter, @ptrCast(self)), ppMediaType);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFDesiredSample_Value = Guid.initString("56c294d0-753e-4260-8d61-a3d8820b1d54");
|
|
pub const IID_IMFDesiredSample = &IID_IMFDesiredSample_Value;
|
|
pub const IMFDesiredSample = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDesiredSampleTimeAndDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDesiredSample,
|
|
phnsSampleTime: ?*i64,
|
|
phnsSampleDuration: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFDesiredSample,
|
|
phnsSampleTime: ?*i64,
|
|
phnsSampleDuration: ?*i64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetDesiredSampleTimeAndDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDesiredSample,
|
|
hnsSampleTime: i64,
|
|
hnsSampleDuration: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFDesiredSample,
|
|
hnsSampleTime: i64,
|
|
hnsSampleDuration: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
Clear: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFDesiredSample,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFDesiredSample,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDesiredSample_GetDesiredSampleTimeAndDuration(self: *const T, phnsSampleTime: ?*i64, phnsSampleDuration: ?*i64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFDesiredSample.VTable, @ptrCast(self.vtable)).GetDesiredSampleTimeAndDuration(@as(*const IMFDesiredSample, @ptrCast(self)), phnsSampleTime, phnsSampleDuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDesiredSample_SetDesiredSampleTimeAndDuration(self: *const T, hnsSampleTime: i64, hnsSampleDuration: i64) callconv(.Inline) void {
|
|
return @as(*const IMFDesiredSample.VTable, @ptrCast(self.vtable)).SetDesiredSampleTimeAndDuration(@as(*const IMFDesiredSample, @ptrCast(self)), hnsSampleTime, hnsSampleDuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFDesiredSample_Clear(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFDesiredSample.VTable, @ptrCast(self.vtable)).Clear(@as(*const IMFDesiredSample, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoMixerControl_Value = Guid.initString("a5c6c53f-c202-4aa5-9695-175ba8c508a5");
|
|
pub const IID_IMFVideoMixerControl = &IID_IMFVideoMixerControl_Value;
|
|
pub const IMFVideoMixerControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetStreamZOrder: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
dwZ: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
dwZ: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamZOrder: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pdwZ: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pdwZ: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamOutputRect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pnrcOutput: ?*const MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pnrcOutput: ?*const MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamOutputRect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pnrcOutput: ?*MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl,
|
|
dwStreamID: u32,
|
|
pnrcOutput: ?*MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl_SetStreamZOrder(self: *const T, dwStreamID: u32, dwZ: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl.VTable, @ptrCast(self.vtable)).SetStreamZOrder(@as(*const IMFVideoMixerControl, @ptrCast(self)), dwStreamID, dwZ);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl_GetStreamZOrder(self: *const T, dwStreamID: u32, pdwZ: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl.VTable, @ptrCast(self.vtable)).GetStreamZOrder(@as(*const IMFVideoMixerControl, @ptrCast(self)), dwStreamID, pdwZ);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl_SetStreamOutputRect(self: *const T, dwStreamID: u32, pnrcOutput: ?*const MFVideoNormalizedRect) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl.VTable, @ptrCast(self.vtable)).SetStreamOutputRect(@as(*const IMFVideoMixerControl, @ptrCast(self)), dwStreamID, pnrcOutput);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl_GetStreamOutputRect(self: *const T, dwStreamID: u32, pnrcOutput: ?*MFVideoNormalizedRect) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl.VTable, @ptrCast(self.vtable)).GetStreamOutputRect(@as(*const IMFVideoMixerControl, @ptrCast(self)), dwStreamID, pnrcOutput);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVideoMixPrefs = enum(i32) {
|
|
ForceHalfInterlace = 1,
|
|
AllowDropToHalfInterlace = 2,
|
|
AllowDropToBob = 4,
|
|
ForceBob = 8,
|
|
EnableRotation = 16,
|
|
Mask = 31,
|
|
};
|
|
pub const MFVideoMixPrefs_ForceHalfInterlace = MFVideoMixPrefs.ForceHalfInterlace;
|
|
pub const MFVideoMixPrefs_AllowDropToHalfInterlace = MFVideoMixPrefs.AllowDropToHalfInterlace;
|
|
pub const MFVideoMixPrefs_AllowDropToBob = MFVideoMixPrefs.AllowDropToBob;
|
|
pub const MFVideoMixPrefs_ForceBob = MFVideoMixPrefs.ForceBob;
|
|
pub const MFVideoMixPrefs_EnableRotation = MFVideoMixPrefs.EnableRotation;
|
|
pub const MFVideoMixPrefs_Mask = MFVideoMixPrefs.Mask;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFVideoMixerControl2_Value = Guid.initString("8459616d-966e-4930-b658-54fa7e5a16d3");
|
|
pub const IID_IMFVideoMixerControl2 = &IID_IMFVideoMixerControl2_Value;
|
|
pub const IMFVideoMixerControl2 = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFVideoMixerControl.VTable,
|
|
SetMixingPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl2,
|
|
dwMixFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl2,
|
|
dwMixFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMixingPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerControl2,
|
|
pdwMixFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerControl2,
|
|
pdwMixFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFVideoMixerControl.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl2_SetMixingPrefs(self: *const T, dwMixFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl2.VTable, @ptrCast(self.vtable)).SetMixingPrefs(@as(*const IMFVideoMixerControl2, @ptrCast(self)), dwMixFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerControl2_GetMixingPrefs(self: *const T, pdwMixFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerControl2.VTable, @ptrCast(self.vtable)).GetMixingPrefs(@as(*const IMFVideoMixerControl2, @ptrCast(self)), pdwMixFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoRenderer_Value = Guid.initString("dfdfd197-a9ca-43d8-b341-6af3503792cd");
|
|
pub const IID_IMFVideoRenderer = &IID_IMFVideoRenderer_Value;
|
|
pub const IMFVideoRenderer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
InitializeRenderer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoRenderer,
|
|
pVideoMixer: ?*IMFTransform,
|
|
pVideoPresenter: ?*IMFVideoPresenter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoRenderer,
|
|
pVideoMixer: ?*IMFTransform,
|
|
pVideoPresenter: ?*IMFVideoPresenter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoRenderer_InitializeRenderer(self: *const T, pVideoMixer: ?*IMFTransform, pVideoPresenter: ?*IMFVideoPresenter) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoRenderer.VTable, @ptrCast(self.vtable)).InitializeRenderer(@as(*const IMFVideoRenderer, @ptrCast(self)), pVideoMixer, pVideoPresenter);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IEVRFilterConfig_Value = Guid.initString("83e91e85-82c1-4ea7-801d-85dc50b75086");
|
|
pub const IID_IEVRFilterConfig = &IID_IEVRFilterConfig_Value;
|
|
pub const IEVRFilterConfig = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetNumberOfStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRFilterConfig,
|
|
dwMaxStreams: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRFilterConfig,
|
|
dwMaxStreams: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNumberOfStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRFilterConfig,
|
|
pdwMaxStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRFilterConfig,
|
|
pdwMaxStreams: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRFilterConfig_SetNumberOfStreams(self: *const T, dwMaxStreams: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRFilterConfig.VTable, @ptrCast(self.vtable)).SetNumberOfStreams(@as(*const IEVRFilterConfig, @ptrCast(self)), dwMaxStreams);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRFilterConfig_GetNumberOfStreams(self: *const T, pdwMaxStreams: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRFilterConfig.VTable, @ptrCast(self.vtable)).GetNumberOfStreams(@as(*const IEVRFilterConfig, @ptrCast(self)), pdwMaxStreams);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const EVRFilterConfigPrefs = enum(i32) {
|
|
EnableQoS = 1,
|
|
// Mask = 1, this enum value conflicts with EnableQoS
|
|
};
|
|
pub const EVRFilterConfigPrefs_EnableQoS = EVRFilterConfigPrefs.EnableQoS;
|
|
pub const EVRFilterConfigPrefs_Mask = EVRFilterConfigPrefs.EnableQoS;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IEVRFilterConfigEx_Value = Guid.initString("aea36028-796d-454f-beee-b48071e24304");
|
|
pub const IID_IEVRFilterConfigEx = &IID_IEVRFilterConfigEx_Value;
|
|
pub const IEVRFilterConfigEx = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IEVRFilterConfig.VTable,
|
|
SetConfigPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRFilterConfigEx,
|
|
dwConfigFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRFilterConfigEx,
|
|
dwConfigFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetConfigPrefs: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRFilterConfigEx,
|
|
pdwConfigFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRFilterConfigEx,
|
|
pdwConfigFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IEVRFilterConfig.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRFilterConfigEx_SetConfigPrefs(self: *const T, dwConfigFlags: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRFilterConfigEx.VTable, @ptrCast(self.vtable)).SetConfigPrefs(@as(*const IEVRFilterConfigEx, @ptrCast(self)), dwConfigFlags);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRFilterConfigEx_GetConfigPrefs(self: *const T, pdwConfigFlags: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRFilterConfigEx.VTable, @ptrCast(self.vtable)).GetConfigPrefs(@as(*const IEVRFilterConfigEx, @ptrCast(self)), pdwConfigFlags);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MF_SERVICE_LOOKUP_TYPE = enum(i32) {
|
|
UPSTREAM = 0,
|
|
UPSTREAM_DIRECT = 1,
|
|
DOWNSTREAM = 2,
|
|
DOWNSTREAM_DIRECT = 3,
|
|
ALL = 4,
|
|
GLOBAL = 5,
|
|
};
|
|
pub const MF_SERVICE_LOOKUP_UPSTREAM = MF_SERVICE_LOOKUP_TYPE.UPSTREAM;
|
|
pub const MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = MF_SERVICE_LOOKUP_TYPE.UPSTREAM_DIRECT;
|
|
pub const MF_SERVICE_LOOKUP_DOWNSTREAM = MF_SERVICE_LOOKUP_TYPE.DOWNSTREAM;
|
|
pub const MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = MF_SERVICE_LOOKUP_TYPE.DOWNSTREAM_DIRECT;
|
|
pub const MF_SERVICE_LOOKUP_ALL = MF_SERVICE_LOOKUP_TYPE.ALL;
|
|
pub const MF_SERVICE_LOOKUP_GLOBAL = MF_SERVICE_LOOKUP_TYPE.GLOBAL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopologyServiceLookup_Value = Guid.initString("fa993889-4383-415a-a930-dd472a8cf6f7");
|
|
pub const IID_IMFTopologyServiceLookup = &IID_IMFTopologyServiceLookup_Value;
|
|
pub const IMFTopologyServiceLookup = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
LookupService: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyServiceLookup,
|
|
Type: MF_SERVICE_LOOKUP_TYPE,
|
|
dwIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObjects: [*]?*anyopaque,
|
|
pnObjects: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyServiceLookup,
|
|
Type: MF_SERVICE_LOOKUP_TYPE,
|
|
dwIndex: u32,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObjects: [*]?*anyopaque,
|
|
pnObjects: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyServiceLookup_LookupService(self: *const T, Type: MF_SERVICE_LOOKUP_TYPE, dwIndex: u32, guidService: ?*const Guid, riid: ?*const Guid, ppvObjects: [*]?*anyopaque, pnObjects: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyServiceLookup.VTable, @ptrCast(self.vtable)).LookupService(@as(*const IMFTopologyServiceLookup, @ptrCast(self)), Type, dwIndex, guidService, riid, ppvObjects, pnObjects);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFTopologyServiceLookupClient_Value = Guid.initString("fa99388a-4383-415a-a930-dd472a8cf6f7");
|
|
pub const IID_IMFTopologyServiceLookupClient = &IID_IMFTopologyServiceLookupClient_Value;
|
|
pub const IMFTopologyServiceLookupClient = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
InitServicePointers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyServiceLookupClient,
|
|
pLookup: ?*IMFTopologyServiceLookup,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyServiceLookupClient,
|
|
pLookup: ?*IMFTopologyServiceLookup,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ReleaseServicePointers: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFTopologyServiceLookupClient,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFTopologyServiceLookupClient,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyServiceLookupClient_InitServicePointers(self: *const T, pLookup: ?*IMFTopologyServiceLookup) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyServiceLookupClient.VTable, @ptrCast(self.vtable)).InitServicePointers(@as(*const IMFTopologyServiceLookupClient, @ptrCast(self)), pLookup);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFTopologyServiceLookupClient_ReleaseServicePointers(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFTopologyServiceLookupClient.VTable, @ptrCast(self.vtable)).ReleaseServicePointers(@as(*const IMFTopologyServiceLookupClient, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IEVRTrustedVideoPlugin_Value = Guid.initString("83a4ce40-7710-494b-a893-a472049af630");
|
|
pub const IID_IEVRTrustedVideoPlugin = &IID_IEVRTrustedVideoPlugin_Value;
|
|
pub const IEVRTrustedVideoPlugin = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsInTrustedVideoMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
pYes: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
pYes: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CanConstrict: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
pYes: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
pYes: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetConstriction: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
dwKPix: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
dwKPix: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
DisableImageExport: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
bDisable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRTrustedVideoPlugin,
|
|
bDisable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRTrustedVideoPlugin_IsInTrustedVideoMode(self: *const T, pYes: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRTrustedVideoPlugin.VTable, @ptrCast(self.vtable)).IsInTrustedVideoMode(@as(*const IEVRTrustedVideoPlugin, @ptrCast(self)), pYes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRTrustedVideoPlugin_CanConstrict(self: *const T, pYes: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRTrustedVideoPlugin.VTable, @ptrCast(self.vtable)).CanConstrict(@as(*const IEVRTrustedVideoPlugin, @ptrCast(self)), pYes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRTrustedVideoPlugin_SetConstriction(self: *const T, dwKPix: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRTrustedVideoPlugin.VTable, @ptrCast(self.vtable)).SetConstriction(@as(*const IEVRTrustedVideoPlugin, @ptrCast(self)), dwKPix);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRTrustedVideoPlugin_DisableImageExport(self: *const T, bDisable: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRTrustedVideoPlugin.VTable, @ptrCast(self.vtable)).DisableImageExport(@as(*const IEVRTrustedVideoPlugin, @ptrCast(self)), bDisable);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFP_CREATION_OPTIONS = enum(i32) {
|
|
NONE = 0,
|
|
FREE_THREADED_CALLBACK = 1,
|
|
NO_MMCSS = 2,
|
|
NO_REMOTE_DESKTOP_OPTIMIZATION = 4,
|
|
};
|
|
pub const MFP_OPTION_NONE = MFP_CREATION_OPTIONS.NONE;
|
|
pub const MFP_OPTION_FREE_THREADED_CALLBACK = MFP_CREATION_OPTIONS.FREE_THREADED_CALLBACK;
|
|
pub const MFP_OPTION_NO_MMCSS = MFP_CREATION_OPTIONS.NO_MMCSS;
|
|
pub const MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION = MFP_CREATION_OPTIONS.NO_REMOTE_DESKTOP_OPTIMIZATION;
|
|
|
|
pub const MFP_MEDIAPLAYER_STATE = enum(i32) {
|
|
EMPTY = 0,
|
|
STOPPED = 1,
|
|
PLAYING = 2,
|
|
PAUSED = 3,
|
|
SHUTDOWN = 4,
|
|
};
|
|
pub const MFP_MEDIAPLAYER_STATE_EMPTY = MFP_MEDIAPLAYER_STATE.EMPTY;
|
|
pub const MFP_MEDIAPLAYER_STATE_STOPPED = MFP_MEDIAPLAYER_STATE.STOPPED;
|
|
pub const MFP_MEDIAPLAYER_STATE_PLAYING = MFP_MEDIAPLAYER_STATE.PLAYING;
|
|
pub const MFP_MEDIAPLAYER_STATE_PAUSED = MFP_MEDIAPLAYER_STATE.PAUSED;
|
|
pub const MFP_MEDIAPLAYER_STATE_SHUTDOWN = MFP_MEDIAPLAYER_STATE.SHUTDOWN;
|
|
|
|
pub const _MFP_MEDIAITEM_CHARACTERISTICS = enum(i32) {
|
|
IS_LIVE = 1,
|
|
CAN_SEEK = 2,
|
|
CAN_PAUSE = 4,
|
|
HAS_SLOW_SEEK = 8,
|
|
};
|
|
pub const MFP_MEDIAITEM_IS_LIVE = _MFP_MEDIAITEM_CHARACTERISTICS.IS_LIVE;
|
|
pub const MFP_MEDIAITEM_CAN_SEEK = _MFP_MEDIAITEM_CHARACTERISTICS.CAN_SEEK;
|
|
pub const MFP_MEDIAITEM_CAN_PAUSE = _MFP_MEDIAITEM_CHARACTERISTICS.CAN_PAUSE;
|
|
pub const MFP_MEDIAITEM_HAS_SLOW_SEEK = _MFP_MEDIAITEM_CHARACTERISTICS.HAS_SLOW_SEEK;
|
|
|
|
pub const _MFP_CREDENTIAL_FLAGS = enum(i32) {
|
|
PROMPT = 1,
|
|
SAVE = 2,
|
|
DO_NOT_CACHE = 4,
|
|
CLEAR_TEXT = 8,
|
|
PROXY = 16,
|
|
LOGGED_ON_USER = 32,
|
|
};
|
|
pub const MFP_CREDENTIAL_PROMPT = _MFP_CREDENTIAL_FLAGS.PROMPT;
|
|
pub const MFP_CREDENTIAL_SAVE = _MFP_CREDENTIAL_FLAGS.SAVE;
|
|
pub const MFP_CREDENTIAL_DO_NOT_CACHE = _MFP_CREDENTIAL_FLAGS.DO_NOT_CACHE;
|
|
pub const MFP_CREDENTIAL_CLEAR_TEXT = _MFP_CREDENTIAL_FLAGS.CLEAR_TEXT;
|
|
pub const MFP_CREDENTIAL_PROXY = _MFP_CREDENTIAL_FLAGS.PROXY;
|
|
pub const MFP_CREDENTIAL_LOGGED_ON_USER = _MFP_CREDENTIAL_FLAGS.LOGGED_ON_USER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFPMediaPlayer_Value = Guid.initString("a714590a-58af-430a-85bf-44f5ec838d85");
|
|
pub const IID_IMFPMediaPlayer = &IID_IMFPMediaPlayer_Value;
|
|
pub const IMFPMediaPlayer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Play: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Pause: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
FrameStep: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvPositionValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvPositionValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvPositionValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvPositionValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvDurationValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
guidPositionType: ?*const Guid,
|
|
pvDurationValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flRate: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetRate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSupportedRates: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
fForwardDirection: BOOL,
|
|
pflSlowestRate: ?*f32,
|
|
pflFastestRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
fForwardDirection: BOOL,
|
|
pflSlowestRate: ?*f32,
|
|
pflFastestRate: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
peState: ?*MFP_MEDIAPLAYER_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
peState: ?*MFP_MEDIAPLAYER_STATE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateMediaItemFromURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pwszURL: ?[*:0]const u16,
|
|
fSync: BOOL,
|
|
dwUserData: usize,
|
|
ppMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pwszURL: ?[*:0]const u16,
|
|
fSync: BOOL,
|
|
dwUserData: usize,
|
|
ppMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateMediaItemFromObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pIUnknownObj: ?*IUnknown,
|
|
fSync: BOOL,
|
|
dwUserData: usize,
|
|
ppMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pIUnknownObj: ?*IUnknown,
|
|
fSync: BOOL,
|
|
dwUserData: usize,
|
|
ppMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMediaItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pIMFPMediaItem: ?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pIMFPMediaItem: ?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearMediaItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaItem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
ppIMFPMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
ppIMFPMediaItem: ?*?*IMFPMediaItem,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflVolume: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflVolume: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVolume: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flVolume: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flVolume: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBalance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflBalance: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pflBalance: ?*f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBalance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flBalance: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
flBalance: f32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pfMute: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pfMute: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetMute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
fMute: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
fMute: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNativeVideoSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pszVideo: ?*SIZE,
|
|
pszARVideo: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pszVideo: ?*SIZE,
|
|
pszARVideo: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetIdealVideoSize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pszMin: ?*SIZE,
|
|
pszMax: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pszMin: ?*SIZE,
|
|
pszMax: ?*SIZE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoSourceRect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pnrcSource: ?*const MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pnrcSource: ?*const MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoSourceRect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pnrcSource: ?*MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pnrcSource: ?*MFVideoNormalizedRect,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetAspectRatioMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
dwAspectRatioMode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
dwAspectRatioMode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAspectRatioMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pdwAspectRatioMode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pdwAspectRatioMode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoWindow: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
phwndVideo: ?*?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
phwndVideo: ?*?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateVideo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBorderColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
Clr: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
Clr: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBorderColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pClr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pClr: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
InsertEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pEffect: ?*IUnknown,
|
|
fOptional: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveEffect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pEffect: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
pEffect: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
RemoveAllEffects: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_Play(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).Play(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_Pause(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_FrameStep(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).FrameStep(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetPosition(self: *const T, guidPositionType: ?*const Guid, pvPositionValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetPosition(@as(*const IMFPMediaPlayer, @ptrCast(self)), guidPositionType, pvPositionValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetPosition(self: *const T, guidPositionType: ?*const Guid, pvPositionValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetPosition(@as(*const IMFPMediaPlayer, @ptrCast(self)), guidPositionType, pvPositionValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetDuration(self: *const T, guidPositionType: ?*const Guid, pvDurationValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetDuration(@as(*const IMFPMediaPlayer, @ptrCast(self)), guidPositionType, pvDurationValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetRate(self: *const T, flRate: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetRate(@as(*const IMFPMediaPlayer, @ptrCast(self)), flRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetRate(self: *const T, pflRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetRate(@as(*const IMFPMediaPlayer, @ptrCast(self)), pflRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetSupportedRates(self: *const T, fForwardDirection: BOOL, pflSlowestRate: ?*f32, pflFastestRate: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetSupportedRates(@as(*const IMFPMediaPlayer, @ptrCast(self)), fForwardDirection, pflSlowestRate, pflFastestRate);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetState(self: *const T, peState: ?*MFP_MEDIAPLAYER_STATE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetState(@as(*const IMFPMediaPlayer, @ptrCast(self)), peState);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_CreateMediaItemFromURL(self: *const T, pwszURL: ?[*:0]const u16, fSync: BOOL, dwUserData: usize, ppMediaItem: ?*?*IMFPMediaItem) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).CreateMediaItemFromURL(@as(*const IMFPMediaPlayer, @ptrCast(self)), pwszURL, fSync, dwUserData, ppMediaItem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_CreateMediaItemFromObject(self: *const T, pIUnknownObj: ?*IUnknown, fSync: BOOL, dwUserData: usize, ppMediaItem: ?*?*IMFPMediaItem) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).CreateMediaItemFromObject(@as(*const IMFPMediaPlayer, @ptrCast(self)), pIUnknownObj, fSync, dwUserData, ppMediaItem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetMediaItem(self: *const T, pIMFPMediaItem: ?*IMFPMediaItem) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetMediaItem(@as(*const IMFPMediaPlayer, @ptrCast(self)), pIMFPMediaItem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_ClearMediaItem(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).ClearMediaItem(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetMediaItem(self: *const T, ppIMFPMediaItem: ?*?*IMFPMediaItem) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetMediaItem(@as(*const IMFPMediaPlayer, @ptrCast(self)), ppIMFPMediaItem);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetVolume(self: *const T, pflVolume: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetVolume(@as(*const IMFPMediaPlayer, @ptrCast(self)), pflVolume);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetVolume(self: *const T, flVolume: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetVolume(@as(*const IMFPMediaPlayer, @ptrCast(self)), flVolume);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetBalance(self: *const T, pflBalance: ?*f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetBalance(@as(*const IMFPMediaPlayer, @ptrCast(self)), pflBalance);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetBalance(self: *const T, flBalance: f32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetBalance(@as(*const IMFPMediaPlayer, @ptrCast(self)), flBalance);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetMute(self: *const T, pfMute: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetMute(@as(*const IMFPMediaPlayer, @ptrCast(self)), pfMute);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetMute(self: *const T, fMute: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetMute(@as(*const IMFPMediaPlayer, @ptrCast(self)), fMute);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetNativeVideoSize(self: *const T, pszVideo: ?*SIZE, pszARVideo: ?*SIZE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetNativeVideoSize(@as(*const IMFPMediaPlayer, @ptrCast(self)), pszVideo, pszARVideo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetIdealVideoSize(self: *const T, pszMin: ?*SIZE, pszMax: ?*SIZE) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetIdealVideoSize(@as(*const IMFPMediaPlayer, @ptrCast(self)), pszMin, pszMax);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetVideoSourceRect(self: *const T, pnrcSource: ?*const MFVideoNormalizedRect) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetVideoSourceRect(@as(*const IMFPMediaPlayer, @ptrCast(self)), pnrcSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetVideoSourceRect(self: *const T, pnrcSource: ?*MFVideoNormalizedRect) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetVideoSourceRect(@as(*const IMFPMediaPlayer, @ptrCast(self)), pnrcSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetAspectRatioMode(self: *const T, dwAspectRatioMode: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetAspectRatioMode(@as(*const IMFPMediaPlayer, @ptrCast(self)), dwAspectRatioMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetAspectRatioMode(self: *const T, pdwAspectRatioMode: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetAspectRatioMode(@as(*const IMFPMediaPlayer, @ptrCast(self)), pdwAspectRatioMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetVideoWindow(self: *const T, phwndVideo: ?*?HWND) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetVideoWindow(@as(*const IMFPMediaPlayer, @ptrCast(self)), phwndVideo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_UpdateVideo(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).UpdateVideo(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_SetBorderColor(self: *const T, Clr: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).SetBorderColor(@as(*const IMFPMediaPlayer, @ptrCast(self)), Clr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_GetBorderColor(self: *const T, pClr: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).GetBorderColor(@as(*const IMFPMediaPlayer, @ptrCast(self)), pClr);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_InsertEffect(self: *const T, pEffect: ?*IUnknown, fOptional: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).InsertEffect(@as(*const IMFPMediaPlayer, @ptrCast(self)), pEffect, fOptional);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_RemoveEffect(self: *const T, pEffect: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).RemoveEffect(@as(*const IMFPMediaPlayer, @ptrCast(self)), pEffect);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_RemoveAllEffects(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).RemoveAllEffects(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayer_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaPlayer.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFPMediaPlayer, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFPMediaItem_Value = Guid.initString("90eb3e6b-ecbf-45cc-b1da-c6fe3ea70d57");
|
|
pub const IID_IMFPMediaItem = &IID_IMFPMediaItem_Value;
|
|
pub const IMFPMediaItem = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetMediaPlayer: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
ppMediaPlayer: ?*?*IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
ppMediaPlayer: ?*?*IMFPMediaPlayer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetURL: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
ppwszURL: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
ppwszURL: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
ppIUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
ppIUnknown: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetUserData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pdwUserData: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pdwUserData: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetUserData: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
dwUserData: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
dwUserData: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStartStopPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pguidStartPositionType: ?*Guid,
|
|
pvStartValue: ?*PROPVARIANT,
|
|
pguidStopPositionType: ?*Guid,
|
|
pvStopValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pguidStartPositionType: ?*Guid,
|
|
pvStartValue: ?*PROPVARIANT,
|
|
pguidStopPositionType: ?*Guid,
|
|
pvStopValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStartStopPosition: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pguidStartPositionType: ?*const Guid,
|
|
pvStartValue: ?*const PROPVARIANT,
|
|
pguidStopPositionType: ?*const Guid,
|
|
pvStopValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pguidStartPositionType: ?*const Guid,
|
|
pvStartValue: ?*const PROPVARIANT,
|
|
pguidStopPositionType: ?*const Guid,
|
|
pvStopValue: ?*const PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
HasVideo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pfHasVideo: ?*BOOL,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pfHasVideo: ?*BOOL,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
HasAudio: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pfHasAudio: ?*BOOL,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pfHasAudio: ?*BOOL,
|
|
pfSelected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsProtected: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pfProtected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pfProtected: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDuration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
guidPositionType: ?*const Guid,
|
|
pvDurationValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
guidPositionType: ?*const Guid,
|
|
pvDurationValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetNumberOfStreams: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pdwStreamCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
pfEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
pfEnabled: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamSelection: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
fEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
fEnabled: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamAttribute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPresentationAttribute: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
guidMFAttribute: ?*const Guid,
|
|
pvValue: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetCharacteristics: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
pCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
pCharacteristics: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetStreamSink: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
pMediaSink: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
dwStreamIndex: u32,
|
|
pMediaSink: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMetadata: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaItem,
|
|
ppMetadataStore: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFPMediaItem,
|
|
ppMetadataStore: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetMediaPlayer(self: *const T, ppMediaPlayer: ?*?*IMFPMediaPlayer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetMediaPlayer(@as(*const IMFPMediaItem, @ptrCast(self)), ppMediaPlayer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetURL(self: *const T, ppwszURL: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetURL(@as(*const IMFPMediaItem, @ptrCast(self)), ppwszURL);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetObject(self: *const T, ppIUnknown: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetObject(@as(*const IMFPMediaItem, @ptrCast(self)), ppIUnknown);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetUserData(self: *const T, pdwUserData: ?*usize) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetUserData(@as(*const IMFPMediaItem, @ptrCast(self)), pdwUserData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_SetUserData(self: *const T, dwUserData: usize) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).SetUserData(@as(*const IMFPMediaItem, @ptrCast(self)), dwUserData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetStartStopPosition(self: *const T, pguidStartPositionType: ?*Guid, pvStartValue: ?*PROPVARIANT, pguidStopPositionType: ?*Guid, pvStopValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetStartStopPosition(@as(*const IMFPMediaItem, @ptrCast(self)), pguidStartPositionType, pvStartValue, pguidStopPositionType, pvStopValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_SetStartStopPosition(self: *const T, pguidStartPositionType: ?*const Guid, pvStartValue: ?*const PROPVARIANT, pguidStopPositionType: ?*const Guid, pvStopValue: ?*const PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).SetStartStopPosition(@as(*const IMFPMediaItem, @ptrCast(self)), pguidStartPositionType, pvStartValue, pguidStopPositionType, pvStopValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_HasVideo(self: *const T, pfHasVideo: ?*BOOL, pfSelected: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).HasVideo(@as(*const IMFPMediaItem, @ptrCast(self)), pfHasVideo, pfSelected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_HasAudio(self: *const T, pfHasAudio: ?*BOOL, pfSelected: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).HasAudio(@as(*const IMFPMediaItem, @ptrCast(self)), pfHasAudio, pfSelected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_IsProtected(self: *const T, pfProtected: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).IsProtected(@as(*const IMFPMediaItem, @ptrCast(self)), pfProtected);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetDuration(self: *const T, guidPositionType: ?*const Guid, pvDurationValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetDuration(@as(*const IMFPMediaItem, @ptrCast(self)), guidPositionType, pvDurationValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetNumberOfStreams(self: *const T, pdwStreamCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetNumberOfStreams(@as(*const IMFPMediaItem, @ptrCast(self)), pdwStreamCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetStreamSelection(self: *const T, dwStreamIndex: u32, pfEnabled: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetStreamSelection(@as(*const IMFPMediaItem, @ptrCast(self)), dwStreamIndex, pfEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_SetStreamSelection(self: *const T, dwStreamIndex: u32, fEnabled: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).SetStreamSelection(@as(*const IMFPMediaItem, @ptrCast(self)), dwStreamIndex, fEnabled);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetStreamAttribute(self: *const T, dwStreamIndex: u32, guidMFAttribute: ?*const Guid, pvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetStreamAttribute(@as(*const IMFPMediaItem, @ptrCast(self)), dwStreamIndex, guidMFAttribute, pvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetPresentationAttribute(self: *const T, guidMFAttribute: ?*const Guid, pvValue: ?*PROPVARIANT) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetPresentationAttribute(@as(*const IMFPMediaItem, @ptrCast(self)), guidMFAttribute, pvValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetCharacteristics(self: *const T, pCharacteristics: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetCharacteristics(@as(*const IMFPMediaItem, @ptrCast(self)), pCharacteristics);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_SetStreamSink(self: *const T, dwStreamIndex: u32, pMediaSink: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).SetStreamSink(@as(*const IMFPMediaItem, @ptrCast(self)), dwStreamIndex, pMediaSink);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaItem_GetMetadata(self: *const T, ppMetadataStore: ?*?*IPropertyStore) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFPMediaItem.VTable, @ptrCast(self.vtable)).GetMetadata(@as(*const IMFPMediaItem, @ptrCast(self)), ppMetadataStore);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFP_EVENT_TYPE = enum(i32) {
|
|
PLAY = 0,
|
|
PAUSE = 1,
|
|
STOP = 2,
|
|
POSITION_SET = 3,
|
|
RATE_SET = 4,
|
|
MEDIAITEM_CREATED = 5,
|
|
MEDIAITEM_SET = 6,
|
|
FRAME_STEP = 7,
|
|
MEDIAITEM_CLEARED = 8,
|
|
MF = 9,
|
|
ERROR = 10,
|
|
PLAYBACK_ENDED = 11,
|
|
ACQUIRE_USER_CREDENTIAL = 12,
|
|
};
|
|
pub const MFP_EVENT_TYPE_PLAY = MFP_EVENT_TYPE.PLAY;
|
|
pub const MFP_EVENT_TYPE_PAUSE = MFP_EVENT_TYPE.PAUSE;
|
|
pub const MFP_EVENT_TYPE_STOP = MFP_EVENT_TYPE.STOP;
|
|
pub const MFP_EVENT_TYPE_POSITION_SET = MFP_EVENT_TYPE.POSITION_SET;
|
|
pub const MFP_EVENT_TYPE_RATE_SET = MFP_EVENT_TYPE.RATE_SET;
|
|
pub const MFP_EVENT_TYPE_MEDIAITEM_CREATED = MFP_EVENT_TYPE.MEDIAITEM_CREATED;
|
|
pub const MFP_EVENT_TYPE_MEDIAITEM_SET = MFP_EVENT_TYPE.MEDIAITEM_SET;
|
|
pub const MFP_EVENT_TYPE_FRAME_STEP = MFP_EVENT_TYPE.FRAME_STEP;
|
|
pub const MFP_EVENT_TYPE_MEDIAITEM_CLEARED = MFP_EVENT_TYPE.MEDIAITEM_CLEARED;
|
|
pub const MFP_EVENT_TYPE_MF = MFP_EVENT_TYPE.MF;
|
|
pub const MFP_EVENT_TYPE_ERROR = MFP_EVENT_TYPE.ERROR;
|
|
pub const MFP_EVENT_TYPE_PLAYBACK_ENDED = MFP_EVENT_TYPE.PLAYBACK_ENDED;
|
|
pub const MFP_EVENT_TYPE_ACQUIRE_USER_CREDENTIAL = MFP_EVENT_TYPE.ACQUIRE_USER_CREDENTIAL;
|
|
|
|
pub const MFP_EVENT_HEADER = extern struct {
|
|
eEventType: MFP_EVENT_TYPE,
|
|
hrEvent: HRESULT,
|
|
pMediaPlayer: ?*IMFPMediaPlayer,
|
|
eState: MFP_MEDIAPLAYER_STATE,
|
|
pPropertyStore: ?*IPropertyStore,
|
|
};
|
|
|
|
pub const MFP_PLAY_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_PAUSE_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_STOP_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_POSITION_SET_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_RATE_SET_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
flRate: f32,
|
|
};
|
|
|
|
pub const MFP_MEDIAITEM_CREATED_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
dwUserData: usize,
|
|
};
|
|
|
|
pub const MFP_MEDIAITEM_SET_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_FRAME_STEP_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_MEDIAITEM_CLEARED_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_MF_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
MFEventType: u32,
|
|
pMFMediaEvent: ?*IMFMediaEvent,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_ERROR_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
};
|
|
|
|
pub const MFP_PLAYBACK_ENDED_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
pMediaItem: ?*IMFPMediaItem,
|
|
};
|
|
|
|
pub const MFP_ACQUIRE_USER_CREDENTIAL_EVENT = extern struct {
|
|
header: MFP_EVENT_HEADER,
|
|
dwUserData: usize,
|
|
fProceedWithAuthentication: BOOL,
|
|
hrAuthenticationStatus: HRESULT,
|
|
pwszURL: ?[*:0]const u16,
|
|
pwszSite: ?[*:0]const u16,
|
|
pwszRealm: ?[*:0]const u16,
|
|
pwszPackage: ?[*:0]const u16,
|
|
nRetries: i32,
|
|
flags: u32,
|
|
pCredential: ?*IMFNetCredential,
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
const IID_IMFPMediaPlayerCallback_Value = Guid.initString("766c8ffb-5fdb-4fea-a28d-b912996f51bd");
|
|
pub const IID_IMFPMediaPlayerCallback = &IID_IMFPMediaPlayerCallback_Value;
|
|
pub const IMFPMediaPlayerCallback = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
OnMediaPlayerEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFPMediaPlayerCallback,
|
|
pEventHeader: ?*MFP_EVENT_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFPMediaPlayerCallback,
|
|
pEventHeader: ?*MFP_EVENT_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFPMediaPlayerCallback_OnMediaPlayerEvent(self: *const T, pEventHeader: ?*MFP_EVENT_HEADER) callconv(.Inline) void {
|
|
return @as(*const IMFPMediaPlayerCallback.VTable, @ptrCast(self.vtable)).OnMediaPlayerEvent(@as(*const IMFPMediaPlayerCallback, @ptrCast(self)), pEventHeader);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const DEVICE_INFO = extern struct {
|
|
pFriendlyDeviceName: ?BSTR,
|
|
pUniqueDeviceName: ?BSTR,
|
|
pManufacturerName: ?BSTR,
|
|
pModelName: ?BSTR,
|
|
pIconURL: ?BSTR,
|
|
};
|
|
|
|
pub const MF_SHARING_ENGINE_EVENT = enum(i32) {
|
|
DISCONNECT = 2000,
|
|
LOCALRENDERINGSTARTED = 2001,
|
|
LOCALRENDERINGENDED = 2002,
|
|
STOPPED = 2003,
|
|
ERROR = 2501,
|
|
};
|
|
pub const MF_SHARING_ENGINE_EVENT_DISCONNECT = MF_SHARING_ENGINE_EVENT.DISCONNECT;
|
|
pub const MF_SHARING_ENGINE_EVENT_LOCALRENDERINGSTARTED = MF_SHARING_ENGINE_EVENT.LOCALRENDERINGSTARTED;
|
|
pub const MF_SHARING_ENGINE_EVENT_LOCALRENDERINGENDED = MF_SHARING_ENGINE_EVENT.LOCALRENDERINGENDED;
|
|
pub const MF_SHARING_ENGINE_EVENT_STOPPED = MF_SHARING_ENGINE_EVENT.STOPPED;
|
|
pub const MF_SHARING_ENGINE_EVENT_ERROR = MF_SHARING_ENGINE_EVENT.ERROR;
|
|
|
|
pub const MF_MEDIA_SHARING_ENGINE_EVENT = enum(i32) {
|
|
T = 2000,
|
|
};
|
|
pub const MF_MEDIA_SHARING_ENGINE_EVENT_DISCONNECT = MF_MEDIA_SHARING_ENGINE_EVENT.T;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFSharingEngineClassFactory_Value = Guid.initString("2ba61f92-8305-413b-9733-faf15f259384");
|
|
pub const IID_IMFSharingEngineClassFactory = &IID_IMFSharingEngineClassFactory_Value;
|
|
pub const IMFSharingEngineClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSharingEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppEngine: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSharingEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppEngine: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSharingEngineClassFactory_CreateInstance(self: *const T, dwFlags: u32, pAttr: ?*IMFAttributes, ppEngine: ?*?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSharingEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IMFSharingEngineClassFactory, @ptrCast(self)), dwFlags, pAttr, ppEngine);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaSharingEngine_Value = Guid.initString("8d3ce1bf-2367-40e0-9eee-40d377cc1b46");
|
|
pub const IID_IMFMediaSharingEngine = &IID_IMFMediaSharingEngine_Value;
|
|
pub const IMFMediaSharingEngine = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaEngine.VTable,
|
|
GetDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSharingEngine,
|
|
pDevice: ?*DEVICE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSharingEngine,
|
|
pDevice: ?*DEVICE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaEngine.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSharingEngine_GetDevice(self: *const T, pDevice: ?*DEVICE_INFO) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSharingEngine.VTable, @ptrCast(self.vtable)).GetDevice(@as(*const IMFMediaSharingEngine, @ptrCast(self)), pDevice);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFMediaSharingEngineClassFactory_Value = Guid.initString("524d2bc4-b2b1-4fe5-8fac-fa4e4512b4e0");
|
|
pub const IID_IMFMediaSharingEngineClassFactory = &IID_IMFMediaSharingEngineClassFactory_Value;
|
|
pub const IMFMediaSharingEngineClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFMediaSharingEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppEngine: ?*?*IMFMediaSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFMediaSharingEngineClassFactory,
|
|
dwFlags: u32,
|
|
pAttr: ?*IMFAttributes,
|
|
ppEngine: ?*?*IMFMediaSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFMediaSharingEngineClassFactory_CreateInstance(self: *const T, dwFlags: u32, pAttr: ?*IMFAttributes, ppEngine: ?*?*IMFMediaSharingEngine) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFMediaSharingEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IMFMediaSharingEngineClassFactory, @ptrCast(self)), dwFlags, pAttr, ppEngine);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFImageSharingEngine_Value = Guid.initString("cfa0ae8e-7e1c-44d2-ae68-fc4c148a6354");
|
|
pub const IID_IMFImageSharingEngine = &IID_IMFImageSharingEngine_Value;
|
|
pub const IMFImageSharingEngine = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFImageSharingEngine,
|
|
pStream: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFImageSharingEngine,
|
|
pStream: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetDevice: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFImageSharingEngine,
|
|
pDevice: ?*DEVICE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFImageSharingEngine,
|
|
pDevice: ?*DEVICE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFImageSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFImageSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFImageSharingEngine_SetSource(self: *const T, pStream: ?*IUnknown) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFImageSharingEngine.VTable, @ptrCast(self.vtable)).SetSource(@as(*const IMFImageSharingEngine, @ptrCast(self)), pStream);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFImageSharingEngine_GetDevice(self: *const T, pDevice: ?*DEVICE_INFO) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFImageSharingEngine.VTable, @ptrCast(self.vtable)).GetDevice(@as(*const IMFImageSharingEngine, @ptrCast(self)), pDevice);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFImageSharingEngine_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFImageSharingEngine.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFImageSharingEngine, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IMFImageSharingEngineClassFactory_Value = Guid.initString("1fc55727-a7fb-4fc8-83ae-8af024990af1");
|
|
pub const IID_IMFImageSharingEngineClassFactory = &IID_IMFImageSharingEngineClassFactory_Value;
|
|
pub const IMFImageSharingEngineClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstanceFromUDN: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFImageSharingEngineClassFactory,
|
|
pUniqueDeviceName: ?BSTR,
|
|
ppEngine: ?*?*IMFImageSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFImageSharingEngineClassFactory,
|
|
pUniqueDeviceName: ?BSTR,
|
|
ppEngine: ?*?*IMFImageSharingEngine,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFImageSharingEngineClassFactory_CreateInstanceFromUDN(self: *const T, pUniqueDeviceName: ?BSTR, ppEngine: ?*?*IMFImageSharingEngine) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFImageSharingEngineClassFactory.VTable, @ptrCast(self.vtable)).CreateInstanceFromUDN(@as(*const IMFImageSharingEngineClassFactory, @ptrCast(self)), pUniqueDeviceName, ppEngine);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const PLAYTO_SOURCE_CREATEFLAGS = enum(i32) {
|
|
NONE = 0,
|
|
IMAGE = 1,
|
|
AUDIO = 2,
|
|
VIDEO = 4,
|
|
PROTECTED = 8,
|
|
};
|
|
pub const PLAYTO_SOURCE_NONE = PLAYTO_SOURCE_CREATEFLAGS.NONE;
|
|
pub const PLAYTO_SOURCE_IMAGE = PLAYTO_SOURCE_CREATEFLAGS.IMAGE;
|
|
pub const PLAYTO_SOURCE_AUDIO = PLAYTO_SOURCE_CREATEFLAGS.AUDIO;
|
|
pub const PLAYTO_SOURCE_VIDEO = PLAYTO_SOURCE_CREATEFLAGS.VIDEO;
|
|
pub const PLAYTO_SOURCE_PROTECTED = PLAYTO_SOURCE_CREATEFLAGS.PROTECTED;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IPlayToControl_Value = Guid.initString("607574eb-f4b6-45c1-b08c-cb715122901d");
|
|
pub const IID_IPlayToControl = &IID_IPlayToControl_Value;
|
|
pub const IPlayToControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
Connect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IPlayToControl,
|
|
pFactory: ?*IMFSharingEngineClassFactory,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IPlayToControl,
|
|
pFactory: ?*IMFSharingEngineClassFactory,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Disconnect: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IPlayToControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IPlayToControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IPlayToControl_Connect(self: *const T, pFactory: ?*IMFSharingEngineClassFactory) callconv(.Inline) HRESULT {
|
|
return @as(*const IPlayToControl.VTable, @ptrCast(self.vtable)).Connect(@as(*const IPlayToControl, @ptrCast(self)), pFactory);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IPlayToControl_Disconnect(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IPlayToControl.VTable, @ptrCast(self.vtable)).Disconnect(@as(*const IPlayToControl, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
const IID_IPlayToControlWithCapabilities_Value = Guid.initString("aa9dd80f-c50a-4220-91c1-332287f82a34");
|
|
pub const IID_IPlayToControlWithCapabilities = &IID_IPlayToControlWithCapabilities_Value;
|
|
pub const IPlayToControlWithCapabilities = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IPlayToControl.VTable,
|
|
GetCapabilities: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IPlayToControlWithCapabilities,
|
|
pCapabilities: ?*PLAYTO_SOURCE_CREATEFLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IPlayToControlWithCapabilities,
|
|
pCapabilities: ?*PLAYTO_SOURCE_CREATEFLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IPlayToControl.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IPlayToControlWithCapabilities_GetCapabilities(self: *const T, pCapabilities: ?*PLAYTO_SOURCE_CREATEFLAGS) callconv(.Inline) HRESULT {
|
|
return @as(*const IPlayToControlWithCapabilities.VTable, @ptrCast(self.vtable)).GetCapabilities(@as(*const IPlayToControlWithCapabilities, @ptrCast(self)), pCapabilities);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IPlayToSourceClassFactory_Value = Guid.initString("842b32a3-9b9b-4d1c-b3f3-49193248a554");
|
|
pub const IID_IPlayToSourceClassFactory = &IID_IPlayToSourceClassFactory_Value;
|
|
pub const IPlayToSourceClassFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateInstance: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IPlayToSourceClassFactory,
|
|
dwFlags: u32,
|
|
pControl: ?*IPlayToControl,
|
|
ppSource: ?*?*IInspectable,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IPlayToSourceClassFactory,
|
|
dwFlags: u32,
|
|
pControl: ?*IPlayToControl,
|
|
ppSource: ?*?*IInspectable,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IPlayToSourceClassFactory_CreateInstance(self: *const T, dwFlags: u32, pControl: ?*IPlayToControl, ppSource: ?*?*IInspectable) callconv(.Inline) HRESULT {
|
|
return @as(*const IPlayToSourceClassFactory.VTable, @ptrCast(self.vtable)).CreateInstance(@as(*const IPlayToSourceClassFactory, @ptrCast(self)), dwFlags, pControl, ppSource);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IEVRVideoStreamControl_Value = Guid.initString("d0cfe38b-93e7-4772-8957-0400c49a4485");
|
|
pub const IID_IEVRVideoStreamControl = &IID_IEVRVideoStreamControl_Value;
|
|
pub const IEVRVideoStreamControl = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetStreamActiveState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRVideoStreamControl,
|
|
fActive: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRVideoStreamControl,
|
|
fActive: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetStreamActiveState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IEVRVideoStreamControl,
|
|
lpfActive: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IEVRVideoStreamControl,
|
|
lpfActive: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRVideoStreamControl_SetStreamActiveState(self: *const T, fActive: BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRVideoStreamControl.VTable, @ptrCast(self.vtable)).SetStreamActiveState(@as(*const IEVRVideoStreamControl, @ptrCast(self)), fActive);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IEVRVideoStreamControl_GetStreamActiveState(self: *const T, lpfActive: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IEVRVideoStreamControl.VTable, @ptrCast(self.vtable)).GetStreamActiveState(@as(*const IEVRVideoStreamControl, @ptrCast(self)), lpfActive);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoProcessor_Value = Guid.initString("6ab0000c-fece-4d1f-a2ac-a9573530656e");
|
|
pub const IID_IMFVideoProcessor = &IID_IMFVideoProcessor_Value;
|
|
pub const IMFVideoProcessor = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAvailableVideoProcessorModes: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpdwNumProcessingModes: ?*u32,
|
|
ppVideoProcessingModes: [*]?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpdwNumProcessingModes: ?*u32,
|
|
ppVideoProcessingModes: [*]?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorCaps: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpVideoProcessorMode: ?*Guid,
|
|
lpVideoProcessorCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpVideoProcessorMode: ?*Guid,
|
|
lpVideoProcessorCaps: ?*DXVA2_VideoProcessorCaps,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetVideoProcessorMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpMode: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpMode: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetVideoProcessorMode: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpMode: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpMode: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcAmpRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pPropRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pPropRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProcAmpValues: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwFlags: u32,
|
|
Values: ?*DXVA2_ProcAmpValues,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwFlags: u32,
|
|
Values: ?*DXVA2_ProcAmpValues,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetProcAmpValues: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwFlags: u32,
|
|
pValues: ?*DXVA2_ProcAmpValues,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwFlags: u32,
|
|
pValues: ?*DXVA2_ProcAmpValues,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFilteringRange: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pPropRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pPropRange: ?*DXVA2_ValueRange,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFilteringValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pValue: ?*DXVA2_Fixed32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pValue: ?*DXVA2_Fixed32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetFilteringValue: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pValue: ?*DXVA2_Fixed32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
dwProperty: u32,
|
|
pValue: ?*DXVA2_Fixed32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetBackgroundColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpClrBkg: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
lpClrBkg: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetBackgroundColor: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoProcessor,
|
|
ClrBkg: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoProcessor,
|
|
ClrBkg: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetAvailableVideoProcessorModes(self: *const T, lpdwNumProcessingModes: ?*u32, ppVideoProcessingModes: [*]?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetAvailableVideoProcessorModes(@as(*const IMFVideoProcessor, @ptrCast(self)), lpdwNumProcessingModes, ppVideoProcessingModes);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetVideoProcessorCaps(self: *const T, lpVideoProcessorMode: ?*Guid, lpVideoProcessorCaps: ?*DXVA2_VideoProcessorCaps) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessorCaps(@as(*const IMFVideoProcessor, @ptrCast(self)), lpVideoProcessorMode, lpVideoProcessorCaps);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetVideoProcessorMode(self: *const T, lpMode: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetVideoProcessorMode(@as(*const IMFVideoProcessor, @ptrCast(self)), lpMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_SetVideoProcessorMode(self: *const T, lpMode: ?*Guid) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).SetVideoProcessorMode(@as(*const IMFVideoProcessor, @ptrCast(self)), lpMode);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetProcAmpRange(self: *const T, dwProperty: u32, pPropRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetProcAmpRange(@as(*const IMFVideoProcessor, @ptrCast(self)), dwProperty, pPropRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetProcAmpValues(self: *const T, dwFlags: u32, Values: ?*DXVA2_ProcAmpValues) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetProcAmpValues(@as(*const IMFVideoProcessor, @ptrCast(self)), dwFlags, Values);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_SetProcAmpValues(self: *const T, dwFlags: u32, pValues: ?*DXVA2_ProcAmpValues) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).SetProcAmpValues(@as(*const IMFVideoProcessor, @ptrCast(self)), dwFlags, pValues);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetFilteringRange(self: *const T, dwProperty: u32, pPropRange: ?*DXVA2_ValueRange) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetFilteringRange(@as(*const IMFVideoProcessor, @ptrCast(self)), dwProperty, pPropRange);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetFilteringValue(self: *const T, dwProperty: u32, pValue: ?*DXVA2_Fixed32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetFilteringValue(@as(*const IMFVideoProcessor, @ptrCast(self)), dwProperty, pValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_SetFilteringValue(self: *const T, dwProperty: u32, pValue: ?*DXVA2_Fixed32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).SetFilteringValue(@as(*const IMFVideoProcessor, @ptrCast(self)), dwProperty, pValue);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_GetBackgroundColor(self: *const T, lpClrBkg: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).GetBackgroundColor(@as(*const IMFVideoProcessor, @ptrCast(self)), lpClrBkg);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoProcessor_SetBackgroundColor(self: *const T, ClrBkg: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoProcessor.VTable, @ptrCast(self.vtable)).SetBackgroundColor(@as(*const IMFVideoProcessor, @ptrCast(self)), ClrBkg);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const MFVideoAlphaBitmapParams = extern struct {
|
|
dwFlags: u32,
|
|
clrSrcKey: u32,
|
|
rcSrc: RECT,
|
|
nrcDest: MFVideoNormalizedRect,
|
|
fAlpha: f32,
|
|
dwFilterMode: u32,
|
|
};
|
|
|
|
pub const MFVideoAlphaBitmap = extern struct {
|
|
GetBitmapFromDC: BOOL,
|
|
bitmap: extern union {
|
|
hdc: ?HDC,
|
|
pDDS: ?*IDirect3DSurface9,
|
|
},
|
|
params: MFVideoAlphaBitmapParams,
|
|
};
|
|
|
|
pub const MFVideoAlphaBitmapFlags = enum(i32) {
|
|
EntireDDS = 1,
|
|
SrcColorKey = 2,
|
|
SrcRect = 4,
|
|
DestRect = 8,
|
|
FilterMode = 16,
|
|
Alpha = 32,
|
|
BitMask = 63,
|
|
};
|
|
pub const MFVideoAlphaBitmap_EntireDDS = MFVideoAlphaBitmapFlags.EntireDDS;
|
|
pub const MFVideoAlphaBitmap_SrcColorKey = MFVideoAlphaBitmapFlags.SrcColorKey;
|
|
pub const MFVideoAlphaBitmap_SrcRect = MFVideoAlphaBitmapFlags.SrcRect;
|
|
pub const MFVideoAlphaBitmap_DestRect = MFVideoAlphaBitmapFlags.DestRect;
|
|
pub const MFVideoAlphaBitmap_FilterMode = MFVideoAlphaBitmapFlags.FilterMode;
|
|
pub const MFVideoAlphaBitmap_Alpha = MFVideoAlphaBitmapFlags.Alpha;
|
|
pub const MFVideoAlphaBitmap_BitMask = MFVideoAlphaBitmapFlags.BitMask;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
const IID_IMFVideoMixerBitmap_Value = Guid.initString("814c7b20-0fdb-4eec-af8f-f957c8f69edc");
|
|
pub const IID_IMFVideoMixerBitmap = &IID_IMFVideoMixerBitmap_Value;
|
|
pub const IMFVideoMixerBitmap = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetAlphaBitmap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*const MFVideoAlphaBitmap,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*const MFVideoAlphaBitmap,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
ClearAlphaBitmap: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UpdateAlphaBitmapParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*const MFVideoAlphaBitmapParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*const MFVideoAlphaBitmapParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAlphaBitmapParameters: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*MFVideoAlphaBitmapParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVideoMixerBitmap,
|
|
pBmpParms: ?*MFVideoAlphaBitmapParams,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerBitmap_SetAlphaBitmap(self: *const T, pBmpParms: ?*const MFVideoAlphaBitmap) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerBitmap.VTable, @ptrCast(self.vtable)).SetAlphaBitmap(@as(*const IMFVideoMixerBitmap, @ptrCast(self)), pBmpParms);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerBitmap_ClearAlphaBitmap(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerBitmap.VTable, @ptrCast(self.vtable)).ClearAlphaBitmap(@as(*const IMFVideoMixerBitmap, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerBitmap_UpdateAlphaBitmapParameters(self: *const T, pBmpParms: ?*const MFVideoAlphaBitmapParams) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerBitmap.VTable, @ptrCast(self.vtable)).UpdateAlphaBitmapParameters(@as(*const IMFVideoMixerBitmap, @ptrCast(self)), pBmpParms);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVideoMixerBitmap_GetAlphaBitmapParameters(self: *const T, pBmpParms: ?*MFVideoAlphaBitmapParams) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVideoMixerBitmap.VTable, @ptrCast(self.vtable)).GetAlphaBitmapParameters(@as(*const IMFVideoMixerBitmap, @ptrCast(self)), pBmpParms);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IAdvancedMediaCaptureInitializationSettings_Value = Guid.initString("3de21209-8ba6-4f2a-a577-2819b56ff14d");
|
|
pub const IID_IAdvancedMediaCaptureInitializationSettings = &IID_IAdvancedMediaCaptureInitializationSettings_Value;
|
|
pub const IAdvancedMediaCaptureInitializationSettings = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetDirectxDeviceManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IAdvancedMediaCaptureInitializationSettings,
|
|
value: ?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IAdvancedMediaCaptureInitializationSettings,
|
|
value: ?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IAdvancedMediaCaptureInitializationSettings_SetDirectxDeviceManager(self: *const T, value: ?*IMFDXGIDeviceManager) callconv(.Inline) HRESULT {
|
|
return @as(*const IAdvancedMediaCaptureInitializationSettings.VTable, @ptrCast(self.vtable)).SetDirectxDeviceManager(@as(*const IAdvancedMediaCaptureInitializationSettings, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IAdvancedMediaCaptureSettings_Value = Guid.initString("24e0485f-a33e-4aa1-b564-6019b1d14f65");
|
|
pub const IID_IAdvancedMediaCaptureSettings = &IID_IAdvancedMediaCaptureSettings_Value;
|
|
pub const IAdvancedMediaCaptureSettings = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetDirectxDeviceManager: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IAdvancedMediaCaptureSettings,
|
|
value: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IAdvancedMediaCaptureSettings,
|
|
value: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IAdvancedMediaCaptureSettings_GetDirectxDeviceManager(self: *const T, value: ?*?*IMFDXGIDeviceManager) callconv(.Inline) HRESULT {
|
|
return @as(*const IAdvancedMediaCaptureSettings.VTable, @ptrCast(self.vtable)).GetDirectxDeviceManager(@as(*const IAdvancedMediaCaptureSettings, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
const IID_IAdvancedMediaCapture_Value = Guid.initString("d0751585-d216-4344-b5bf-463b68f977bb");
|
|
pub const IID_IAdvancedMediaCapture = &IID_IAdvancedMediaCapture_Value;
|
|
pub const IAdvancedMediaCapture = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAdvancedMediaCaptureSettings: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IAdvancedMediaCapture,
|
|
value: ?*?*IAdvancedMediaCaptureSettings,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IAdvancedMediaCapture,
|
|
value: ?*?*IAdvancedMediaCaptureSettings,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IAdvancedMediaCapture_GetAdvancedMediaCaptureSettings(self: *const T, value: ?*?*IAdvancedMediaCaptureSettings) callconv(.Inline) HRESULT {
|
|
return @as(*const IAdvancedMediaCapture.VTable, @ptrCast(self.vtable)).GetAdvancedMediaCaptureSettings(@as(*const IAdvancedMediaCapture, @ptrCast(self)), value);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSpatialAudioObjectBuffer_Value = Guid.initString("d396ec8c-605e-4249-978d-72ad1c312872");
|
|
pub const IID_IMFSpatialAudioObjectBuffer = &IID_IMFSpatialAudioObjectBuffer_Value;
|
|
pub const IMFSpatialAudioObjectBuffer = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFMediaBuffer.VTable,
|
|
SetID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
u32ID: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
u32ID: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetID: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
pu32ID: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
pu32ID: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
type: AudioObjectType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
type: AudioObjectType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetType: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
pType: ?*AudioObjectType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
pType: ?*AudioObjectType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMetadataItems: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
ppMetadataItems: ?*?*ISpatialAudioMetadataItems,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioObjectBuffer,
|
|
ppMetadataItems: ?*?*ISpatialAudioMetadataItems,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFMediaBuffer.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioObjectBuffer_SetID(self: *const T, u32ID: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioObjectBuffer.VTable, @ptrCast(self.vtable)).SetID(@as(*const IMFSpatialAudioObjectBuffer, @ptrCast(self)), u32ID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioObjectBuffer_GetID(self: *const T, pu32ID: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioObjectBuffer.VTable, @ptrCast(self.vtable)).GetID(@as(*const IMFSpatialAudioObjectBuffer, @ptrCast(self)), pu32ID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioObjectBuffer_SetType(self: *const T, type_: AudioObjectType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioObjectBuffer.VTable, @ptrCast(self.vtable)).SetType(@as(*const IMFSpatialAudioObjectBuffer, @ptrCast(self)), type_);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioObjectBuffer_GetType(self: *const T, pType: ?*AudioObjectType) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioObjectBuffer.VTable, @ptrCast(self.vtable)).GetType(@as(*const IMFSpatialAudioObjectBuffer, @ptrCast(self)), pType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioObjectBuffer_GetMetadataItems(self: *const T, ppMetadataItems: ?*?*ISpatialAudioMetadataItems) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioObjectBuffer.VTable, @ptrCast(self.vtable)).GetMetadataItems(@as(*const IMFSpatialAudioObjectBuffer, @ptrCast(self)), ppMetadataItems);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
const IID_IMFSpatialAudioSample_Value = Guid.initString("abf28a9b-3393-4290-ba79-5ffc46d986b2");
|
|
pub const IID_IMFSpatialAudioSample = &IID_IMFSpatialAudioSample_Value;
|
|
pub const IMFSpatialAudioSample = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFSample.VTable,
|
|
GetObjectCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
pdwObjectCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
pdwObjectCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddSpatialAudioObject: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
pAudioObjBuffer: ?*IMFSpatialAudioObjectBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
pAudioObjBuffer: ?*IMFSpatialAudioObjectBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSpatialAudioObjectByIndex: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
dwIndex: u32,
|
|
ppAudioObjBuffer: ?*?*IMFSpatialAudioObjectBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFSpatialAudioSample,
|
|
dwIndex: u32,
|
|
ppAudioObjBuffer: ?*?*IMFSpatialAudioObjectBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFSample.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioSample_GetObjectCount(self: *const T, pdwObjectCount: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioSample.VTable, @ptrCast(self.vtable)).GetObjectCount(@as(*const IMFSpatialAudioSample, @ptrCast(self)), pdwObjectCount);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioSample_AddSpatialAudioObject(self: *const T, pAudioObjBuffer: ?*IMFSpatialAudioObjectBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioSample.VTable, @ptrCast(self.vtable)).AddSpatialAudioObject(@as(*const IMFSpatialAudioSample, @ptrCast(self)), pAudioObjBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFSpatialAudioSample_GetSpatialAudioObjectByIndex(self: *const T, dwIndex: u32, ppAudioObjBuffer: ?*?*IMFSpatialAudioObjectBuffer) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFSpatialAudioSample.VTable, @ptrCast(self.vtable)).GetSpatialAudioObjectByIndex(@as(*const IMFSpatialAudioSample, @ptrCast(self)), dwIndex, ppAudioObjBuffer);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFContentDecryptionModuleSession_Value = Guid.initString("4e233efd-1dd2-49e8-b577-d63eee4c0d33");
|
|
pub const IID_IMFContentDecryptionModuleSession = &IID_IMFContentDecryptionModuleSession_Value;
|
|
pub const IMFContentDecryptionModuleSession = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetSessionId: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
sessionId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
sessionId: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetExpiration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
expiration: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
expiration: ?*f64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetKeyStatuses: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
keyStatuses: [*]?*MFMediaKeyStatus,
|
|
numKeyStatuses: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
keyStatuses: [*]?*MFMediaKeyStatus,
|
|
numKeyStatuses: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Load: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
sessionId: ?[*:0]const u16,
|
|
loaded: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
sessionId: ?[*:0]const u16,
|
|
loaded: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GenerateRequest: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
initDataType: ?[*:0]const u16,
|
|
initData: [*:0]const u8,
|
|
initDataSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
initDataType: ?[*:0]const u16,
|
|
initData: [*:0]const u8,
|
|
initDataSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Update: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
response: [*:0]const u8,
|
|
responseSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
response: [*:0]const u8,
|
|
responseSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Close: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Remove: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_GetSessionId(self: *const T, sessionId: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).GetSessionId(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), sessionId);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_GetExpiration(self: *const T, expiration: ?*f64) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).GetExpiration(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), expiration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_GetKeyStatuses(self: *const T, keyStatuses: [*]?*MFMediaKeyStatus, numKeyStatuses: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).GetKeyStatuses(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), keyStatuses, numKeyStatuses);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_Load(self: *const T, sessionId: ?[*:0]const u16, loaded: ?*BOOL) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).Load(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), sessionId, loaded);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_GenerateRequest(self: *const T, initDataType: ?[*:0]const u16, initData: [*:0]const u8, initDataSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).GenerateRequest(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), initDataType, initData, initDataSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_Update(self: *const T, response: [*:0]const u8, responseSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).Update(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)), response, responseSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_Close(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).Close(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSession_Remove(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSession.VTable, @ptrCast(self.vtable)).Remove(@as(*const IMFContentDecryptionModuleSession, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFContentDecryptionModuleSessionCallbacks_Value = Guid.initString("3f96ee40-ad81-4096-8470-59a4b770f89a");
|
|
pub const IID_IMFContentDecryptionModuleSessionCallbacks = &IID_IMFContentDecryptionModuleSessionCallbacks_Value;
|
|
pub const IMFContentDecryptionModuleSessionCallbacks = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
KeyMessage: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSessionCallbacks,
|
|
messageType: MF_MEDIAKEYSESSION_MESSAGETYPE,
|
|
message: [*:0]const u8,
|
|
messageSize: u32,
|
|
destinationURL: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSessionCallbacks,
|
|
messageType: MF_MEDIAKEYSESSION_MESSAGETYPE,
|
|
message: [*:0]const u8,
|
|
messageSize: u32,
|
|
destinationURL: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
KeyStatusChanged: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleSessionCallbacks,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleSessionCallbacks,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSessionCallbacks_KeyMessage(self: *const T, messageType: MF_MEDIAKEYSESSION_MESSAGETYPE, message: [*:0]const u8, messageSize: u32, destinationURL: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSessionCallbacks.VTable, @ptrCast(self.vtable)).KeyMessage(@as(*const IMFContentDecryptionModuleSessionCallbacks, @ptrCast(self)), messageType, message, messageSize, destinationURL);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleSessionCallbacks_KeyStatusChanged(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleSessionCallbacks.VTable, @ptrCast(self.vtable)).KeyStatusChanged(@as(*const IMFContentDecryptionModuleSessionCallbacks, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFContentDecryptionModule_Value = Guid.initString("87be986c-10be-4943-bf48-4b54ce1983a2");
|
|
pub const IID_IMFContentDecryptionModule = &IID_IMFContentDecryptionModule_Value;
|
|
pub const IMFContentDecryptionModule = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
SetContentEnabler: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
contentEnabler: ?*IMFContentEnabler,
|
|
result: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
contentEnabler: ?*IMFContentEnabler,
|
|
result: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetSuspendNotify: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
notify: ?*?*IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
notify: ?*?*IMFCdmSuspendNotify,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetPMPHostApp: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
pmpHostApp: ?*IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
pmpHostApp: ?*IMFPMPHostApp,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateSession: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
sessionType: MF_MEDIAKEYSESSION_TYPE,
|
|
callbacks: ?*IMFContentDecryptionModuleSessionCallbacks,
|
|
session: ?*?*IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
sessionType: MF_MEDIAKEYSESSION_TYPE,
|
|
callbacks: ?*IMFContentDecryptionModuleSessionCallbacks,
|
|
session: ?*?*IMFContentDecryptionModuleSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SetServerCertificate: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
certificate: [*:0]const u8,
|
|
certificateSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
certificate: [*:0]const u8,
|
|
certificateSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateTrustedInput: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
contentInitData: [*:0]const u8,
|
|
contentInitDataSize: u32,
|
|
trustedInput: ?*?*IMFTrustedInput,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
contentInitData: [*:0]const u8,
|
|
contentInitDataSize: u32,
|
|
trustedInput: ?*?*IMFTrustedInput,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetProtectionSystemIds: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
systemIds: [*]?*Guid,
|
|
count: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModule,
|
|
systemIds: [*]?*Guid,
|
|
count: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_SetContentEnabler(self: *const T, contentEnabler: ?*IMFContentEnabler, result: ?*IMFAsyncResult) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).SetContentEnabler(@as(*const IMFContentDecryptionModule, @ptrCast(self)), contentEnabler, result);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_GetSuspendNotify(self: *const T, notify: ?*?*IMFCdmSuspendNotify) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).GetSuspendNotify(@as(*const IMFContentDecryptionModule, @ptrCast(self)), notify);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_SetPMPHostApp(self: *const T, pmpHostApp: ?*IMFPMPHostApp) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).SetPMPHostApp(@as(*const IMFContentDecryptionModule, @ptrCast(self)), pmpHostApp);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_CreateSession(self: *const T, sessionType: MF_MEDIAKEYSESSION_TYPE, callbacks: ?*IMFContentDecryptionModuleSessionCallbacks, session: ?*?*IMFContentDecryptionModuleSession) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).CreateSession(@as(*const IMFContentDecryptionModule, @ptrCast(self)), sessionType, callbacks, session);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_SetServerCertificate(self: *const T, certificate: [*:0]const u8, certificateSize: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).SetServerCertificate(@as(*const IMFContentDecryptionModule, @ptrCast(self)), certificate, certificateSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_CreateTrustedInput(self: *const T, contentInitData: [*:0]const u8, contentInitDataSize: u32, trustedInput: ?*?*IMFTrustedInput) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).CreateTrustedInput(@as(*const IMFContentDecryptionModule, @ptrCast(self)), contentInitData, contentInitDataSize, trustedInput);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModule_GetProtectionSystemIds(self: *const T, systemIds: [*]?*Guid, count: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModule.VTable, @ptrCast(self.vtable)).GetProtectionSystemIds(@as(*const IMFContentDecryptionModule, @ptrCast(self)), systemIds, count);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFContentDecryptionModuleAccess_Value = Guid.initString("a853d1f4-e2a0-4303-9edc-f1a68ee43136");
|
|
pub const IID_IMFContentDecryptionModuleAccess = &IID_IMFContentDecryptionModuleAccess_Value;
|
|
pub const IMFContentDecryptionModuleAccess = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateContentDecryptionModule: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
contentDecryptionModuleProperties: ?*IPropertyStore,
|
|
contentDecryptionModule: ?*?*IMFContentDecryptionModule,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
contentDecryptionModuleProperties: ?*IPropertyStore,
|
|
contentDecryptionModule: ?*?*IMFContentDecryptionModule,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetConfiguration: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
configuration: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
configuration: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetKeySystem: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
keySystem: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleAccess,
|
|
keySystem: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleAccess_CreateContentDecryptionModule(self: *const T, contentDecryptionModuleProperties: ?*IPropertyStore, contentDecryptionModule: ?*?*IMFContentDecryptionModule) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleAccess.VTable, @ptrCast(self.vtable)).CreateContentDecryptionModule(@as(*const IMFContentDecryptionModuleAccess, @ptrCast(self)), contentDecryptionModuleProperties, contentDecryptionModule);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleAccess_GetConfiguration(self: *const T, configuration: ?*?*IPropertyStore) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleAccess.VTable, @ptrCast(self.vtable)).GetConfiguration(@as(*const IMFContentDecryptionModuleAccess, @ptrCast(self)), configuration);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleAccess_GetKeySystem(self: *const T, keySystem: ?*?PWSTR) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleAccess.VTable, @ptrCast(self.vtable)).GetKeySystem(@as(*const IMFContentDecryptionModuleAccess, @ptrCast(self)), keySystem);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
const IID_IMFContentDecryptionModuleFactory_Value = Guid.initString("7d5abf16-4cbb-4e08-b977-9ba59049943e");
|
|
pub const IID_IMFContentDecryptionModuleFactory = &IID_IMFContentDecryptionModuleFactory_Value;
|
|
pub const IMFContentDecryptionModuleFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleFactory,
|
|
keySystem: ?[*:0]const u16,
|
|
contentType: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleFactory,
|
|
keySystem: ?[*:0]const u16,
|
|
contentType: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
},
|
|
CreateContentDecryptionModuleAccess: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFContentDecryptionModuleFactory,
|
|
keySystem: ?[*:0]const u16,
|
|
configurations: [*]?*IPropertyStore,
|
|
numConfigurations: u32,
|
|
contentDecryptionModuleAccess: ?*?*IMFContentDecryptionModuleAccess,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFContentDecryptionModuleFactory,
|
|
keySystem: ?[*:0]const u16,
|
|
configurations: [*]?*IPropertyStore,
|
|
numConfigurations: u32,
|
|
contentDecryptionModuleAccess: ?*?*IMFContentDecryptionModuleAccess,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleFactory_IsTypeSupported(self: *const T, keySystem: ?[*:0]const u16, contentType: ?[*:0]const u16) callconv(.Inline) BOOL {
|
|
return @as(*const IMFContentDecryptionModuleFactory.VTable, @ptrCast(self.vtable)).IsTypeSupported(@as(*const IMFContentDecryptionModuleFactory, @ptrCast(self)), keySystem, contentType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFContentDecryptionModuleFactory_CreateContentDecryptionModuleAccess(self: *const T, keySystem: ?[*:0]const u16, configurations: [*]?*IPropertyStore, numConfigurations: u32, contentDecryptionModuleAccess: ?*?*IMFContentDecryptionModuleAccess) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFContentDecryptionModuleFactory.VTable, @ptrCast(self.vtable)).CreateContentDecryptionModuleAccess(@as(*const IMFContentDecryptionModuleFactory, @ptrCast(self)), keySystem, configurations, numConfigurations, contentDecryptionModuleAccess);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0001 = enum(i32) {
|
|
e = 0,
|
|
};
|
|
pub const MFVirtualCameraType_SoftwareCameraSource = __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0001.e;
|
|
|
|
pub const __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0002 = enum(i32) {
|
|
ession = 0,
|
|
ystem = 1,
|
|
};
|
|
pub const MFVirtualCameraLifetime_Session = __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0002.ession;
|
|
pub const MFVirtualCameraLifetime_System = __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0002.ystem;
|
|
|
|
pub const __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0003 = enum(i32) {
|
|
CurrentUser = 0,
|
|
AllUsers = 1,
|
|
};
|
|
pub const MFVirtualCameraAccess_CurrentUser = __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0003.CurrentUser;
|
|
pub const MFVirtualCameraAccess_AllUsers = __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0003.AllUsers;
|
|
|
|
const IID_IMFCameraSyncObject_Value = Guid.initString("6338b23a-3042-49d2-a3ea-ec0fed815407");
|
|
pub const IID_IMFCameraSyncObject = &IID_IMFCameraSyncObject_Value;
|
|
pub const IMFCameraSyncObject = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
WaitOnSignal: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraSyncObject,
|
|
timeOutInMs: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFCameraSyncObject,
|
|
timeOutInMs: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
self: *const IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IUnknown.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraSyncObject_WaitOnSignal(self: *const T, timeOutInMs: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFCameraSyncObject.VTable, @ptrCast(self.vtable)).WaitOnSignal(@as(*const IMFCameraSyncObject, @ptrCast(self)), timeOutInMs);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFCameraSyncObject_Shutdown(self: *const T) callconv(.Inline) void {
|
|
return @as(*const IMFCameraSyncObject.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFCameraSyncObject, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IMFVirtualCamera_Value = Guid.initString("1c08a864-ef6c-4c75-af59-5f2d68da9563");
|
|
pub const IID_IMFVirtualCamera = &IID_IMFVirtualCamera_Value;
|
|
pub const IMFVirtualCamera = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IMFAttributes.VTable,
|
|
AddDeviceSourceInfo: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
DeviceSourceInfo: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
DeviceSourceInfo: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
pKey: ?*const DEVPROPKEY,
|
|
Type: u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pbData: ?*const u8,
|
|
cbData: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
pKey: ?*const DEVPROPKEY,
|
|
Type: u32,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
pbData: ?*const u8,
|
|
cbData: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
AddRegistryEntry: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
EntryName: ?[*:0]const u16,
|
|
SubkeyPath: ?[*:0]const u16,
|
|
dwRegType: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
pbData: ?*const u8,
|
|
cbData: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
EntryName: ?[*:0]const u16,
|
|
SubkeyPath: ?[*:0]const u16,
|
|
dwRegType: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
pbData: ?*const u8,
|
|
cbData: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Start: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Stop: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Remove: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetMediaSource: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
ppMediaSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
SendCameraProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
propertySet: ?*const Guid,
|
|
propertyId: u32,
|
|
propertyFlags: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
propertyPayload: ?*anyopaque,
|
|
propertyPayloadLength: u32,
|
|
// TODO: what to do with BytesParamIndex 6?
|
|
data: ?*anyopaque,
|
|
dataLength: u32,
|
|
dataWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
propertySet: ?*const Guid,
|
|
propertyId: u32,
|
|
propertyFlags: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
propertyPayload: ?*anyopaque,
|
|
propertyPayloadLength: u32,
|
|
// TODO: what to do with BytesParamIndex 6?
|
|
data: ?*anyopaque,
|
|
dataLength: u32,
|
|
dataWritten: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateSyncEvent: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
kseventSet: ?*const Guid,
|
|
kseventId: u32,
|
|
kseventFlags: u32,
|
|
eventHandle: ?HANDLE,
|
|
cameraSyncObject: ?*?*IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
kseventSet: ?*const Guid,
|
|
kseventId: u32,
|
|
kseventFlags: u32,
|
|
eventHandle: ?HANDLE,
|
|
cameraSyncObject: ?*?*IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
CreateSyncSemaphore: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
kseventSet: ?*const Guid,
|
|
kseventId: u32,
|
|
kseventFlags: u32,
|
|
semaphoreHandle: ?HANDLE,
|
|
semaphoreAdjustment: i32,
|
|
cameraSyncObject: ?*?*IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
kseventSet: ?*const Guid,
|
|
kseventId: u32,
|
|
kseventFlags: u32,
|
|
semaphoreHandle: ?HANDLE,
|
|
semaphoreAdjustment: i32,
|
|
cameraSyncObject: ?*?*IMFCameraSyncObject,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Shutdown: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
};
|
|
vtable: *const VTable,
|
|
pub fn MethodMixin(comptime T: type) type { return struct {
|
|
pub usingnamespace IMFAttributes.MethodMixin(T);
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_AddDeviceSourceInfo(self: *const T, DeviceSourceInfo: ?[*:0]const u16) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).AddDeviceSourceInfo(@as(*const IMFVirtualCamera, @ptrCast(self)), DeviceSourceInfo);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_AddProperty(self: *const T, pKey: ?*const DEVPROPKEY, Type: u32, pbData: ?*const u8, cbData: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).AddProperty(@as(*const IMFVirtualCamera, @ptrCast(self)), pKey, Type, pbData, cbData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_AddRegistryEntry(self: *const T, EntryName: ?[*:0]const u16, SubkeyPath: ?[*:0]const u16, dwRegType: u32, pbData: ?*const u8, cbData: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).AddRegistryEntry(@as(*const IMFVirtualCamera, @ptrCast(self)), EntryName, SubkeyPath, dwRegType, pbData, cbData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_Start(self: *const T, pCallback: ?*IMFAsyncCallback) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).Start(@as(*const IMFVirtualCamera, @ptrCast(self)), pCallback);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_Stop(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).Stop(@as(*const IMFVirtualCamera, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_Remove(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).Remove(@as(*const IMFVirtualCamera, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_GetMediaSource(self: *const T, ppMediaSource: ?*?*IMFMediaSource) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).GetMediaSource(@as(*const IMFVirtualCamera, @ptrCast(self)), ppMediaSource);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_SendCameraProperty(self: *const T, propertySet: ?*const Guid, propertyId: u32, propertyFlags: u32, propertyPayload: ?*anyopaque, propertyPayloadLength: u32, data: ?*anyopaque, dataLength: u32, dataWritten: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).SendCameraProperty(@as(*const IMFVirtualCamera, @ptrCast(self)), propertySet, propertyId, propertyFlags, propertyPayload, propertyPayloadLength, data, dataLength, dataWritten);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_CreateSyncEvent(self: *const T, kseventSet: ?*const Guid, kseventId: u32, kseventFlags: u32, eventHandle: ?HANDLE, cameraSyncObject: ?*?*IMFCameraSyncObject) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).CreateSyncEvent(@as(*const IMFVirtualCamera, @ptrCast(self)), kseventSet, kseventId, kseventFlags, eventHandle, cameraSyncObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_CreateSyncSemaphore(self: *const T, kseventSet: ?*const Guid, kseventId: u32, kseventFlags: u32, semaphoreHandle: ?HANDLE, semaphoreAdjustment: i32, cameraSyncObject: ?*?*IMFCameraSyncObject) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).CreateSyncSemaphore(@as(*const IMFVirtualCamera, @ptrCast(self)), kseventSet, kseventId, kseventFlags, semaphoreHandle, semaphoreAdjustment, cameraSyncObject);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IMFVirtualCamera_Shutdown(self: *const T) callconv(.Inline) HRESULT {
|
|
return @as(*const IMFVirtualCamera.VTable, @ptrCast(self.vtable)).Shutdown(@as(*const IMFVirtualCamera, @ptrCast(self)));
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
pub const OPM_HDCP_TYPE = enum(i32) {
|
|
@"0" = 0,
|
|
@"1" = 1,
|
|
};
|
|
pub const OPM_HDCP_TYPE_0 = OPM_HDCP_TYPE.@"0";
|
|
pub const OPM_HDCP_TYPE_1 = OPM_HDCP_TYPE.@"1";
|
|
|
|
pub const OPM_HDCP_STATUS = enum(i32) {
|
|
N = 0,
|
|
FF = 1,
|
|
};
|
|
pub const OPM_HDCP_STATUS_ON = OPM_HDCP_STATUS.N;
|
|
pub const OPM_HDCP_STATUS_OFF = OPM_HDCP_STATUS.FF;
|
|
|
|
|
|
|
|
pub const D3DCONTENTPROTECTIONCAPS = switch(@import("../zig.zig").arch) {
|
|
.X64, .Arm64 => extern struct {
|
|
Caps: u32,
|
|
KeyExchangeType: Guid,
|
|
BufferAlignmentStart: u32,
|
|
BlockAlignmentSize: u32,
|
|
ProtectedMemorySize: u64,
|
|
},
|
|
.X86 => extern struct {
|
|
Caps: u32 align(4),
|
|
KeyExchangeType: Guid align(4),
|
|
BufferAlignmentStart: u32 align(4),
|
|
BlockAlignmentSize: u32 align(4),
|
|
ProtectedMemorySize: u64 align(4),
|
|
},
|
|
};
|
|
pub const DXVA_VideoSample2 = switch(@import("../zig.zig").arch) {
|
|
.X64, .Arm64 => extern struct {
|
|
Size: u32,
|
|
Reserved: u32,
|
|
rtStart: i64,
|
|
rtEnd: i64,
|
|
SampleFormat: u32,
|
|
SampleFlags: u32,
|
|
lpDDSSrcSurface: ?*anyopaque,
|
|
rcSrc: RECT,
|
|
rcDst: RECT,
|
|
Palette: [16]DXVA_AYUVsample2,
|
|
},
|
|
.X86 => extern struct {
|
|
rtStart: i64,
|
|
rtEnd: i64,
|
|
SampleFormat: u32,
|
|
SampleFlags: u32,
|
|
lpDDSSrcSurface: ?*anyopaque,
|
|
rcSrc: RECT,
|
|
rcDst: RECT,
|
|
Palette: [16]DXVA_AYUVsample2,
|
|
},
|
|
};
|
|
pub const DXVA_VideoSample32 = switch(@import("../zig.zig").arch) {
|
|
.X64, .Arm64 => extern struct {
|
|
rtStart: i64,
|
|
rtEnd: i64,
|
|
SampleFormat: u32,
|
|
SampleFlags: u32,
|
|
lpDDSSrcSurface: u32,
|
|
rcSrc: RECT,
|
|
rcDst: RECT,
|
|
Palette: [16]DXVA_AYUVsample2,
|
|
},
|
|
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
|
|
};
|
|
pub const DXVA_DeinterlaceBltEx32 = switch(@import("../zig.zig").arch) {
|
|
.X64, .Arm64 => extern struct {
|
|
Size: u32,
|
|
BackgroundColor: DXVA_AYUVsample2,
|
|
rcTarget: RECT,
|
|
rtTarget: i64,
|
|
NumSourceSurfaces: u32,
|
|
Alpha: f32,
|
|
Source: [32]DXVA_VideoSample32,
|
|
DestinationFormat: u32,
|
|
DestinationFlags: u32,
|
|
},
|
|
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
|
|
};
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (242)
|
|
//--------------------------------------------------------------------------------
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "dxva2" fn DXVAHD_CreateDevice(
|
|
pD3DDevice: ?*IDirect3DDevice9Ex,
|
|
pContentDesc: ?*const DXVAHD_CONTENT_DESC,
|
|
Usage: DXVAHD_DEVICE_USAGE,
|
|
pPlugin: ?PDXVAHDSW_Plugin,
|
|
ppDevice: ?*?*IDXVAHD_Device,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "dxva2" fn DXVA2CreateDirect3DDeviceManager9(
|
|
pResetToken: ?*u32,
|
|
ppDeviceManager: ?*?*IDirect3DDeviceManager9,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "dxva2" fn DXVA2CreateVideoService(
|
|
pDD: ?*IDirect3DDevice9,
|
|
riid: ?*const Guid,
|
|
ppService: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "dxva2" fn OPMGetVideoOutputsFromHMONITOR(
|
|
hMonitor: ?HMONITOR,
|
|
vos: OPM_VIDEO_OUTPUT_SEMANTICS,
|
|
pulNumVideoOutputs: ?*u32,
|
|
pppOPMVideoOutputArray: ?*?*?*IOPMVideoOutput,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "dxva2" fn OPMGetVideoOutputForTarget(
|
|
pAdapterLuid: ?*LUID,
|
|
VidPnTarget: u32,
|
|
vos: OPM_VIDEO_OUTPUT_SEMANTICS,
|
|
ppOPMVideoOutput: ?*?*IOPMVideoOutput,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "dxva2" fn OPMGetVideoOutputsFromIDirect3DDevice9Object(
|
|
pDirect3DDevice9: ?*IDirect3DDevice9,
|
|
vos: OPM_VIDEO_OUTPUT_SEMANTICS,
|
|
pulNumVideoOutputs: ?*u32,
|
|
pppOPMVideoOutputArray: ?*?*?*IOPMVideoOutput,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFSerializeAttributesToStream(
|
|
pAttr: ?*IMFAttributes,
|
|
dwOptions: u32,
|
|
pStm: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFDeserializeAttributesFromStream(
|
|
pAttr: ?*IMFAttributes,
|
|
dwOptions: u32,
|
|
pStm: ?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFCreateTransformActivate(
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateMediaSession(
|
|
pConfiguration: ?*IMFAttributes,
|
|
ppMediaSession: ?*?*IMFMediaSession,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreatePMPMediaSession(
|
|
dwCreationFlags: u32,
|
|
pConfiguration: ?*IMFAttributes,
|
|
ppMediaSession: ?*?*IMFMediaSession,
|
|
ppEnablerActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateSourceResolver(
|
|
ppISourceResolver: ?*?*IMFSourceResolver,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn CreatePropertyStore(
|
|
ppStore: ?*?*IPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetSupportedSchemes(
|
|
pPropVarSchemeArray: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetSupportedMimeTypes(
|
|
pPropVarMimeTypeArray: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateTopology(
|
|
ppTopo: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateTopologyNode(
|
|
NodeType: MF_TOPOLOGY_TYPE,
|
|
ppNode: ?*?*IMFTopologyNode,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFGetTopoNodeCurrentType(
|
|
pNode: ?*IMFTopologyNode,
|
|
dwStreamIndex: u32,
|
|
fOutput: BOOL,
|
|
ppType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFGetService(
|
|
punkObject: ?*IUnknown,
|
|
guidService: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetSystemTime(
|
|
) callconv(@import("std").os.windows.WINAPI) i64;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreatePresentationClock(
|
|
ppPresentationClock: ?*?*IMFPresentationClock,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateSystemTimeSource(
|
|
ppSystemTimeSource: ?*?*IMFPresentationTimeSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreatePresentationDescriptor(
|
|
cStreamDescriptors: u32,
|
|
apStreamDescriptors: ?[*]?*IMFStreamDescriptor,
|
|
ppPresentationDescriptor: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFRequireProtectedEnvironment(
|
|
pPresentationDescriptor: ?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFSerializePresentationDescriptor(
|
|
pPD: ?*IMFPresentationDescriptor,
|
|
pcbData: ?*u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
ppbData: ?*?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFDeserializePresentationDescriptor(
|
|
cbData: u32,
|
|
pbData: [*:0]u8,
|
|
ppPD: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateStreamDescriptor(
|
|
dwStreamIdentifier: u32,
|
|
cMediaTypes: u32,
|
|
apMediaTypes: [*]?*IMFMediaType,
|
|
ppDescriptor: ?*?*IMFStreamDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateSimpleTypeHandler(
|
|
ppHandler: ?*?*IMFMediaTypeHandler,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFShutdownObject(
|
|
pUnk: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateAudioRenderer(
|
|
pAudioAttributes: ?*IMFAttributes,
|
|
ppSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateAudioRendererActivate(
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateVideoRendererActivate(
|
|
hwndVideo: ?HWND,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateMPEG4MediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
pVideoMediaType: ?*IMFMediaType,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreate3GPMediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
pVideoMediaType: ?*IMFMediaType,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateMP3MediaSink(
|
|
pTargetByteStream: ?*IMFByteStream,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateAC3MediaSink(
|
|
pTargetByteStream: ?*IMFByteStream,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateADTSMediaSink(
|
|
pTargetByteStream: ?*IMFByteStream,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateMuxSink(
|
|
guidOutputSubType: Guid,
|
|
pOutputAttributes: ?*IMFAttributes,
|
|
pOutputByteStream: ?*IMFByteStream,
|
|
ppMuxSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateFMPEG4MediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
pVideoMediaType: ?*IMFMediaType,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
pub extern "mfsrcsnk" fn MFCreateAVIMediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
pVideoMediaType: ?*IMFMediaType,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
pub extern "mfsrcsnk" fn MFCreateWAVEMediaSink(
|
|
pTargetByteStream: ?*IMFByteStream,
|
|
pAudioMediaType: ?*IMFMediaType,
|
|
ppMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateTopoLoader(
|
|
ppObj: ?*?*IMFTopoLoader,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateSampleGrabberSinkActivate(
|
|
pIMFMediaType: ?*IMFMediaType,
|
|
pIMFSampleGrabberSinkCallback: ?*IMFSampleGrabberSinkCallback,
|
|
ppIActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateStandardQualityManager(
|
|
ppQualityManager: ?*?*IMFQualityManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateSequencerSource(
|
|
pReserved: ?*IUnknown,
|
|
ppSequencerSource: ?*?*IMFSequencerSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateSequencerSegmentOffset(
|
|
dwId: u32,
|
|
hnsOffset: i64,
|
|
pvarSegmentOffset: ?*PROPVARIANT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateAggregateSource(
|
|
pSourceCollection: ?*IMFCollection,
|
|
ppAggSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateCredentialCache(
|
|
ppCache: ?*?*IMFNetCredentialCache,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateProxyLocator(
|
|
pszProtocol: ?[*:0]const u16,
|
|
pProxyConfig: ?*IPropertyStore,
|
|
ppProxyLocator: ?*?*IMFNetProxyLocator,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateNetSchemePlugin(
|
|
riid: ?*const Guid,
|
|
ppvHandler: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreatePMPServer(
|
|
dwCreationFlags: u32,
|
|
ppPMPServer: ?*?*IMFPMPServer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateRemoteDesktopPlugin(
|
|
ppPlugin: ?*?*IMFRemoteDesktopPlugin,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn CreateNamedPropertyStore(
|
|
ppStore: ?*?*INamedPropertyStore,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateSampleCopierMFT(
|
|
ppCopierMFT: ?*?*IMFTransform,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateTranscodeProfile(
|
|
ppTranscodeProfile: ?*?*IMFTranscodeProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateTranscodeTopology(
|
|
pSrc: ?*IMFMediaSource,
|
|
pwszOutputFilePath: ?[*:0]const u16,
|
|
pProfile: ?*IMFTranscodeProfile,
|
|
ppTranscodeTopo: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateTranscodeTopologyFromByteStream(
|
|
pSrc: ?*IMFMediaSource,
|
|
pOutputStream: ?*IMFByteStream,
|
|
pProfile: ?*IMFTranscodeProfile,
|
|
ppTranscodeTopo: ?*?*IMFTopology,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFTranscodeGetAudioOutputAvailableTypes(
|
|
guidSubType: ?*const Guid,
|
|
dwMFTFlags: u32,
|
|
pCodecConfig: ?*IMFAttributes,
|
|
ppAvailableTypes: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateTranscodeSinkActivate(
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateTrackedSample(
|
|
ppMFSample: ?*?*IMFTrackedSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFCreateMFByteStreamOnStream(
|
|
pStream: ?*IStream,
|
|
ppByteStream: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateStreamOnMFByteStream(
|
|
pByteStream: ?*IMFByteStream,
|
|
ppStream: ?*?*IStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateMFByteStreamOnStreamEx(
|
|
punkStream: ?*IUnknown,
|
|
ppByteStream: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateStreamOnMFByteStreamEx(
|
|
pByteStream: ?*IMFByteStream,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateMediaTypeFromProperties(
|
|
punkStream: ?*IUnknown,
|
|
ppMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreatePropertiesFromMediaType(
|
|
pMediaType: ?*IMFMediaType,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFEnumDeviceSources(
|
|
pAttributes: ?*IMFAttributes,
|
|
pppSourceActivate: ?*?*?*IMFActivate,
|
|
pcSourceActivate: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateDeviceSource(
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSource: ?*?*IMFMediaSource,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateDeviceSourceActivate(
|
|
pAttributes: ?*IMFAttributes,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFCreateProtectedEnvironmentAccess(
|
|
ppAccess: ?*?*IMFProtectedEnvironmentAccess,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFLoadSignedLibrary(
|
|
pszName: ?[*:0]const u16,
|
|
ppLib: ?*?*IMFSignedLibrary,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFGetSystemId(
|
|
ppId: ?*?*IMFSystemId,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mf" fn MFGetLocalId(
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
verifier: ?*const u8,
|
|
size: u32,
|
|
id: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
pub extern "mfplat" fn MFCreateContentProtectionDevice(
|
|
ProtectionSystemId: ?*const Guid,
|
|
ContentProtectionDevice: ?*?*IMFContentProtectionDevice,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
pub extern "mfplat" fn MFIsContentProtectionDeviceSupported(
|
|
ProtectionSystemId: ?*const Guid,
|
|
isSupported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
pub extern "mfplat" fn MFCreateContentDecryptorContext(
|
|
guidMediaProtectionSystemId: ?*const Guid,
|
|
pD3DManager: ?*IMFDXGIDeviceManager,
|
|
pContentProtectionDevice: ?*IMFContentProtectionDevice,
|
|
ppContentDecryptorContext: ?*?*IMFContentDecryptorContext,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.14393'
|
|
pub extern "mfsensorgroup" fn MFCreateSensorGroup(
|
|
SensorGroupSymbolicLink: ?[*:0]const u16,
|
|
ppSensorGroup: ?*?*IMFSensorGroup,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "mfsensorgroup" fn MFCreateSensorStream(
|
|
StreamId: u32,
|
|
pAttributes: ?*IMFAttributes,
|
|
pMediaTypeCollection: ?*IMFCollection,
|
|
ppStream: ?*?*IMFSensorStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.17134'
|
|
pub extern "mfsensorgroup" fn MFCreateSensorProfile(
|
|
ProfileType: ?*const Guid,
|
|
ProfileIndex: u32,
|
|
Constraints: ?[*:0]const u16,
|
|
ppProfile: ?*?*IMFSensorProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "mfsensorgroup" fn MFCreateSensorProfileCollection(
|
|
ppSensorProfile: ?*?*IMFSensorProfileCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfsensorgroup" fn MFCreateSensorActivityMonitor(
|
|
pCallback: ?*IMFSensorActivitiesReportCallback,
|
|
ppActivityMonitor: ?*?*IMFSensorActivityMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfcore" fn MFCreateExtendedCameraIntrinsics(
|
|
ppExtendedCameraIntrinsics: ?*?*IMFExtendedCameraIntrinsics,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfcore" fn MFCreateExtendedCameraIntrinsicModel(
|
|
distortionModelType: MFCameraIntrinsic_DistortionModelType,
|
|
ppExtendedCameraIntrinsicModel: ?*?*IMFExtendedCameraIntrinsicModel,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
pub extern "mfsensorgroup" fn MFCreateRelativePanelWatcher(
|
|
videoDeviceId: ?[*:0]const u16,
|
|
displayMonitorDeviceId: ?[*:0]const u16,
|
|
ppRelativePanelWatcher: ?*?*IMFRelativePanelWatcher,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfsensorgroup" fn MFCreateCameraOcclusionStateMonitor(
|
|
symbolicLink: ?[*:0]const u16,
|
|
callback: ?*IMFCameraOcclusionStateReportCallback,
|
|
occlusionStateMonitor: ?*?*IMFCameraOcclusionStateMonitor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFContentInfo(
|
|
ppIContentInfo: ?*?*IMFASFContentInfo,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFIndexer(
|
|
ppIIndexer: ?*?*IMFASFIndexer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFIndexerByteStream(
|
|
pIContentByteStream: ?*IMFByteStream,
|
|
cbIndexStartOffset: u64,
|
|
pIIndexByteStream: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFSplitter(
|
|
ppISplitter: ?*?*IMFASFSplitter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFProfile(
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFProfileFromPresentationDescriptor(
|
|
pIPD: ?*IMFPresentationDescriptor,
|
|
ppIProfile: ?*?*IMFASFProfile,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreatePresentationDescriptorFromASFProfile(
|
|
pIProfile: ?*IMFASFProfile,
|
|
ppIPD: ?*?*IMFPresentationDescriptor,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFMultiplexer(
|
|
ppIMultiplexer: ?*?*IMFASFMultiplexer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFStreamSelector(
|
|
pIASFProfile: ?*IMFASFProfile,
|
|
ppSelector: ?*?*IMFASFStreamSelector,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFMediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateASFMediaSinkActivate(
|
|
pwszFileName: ?[*:0]const u16,
|
|
pContentInfo: ?*IMFASFContentInfo,
|
|
ppIActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateWMVEncoderActivate(
|
|
pMediaType: ?*IMFMediaType,
|
|
pEncodingConfigurationProperties: ?*IPropertyStore,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mf" fn MFCreateWMAEncoderActivate(
|
|
pMediaType: ?*IMFMediaType,
|
|
pEncodingConfigurationProperties: ?*IPropertyStore,
|
|
ppActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateASFStreamingMediaSink(
|
|
pIByteStream: ?*IMFByteStream,
|
|
ppIMediaSink: ?*?*IMFMediaSink,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mf" fn MFCreateASFStreamingMediaSinkActivate(
|
|
pByteStreamActivate: ?*IMFActivate,
|
|
pContentInfo: ?*IMFASFContentInfo,
|
|
ppIActivate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfplat" fn MFCreateD3D12SynchronizationObject(
|
|
pDevice: ?*ID3D12Device,
|
|
riid: ?*const Guid,
|
|
ppvSyncObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFStartup(
|
|
Version: u32,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFShutdown(
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFLockPlatform(
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFUnlockPlatform(
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFPutWorkItem(
|
|
dwQueue: u32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFPutWorkItem2(
|
|
dwQueue: u32,
|
|
Priority: i32,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFPutWorkItemEx(
|
|
dwQueue: u32,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFPutWorkItemEx2(
|
|
dwQueue: u32,
|
|
Priority: i32,
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFPutWaitingWorkItem(
|
|
hEvent: ?HANDLE,
|
|
Priority: i32,
|
|
pResult: ?*IMFAsyncResult,
|
|
pKey: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFAllocateSerialWorkQueue(
|
|
dwWorkQueue: u32,
|
|
pdwWorkQueue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFScheduleWorkItemEx(
|
|
pResult: ?*IMFAsyncResult,
|
|
Timeout: i64,
|
|
pKey: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFScheduleWorkItem(
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
Timeout: i64,
|
|
pKey: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCancelWorkItem(
|
|
Key: u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetTimerPeriodicity(
|
|
Periodicity: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFAddPeriodicCallback(
|
|
Callback: ?MFPERIODICCALLBACK,
|
|
pContext: ?*IUnknown,
|
|
pdwKey: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFRemovePeriodicCallback(
|
|
dwKey: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFAllocateWorkQueueEx(
|
|
WorkQueueType: MFASYNC_WORKQUEUE_TYPE,
|
|
pdwWorkQueue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFAllocateWorkQueue(
|
|
pdwWorkQueue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFLockWorkQueue(
|
|
dwWorkQueue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFUnlockWorkQueue(
|
|
dwWorkQueue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFBeginRegisterWorkQueueWithMMCSS(
|
|
dwWorkQueueId: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
pDoneCallback: ?*IMFAsyncCallback,
|
|
pDoneState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFBeginRegisterWorkQueueWithMMCSSEx(
|
|
dwWorkQueueId: u32,
|
|
wszClass: ?[*:0]const u16,
|
|
dwTaskId: u32,
|
|
lPriority: i32,
|
|
pDoneCallback: ?*IMFAsyncCallback,
|
|
pDoneState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFEndRegisterWorkQueueWithMMCSS(
|
|
pResult: ?*IMFAsyncResult,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFBeginUnregisterWorkQueueWithMMCSS(
|
|
dwWorkQueueId: u32,
|
|
pDoneCallback: ?*IMFAsyncCallback,
|
|
pDoneState: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFEndUnregisterWorkQueueWithMMCSS(
|
|
pResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetWorkQueueMMCSSClass(
|
|
dwWorkQueueId: u32,
|
|
pwszClass: ?[*:0]u16,
|
|
pcchClass: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetWorkQueueMMCSSTaskId(
|
|
dwWorkQueueId: u32,
|
|
pdwTaskId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFRegisterPlatformWithMMCSS(
|
|
wszClass: ?[*:0]const u16,
|
|
pdwTaskId: ?*u32,
|
|
lPriority: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFUnregisterPlatformFromMMCSS(
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFLockSharedWorkQueue(
|
|
wszClass: ?[*:0]const u16,
|
|
BasePriority: i32,
|
|
pdwTaskId: ?*u32,
|
|
pID: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFGetWorkQueueMMCSSPriority(
|
|
dwWorkQueueId: u32,
|
|
lPriority: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateAsyncResult(
|
|
punkObject: ?*IUnknown,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
punkState: ?*IUnknown,
|
|
ppAsyncResult: ?*?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInvokeCallback(
|
|
pAsyncResult: ?*IMFAsyncResult,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateFile(
|
|
AccessMode: MF_FILE_ACCESSMODE,
|
|
OpenMode: MF_FILE_OPENMODE,
|
|
fFlags: MF_FILE_FLAGS,
|
|
pwszFileURL: ?[*:0]const u16,
|
|
ppIByteStream: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateTempFile(
|
|
AccessMode: MF_FILE_ACCESSMODE,
|
|
OpenMode: MF_FILE_OPENMODE,
|
|
fFlags: MF_FILE_FLAGS,
|
|
ppIByteStream: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFBeginCreateFile(
|
|
AccessMode: MF_FILE_ACCESSMODE,
|
|
OpenMode: MF_FILE_OPENMODE,
|
|
fFlags: MF_FILE_FLAGS,
|
|
pwszFilePath: ?[*:0]const u16,
|
|
pCallback: ?*IMFAsyncCallback,
|
|
pState: ?*IUnknown,
|
|
ppCancelCookie: ?*?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFEndCreateFile(
|
|
pResult: ?*IMFAsyncResult,
|
|
ppFile: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCancelCreateFile(
|
|
pCancelCookie: ?*IUnknown,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMemoryBuffer(
|
|
cbMaxLength: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMediaBufferWrapper(
|
|
pBuffer: ?*IMFMediaBuffer,
|
|
cbOffset: u32,
|
|
dwLength: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateLegacyMediaBufferOnMFMediaBuffer(
|
|
pSample: ?*IMFSample,
|
|
pMFMediaBuffer: ?*IMFMediaBuffer,
|
|
cbOffset: u32,
|
|
ppMediaBuffer: ?*?*IMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFMapDX9FormatToDXGIFormat(
|
|
dx9: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) DXGI_FORMAT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFMapDXGIFormatToDX9Format(
|
|
dx11: DXGI_FORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFLockDXGIDeviceManager(
|
|
pResetToken: ?*u32,
|
|
ppManager: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFUnlockDXGIDeviceManager(
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateDXSurfaceBuffer(
|
|
riid: ?*const Guid,
|
|
punkSurface: ?*IUnknown,
|
|
fBottomUpWhenLinear: BOOL,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateWICBitmapBuffer(
|
|
riid: ?*const Guid,
|
|
punkSurface: ?*IUnknown,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateDXGISurfaceBuffer(
|
|
riid: ?*const Guid,
|
|
punkSurface: ?*IUnknown,
|
|
uSubresourceIndex: u32,
|
|
fBottomUpWhenLinear: BOOL,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateVideoSampleAllocatorEx(
|
|
riid: ?*const Guid,
|
|
ppSampleAllocator: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateDXGIDeviceManager(
|
|
resetToken: ?*u32,
|
|
ppDeviceManager: ?*?*IMFDXGIDeviceManager,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateAlignedMemoryBuffer(
|
|
cbMaxLength: u32,
|
|
cbAligment: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMediaEvent(
|
|
met: u32,
|
|
guidExtendedType: ?*const Guid,
|
|
hrStatus: HRESULT,
|
|
pvValue: ?*const PROPVARIANT,
|
|
ppEvent: ?*?*IMFMediaEvent,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateEventQueue(
|
|
ppMediaEventQueue: ?*?*IMFMediaEventQueue,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateSample(
|
|
ppIMFSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateAttributes(
|
|
ppMFAttributes: ?*?*IMFAttributes,
|
|
cInitialSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitAttributesFromBlob(
|
|
pAttributes: ?*IMFAttributes,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pBuf: ?*const u8,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetAttributesAsBlobSize(
|
|
pAttributes: ?*IMFAttributes,
|
|
pcbBufSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetAttributesAsBlob(
|
|
pAttributes: ?*IMFAttributes,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pBuf: ?*u8,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFTRegister(
|
|
clsidMFT: Guid,
|
|
guidCategory: Guid,
|
|
pszName: ?PWSTR,
|
|
Flags: u32,
|
|
cInputTypes: u32,
|
|
pInputTypes: ?[*]MFT_REGISTER_TYPE_INFO,
|
|
cOutputTypes: u32,
|
|
pOutputTypes: ?[*]MFT_REGISTER_TYPE_INFO,
|
|
pAttributes: ?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFTUnregister(
|
|
clsidMFT: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFTRegisterLocal(
|
|
pClassFactory: ?*IClassFactory,
|
|
guidCategory: ?*const Guid,
|
|
pszName: ?[*:0]const u16,
|
|
Flags: u32,
|
|
cInputTypes: u32,
|
|
pInputTypes: ?[*]const MFT_REGISTER_TYPE_INFO,
|
|
cOutputTypes: u32,
|
|
pOutputTypes: ?[*]const MFT_REGISTER_TYPE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFTUnregisterLocal(
|
|
pClassFactory: ?*IClassFactory,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFTRegisterLocalByCLSID(
|
|
clisdMFT: ?*const Guid,
|
|
guidCategory: ?*const Guid,
|
|
pszName: ?[*:0]const u16,
|
|
Flags: u32,
|
|
cInputTypes: u32,
|
|
pInputTypes: ?[*]const MFT_REGISTER_TYPE_INFO,
|
|
cOutputTypes: u32,
|
|
pOutputTypes: ?[*]const MFT_REGISTER_TYPE_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFTUnregisterLocalByCLSID(
|
|
clsidMFT: Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFTEnum(
|
|
guidCategory: Guid,
|
|
Flags: u32,
|
|
pInputType: ?*MFT_REGISTER_TYPE_INFO,
|
|
pOutputType: ?*MFT_REGISTER_TYPE_INFO,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppclsidMFT: ?*?*Guid,
|
|
pcMFTs: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFTEnumEx(
|
|
guidCategory: Guid,
|
|
Flags: u32,
|
|
pInputType: ?*const MFT_REGISTER_TYPE_INFO,
|
|
pOutputType: ?*const MFT_REGISTER_TYPE_INFO,
|
|
pppMFTActivate: ?*?*?*IMFActivate,
|
|
pnumMFTActivate: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10240'
|
|
pub extern "mfplat" fn MFTEnum2(
|
|
guidCategory: Guid,
|
|
Flags: u32,
|
|
pInputType: ?*const MFT_REGISTER_TYPE_INFO,
|
|
pOutputType: ?*const MFT_REGISTER_TYPE_INFO,
|
|
pAttributes: ?*IMFAttributes,
|
|
pppMFTActivate: ?*?*?*IMFActivate,
|
|
pnumMFTActivate: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFTGetInfo(
|
|
clsidMFT: Guid,
|
|
pszName: ?*?PWSTR,
|
|
ppInputTypes: ?*?*MFT_REGISTER_TYPE_INFO,
|
|
pcInputTypes: ?*u32,
|
|
ppOutputTypes: ?*?*MFT_REGISTER_TYPE_INFO,
|
|
pcOutputTypes: ?*u32,
|
|
ppAttributes: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFGetPluginControl(
|
|
ppPluginControl: ?*?*IMFPluginControl,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFGetMFTMerit(
|
|
pMFT: ?*IUnknown,
|
|
cbVerifier: u32,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
verifier: ?*const u8,
|
|
merit: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFRegisterLocalSchemeHandler(
|
|
szScheme: ?[*:0]const u16,
|
|
pActivate: ?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFRegisterLocalByteStreamHandler(
|
|
szFileExtension: ?[*:0]const u16,
|
|
szMimeType: ?[*:0]const u16,
|
|
pActivate: ?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateMFByteStreamWrapper(
|
|
pStream: ?*IMFByteStream,
|
|
ppStreamWrapper: ?*?*IMFByteStream,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateMediaExtensionActivate(
|
|
szActivatableClassId: ?[*:0]const u16,
|
|
pConfiguration: ?*IUnknown,
|
|
riid: ?*const Guid,
|
|
ppvObject: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "mfplat" fn MFCreateMuxStreamAttributes(
|
|
pAttributesToMux: ?*IMFCollection,
|
|
ppMuxAttribs: ?*?*IMFAttributes,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "mfplat" fn MFCreateMuxStreamMediaType(
|
|
pMediaTypesToMux: ?*IMFCollection,
|
|
ppMuxMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.15063'
|
|
pub extern "mfplat" fn MFCreateMuxStreamSample(
|
|
pSamplesToMux: ?*IMFCollection,
|
|
ppMuxSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFValidateMediaTypeSize(
|
|
FormatType: Guid,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pBlock: ?*u8,
|
|
cbSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMediaType(
|
|
ppMFType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMFVideoFormatFromMFMediaType(
|
|
pMFType: ?*IMFMediaType,
|
|
ppMFVF: ?*?*MFVIDEOFORMAT,
|
|
pcbSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateWaveFormatExFromMFMediaType(
|
|
pMFType: ?*IMFMediaType,
|
|
ppWF: ?*?*WAVEFORMATEX,
|
|
pcbSize: ?*u32,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromVideoInfoHeader(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pVIH: ?*const VIDEOINFOHEADER,
|
|
cbBufSize: u32,
|
|
pSubtype: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromVideoInfoHeader2(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pVIH2: ?*const VIDEOINFOHEADER2,
|
|
cbBufSize: u32,
|
|
pSubtype: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromMPEG1VideoInfo(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pMP1VI: ?*const MPEG1VIDEOINFO,
|
|
cbBufSize: u32,
|
|
pSubtype: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromMPEG2VideoInfo(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pMP2VI: ?*const MPEG2VIDEOINFO,
|
|
cbBufSize: u32,
|
|
pSubtype: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCalculateBitmapImageSize(
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pBMIH: ?*const BITMAPINFOHEADER,
|
|
cbBufSize: u32,
|
|
pcbImageSize: ?*u32,
|
|
pbKnown: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCalculateImageSize(
|
|
guidSubtype: ?*const Guid,
|
|
unWidth: u32,
|
|
unHeight: u32,
|
|
pcbImageSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFFrameRateToAverageTimePerFrame(
|
|
unNumerator: u32,
|
|
unDenominator: u32,
|
|
punAverageTimePerFrame: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFAverageTimePerFrameToFrameRate(
|
|
unAverageTimePerFrame: u64,
|
|
punNumerator: ?*u32,
|
|
punDenominator: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromMFVideoFormat(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pMFVF: ?*const MFVIDEOFORMAT,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromWaveFormatEx(
|
|
pMFType: ?*IMFMediaType,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
pWaveFormat: ?*const WAVEFORMATEX,
|
|
cbBufSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitMediaTypeFromAMMediaType(
|
|
pMFType: ?*IMFMediaType,
|
|
pAMType: ?*const AM_MEDIA_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitAMMediaTypeFromMFMediaType(
|
|
pMFType: ?*IMFMediaType,
|
|
guidFormatBlockType: Guid,
|
|
pAMType: ?*AM_MEDIA_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateAMMediaTypeFromMFMediaType(
|
|
pMFType: ?*IMFMediaType,
|
|
guidFormatBlockType: Guid,
|
|
ppAMType: ?*?*AM_MEDIA_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCompareFullToPartialMediaType(
|
|
pMFTypeFull: ?*IMFMediaType,
|
|
pMFTypePartial: ?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFWrapMediaType(
|
|
pOrig: ?*IMFMediaType,
|
|
MajorType: ?*const Guid,
|
|
SubType: ?*const Guid,
|
|
ppWrap: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFUnwrapMediaType(
|
|
pWrap: ?*IMFMediaType,
|
|
ppOrig: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateVideoMediaType(
|
|
pVideoFormat: ?*const MFVIDEOFORMAT,
|
|
ppIVideoMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateVideoMediaTypeFromSubtype(
|
|
pAMSubtype: ?*const Guid,
|
|
ppIVideoMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "evr" fn MFIsFormatYUV(
|
|
Format: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateVideoMediaTypeFromBitMapInfoHeader(
|
|
pbmihBitMapInfoHeader: ?*const BITMAPINFOHEADER,
|
|
dwPixelAspectRatioX: u32,
|
|
dwPixelAspectRatioY: u32,
|
|
InterlaceMode: MFVideoInterlaceMode,
|
|
VideoFlags: u64,
|
|
qwFramesPerSecondNumerator: u64,
|
|
qwFramesPerSecondDenominator: u64,
|
|
dwMaxBitRate: u32,
|
|
ppIVideoMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetStrideForBitmapInfoHeader(
|
|
format: u32,
|
|
dwWidth: u32,
|
|
pStride: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "evr" fn MFGetPlaneSize(
|
|
format: u32,
|
|
dwWidth: u32,
|
|
dwHeight: u32,
|
|
pdwPlaneSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
pbmihBitMapInfoHeader: ?*const BITMAPINFOHEADER,
|
|
cbBitMapInfoHeader: u32,
|
|
dwPixelAspectRatioX: u32,
|
|
dwPixelAspectRatioY: u32,
|
|
InterlaceMode: MFVideoInterlaceMode,
|
|
VideoFlags: u64,
|
|
dwFramesPerSecondNumerator: u32,
|
|
dwFramesPerSecondDenominator: u32,
|
|
dwMaxBitRate: u32,
|
|
ppIVideoMediaType: ?*?*IMFVideoMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateMediaTypeFromRepresentation(
|
|
guidRepresentation: Guid,
|
|
pvRepresentation: ?*anyopaque,
|
|
ppIMediaType: ?*?*IMFMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateAudioMediaType(
|
|
pAudioFormat: ?*const WAVEFORMATEX,
|
|
ppIAudioMediaType: ?*?*IMFAudioMediaType,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFGetUncompressedVideoFormat(
|
|
pVideoFormat: ?*const MFVIDEOFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitVideoFormat(
|
|
pVideoFormat: ?*MFVIDEOFORMAT,
|
|
type: MFStandardVideoFormat,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFInitVideoFormat_RGB(
|
|
pVideoFormat: ?*MFVIDEOFORMAT,
|
|
dwWidth: u32,
|
|
dwHeight: u32,
|
|
D3Dfmt: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFConvertColorInfoToDXVA(
|
|
pdwToDXVA: ?*u32,
|
|
pFromFormat: ?*const MFVIDEOFORMAT,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFConvertColorInfoFromDXVA(
|
|
pToFormat: ?*MFVIDEOFORMAT,
|
|
dwFromDXVA: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCopyImage(
|
|
pDest: ?*u8,
|
|
lDestStride: i32,
|
|
pSrc: ?*const u8,
|
|
lSrcStride: i32,
|
|
dwWidthInBytes: u32,
|
|
dwLines: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFConvertFromFP16Array(
|
|
pDest: [*]f32,
|
|
pSrc: [*:0]const u16,
|
|
dwCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFConvertToFP16Array(
|
|
pDest: [*:0]u16,
|
|
pSrc: [*]const f32,
|
|
dwCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreate2DMediaBuffer(
|
|
dwWidth: u32,
|
|
dwHeight: u32,
|
|
dwFourCC: u32,
|
|
fBottomUp: BOOL,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFCreateMediaBufferFromMediaType(
|
|
pMediaType: ?*IMFMediaType,
|
|
llDuration: i64,
|
|
dwMinLength: u32,
|
|
dwMinAlignment: u32,
|
|
ppBuffer: ?*?*IMFMediaBuffer,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFCreateCollection(
|
|
ppIMFCollection: ?*?*IMFCollection,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFHeapAlloc(
|
|
nSize: usize,
|
|
dwFlags: u32,
|
|
pszFile: ?PSTR,
|
|
line: i32,
|
|
eat: EAllocationType,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "mfplat" fn MFHeapFree(
|
|
pv: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfplat" fn MFllMulDiv(
|
|
a: i64,
|
|
b: i64,
|
|
c: i64,
|
|
d: i64,
|
|
) callconv(@import("std").os.windows.WINAPI) i64;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "mfplat" fn MFGetContentProtectionSystemCLSID(
|
|
guidProtectionSystemID: ?*const Guid,
|
|
pclsid: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
pub extern "mfplat" fn MFCombineSamples(
|
|
pSample: ?*IMFSample,
|
|
pSampleToAdd: ?*IMFSample,
|
|
dwMaxMergedDurationInMS: u32,
|
|
pMerged: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
pub extern "mfplat" fn MFSplitSample(
|
|
pSample: ?*IMFSample,
|
|
pOutputSamples: [*]?*IMFSample,
|
|
dwOutputSampleMaxCount: u32,
|
|
pdwOutputSampleCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfreadwrite" fn MFCreateSourceReaderFromURL(
|
|
pwszURL: ?[*:0]const u16,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSourceReader: ?*?*IMFSourceReader,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfreadwrite" fn MFCreateSourceReaderFromByteStream(
|
|
pByteStream: ?*IMFByteStream,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSourceReader: ?*?*IMFSourceReader,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfreadwrite" fn MFCreateSourceReaderFromMediaSource(
|
|
pMediaSource: ?*IMFMediaSource,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSourceReader: ?*?*IMFSourceReader,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfreadwrite" fn MFCreateSinkWriterFromURL(
|
|
pwszOutputURL: ?[*:0]const u16,
|
|
pByteStream: ?*IMFByteStream,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSinkWriter: ?*?*IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "mfreadwrite" fn MFCreateSinkWriterFromMediaSink(
|
|
pMediaSink: ?*IMFMediaSink,
|
|
pAttributes: ?*IMFAttributes,
|
|
ppSinkWriter: ?*?*IMFSinkWriter,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "evr" fn MFCreateVideoPresenter(
|
|
pOwner: ?*IUnknown,
|
|
riidDevice: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppVideoPresenter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "evr" fn MFCreateVideoMixer(
|
|
pOwner: ?*IUnknown,
|
|
riidDevice: ?*const Guid,
|
|
riid: ?*const Guid,
|
|
ppv: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "evr" fn MFCreateVideoMixerAndPresenter(
|
|
pMixerOwner: ?*IUnknown,
|
|
pPresenterOwner: ?*IUnknown,
|
|
riidMixer: ?*const Guid,
|
|
ppvVideoMixer: ?*?*anyopaque,
|
|
riidPresenter: ?*const Guid,
|
|
ppvVideoPresenter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mf" fn MFCreateVideoRenderer(
|
|
riidRenderer: ?*const Guid,
|
|
ppVideoRenderer: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "evr" fn MFCreateVideoSampleFromSurface(
|
|
pUnkSurface: ?*IUnknown,
|
|
ppSample: ?*?*IMFSample,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "evr" fn MFCreateVideoSampleAllocator(
|
|
riid: ?*const Guid,
|
|
ppSampleAllocator: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
// This function from dll 'MFPlay' is being skipped because it has some sort of issue
|
|
pub fn MFPCreateMediaPlayer() void { @panic("this function is not working"); }
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.19041'
|
|
pub extern "mf" fn MFCreateEncryptedMediaExtensionsStoreActivate(
|
|
pmpHost: ?*IMFPMPHostApp,
|
|
objectStream: ?*IStream,
|
|
classId: ?[*:0]const u16,
|
|
activate: ?*?*IMFActivate,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfsensorgroup" fn MFCreateVirtualCamera(
|
|
type: __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0001,
|
|
lifetime: __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0002,
|
|
access: __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0003,
|
|
friendlyName: ?[*:0]const u16,
|
|
sourceId: ?[*:0]const u16,
|
|
categories: ?[*]const Guid,
|
|
categoryCount: u32,
|
|
virtualCamera: ?*?*IMFVirtualCamera,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "mfsensorgroup" fn MFIsVirtualCameraTypeSupported(
|
|
type: __MIDL___MIDL_itf_mfvirtualcamera_0000_0000_0001,
|
|
supported: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "opmxbox" fn OPMXboxEnableHDCP(
|
|
HDCPType: OPM_HDCP_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "opmxbox" fn OPMXboxGetHDCPStatus(
|
|
pHDCPStatus: ?*OPM_HDCP_STATUS,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
pub extern "opmxbox" fn OPMXboxGetHDCPStatusAndType(
|
|
pHDCPStatus: ?*OPM_HDCP_STATUS,
|
|
pHDCPType: ?*OPM_HDCP_TYPE,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Unicode Aliases (0)
|
|
//--------------------------------------------------------------------------------
|
|
const thismodule = @This();
|
|
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
|
|
.ansi => struct {
|
|
},
|
|
.wide => struct {
|
|
},
|
|
.unspecified => if (@import("builtin").is_test) struct {
|
|
} else struct {
|
|
},
|
|
};
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Imports (66)
|
|
//--------------------------------------------------------------------------------
|
|
const Guid = @import("../zig.zig").Guid;
|
|
const AM_MEDIA_TYPE = @import("../media/direct_show.zig").AM_MEDIA_TYPE;
|
|
const AudioObjectType = @import("../media/audio.zig").AudioObjectType;
|
|
const BITMAPINFOHEADER = @import("../graphics/gdi.zig").BITMAPINFOHEADER;
|
|
const BOOL = @import("../foundation.zig").BOOL;
|
|
const BSTR = @import("../foundation.zig").BSTR;
|
|
const D3D12_COMMAND_LIST_SUPPORT_FLAGS = @import("../graphics/direct3d12.zig").D3D12_COMMAND_LIST_SUPPORT_FLAGS;
|
|
const D3D12_DISCARD_REGION = @import("../graphics/direct3d12.zig").D3D12_DISCARD_REGION;
|
|
const D3D12_PREDICATION_OP = @import("../graphics/direct3d12.zig").D3D12_PREDICATION_OP;
|
|
const D3D12_QUERY_TYPE = @import("../graphics/direct3d12.zig").D3D12_QUERY_TYPE;
|
|
const D3D12_RESOURCE_BARRIER = @import("../graphics/direct3d12.zig").D3D12_RESOURCE_BARRIER;
|
|
const D3D12_WRITEBUFFERIMMEDIATE_MODE = @import("../graphics/direct3d12.zig").D3D12_WRITEBUFFERIMMEDIATE_MODE;
|
|
const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER = @import("../graphics/direct3d12.zig").D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
|
|
const D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT = @import("../graphics/direct3d9.zig").D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT;
|
|
const D3DAUTHENTICATEDCHANNELTYPE = @import("../graphics/direct3d9.zig").D3DAUTHENTICATEDCHANNELTYPE;
|
|
const D3DDEVTYPE = @import("../graphics/direct3d9.zig").D3DDEVTYPE;
|
|
const D3DDISPLAYMODEEX = @import("../graphics/direct3d9.zig").D3DDISPLAYMODEEX;
|
|
const D3DDISPLAYROTATION = @import("../graphics/direct3d9.zig").D3DDISPLAYROTATION;
|
|
const D3DENCRYPTED_BLOCK_INFO = @import("../graphics/direct3d9.zig").D3DENCRYPTED_BLOCK_INFO;
|
|
const D3DFORMAT = @import("../graphics/direct3d9.zig").D3DFORMAT;
|
|
const D3DPOOL = @import("../graphics/direct3d9.zig").D3DPOOL;
|
|
const DEVPROPKEY = @import("../devices/properties.zig").DEVPROPKEY;
|
|
const DMO_MEDIA_TYPE = @import("../media/dx_media_objects.zig").DMO_MEDIA_TYPE;
|
|
const DXGI_COLOR_SPACE_TYPE = @import("../graphics/dxgi/common.zig").DXGI_COLOR_SPACE_TYPE;
|
|
const DXGI_FORMAT = @import("../graphics/dxgi/common.zig").DXGI_FORMAT;
|
|
const DXGI_RATIONAL = @import("../graphics/dxgi/common.zig").DXGI_RATIONAL;
|
|
const FILETIME = @import("../foundation.zig").FILETIME;
|
|
const HANDLE = @import("../foundation.zig").HANDLE;
|
|
const HDC = @import("../graphics/gdi.zig").HDC;
|
|
const HMONITOR = @import("../graphics/gdi.zig").HMONITOR;
|
|
const HRESULT = @import("../foundation.zig").HRESULT;
|
|
const HWND = @import("../foundation.zig").HWND;
|
|
const IClassFactory = @import("../system/com.zig").IClassFactory;
|
|
const ID3D12CommandAllocator = @import("../graphics/direct3d12.zig").ID3D12CommandAllocator;
|
|
const ID3D12CommandList = @import("../graphics/direct3d12.zig").ID3D12CommandList;
|
|
const ID3D12CommandQueue = @import("../graphics/direct3d12.zig").ID3D12CommandQueue;
|
|
const ID3D12Device = @import("../graphics/direct3d12.zig").ID3D12Device;
|
|
const ID3D12Pageable = @import("../graphics/direct3d12.zig").ID3D12Pageable;
|
|
const ID3D12ProtectedResourceSession = @import("../graphics/direct3d12.zig").ID3D12ProtectedResourceSession;
|
|
const ID3D12QueryHeap = @import("../graphics/direct3d12.zig").ID3D12QueryHeap;
|
|
const ID3D12Resource = @import("../graphics/direct3d12.zig").ID3D12Resource;
|
|
const IDirect3DDevice9 = @import("../graphics/direct3d9.zig").IDirect3DDevice9;
|
|
const IDirect3DDevice9Ex = @import("../graphics/direct3d9.zig").IDirect3DDevice9Ex;
|
|
const IDirect3DSurface9 = @import("../graphics/direct3d9.zig").IDirect3DSurface9;
|
|
const IInspectable = @import("../system/win_rt.zig").IInspectable;
|
|
const IMediaBuffer = @import("../media/dx_media_objects.zig").IMediaBuffer;
|
|
const IMFDeviceTransform = @import("../media/streaming.zig").IMFDeviceTransform;
|
|
const INamedPropertyStore = @import("../ui/shell/properties_system.zig").INamedPropertyStore;
|
|
const IPropertyStore = @import("../ui/shell/properties_system.zig").IPropertyStore;
|
|
const ISpatialAudioMetadataItems = @import("../media/audio.zig").ISpatialAudioMetadataItems;
|
|
const IStream = @import("../system/com.zig").IStream;
|
|
const IUnknown = @import("../system/com.zig").IUnknown;
|
|
const LUID = @import("../foundation.zig").LUID;
|
|
const MPEG1VIDEOINFO = @import("../media/direct_show.zig").MPEG1VIDEOINFO;
|
|
const MPEG2VIDEOINFO = @import("../media/direct_show.zig").MPEG2VIDEOINFO;
|
|
const POINT = @import("../foundation.zig").POINT;
|
|
const PROPERTYKEY = @import("../ui/shell/properties_system.zig").PROPERTYKEY;
|
|
const PROPVARIANT = @import("../system/com/structured_storage.zig").PROPVARIANT;
|
|
const PSTR = @import("../foundation.zig").PSTR;
|
|
const PWSTR = @import("../foundation.zig").PWSTR;
|
|
const RECT = @import("../foundation.zig").RECT;
|
|
const SIZE = @import("../foundation.zig").SIZE;
|
|
const VARIANT = @import("../system/com.zig").VARIANT;
|
|
const VIDEOINFOHEADER = @import("../media/direct_show.zig").VIDEOINFOHEADER;
|
|
const VIDEOINFOHEADER2 = @import("../media/direct_show.zig").VIDEOINFOHEADER2;
|
|
const WAVEFORMATEX = @import("../media/audio.zig").WAVEFORMATEX;
|
|
|
|
test {
|
|
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
|
|
if (@hasDecl(@This(), "PDXVAHDSW_CreateDevice")) { _ = PDXVAHDSW_CreateDevice; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_ProposeVideoPrivateFormat")) { _ = PDXVAHDSW_ProposeVideoPrivateFormat; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorDeviceCaps")) { _ = PDXVAHDSW_GetVideoProcessorDeviceCaps; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorOutputFormats")) { _ = PDXVAHDSW_GetVideoProcessorOutputFormats; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorInputFormats")) { _ = PDXVAHDSW_GetVideoProcessorInputFormats; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorCaps")) { _ = PDXVAHDSW_GetVideoProcessorCaps; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorCustomRates")) { _ = PDXVAHDSW_GetVideoProcessorCustomRates; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessorFilterRange")) { _ = PDXVAHDSW_GetVideoProcessorFilterRange; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_DestroyDevice")) { _ = PDXVAHDSW_DestroyDevice; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_CreateVideoProcessor")) { _ = PDXVAHDSW_CreateVideoProcessor; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_SetVideoProcessBltState")) { _ = PDXVAHDSW_SetVideoProcessBltState; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessBltStatePrivate")) { _ = PDXVAHDSW_GetVideoProcessBltStatePrivate; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_SetVideoProcessStreamState")) { _ = PDXVAHDSW_SetVideoProcessStreamState; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_GetVideoProcessStreamStatePrivate")) { _ = PDXVAHDSW_GetVideoProcessStreamStatePrivate; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_VideoProcessBltHD")) { _ = PDXVAHDSW_VideoProcessBltHD; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_DestroyVideoProcessor")) { _ = PDXVAHDSW_DestroyVideoProcessor; }
|
|
if (@hasDecl(@This(), "PDXVAHDSW_Plugin")) { _ = PDXVAHDSW_Plugin; }
|
|
if (@hasDecl(@This(), "PDXVAHD_CreateDevice")) { _ = PDXVAHD_CreateDevice; }
|
|
if (@hasDecl(@This(), "MFPERIODICCALLBACK")) { _ = MFPERIODICCALLBACK; }
|
|
|
|
@setEvalBranchQuota(
|
|
comptime @import("std").meta.declarations(@This()).len * 3
|
|
);
|
|
|
|
// reference all the pub declarations
|
|
if (!@import("builtin").is_test) return;
|
|
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
|
|
_ = @field(@This(), decl.name);
|
|
}
|
|
}
|