[Bug 59506] New: IMFMediaEngine video playback fails: no MFT_CATEGORY_VIDEO_PROCESSOR registered for NV12→RGB32 color conversion
http://bugs.winehq.org/show_bug.cgi?id=59506 Bug ID: 59506 Summary: IMFMediaEngine video playback fails: no MFT_CATEGORY_VIDEO_PROCESSOR registered for NV12→RGB32 color conversion Product: Wine Version: 11.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mfplat Assignee: wine-bugs@list.winehq.org Reporter: Loong.0x00@gmail.com Distribution: --- IMFMediaEngine video playback fails because no MFT_CATEGORY_VIDEO_PROCESSOR transform is registered to handle color space conversion (NV12 → RGB32). On Windows, the Color Converter DSP (CLSID_CColorConvertDMO) handles this. Wine does not register any equivalent MFT in this category. == Failure chain (traced with WINEDEBUG=+mf,+mfplat,+mfmediaengine) == 1. IMFMediaEngine::SetSourceFromByteStream("video.mp4") → OK 2. Source resolver creates media source from byte stream → OK 3. topology_loader_Load runs (real implementation, not a stub despite FIXME string) 4. MFTEnumEx(MFT_CATEGORY_VIDEO_DECODER, H264) → finds h264_decoder, activates OK 5. GStreamer pipeline: h264parse → avdec_h264 → videoconvert, all linked successfully 6. H264 decoder outputs NV12 7. video_frame_sink expects RGB32 (MFVideoFormat_RGB32, GUID {00000020-0000-0010-8000-00aa00389b71}) 8. MFTEnumEx(MFT_CATEGORY_VIDEO_PROCESSOR, NV12→RGB32) → returns 0 results ← ROOT CAUSE 9. topology_branch_connect returns 0xc00d5212 (MF_E_TRANSFORM_NOT_POSSIBLE) 10. session_set_topology fails with 0xc00d36b9 (MF_E_TOPO_UNSUPPORTED) 11. MEError 0xc00d3e85 (MF_E_TOPO_CODEC_NOT_FOUND) propagated to application == Additional stubs == IMFMediaEngineEx::SetAutoPlay() and SetLoop() store the flag internally but the playback engine never consumes it, so video looping does not work. == Affected application == Wallpaper Engine (Steam AppID 431960). Scene wallpapers with embedded video textures use IMFMediaEngine::SetSourceFromByteStream() to decode .mp4 files as texture layers. All such wallpapers fail with grey/blank video layers. == Relevant trace excerpt == topology_loader_Load iface ..., input_topology ..., ret_topology ..., current_topology 0x0 stub! MFTEnumEx MFT_CATEGORY_VIDEO_DECODER, 0x3f, {MFMediaType_Video,MFVideoFormat_H264}, ... → found h264_decoder h264_decoder_create ... wg_transform_create: input caps video/x-h264, output caps video/x-raw, format=I420, 1920x1080 gst_pad_link_full: linked avdec_h264-0:src and videoconvert0:sink, successful MFTEnumEx MFT_CATEGORY_VIDEO_PROCESSOR, 0x3f, {MFMediaType_Video,MFVideoFormat_NV12}, {MFMediaType_Video,{00000020-...}} → 0 results topology_branch_connect returning 0xc00d5212 topology_branch_connect returning 0xc00d36b9 session_set_topology failed to load topology ..., hr 0xc00d36b9 == System == Wine 11.4 (also reproduced with Valve's wine-staging 10.0 via GE-Proton10-32) Arch Linux x86_64, kernel 6.19.6 GStreamer 1.22.5, h264 decoders available (avdec_h264, openh264dec, nvh264dec) == Suggested fix == Register a GStreamer-backed MFT_CATEGORY_VIDEO_PROCESSOR that wraps videoconvert for NV12/I420 → RGB32 conversion. The GStreamer videoconvert element is already used internally by the decoder pipeline. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 Stian Low <wineryyyyy@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wineryyyyy@gmail.com --- Comment #1 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 81611 --> http://bugs.winehq.org/attachment.cgi?id=81611 Screenshots videos playing for wine-11.14-1012f3d9950 and other probably unrelated bugs considerably improved via wine-staging-11.10-6e5df223. mfplat seems not the cause of this bug because videos play via video right click menu -> Play in Window -> Maximized Preview. Bug therefore seems to be that video is not played in the background when clicked as demoed which seems caused by some other component than mfplat such as windowing if not d3d: - https://www.youtube.com/watch?v=F7I5rJBr2tY Therefore bug should probably be renamed more accurately state app/game name and actual bug such as: "Wallpaper Engine (Steam 431960) video fails to play videos for desktop background" winecfg Emulate virtual desktop does not fix. renderer=gl and vulkan (damavand) behave similar. Unclear if manually opening via Maximized Preview and leaving in the background is considered a workaround until fixed and if it performs worse than however it is expected to play in background otherwise. Toggling maximizing window for window improves some rendering for non-staging but still considerably broken vs staging which seems recommendable for use as of wine-11.14. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 --- Comment #2 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Loong.0x00 from comment #0)
== Suggested fix == Register a GStreamer-backed MFT_CATEGORY_VIDEO_PROCESSOR that wraps videoconvert for NV12/I420 → RGB32 conversion. The GStreamer videoconvert element is already used internally by the decoder pipeline.
If such a fix is ever relevant (which seems not the case for this bug) then these bugs may help: - https://bugs.winehq.org/show_bug.cgi?id=56614#c26 - https://bugs.winehq.org/buglist.cgi?quicksearch=%2211398%22 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 --- Comment #3 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #1)
mfplat seems not the cause of this bug because videos play via video right click menu -> Play in Window -> Maximized Preview.
Retesting because unclear if tests I ran contained videos as described. Therefore bug description may be valid. If so will test merge request that has recently fixed/worked around games with videos involving NV12/I420 RGB32. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 --- Comment #4 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Loong.0x00 from comment #0)
== Affected application == Wallpaper Engine (Steam AppID 431960). Scene wallpapers with embedded video textures use IMFMediaEngine::SetSourceFromByteStream() to decode .mp4 files as texture layers. All such wallpapers fail with grey/blank video layers.
If you remember some specific wallpapers with videos please provide them because all seem to render correctly so far but logs are missing gstreamer/mfplat which may indicate that I haven't tested in such a way that may reproduce this bug. AppDB seems to be missing Wallpaper Engine so this bug may serve as ref in the meantime: - https://appdb.winehq.org/objectManager.php?bIsQueue=false&bIsRejected=false&... Surprisingly protondb also seems to be missing an entry: - https://www.protondb.com/search?q=wallpaper -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 --- Comment #5 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 81614 --> http://bugs.winehq.org/attachment.cgi?id=81614 Screenshot confirming black screen for .mp4 videos for custom wallpaper. which logs gstreamer and mfplat as reported (In reply to Stian Low from comment #4)
If you remember some specific wallpapers with videos please provide them
Nevermind. Wallpaper Editor supports opening .mp4 files. Bug is not fixed via patch that fixes other videos bugs and is missing signature d3d logs which typically indicate patch applies as fix/workaround. Therefore this bug description seems valid and still in need of fixes. Thanks for reporting and sorry for any confusions. I'll take a closer look at this bug after video bugs currently my primary focus. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59506 --- Comment #6 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 81615 --> http://bugs.winehq.org/attachment.cgi?id=81615 Logs without any WINEDEBUGs right before gstreamer/mfplat -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla