Commit Graph

442 Commits

Author SHA1 Message Date
Nikolay Sivov d1662e4beb mf/session: Expose rate control interfaces.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:39 +01:00
Nikolay Sivov dab54bd849 mf/tests: Add some more tests for session rate control.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:38 +01:00
Nikolay Sivov f2bb763c9c mf/session: Get rid of some interface pointers casts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Nikolay Sivov d8bbbfd589 mf/session: Implement IsRateSupported().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Andrew Eikum 43993feb2c mf/session: Forward MR_STREAM_VOLUME_SERVICE requests to SAR node.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-28 17:51:53 +02:00
Alexandre Julliard 088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Nikolay Sivov b14ba22a2c mf/evr: Remove duplicated check in GetStreamSinkCount() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Francois Gouget bc20705c29 mf: Remove WINAPI on static functions where not needed.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 21:43:03 +02:00
Michael Stefaniuc 3fa19c8c75 mf/tests: Avoid cast from COM object to interface.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 10:39:50 +02:00
Nikolay Sivov d3b9ff2efd mf/tests: Add some tests for EVR stream services.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-02 22:57:38 +02:00
Nikolay Sivov b3e321dfd5 mf/session: Fail start requests when no topology was set.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 17:44:34 +02:00
Nikolay Sivov 10ba5a90fc mf/session: Add a helper to send events while completing commands.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 17:44:34 +02:00
Nikolay Sivov 64e1e4d62d mf/session: Use better failure code for rendering node service requests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:23:13 +02:00
Nikolay Sivov 8b6f276290 mf/session: Forward MR_POLICY_VOLUME_SERVICE service requests to the SAR node.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:23:11 +02:00
Nikolay Sivov 1a4136a9bc mf/evr: Query d3d device manager via MR_VIDEO_RENDER_SERVICE service.
Default presenter responds to MR_VIDEO_ACCELERATION_SERVICE as well, but we'll
have to be compatible to integrate with custom presenters.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:12:58 +02:00
Giovanni Mascellani adffa11609 mf/sar: Allow requesting more than a sample per period.
The IAudioClient implementation from both Windows and winepulse.drv
never sets the event more than once per period, which is usually
around 10 ms long. Some codecs produce audio samples shorter than
10 ms, so it is critical that the SAR is able to process more than
a sample per period.

This is not currently the case: a new sample is requested only in
audio_renderer_render, which is executed (at most) once per period.
This results in the SAR not being able to keep up with the audio
client, and eventually underrunning.

With this patch the SAR keeps a count of how many frames are
currently queued, and a new sample is immediately requested if
the internal queue has less than a buffer worth of frames.

This patch fixes audio stuttering problems in the logo videos
of Borderlands 3, Deep Rock Galactic and Mutant Year Zero.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 17:49:21 +02:00
Nikolay Sivov 396df44c7b mf/session: Fix typo in a trace message.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 20:44:58 +02:00
Nikolay Sivov 7dba45f6ec mf/session: Treat only started/paused/stopped as valid states for start command.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Nikolay Sivov 5eec2141dc mf/session: Complete start command when called from invalid state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon d78e5d999c mf/session: Complete session_start command even if already started.
Seek is not implemented but not completing the command makes pending or
later queued commands to not be executed.

This partially fixes Guilty Gear Strive being stuck on character
selection screen.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Nikolay Sivov 04a26628d1 mf/session: Fix pause command handling from invalid states.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Nikolay Sivov cba7616d1a mf/session: Send failed event when clearing topologies from closed state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Giovanni Mascellani da171b8f90 mf/sar: Query for current padding before requesting sample buffer.
According to both MSDN and our impementation, GetBufferSize returns the
size of the buffer, but it doesn't guarantee that all of it is available.
In order to know how much of it is available, the caller must also call
GetCurrentPadding and subtract that number to the buffer size. Failing
to do so might result in GetBuffer returning an error.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-22 17:57:47 +02:00
Nikolay Sivov bab4f2939e mf: Use CRT allocation functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-17 20:01:37 +02:00
Nikolay Sivov 09bb5d949f mf/session: Reset topology status back to READY when stopped.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-15 20:42:25 +02:00
Nikolay Sivov f0ebd66189 mf/session: Reset per-node end of stream flags when stopped.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-15 20:42:25 +02:00
Giovanni Mascellani 6a68e345f8 mf/session: Reset END_OF_PRESENTATION flags when stopped.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-15 20:42:25 +02:00
Nikolay Sivov 0b774df387 mf: Move presentation clock implementation to a separate file.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-15 20:42:25 +02:00
Giovanni Mascellani bcd2b99d95 mf/session: Fix computing fastest and slowest presentation rates.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-08 22:28:44 +02:00
Giovanni Mascellani 6ac1cd51bd mf/samplegrabber: Handle paused state.
The following behaviors from Windows are implemented:
 * Transitions from STOPPED to PAUSED are forbidden;
 * Sample requests are only emitted for transitions from STOPPED to
   RUNNING (i.e., not when transitioning from PAUSED);
 * Transition events are emitted again when transitioning from a
   state to the same state, except when such state is PAUSED.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-03 17:42:19 +02:00
