Commit graph

266 commits

Author SHA1 Message Date
Nikolay Sivov
ba664e108e evr/dshow: Handle YUY2 sample copy.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53810
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-01-17 11:07:00 +01:00
Nikolay Sivov
05892c2369 evr/tests: Skip tests if D3D9 is unusable.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-11-20 17:43:20 +01:00
Nikolay Sivov
055e2c166e evr/presenter: Handle failure to initialize D3D9.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-11-20 17:43:19 +01:00
Rémi Bernon
8ffebcf4ab evr: Set last presented sample atomically.
Fixes a race condition and crashes in Secret of Mana.

The queue critical section is held in video_presenter_sample_present
while GetCurrentImage only locks the presenter CS. Double locking is
tricky and atomic operation is appropriate to swap the sample pointer.
2023-11-20 17:40:35 +01:00
Alexandre Julliard
7ccb5df0fc makefiles: Always use the global SOURCES variable for .rc files. 2023-11-01 22:43:56 +01:00
Alexandre Julliard
c432eac726 makefiles: Always use the global SOURCES variable for .idl files. 2023-11-01 22:43:50 +01:00
Alex Henrie
4fef708660 evr: Use debugstr_fourcc instead of debugstr_an. 2023-10-17 18:18:57 +02:00
Alistair Leslie-Hughes
5971885680 evr: Remove DECLSPEC_HIDDEN usage. 2023-08-23 17:33:48 +02:00
Santino Mazza
f8cf88dcf4 evr: Remove process input handling from streaming thread. 2023-08-14 13:32:16 +02:00
Santino Mazza
fa3ebd5044 evr: Don't lock presenter allocator when calling NotifyRelease.
The changes in the video sample allocator are not part of the public
api specification, it's only made for internal use in the evr presenter
implementation.
2023-08-14 13:32:14 +02:00
Santino Mazza
7c0731e184 evr: Create critical section for sample queue. 2023-08-14 13:32:14 +02:00
Santino Mazza
072fe5d62a evr: Release sample queue when streaming ends. 2023-08-14 13:32:14 +02:00
Rémi Bernon
486531ca8a evr: Respect RGB format stride in GetCurrentImage. 2023-06-06 11:22:55 +02:00
Rémi Bernon
df91b31428 evr/tests: Test IMFVideoDisplayControl_GetCurrentImage orientation. 2023-06-06 11:22:52 +02:00
Eric Pouech
0cc4a38aae evr: Fix incorrect integral computation.
Note: typeof (int * unsigned) is unsigned.
So:
- on 64bit CPUs, where sizeof(int) = 4 < sizeof(void*) = 8,
- when the result of the multiplication is supposed to be negative
- there's no propagation of the negative sign from 32bit to 64 bit integers

Fixes a crash in Age of Empire II.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-05-03 16:48:41 +02:00
Nikolay Sivov
69b98b2b79 mfplat: Handle more video subtypes in MFInitMediaTypeFromAMMediaType().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-04-10 14:18:00 +02:00
Tingzhong Luo
c56638278c evr: Fix crash when clearing input type for the mixer.
Signed-off-by: Tingzhong Luo <luotingzhong@uniontech.com>
2023-02-24 22:23:12 +01:00
Nikolay Sivov
a1d2e52468 evr/filter: Initial implementation of sample rendering.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-09-06 21:40:39 +02:00
Nikolay Sivov
50cd67d069 evr/filter: Notify mixer and presenter on state changes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-09-05 13:39:56 +02:00
Nikolay Sivov
9d58733b3b evr/filter: Initialize interface pointer in GetService() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-31 17:44:53 +02:00
Nikolay Sivov
24e90e4350 evr/filter: Implement pin's connect/disconnect.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-30 21:38:39 +02:00
Nikolay Sivov
f143af50a3 evr/filter: Implement media type testing for QueryAccept().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-29 20:04:17 +02:00
Nikolay Sivov
4d7b3c7861 evr/filter: Add IMFTopologyServiceLookup stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-29 20:04:17 +02:00
Nikolay Sivov
27972922c7 evr/filter: Add IMediaEventSink stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-29 20:04:17 +02:00
Nikolay Sivov
43e70580f4 mfplat/tests: Add some tests for legacy media type conersion functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-27 16:53:09 +02:00
Nikolay Sivov
120ca2ff52 evr/tests: Add a test to show that IMFVideoDisplayControl is accessible.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-19 22:45:18 +02:00
Nikolay Sivov
b1c3bb4f0c evr: Implement lazy initialization with mixer and presenter instances.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-19 22:45:18 +02:00
Nikolay Sivov
bf8c08d9e3 evr: Add IMFVideoRenderer stub to the filter.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-19 22:45:18 +02:00
Nikolay Sivov
7f71eda497 evr: Add IMFGetService stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-08-19 22:45:18 +02:00
Zhiyi Zhang
0519f53ca0 evr/tests: Fix resource leaks.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53201
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-06-30 12:32:48 +02:00
Zhiyi Zhang
86034654a8 evr: Release buffer after adding it to sample.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53201
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-06-30 12:32:48 +02:00
Nikolay Sivov
2686550a99 evr/sample: Use proper locking method for SetAllocator().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-23 10:24:18 +02:00
Nikolay Sivov
d686663d22 evr/sample: Use explicit critical section for release handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:37:39 +02:00
Nikolay Sivov
ce71f5a05f evr/sample: Avoid a race condition when releasing a tracked sample.
Same as b180775121.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:37:35 +02:00
Nikolay Sivov
0b9c35edb4 evr: Add IAMFilterMiscFlags interface.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-12 09:26:27 +02:00
Nikolay Sivov
28423d79d4 evr/mixer: Implement GetVideoProcessorCaps().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-11 17:34:48 +02:00
Nikolay Sivov
0289b9c23a evr/mixer: Implement GetAvailableVideoProcessorModes().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-11 17:34:48 +02:00
Nikolay Sivov
7c908eb9a4 evr: Cleanup class factory methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-08 11:49:58 +02:00
Nikolay Sivov
74e0985e1b evr/presenter: Make GetCurrentImage() work without output window.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-06 23:07:20 +02:00
Andrew Eikum
2bf3a58518 evr/presenter: Place early samples back to the front of the queue.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-06 23:07:20 +02:00
Andrew Eikum
0957268103 evr/presenter: Fix hns-to-msec conversion multiplier.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-06 23:07:20 +02:00
Nikolay Sivov
e4f911153d evr/tests: Build without WINE_NO_LONG_TYPES.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 11:02:12 +01:00
Nikolay Sivov
1a47ab043f evr/mixer: Remove incorrect trace.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-02 18:43:10 +01:00
Nikolay Sivov
22fda5990f evr/presenter: Initial implementation of GetCurrentImage().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-01 18:23:31 +01:00
Nikolay Sivov
e091d5e87c evr: Fix long types warnings.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-01 18:23:28 +01:00
Eric Pouech
c47f305295 evr: Use correct integral type.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-31 18:38:55 +01:00
Fabian Maurer
892007d2e4 evr/tests: Avoid "misleading indentation" warnings.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 21:09:19 +01:00
Alexandre Julliard
f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Nikolay Sivov
12a1b4b360 dxva2: Introduce progressive processor device.
The point is to provide a device, with similar caps and NV12 support,
while keeping software device on its own, the way it should be.

This is based on research by Derek Lesho.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-23 13:39:19 +01:00
Nikolay Sivov
d86580b69f evr/mixer: Flush on MFT_MESSAGE_NOTIFY_END_STREAMING.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:57:32 +01:00