Udev monitor monitors the whole input subsystem, but not all devices
in the input subsystem have devnodes associated to them.
This MR makes the event processing ignore such devices.
All device handling assumes devices have devnodes, so here we just
simply ignore all devices which do not have one. They are irrelevant.
Previously, udev bus thread aborted when an event for a device without
a devnode was processed:
```
10111.330:0068:0084:trace:hid:process_monitor_event Received action "remove" for udev device (null)
10111.330:0068:0084:warn:hid:bus_main_thread L"UDEV" bus wait returned status 0xc0000005
```
Just plugging in and out a normal mouse was enough cause this.
This was because root input devices (which do not have devnodes) were
handled too and `find_device_from_devnode()` choked on NULL argument.
--
v3: winebus: change debugging class of an error case from WARN to ERR.
winebus: change debugging class of an error case from FIXME to ERR
winebus: group local variable declarations
winebus: ignore udev events of devices which do not have devnodes
winebus: log ERR if find_device_from_devnode() somehow gets called with NULL
https://gitlab.winehq.org/wine/wine/-/merge_requests/5385
Udev monitor monitors the whole input subsystem, but not all devices
in the input subsystem have devnodes associated to them.
This MR makes the event processing ignore such devices.
All device handling assumes devices have devnodes, so here we just
simply ignore all devices which do not have one. They are irrelevant.
Previously, udev bus thread aborted when an event for a device without
a devnode was processed:
```
10111.330:0068:0084:trace:hid:process_monitor_event Received action "remove" for udev device (null)
10111.330:0068:0084:warn:hid:bus_main_thread L"UDEV" bus wait returned status 0xc0000005
```
Just plugging in and out a normal mouse was enough cause this.
This was because root input devices (which do not have devnodes) were
handled too and `find_device_from_devnode()` choked on NULL argument.
--
v2: winebus: group local variable declarations
https://gitlab.winehq.org/wine/wine/-/merge_requests/5385
Udev monitor monitors the whole input subsystem, but not all devices
in the input subsystem have devnodes associated to them.
This MR makes the event processing ignore such devices.
All device handling assumes devices have devnodes, so here we just
simply ignore all devices which do not have one. They are irrelevant.
Previously, udev bus thread aborted when an event for a device without
a devnode was processed:
```
10111.330:0068:0084:trace:hid:process_monitor_event Received action "remove" for udev device (null)
10111.330:0068:0084:warn:hid:bus_main_thread L"UDEV" bus wait returned status 0xc0000005
```
Just plugging in and out a normal mouse was enough cause this.
This was because root input devices (which do not have devnodes) were
handled too and `find_device_from_devnode()` choked on NULL argument.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5385
This is a heavily simplified version of Michael Müller's staging patch
(the staging version got broken by the PE/Unix split)
I rebased that staging patch but I thought it was too big for what it
does (so I did this instead)
As for automatically changing the status, SM_MEDIACENTER would require
Windows version checks (which are never used in Wine) and SM_TABLETPC
would likely require touchscreen/tablet detection (rbernon is working
on some touch stuff so that could be useful)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5234
Part 1 of a set of changes for making the recording of highlights and "Play of the Game"s to mp4 in Overwatch work.
This MR contains most of the required IMFMediaSink changes.
--
v4: winegstreamer: Avoid an assert in Gstreamer code.
mfplat: Return NULL for *stream_sink on error in IMFMediaSink::AddStreamSink.
mfplat: Accept any media types without a MF_MT_USER_DATA attribute in MFCreateWaveFormatExFromMFMediaType.
mf/tests: Add test for MEStreamSinkStarted and MEStreamSinkRequestSample events.
winegstreamer: Add support for ADTS container format (.aac files).
winegstreamer: Request new samples after starting media sink and after processing a sample.
mf/tests: Test media sink creation with a media type without MF_MT_USER_DATA attribute.
winegstreamer: Generate AAC codec data if not provided in a media type.
winegstreamer: Implement IMFStreamSink::IMFMediaTypeHandler.GetMajorType.
winegstreamer: Copy media type instead of returning a reference in IMFStreamSink::IMFMediaTypeHandler.GetCurrentMediaType.
winegstreamer: Implement IMFMediaSink::GetPresentationClock.
winegstreamer: Implement IMFMediaSink::SetPresentationClock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5159
On Mon Mar 25 12:06:39 2024 +0000, Nikolay Sivov wrote:
> It is correct. We should check for negative values only. Constant
> evaluated expressions are not allowed.
We should have tests for that then; I don't think we do currently.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/739#note_66028
When present, the aperture indicates the area of the sample's buffers to display. The frame size instead includes some undesired padding. This is the case when color planes are aligned, such as with YUV output from a decoder MFT.
--
v3: evr/mixer: Respect input media type MF_MT_GEOMETRIC_APERTURE.
evr/tests: Add more video mixer input media type aperture tests.
evr/tests: Split check_presenter_output to a separate helper.
evr/tests: Split create_d3d_sample to a separate helper.
mf/tests: Check that pan scan and geometric apertures are set.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5297