For h264 byte-stream format, we should set "streamheader".
"codec_data" is for avc.
We also set timestamp of the buffer to 0 because
mp4mux will be error if the PTS is none.
Pointer confinement may only be enabled by the compositor if the pointer
enters the confine region. If the region is small (as in many
mouselook cases) it's very likely that this will never happen and the
pointer will remained unconfined.
To allow mouselook to work more reliably, prefer to lock the pointer if
a window is confined and the cursor is not visible.
Use the zwp_pointer_constraints_v1 protocol to implement cursor
clipping. Note that Wayland only allows us to constrain the cursor
within the extents of a particular target surface.
Borrow the concept of "managed" windows from WineX11 and use it
to decide whether a window should become the foreground window
when receiving the Wayland keyboard focus.
gcc currently assumes the stack alignment for i686-w64-mingw32 is 16, which is
essentially wrong. It works around this in most cases by applying -mstackrealign
when SSE is in use. However, this doesn't address the case of manually aligned
types (i.e. DECLSPEC_ALIGN), and it also for some reason doesn't seem to apply
when -mavx512f is in use, which seems to be an independent gcc bug.
The correct solution on the gcc end is not to assume that the stack is 4-byte
aligned. -mpreferred-stack-boundary=2 achieves exactly this, and there is motion
upstream to address this by effectively making this setting the default. Since
this will take time to propagate downstream, though, it seems prudent to address
this bug locally by essentially applying the same fix downstream.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55007
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55899
Rewrite requires renderless mode in the VMR7, which means that it needs to
actually use ddraw instead of d3d9. At that point the two will share almost no
common code. Split them into separate objects which live in separate files.
This commit essentially copies vmr9.c into vmr7.c, then removes the
VMR7-specific interfaces from the VMR9 and vice versa. The default presenter is
retained for now (but will be replaced eventually).
Since the VMR7 no longer exposes IVMRSurfaceAllocatorNotify9, the relevant calls
to AdviseNotify(), SetD3DDevice(), and AllocateSurfaceHelper() are changed from
COM methods to direct function calls. No other change should be made.