Nikolay Sivov : mfplat: Add some attributes related to transcoding.

Alexandre Julliard julliard at winehq.org
Tue Aug 9 15:21:04 CDT 2022


Module: wine
Branch: master
Commit: da581d383d411b877ea7ee5b96e307877a4d3181
URL:    https://gitlab.winehq.org/wine/wine/-/commit/da581d383d411b877ea7ee5b96e307877a4d3181

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Aug  9 21:26:23 2022 +0300

mfplat: Add some attributes related to transcoding.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>

---

 dlls/mfplat/main.c | 19 +++++++++++++++++++
 include/mfidl.idl  | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)

diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index 1e4e026d1d7..1afec10405b 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -1678,14 +1678,17 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_MT_ALPHA_MODE),
         X(MF_MT_MPEG2_TIMECODE),
         X(MF_PMP_SERVER_CONTEXT),
+        X(MF_TRANSCODE_TOPOLOGYMODE),
         X(MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE),
         X(MF_MEDIA_ENGINE_TRACK_ID),
+        X(MFTranscodeContainerType_MP3),
         X(MF_MT_CUSTOM_VIDEO_PRIMARIES),
         X(MF_MT_TIMESTAMP_CAN_BE_DTS),
         X(MFT_CODEC_MERIT_Attribute),
         X(MF_TOPOLOGY_PLAYBACK_MAX_DIMS),
         X(MF_XVP_DISABLE_FRC),
         X(MF_LOW_LATENCY),
+        X(MF_TRANSCODE_ADJUST_PROFILE),
         X(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS),
         X(MF_MT_MPEG2_FLAGS),
         X(MF_MEDIA_ENGINE_AUDIO_CATEGORY),
@@ -1732,6 +1735,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_PD_PLAYBACK_BOUNDARY_TIME),
         X(MF_MEDIA_ENGINE_TELEMETRY_APPLICATION_ID),
         X(MF_ACTIVATE_MFT_LOCKED),
+        X(MFTranscodeContainerType_WAVE),
         X(MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT),
         X(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING),
         X(MF_MT_FRAME_SIZE),
@@ -1739,6 +1743,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_SINK_WRITER_ASYNC_CALLBACK),
         X(MF_TOPOLOGY_START_TIME_ON_PRESENTATION_SWITCH),
         X(MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER),
+        X(MF_TRANSCODE_CONTAINERTYPE),
         X(MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY),
         X(MF_MT_FRAME_RATE_RANGE_MAX),
         X(MF_MT_PALETTE),
@@ -1770,6 +1775,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID),
         X(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME),
         X(MF_MT_VIDEO_ROTATION),
+        X(MFTranscodeContainerType_MPEG4),
         X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK),
         X(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE11),
         X(MF_MT_USER_DATA),
@@ -1789,12 +1795,14 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_SA_D3D12_HEAP_FLAGS),
         X(MF_MT_MINIMUM_DISPLAY_APERTURE),
         X(MFSampleExtension_Token),
+        X(MFTranscodeContainerType_3GP),
         X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY),
         X(MF_D3D12_SYNCHRONIZATION_OBJECT),
         X(MF_MT_AUDIO_VALID_BITS_PER_SAMPLE),
         X(MF_TRANSFORM_ASYNC_UNLOCK),
         X(MF_DISABLE_FRAME_CORRUPTION_INFO),
         X(MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES),
+        X(MFTranscodeContainerType_ASF),
         X(MF_MT_VIDEO_NO_FRAME_ORDERING),
         X(MF_MEDIA_ENGINE_PLAYBACK_VISUAL),
         X(MF_MT_VIDEO_CHROMA_SITING),
@@ -1809,8 +1817,10 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_MT_AAC_PAYLOAD_TYPE),
         X(MF_TOPOLOGY_PLAYBACK_FRAMERATE),
         X(MF_SOURCE_READER_D3D11_BIND_FLAGS),
+        X(MF_TRANSCODE_ENCODINGPROFILE),
         X(MF_MT_AUDIO_FOLDDOWN_MATRIX),
         X(MF_MT_AUDIO_WMADRC_PEAKREF),
+        X(MFTranscodeContainerType_ADTS),
         X(MF_MT_AUDIO_WMADRC_PEAKTARGET),
         X(MF_TRANSFORM_FLAGS_Attribute),
         X(MF_MT_H264_SUPPORTED_RATE_CONTROL_MODES),
@@ -1879,6 +1889,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_MT_VIDEO_3D_FORMAT),
         X(MF_EVENT_STREAM_METADATA_KEYDATA),
         X(MF_READER_WRITER_D3D_MANAGER),
+        X(MFTranscodeContainerType_FLAC),
         X(MFSampleExtension_3DVideo),
         X(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE),
         X(MF_MT_H264_USAGE),
