> And we should get rid of IMFMediaShutdownNotify, I think I missed when it was added. We should not need any custom interfaces to handle this.
IIRC it was required because shutting down the source also shuts down its event queue, it's then not possible for the session to be reliably notified of the shutdown without a dedicated callback. I believe @cmccarthy checked that it's also using a direct callback on Windows.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402#note_107607
We currently call session_handle_source_shutdown() for any MF_E_SHUTDOWN return value coming from any node. We should probably limit this to sources.
And we should get rid of IMFMediaShutdownNotify, I think I missed when it was added. We should not need any custom interfaces to handle this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402#note_107605
Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
> }
>
> session->source_shutdown_handled = FALSE;
> + if (session->state == SESSION_STATE_SOURCE_SHUTDOWN)
> + session->state = SESSION_STATE_STOPPED;
>
Should we merge "source_shutdown_handled" into this new state?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402#note_107604
Fix a regression from 225004e1. According to MSDN, if the biClrUsed field is zero, the bitmap should
use the maximum number of colours corresponding to the value of the biBitCount member for the
compression mode specified by biCompression.
--
v2: Revert "wineps: Use the correct colours when a monochrome bitmap without a colour table is the source."
gdi32/tests: Test recording SetDIBitsToDevice() for bitmaps with zero biClrUsed field in EMFs.
gdi32/tests: Test recording StretchDIBits() for bitmaps with zero biClrUsed field in EMFs.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8401
This should fix some spurious test failure in `test_media_session_Close`, as sometimes the source shutdown happens quickly enough and changes the session state to SESSION_STATE_STOPPED, causing the later Close command to succeed when it consistently returns E_SHUTDOWN on Windows.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402
Fix a regression from 225004e1. According to MSDN, if the biClrUsed field is zero, the bitmap should
use the maximum number of colours corresponding to the value of the biBitCount member for the
compression mode specified by biCompression.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8401
Attached windows demo code and results run on windows as follows:
[main.cpp](/uploads/80f085ee3930b921688ea13aa9d25dc4/main.cpp)
[ConsoleApplication1.exe](/uploads/1fdcbb14dfc38c3ecf109c438bfd21e5/ConsoleApplication1.exe)

and after add implementation , the running results in Wine are consistent with those in Windows.
Signed-off-by: chenjiangyi <chenjiangyi(a)uniontech.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8391
--
v2: server: Remove unused atom pinned member.
server: Keep computed atom hash in local variables.
server: Use a static array for atom table hash.
server: Forbid using string atom 0xc000.
server: Use a count instead of last atom index.
server: Use a static array for atom table atoms.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8337