Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mfplat/main.c | 13 +++++++++++++ include/mfidl.idl | 15 +++++++++++++++ 2 files changed, 28 insertions(+)
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index abb269c26f..05ee1070af 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -564,6 +564,7 @@ const char *debugstr_attr(const GUID *guid) X(MF_MT_WRAPPED_TYPE), X(MF_MT_AVG_BITRATE), X(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS), X(MF_MT_AUDIO_BLOCK_ALIGNMENT), X(MF_PD_PMPHOST_CONTEXT), X(MF_PD_APP_CONTEXT), @@ -581,16 +582,21 @@ const char *debugstr_attr(const GUID *guid) X(MF_MT_FRAME_SIZE), X(MF_SINK_WRITER_ASYNC_CALLBACK), X(MF_MT_FRAME_RATE_RANGE_MAX), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID), X(MF_MT_AUDIO_FLOAT_SAMPLES_PER_SECOND), X(MFSampleExtension_ForwardedDecodeUnits), X(MF_EVENT_SOURCE_TOPOLOGY_CANCELED), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID), + X(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME), X(MF_MT_VIDEO_ROTATION), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK), X(MF_MT_USER_DATA), X(MF_EVENT_STREAM_METADATA_SYSTEMID), X(MF_MT_AUDIO_CHANNEL_MASK), X(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN), X(MF_READWRITE_DISABLE_CONVERTERS), X(MFSampleExtension_Token), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY), X(MF_MT_AUDIO_VALID_BITS_PER_SAMPLE), X(MF_MT_VIDEO_NO_FRAME_ORDERING), X(MFSampleExtension_3DVideo_SampleFormat), @@ -619,6 +625,7 @@ const char *debugstr_attr(const GUID *guid) X(MF_BYTESTREAM_IFO_FILE_URI), X(MF_EVENT_TOPOLOGY_STATUS), X(MF_BYTESTREAM_DLNA_PROFILE_ID), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE), X(MF_MT_MAJOR_TYPE), X(MF_EVENT_SOURCE_CHARACTERISTICS), X(MF_EVENT_SOURCE_CHARACTERISTICS_OLD), @@ -644,10 +651,12 @@ const char *debugstr_attr(const GUID *guid) X(MF_EVENT_SCRUBSAMPLE_TIME), X(MF_MT_INTERLACE_MODE), X(MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE), X(MF_MT_AUDIO_PREFER_WAVEFORMATEX), X(MFSampleExtension_ForwardedDecodeUnitType), X(MF_MT_AUDIO_AVG_BYTES_PER_SECOND), X(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS), + X(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE), X(MF_EVENT_MFT_INPUT_STREAM_ID), X(MF_READWRITE_MMCSS_PRIORITY), X(MF_MT_VIDEO_3D), @@ -659,6 +668,7 @@ const char *debugstr_attr(const GUID *guid) X(MFSampleExtension_DecodeTimestamp), X(MF_MT_VIDEO_H264_NO_FMOASO), X(MF_SINK_WRITER_DISABLE_THROTTLING), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK), X(MF_READWRITE_D3D_OPTIONAL), X(MF_READWRITE_MMCSS_CLASS_AUDIO), X(MF_SOURCE_READER_DISABLE_CAMERA_PLUGINS), @@ -676,6 +686,7 @@ const char *debugstr_attr(const GUID *guid) X(MF_SOURCE_READER_DISABLE_DXVA), X(MF_MT_FORWARD_CUSTOM_NALU), X(MF_MT_SECURE), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE), X(MF_MT_VIDEO_3D_LEFT_IS_BASE), #undef X }; @@ -706,6 +717,7 @@ const char *debugstr_mf_guid(const GUID *guid) X(MFVideoFormat_RGB32), X(MFVideoFormat_RGB565), X(MFVideoFormat_RGB555), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID), X(MFVideoFormat_A2R10G10B10), X(MFMediaType_Script), X(MFMediaType_Image), @@ -789,6 +801,7 @@ const char *debugstr_mf_guid(const GUID *guid) X(MFVideoFormat_v410), X(MFMediaType_Video), X(MFAudioFormat_AAC_HDCP), + X(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID), X(MFAudioFormat_Dolby_AC3_HDCP), X(MFMediaType_Subtitle), X(MFMediaType_Stream), diff --git a/include/mfidl.idl b/include/mfidl.idl index ac59e0cb69..2bdb33938a 100644 --- a/include/mfidl.idl +++ b/include/mfidl.idl @@ -648,3 +648,18 @@ cpp_quote("EXTERN_GUID(MF_PD_PLAYBACK_BOUNDARY_TIME, 0x6c990d3b, 0xbb8e, 0x477a cpp_quote("EXTERN_GUID(MF_PD_AUDIO_ISVARIABLEBITRATE, 0x33026ee0, 0xe387, 0x4582, 0xae, 0x0a, 0x34, 0xa2, 0xad, 0x3b, 0xaa, 0x18);") cpp_quote("DEFINE_GUID(MF_PD_ADAPTIVE_STREAMING, 0xea0d5d97, 0x29f9, 0x488b, 0xae, 0x6b, 0x7d, 0x6b, 0x41, 0x36, 0x11, 0x2b);") cpp_quote("EXTERN_GUID(MF_PD_SAMI_STYLELIST, 0xe0b73c7f, 0x486d, 0x484e, 0x98, 0x72, 0x4d, 0xe5, 0x19, 0x2a, 0x7b, 0xf8);") + +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca, 0x0c78, 0x4de4, 0xa0, 0xa7, 0x3d, 0xda, 0xba, 0x0f, 0x24, 0xd4);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559, 0x52f8, 0x4fa2, 0xbb, 0xce, 0xac, 0xdb, 0x34, 0xa8, 0xec, 0x01);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK, 0x98d24b5e, 0x5930, 0x4614, 0xb5, 0xa1, 0xf6, 0x00, 0xf9, 0x35, 0x5a, 0x78);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258, 0xfeb9, 0x47a7, 0xa4, 0x53, 0x76, 0x3a, 0x7a, 0x8e, 0x1c, 0x5f);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e, 0x8c67, 0x4a18, 0x85, 0xd4, 0x12, 0xd3, 0x00, 0x40, 0x05, 0x52);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69, 0xc3bd, 0x4509, 0x94, 0x1d, 0x46, 0x7e, 0x4d, 0x24, 0x89, 0x9e);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba, 0x54d6, 0x4487, 0xa2, 0xa4, 0xec, 0x7c, 0x0d, 0x1b, 0xd1, 0x63);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID, 0x36689d42, 0xa06c, 0x40ae, 0x84, 0xcf, 0xf5, 0xa0, 0x34, 0x06, 0x7c, 0xc4);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8, 0x22bf, 0x4f8a, 0xbb, 0x3d, 0xd2, 0xc4, 0x97, 0x8c, 0x6e, 0x2f);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730, 0x4f2d, 0x41d5, 0x8f, 0x95, 0x0c, 0xc9, 0xa9, 0x12, 0xba, 0x26);") + +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID, 0x14dd9a1c, 0x7cff, 0x41be, 0xb1, 0xb9, 0xba, 0x1a, 0xc6, 0xec, 0xb5, 0x71);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a, 0x4ae7, 0x42d8, 0x99, 0xe0, 0x0a, 0x60, 0x13, 0xee, 0xf9, 0x0f);")
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mf/main.c | 15 +++++++++++++++ dlls/mf/mf.spec | 2 +- include/mfidl.idl | 1 + 3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/mf/main.c b/dlls/mf/main.c index 1b00ea502e..8500cd9cef 100644 --- a/dlls/mf/main.c +++ b/dlls/mf/main.c @@ -328,3 +328,18 @@ HRESULT WINAPI MFShutdownObject(IUnknown *object)
return S_OK; } + +/*********************************************************************** + * MFEnumDeviceSources (mf.@) + */ +HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *attributes, IMFActivate ***sources, UINT32 *count) +{ + FIXME("%p, %p, %p.\n", attributes, sources, count); + + if (!attributes || !sources || !count) + return E_INVALIDARG; + + *count = 0; + + return S_OK; +} diff --git a/dlls/mf/mf.spec b/dlls/mf/mf.spec index dd3d6d0688..9e3f6caef8 100644 --- a/dlls/mf/mf.spec +++ b/dlls/mf/mf.spec @@ -70,7 +70,7 @@ @ stub MFCreateVideoRendererActivate @ stub MFCreateWMAEncoderActivate @ stub MFCreateWMVEncoderActivate -@ stub MFEnumDeviceSources +@ stdcall MFEnumDeviceSources(ptr ptr ptr) @ stub MFGetMultipleServiceProviders @ stdcall MFGetService(ptr ptr ptr ptr) @ stdcall MFGetSupportedMimeTypes(ptr) diff --git a/include/mfidl.idl b/include/mfidl.idl index 2bdb33938a..64d39db77e 100644 --- a/include/mfidl.idl +++ b/include/mfidl.idl @@ -480,6 +480,7 @@ cpp_quote("HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **t cpp_quote("HRESULT WINAPI MFCreateTopology(IMFTopology **topology);") cpp_quote("HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE node_type, IMFTopologyNode **node);") cpp_quote("HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **loader);") +cpp_quote("HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *attributes, IMFActivate ***sources, UINT32 *count);") cpp_quote("HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *array);") cpp_quote("HRESULT WINAPI MFGetService(IUnknown *object, REFGUID service, REFIID iid, void **obj);") cpp_quote("MFTIME WINAPI MFGetSystemTime(void);")
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=51642
Your paranoid android.
=== debian9 (64 bit WoW report) ===
mfplat: mfplat.c:2482: Test failed: Unexpected refcount 1. Unhandled exception: page fault on execute access to 0x2f2e2e2f in 32-bit code (0x2f2e2e2f).
Report errors: mfplat:mfplat crashed (c0000005)
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=51641
Your paranoid android.
=== debian9 (32 bit report) ===
mfplat: mfplat.c:2482: Test failed: Unexpected refcount 1. Unhandled exception: page fault on execute access to 0x2f2e2e2f in 32-bit code (0x2f2e2e2f).
Report errors: mfplat:mfplat crashed (c0000005)