@@ -1897,6 +1908,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MFT_ENCODER_SUPPORTS_CONFIG_EVENT),
         X(MF_MT_AUDIO_FLAC_MAX_BLOCK_SIZE),
         X(MFT_FRIENDLY_NAME_Attribute),
+        X(MFTranscodeContainerType_AVI),
         X(MF_MT_FIXED_SIZE_SAMPLES),
         X(MFT_SUPPORT_3DVIDEO),
         X(MFT_SUPPORT_3DVIDEO),
@@ -1920,6 +1932,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_SA_D3D11_SHARED),
         X(MF_MT_PAN_SCAN_ENABLED),
         X(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL),
+        X(MFTranscodeContainerType_AC3),
         X(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID),
         X(MF_MT_DV_VAUX_CTRL_PACK),
         X(MFSampleExtension_ForwardedDecodeUnitType),
@@ -1934,6 +1947,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MFT_ENUM_HARDWARE_VENDOR_ID_Attribute),
         X(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE),
         X(MF_READWRITE_MMCSS_PRIORITY),
+        X(MF_TRANSCODE_DONOT_INSERT_ENCODER),
         X(MF_MT_VIDEO_3D),
         X(MF_EVENT_START_PRESENTATION_TIME),
         X(MF_EVENT_SESSIONCAPS),
@@ -1941,6 +1955,7 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_MEDIA_ENGINE_AUDIO_ENDPOINT_ROLE),
         X(MF_EVENT_SESSIONCAPS_DELTA),
         X(MF_EVENT_START_PRESENTATION_TIME_AT_OUTPUT),
+        X(MFTranscodeContainerType_AMR),
         X(MFSampleExtension_DecodeTimestamp),
         X(MF_MEDIA_ENGINE_COMPATIBILITY_MODE),
         X(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT),
@@ -1991,8 +2006,10 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_TOPONODE_STREAM_DESCRIPTOR),
         X(MF_TOPONODE_ERRORCODE),
         X(MF_TOPONODE_SEQUENCE_ELEMENTID),
+        X(MF_TRANSCODE_SKIP_METADATA_TRANSFER),
         X(MF_EVENT_MFT_CONTEXT),
         X(MF_MT_FORWARD_CUSTOM_SEI),
+        X(MFTranscodeContainerType_FMPEG4),
         X(MF_TOPONODE_CONNECT_METHOD),
         X(MFT_OUTPUT_TYPES_Attributes),
         X(MF_MT_IMAGE_LOSS_TOLERANT),
@@ -2002,9 +2019,11 @@ const char *debugstr_attr(const GUID *guid)
         X(MF_MT_ARBITRARY_HEADER),
         X(MF_TOPOLOGY_DXVA_MODE),
         X(MF_TOPONODE_LOCKED),
+        X(MF_TRANSCODE_QUALITYVSSPEED),
         X(MF_TOPONODE_WORKQUEUE_ID),
         X(MF_MEDIA_ENGINE_CONTINUE_ON_CODEC_ERROR),
         X(MF_TOPONODE_WORKQUEUE_MMCSS_CLASS),
+        X(MFTranscodeContainerType_MPEG2),
         X(MF_TOPONODE_DECRYPTOR),
         X(MF_EVENT_DO_THINNING),
         X(MF_TOPONODE_DISCARDABLE),
diff --git a/include/mfidl.idl b/include/mfidl.idl
index e492bf8daf0..14e2dd7ce4d 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -113,6 +113,24 @@ typedef enum _MFSTREAMSINK_MARKER_TYPE
     MFSTREAMSINK_MARKER_EVENT,
 } MFSTREAMSINK_MARKER_TYPE;
 