Nikolay Sivov 33ea3fc806 mf/topology: Implement MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES connection method.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-31 17:53:51 +02:00
Nikolay Sivov 20a1eb3b25 mf/session: Do not drop pending commands when clearing current presentation.
Calling Start() short after SetTopology() has a good chance of getting lost,
because clearing logic will drop all pending commands. This is easy to reproduce
with IMFPMediaPlayer, which works reliably on Windows.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-28 21:53:07 +02:00
Nikolay Sivov 7d51f493b8 mf/evr: Implement Flush() for streams.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Nikolay Sivov 4992fddc00 mf/evr: Post sink marker events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Nikolay Sivov 9d307bb3c2 mf/evr: Pass stream start/end messages to the mixer.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-06 18:53:48 +02:00
Alexandre Julliard 5d82baf974 winecrt0: Add a default implementation DllRegisterServer()/DllUnregisterServer().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Alexandre Julliard bd6b53740c winecrt0: Add a default implementation for DllCanUnloadNow().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Nikolay Sivov 51a0cdf52d mf/evr: Add slowest/fastest rate support methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 12:20:47 +02:00
Nikolay Sivov 71f8e0d328 mf/evr: Add IMFRateSupport stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 12:20:46 +02:00
Nikolay Sivov 2a6f0a4093 mf/evr: Handle mixer sample requests during sink state transitions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 12:20:44 +02:00
Nikolay Sivov b0118c7c7d mf/evr: Return current device manager as a service.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 12:20:42 +02:00
Nikolay Sivov f1fd0b46f9 mf/tests: Add some tests for EVR sink services.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 21:07:10 +02:00
Nikolay Sivov 0dbbe8da25 mf/evr: Set initial output window size for the presenter.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-19 20:08:48 +02:00
Nikolay Sivov 0e43ee2746 mf/evr: Return current clock for MR_VIDEO_RENDER_SERVICE requests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Nikolay Sivov 55110df7eb mf/evr: Reinitialize presenter on clock change.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Nikolay Sivov 079c51f692 mf/tests: Fix mediatype instance leak (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:35:11 +02:00
Nikolay Sivov 662095c6b3 mf/session: Forward more events to the application.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:34:35 +02:00
Nikolay Sivov 6ff7575ae8 mf/session: Forward MEReconnect* events to the application.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:34:33 +02:00
Nikolay Sivov a2728cdece mf/session: Handle shutdown state on GetService().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:34:31 +02:00
Nikolay Sivov aaf520cf5e mf/tests: Add some SAR supported interfaces checks.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:34:28 +02:00
Nikolay Sivov b75301b471 mf/topology: Copy input topology attributes on Load().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:34:24 +02:00
Nikolay Sivov c3c0e2a440 mf: Add MFRequireProtectedEnvironment().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 15:07:01 +02:00
Derek Lesho 706fd3dcce mf/session: Prefer transform-provided sample path.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:34:06 +02:00
Nikolay Sivov 4634fd4ccb mf/session: Handle MF_TOPONODE_DISABLE_PREROLL on sink nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-29 09:26:28 +02:00
Nikolay Sivov ec5bd49bf8 mf/session: Consider audio block alignment when creating output buffers for transforms.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-19 11:06:35 +01:00
Alexandre Julliard 93e23c5d40 mf: Use --prefer_native instead of DLL_WINE_PREATTACH.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 10:54:42 +01:00
Nikolay Sivov b9ceaa6fed mf/tests: Skip all tests on Vista.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-23 15:48:13 +01:00
Nikolay Sivov 1d1665efb3 mf/tests: Skip some tests on missing function.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-22 18:40:27 +01:00
Nikolay Sivov 34dbb2c859 mf/tests: Add a sample copier test for sample fields handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-19 22:54:09 +01:00
Nikolay Sivov d24ce1374c mf/topology: Improve error handling when connecting sample copier node (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-02 21:09:40 +01:00
Nikolay Sivov 10f9a88de0 mf: Add missing const for vtable structures.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-02 21:09:37 +01:00
Nikolay Sivov e9248486d7 mf/tests: Add some more tests for video processor transform.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:24 +01:00
Nikolay Sivov 08088da4db mf: Implement NotifyTopology() for the standard quality manager.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:17 +01:00
Nikolay Sivov 144dcc1a26 mf: Subscribe standard quality manager to clock state change events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:14 +01:00
Nikolay Sivov a30d43c60b mf: Add shutdown state for the standard quality manager.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:09 +01:00
Nikolay Sivov 9446458f75 mf/session: Add a stub for IMFTopologyNodeAttributeEditor.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-29 13:47:16 +01:00
Nikolay Sivov be3bab5efb mf/tests: Use interface check helper more.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-29 13:46:36 +01:00
Nikolay Sivov ee8e83bd45 mf/sar: Handle shutdown state in rendering callback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:04:38 +01:00
Nikolay Sivov 02c859e435 mf/sar: Release pending items when audio client is released.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:04:36 +01:00
Nikolay Sivov c55dbcdb9a mf: Add a helper to get associated topology node object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 16:14:39 +01:00
Nikolay Sivov 79776e4540 mf/topoloader: Add copier transform automatically for D3D-aware outputs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 13:33:35 +01:00
Nikolay Sivov deda3f8172 mf/topoloader: Set MF_TOPONODE_MEDIASTART for all source nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 13:30:50 +01:00
Nikolay Sivov 902af3d17a mf/topoloader: Make sure MF_TOPONODE_STREAMID is set for all outputs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 13:30:48 +01:00
Nikolay Sivov a50bd9d12f mf/topoloader: Set MF_TOPONODE_TRANSFORM_OBJECTID for created transforms when CLSID is available.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 13:30:45 +01:00
Nikolay Sivov a343a31710 mf/topoloader: Set MF_TOPONODE_DECODER for the decoders.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 13:30:43 +01:00
Derek Lesho 7c9e6a1c96 mf/topoloader: Unstub IMFTopologyLoader::Load.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-30 19:01:56 +01:00
Derek Lesho d61e9f7535 mf/topoloader: Implement source node to sink node branch resolver.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-30 19:01:56 +01:00
Derek Lesho eb28343c47 mf/topoloader: Move node connection responsibility to connection function.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-30 19:01:56 +01:00
Derek Lesho de8930ff52 mf/topoloader: Add partial topology resolution tests.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-30 19:01:56 +01:00
Derek Lesho 133ba763e1 mf/samplegrabber: Evaluate type compatibility by comparison to the initial type.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-27 11:34:03 +01:00
Nikolay Sivov 9177e80de8 mf/session: Propagate allocator initialization failure code (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 23:25:24 +01:00
Nikolay Sivov d19467a8b3 mf/evr: Translate EC_DISPLAY_CHANGED notification to MEStreamSinkDeviceChanged events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:05 +01:00
Nikolay Sivov 98f5112c1a mf/session: Fix comment for the stop helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:05 +01:00
Nikolay Sivov 95f3bed326 mf/tests: Add another test for SAR time source.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:05 +01:00
Nikolay Sivov 73c3c8e031 mf/tests: Relax error code test for IsMediaTypeSupported() of SAR.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Nikolay Sivov 01563ba91a mf/session: Shutdown current topology when clearing presentation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:05 +01:00
Nikolay Sivov 39cac934ef mf/session: Keep a reference to the original activation object when binding sink nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:05 +01:00
Nikolay Sivov b3461c4864 mf/session: Shutdown and release presentation clock on session shutdown.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:05 +01:00
Nikolay Sivov 07139b0be2 mf/samplegrabber: Implement IMFRateSupport.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:22 +01:00
Nikolay Sivov 15346b36cc mf/evr: Derive stream attributes from mixer input attributes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Nikolay Sivov a76a90e7d2 mf/evr: Add support for per-stream attributes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Derek Lesho 86e6c0bc28 mf/session: Call session_command_complete after NotifyTopology command.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 22:24:45 +01:00
Nikolay Sivov f3b0fc6ae0 mf/evr: Add IMFQualityAdvise stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-13 21:55:50 +01:00
Nikolay Sivov 71e13d44f9 mf/tests: Use a helper for supported intefaces checks.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-13 21:55:47 +01:00
Nikolay Sivov 176ca7b87b mf/evr: Set display window to the presenter if it was specified on sink creation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-12 13:58:29 +01:00
Nikolay Sivov e272e1a1c3 mf/session: Implement support for sinks that provide sample allocators.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-12 13:58:27 +01:00
Nikolay Sivov 9008b2c9b7 mf/session: Query and initialize sample allocators for capable output nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-12 13:58:25 +01:00
Nikolay Sivov 3b230b58c8 mf/session: Forward MEQualityNotify event to the quality manager.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00
Nikolay Sivov fa0beb858e mf/session: Notify quality manager on input/output processing.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00
Nikolay Sivov fd22009339 mf/session: Notify quality manager when setting new topology.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00