- v2:
- Allocate 3 buffers instead of 100.
- Add support for MFSampleExtension_Discontinuity.
--
v2: winegstreamer: Set the discontinuity flag in wg_transform.
include: Add MFSampleExtension_Discontinuity to mfapi.h.
winegstreamer: Allocate at least 3 buffers for MPEG audio in quartz parser.
winegstreamer: Release the samples when stopping the quartz transform.
winegstreamer: Hold the streaming lock while destroying wg_transform.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1384
This implements some events related to document/window load and unload / visibility changes. The latter is related in that native partially implements it, and only sends it when it is minimized or restored from being minimized, not on navigation or anything else.
The main issue for me is the visibilitychange patch. Since we don't control the container hwnd, and it can even be in another process, there is no way to be notified cleanly when it changes its minimization state. We can't subclass it either, as the tests show, it's not subclassed.
I implemented it now using an internal timer that polls for that, since it was the least invasive and works in all cases, including other process hwnd. Hooks wouldn't be able to do that, and are also more invasive IMO. I'm hoping for better ideas, though.
--
v4: mshtml: Implement pagehide event.
mshtml: Implement unload event.
mshtml: Dispatch beforeunload event to the window.
mshtml: Store the nsevent listener descs in a table.
mshtml: Implement pageshow event.
mshtml: Add visibilitychange event stub.
mshtml: Dispatch Gecko events to the window if there's no node.
mshtml: Do not register Gecko load event handler twice.
mshtml: Allow EVENT_BIND_TO_TARGET to bind to the window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1373
This is my first time implementing an interface so thorough feedback would be appreciated.
--
v5: windows.media: Implement IClosedCaptionPropertiesStatics interface.
include/windowscontracts: Bump contractversion to 14.
windows.media: Add stub DLL.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1343
It is possible that a stream is destroyed while another thread is waiting on
event_empty_cond or event_cond. The waiting thread should have the opportunity
to be rescheduled and exit the critical section before the condition variables
and the mutex are destroyed.
--
v3: winegstreamer: Synchronize media source async commands and shutdown.
winegstreamer: Free the GStreamer buffer when freeing a WG parser stream.
winegstreamer: Synchronize access to the media source from callbacks.
winegstreamer: Synchronize concurrent access to the media stream.
winegstreamer: Synchronize concurrent access to the media source.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1278