+typedef enum _MF_TRANSCODE_TOPOLOGYMODE_FLAGS
+{
+    MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,
+    MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1,
+} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
+
+typedef enum _MF_TRANSCODE_ADJUST_PROFILE_FLAGS
+{
+    MF_TRANSCODE_ADJUST_PROFILE_DEFAULT = 0,
+    MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES = 1,
+} MF_TRANSCODE_ADJUST_PROFILE_FLAGS;
+
+typedef enum _MF_VIDEO_PROCESSOR_ALGORITHM_TYPE
+{
+    MF_VIDEO_PROCESSOR_ALGORITHM_DEFAULT = 0,
+    MF_VIDEO_PROCESSOR_ALGORITHM_MRF_CRF_444 = 1,
+} MF_VIDEO_PROCESSOR_ALGORITHM_TYPE;
+
 [
     object,
     uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
@@ -1639,3 +1657,24 @@ cpp_quote("EXTERN_GUID(CLSID_WMADecMediaObject, 0x2eeb4adf, 0x4578, 0x4d10, 0xbc
 cpp_quote("EXTERN_GUID(CLSID_HttpSchemePlugin, 0x44cb442b, 0x9da9, 0x49df, 0xb3, 0xfd, 0x02, 0x37, 0x77, 0xb1, 0x6e, 0x50);")
 cpp_quote("EXTERN_GUID(CLSID_NetSchemePlugin, 0xe9f4ebab, 0xd97b, 0x463e, 0xa2, 0xb1, 0xc5, 0x4e, 0xe3, 0xf9, 0x41, 0x4d);")
 cpp_quote("EXTERN_GUID(CLSID_UrlmonSchemePlugin, 0x9ec4b4f9, 0x3029, 0x45ad, 0x94, 0x7b, 0x34, 0x4d, 0xe2, 0xa2, 0x49, 0xe2);")
+
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_ADJUST_PROFILE, 0x9c37c21b, 0x060f, 0x487c, 0xa6, 0x90, 0x80, 0xd7, 0xf5, 0x0d, 0x1c, 0x72);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_CONTAINERTYPE, 0x150ff23f, 0x4abc, 0x478b, 0xac, 0x4f, 0xe1, 0x91, 0x6f, 0xba, 0x1c, 0xca);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_DONOT_INSERT_ENCODER, 0xf45aa7ce, 0xab24, 0x4012, 0xa1, 0x1b, 0xdc, 0x82, 0x20, 0x20, 0x14, 0x10);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_ENCODINGPROFILE, 0x6947787c, 0xf508, 0x4ea9, 0xb1, 0xe9, 0xa1, 0xfe, 0x3a, 0x49, 0xfb, 0xc9);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_SKIP_METADATA_TRANSFER, 0x4e4469ef, 0xb571, 0x4959, 0x8f, 0x83, 0x3d, 0xcf, 0xba, 0x33, 0xa3, 0x93);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_TOPOLOGYMODE, 0x3e3df610, 0x394a, 0x40b2, 0x9d, 0xea, 0x3b, 0xab, 0x65, 0x0b, 0xeb, 0xf2);")
+cpp_quote("EXTERN_GUID(MF_TRANSCODE_QUALITYVSSPEED, 0x98332df8, 0x03cd, 0x476b, 0x89, 0xfa, 0x3f, 0x9e, 0x44, 0x2d, 0xec, 0x9f);")
+
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_3GP, 0x34c50167, 0x4472, 0x4f34, 0x9e, 0xa0, 0xc4, 0x9f, 0xba, 0xcf, 0x03, 0x7d);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AC3, 0x6d8d91c3, 0x8c91, 0x4ed1, 0x87, 0x42, 0x8c, 0x34, 0x7d, 0x5b, 0x44, 0xd0);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_ADTS, 0x132fd27d, 0x0f02, 0x43de, 0xa3, 0x01, 0x38, 0xfb, 0xbb, 0xb3, 0x83, 0x4e);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AMR, 0x25d5ad3, 0x621a, 0x475b, 0x96, 0x4d, 0x66, 0xb1, 0xc8, 0x24, 0xf0, 0x79);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_ASF, 0x430f6f6e, 0xb6bf, 0x4fc1, 0xa0, 0xbd, 0x9e, 0xe4, 0x6e, 0xee, 0x2a, 0xfb);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AVI, 0x7edfe8af, 0x402f, 0x4d76, 0xa3, 0x3c, 0x61, 0x9f, 0xd1, 0x57, 0xd0, 0xf1);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_FLAC, 0x31344aa3, 0x05a9, 0x42b5, 0x90, 0x1b, 0x8e, 0x9d, 0x42, 0x57, 0xf7, 0x5e);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_FMPEG4, 0x9ba876f1, 0x419f, 0x4b77, 0xa1, 0xe0, 0x35, 0x95, 0x9d, 0x9d, 0x40, 0x04);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MP3, 0xe438b912, 0x83f1, 0x4de6, 0x9e, 0x3a, 0x9f, 0xfb, 0xc6, 0xdd, 0x24, 0xd1);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MPEG2, 0xbfc2dbf9, 0x7bb4, 0x4f8f, 0xaf, 0xde, 0xe1, 0x12, 0xc4, 0x4b, 0xa8, 0x82);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MPEG4, 0xdc6cd05d, 0xb9d0, 0x40ef, 0xbd, 0x35, 0xfa, 0x62, 0x2c, 0x1a, 0xb2, 0x8a);")
+cpp_quote("EXTERN_GUID(MFTranscodeContainerType_WAVE, 0x64c3453c, 0x0f26, 0x4741, 0xbe, 0x63, 0x87, 0xbd, 0xf8, 0xbb, 0x93, 0x5b);")




More information about the wine-cvs mailing list