When count = 0, returned value may become -1 which seems wrong in
the case of successful process_events() call. Also MSDN suggests
that `count` may be a valid return value in this case. When -1 is
returned, it may cause SetLastError to -1 as well which is not a
valid error code AFAIK.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54405
--
v2: wine32u: move count fixup out of MsgWaitForMultipleObjectsEx drivers
https://gitlab.winehq.org/wine/wine/-/merge_requests/2067
--
v2: msvcrt: Fix _wdupenv_s behavior with missing env var.
msvcrt: Fix _dupenv_s behavior with missing env var.
msvcr80/tests: Test _wdupenv_s outcome with missing env var.
msvcr80/tests: Test _dupenv_s outcome with missing env var.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2267
In the implementation of
[`evr_disconnect()`](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/evr.c#L325-333),
it will try to clear types of mixer by pass null to
`IMFTransform_SetInputType()`:
```c
static void evr_disconnect(struct strmbase_renderer *iface)
{
struct evr *filter = impl_from_strmbase_renderer(iface);
if (filter->mixer)
IMFTransform_SetInputType(filter->mixer, 0, NULL, 0);
evr_set_input_type(filter, NULL);
evr_release_services(filter);
}
```
This null ptr (`media_type`) will be pass to
[`video_mixer_collect_output_types()`](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/mixer.c#L869)
and cause a [crash](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/mixer.c…:
```c
static HRESULT WINAPI video_mixer_transform_SetInputType(IMFTransform *iface, DWORD id, IMFMediaType *media_type, DWORD flags)
{
...
if (!mixer->device_manager)
hr = MF_E_NOT_INITIALIZED;
else
{
if (SUCCEEDED(hr = video_mixer_get_processor_service(mixer, &service)))
{
if (SUCCEEDED(hr = video_mixer_init_dxva_videodesc(media_type, &video_desc)))
...
```
In this patch, `video_mixer_transform_SetInputType()` will only clear types when
got a NULL `media_type` and return `S_OK`.
--
v3: evr: Fix crash when clear input type for the mixer
https://gitlab.winehq.org/wine/wine/-/merge_requests/2263
Public API for parsing and serialising DXBC blobs.
--
v2: vkd3d-shader/dxbc: Introduce API for serialising DXBC blobs.
vkd3d-shader/dxbc: Introduce API for parsing DXBC blobs.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/103
In the implementation of
[`evr_disconnect()`](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/evr.c#L325-333),
it will try to clear types of mixer by pass null to
`IMFTransform_SetInputType()`:
```c
static void evr_disconnect(struct strmbase_renderer *iface)
{
struct evr *filter = impl_from_strmbase_renderer(iface);
if (filter->mixer)
IMFTransform_SetInputType(filter->mixer, 0, NULL, 0);
evr_set_input_type(filter, NULL);
evr_release_services(filter);
}
```
This null ptr (`media_type`) will be pass to
[`video_mixer_collect_output_types()`](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/mixer.c#L869)
and cause a [crash](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.2/dlls/evr/mixer.c…:
```c
static HRESULT WINAPI video_mixer_transform_SetInputType(IMFTransform *iface, DWORD id, IMFMediaType *media_type, DWORD flags)
{
...
if (!mixer->device_manager)
hr = MF_E_NOT_INITIALIZED;
else
{
if (SUCCEEDED(hr = video_mixer_get_processor_service(mixer, &service)))
{
if (SUCCEEDED(hr = video_mixer_init_dxva_videodesc(media_type, &video_desc)))
...
```
In this patch, `video_mixer_transform_SetInputType()` will only clear types when
got a NULL `media_type` and return `S_OK`.
--
v2: evr: Fix crash when clear input type for the mixer
https://gitlab.winehq.org/wine/wine/-/merge_requests/2263
--
v2: winegstreamer: Implement ProcessInput and ProcessOutput for WMV decoder DMO.
winegstreamer: Create wg_transform for WMV decoder.
winegstreamer: Better handle framerate.
winegstreamer: Add format field to wmv wg_format.
winegstreamer: Implement wg_transform data read/write for DMO.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2258
When dmSize is zero or greter than size of input buffer, `IsValidDevmodeW()`
failed in Windows 10.
But current implementation in wine, it will return `true` because
there is no check to `dm.dmSize`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2262