Commit graph

259 commits

Author SHA1 Message Date
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
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