Commit graph

254 commits

Author SHA1 Message Date
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
Nikolay Sivov
f861bc2abc evr/mixer: Implement repainting requests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:57:30 +01:00
Nikolay Sivov
e57e19c236 evr/presenter: Add missing break in get_FramesDrawn() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:33:17 +01:00
Nikolay Sivov
7462d77f0b evr/presenter: Remove logic related to picture aspect ratio adjustment.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:33:14 +01:00
Nikolay Sivov
4b6df3a66c evr/mixer: Preserve frame aspect ratio when rendering.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:33:11 +01:00
Nikolay Sivov
82965df653 evr/mixer: Fix rectangle scaling helper argument check (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:33:08 +01:00
Nikolay Sivov
e0b30bc51a evr/mixer: Set destination alpha to fully opaque.
It's necessary for HW devices, software reference device does not support blending.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 17:10:06 +01:00
Nikolay Sivov
9d2dc9e1c1 evr/mixer: Set per-stream alpha to fully opaque.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 22:36:28 +01:00
Nikolay Sivov
aad6c57211 evr/mixer: Pass valid background color parameter to VideoProcessBlt().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 22:36:28 +01:00
Nikolay Sivov
e16c9a8604 evr/presenter: Add presented frames counter.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Nikolay Sivov
805b3e465f evr/mixer: Fix number of substreams in CreateVideoProcessor().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:52 +01:00
Andrew Eikum
6e11378df2 strmbase: Send EC_COMPLETE in IBaseFilter::Run() for unconnected renderers.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-01 21:03:02 +01:00
Zebediah Figura
8ef3c68f5f evr/tests: Test receiving EC_COMPLETE when not connected.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-01 21:02:56 +01:00