1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 20:06:18 +00:00
Commit Graph

117 Commits

Author SHA1 Message Date
Jacek Caban
e3af07501a mfmediaengine: Avoid implicit casts in IMFAttributes_GetUINT32 calls. 2024-01-31 12:04:32 +01:00
Jacek Caban
2bbc4e17a5 mfmediaengine/tests: Use MF_MEDIA_ENGINE_CANPLAY type in IMFMediaEngine_CanPlayType call. 2024-01-31 12:04:32 +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
Yuxuan Shui
e8943a6463 mfmediaengine: Don't send event notify when engine is shutdown.
I've also tried saving a cancel cookie from `BeginCreateObject*` and using it to cancel the
operation in engine shutdown. However there are 2 problems:

  1. Callback might still get called after `CancelObjectCreation`. Microsoft's
     [own documentation](https://learn.microsoft.com/en-us/windows/win32/api/mfidl/nf-mfidl-imfsourceresolver-cancelobjectcreation)
     says as much:
       > Because these methods are asynchronous, however, they might be completed before the
       > operation can be canceled. Therefore, your callback might still be invoked after you
       > call this method.
  2. Our implementations of `BeginCreateObject*` are not cancellable. They call either
     `MFPutWorkItem` or `IMFByteStream_BeginRead`, neight of which provides cancellation.
     (and our `CancelObjectCreation` doesn't actually work. AsyncResult objects aren't added to
     `handler->results` list until they are completed, which means any attempts to cancel an
     yet-to-be-completed object creation will always fail with `MF_E_UNEXPECTED`)
2023-10-27 11:33:41 -05:00
Nikolay Sivov
7773139261 mfmediaengine: Mask some source flags returned from GetResourceCharacteristics().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-19 22:43:57 +02:00
Nikolay Sivov
48e110e0fd mfmediaengine: Use extension object in CanPlayType(). 2023-10-16 11:15:08 +02:00
Nikolay Sivov
b5d4394913 mfmediaengine: Keep engine extension pointer. 2023-10-16 11:15:08 +02:00
Nikolay Sivov
5f48e7816c mfmediaengine/tests: Use a single helper to create engine instances. 2023-10-16 11:15:08 +02:00
Zhiyi Zhang
5daa21f961 mfmediaengine: Implement media_engine_GetSeekable(). 2023-08-14 13:30:23 +02:00
Zhiyi Zhang
4f0a7cd89a mfmediaengine/tests: Test IMFMediaEngine::GetSeekable(). 2023-08-14 13:30:23 +02:00
Zhiyi Zhang
3893db0a20 mfmediaengine/tests: Fix a test failure in test_GetDuration().
d19af88f59 happens to change test_transfer_notify_EventNotify() and
that affects test_GetDuration().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55422
2023-08-14 13:30:22 +02:00
Zhiyi Zhang
a2eec34678 mfmediaengine: Use a mftime_to_seconds() helper to convert time. 2023-08-08 21:11:31 +09:00
Zhiyi Zhang
613d7b0999 mfmediaengine/tests: Test IMFMediaEngine::GetDuration(). 2023-08-08 21:11:31 +09:00
Bernhard Kölbl
13106b2b38 mfmediaengine: Implement RemoveAllEffects().
Signed-off-by: Bernhard Kölbl <bkoelbl@codeweavers.com>
2023-08-08 21:11:30 +09:00
Bernhard Kölbl
ffba650a33 mfmediaengine/tests: Add tests for RemoveAllEffects().
Signed-off-by: Bernhard Kölbl <bkoelbl@codeweavers.com>
2023-08-08 21:11:30 +09:00
Bernhard Kölbl
d19af88f59 mfmediaengine/tests: Make effect tests more consistent.
Do this by waiting for the first available frame with a
separate ready event and removing flaky ref checks.

Signed-off-by: Bernhard Kölbl <bkoelbl@codeweavers.com>
2023-08-08 21:11:30 +09:00
Francois Gouget
37885b04f9 mfmediaengine: Add the trailing linefeed to a WARN() message.
Also add a trailing period for consistency with this module's other
messages.
2023-07-27 13:12:06 +09:00
Bernhard Kölbl
91a84cff95 mfmediaengine: Add support for inserting audio effects. 2023-07-17 09:40:01 +02:00
Bernhard Kölbl
096b46cf8d mfmediaengine/tests: Add tests for audio effects. 2023-07-17 09:39:58 +02:00
Bernhard Kölbl
de1dd6cbf7 mfmediaengine: Add support for inserting video effects. 2023-07-06 20:54:29 +02:00
Bernhard Kölbl
621d153d45 mfmediaengine/tests: Add tests for video effects.
Signed-off-by: Bernhard Kölbl <besentv@gmail.com>
2023-07-06 20:54:29 +02:00
Nikolay Sivov
2775fe31cd mfmediaengine/tests: Remove unnecessary broken() result. 2023-06-27 22:14:15 +02:00
Nikolay Sivov
36fcbba73e mfmediaengine/tests: Use correct type for url argument in SetSourceFromByteStream(). 2023-06-27 22:14:15 +02:00
Nikolay Sivov
6b9eb2d09f mfmediaengine/tests: Allocate notification object on heap for frame transfer tests. 2023-06-27 22:14:15 +02:00
Nikolay Sivov
a79d27c04a mfmediaengine: Implement GetNumberOfStreams().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-05-18 09:14:32 -05:00
Shaun Ren
5ef7a45bc9 mfmediaengine: Pause the session in media_engine_Pause. 2022-12-21 18:24:38 +01:00
Shaun Ren
adbc4b666d mfmediaengine: Change media_engine_Shutdown FIXME to TRACE. 2022-12-21 18:24:38 +01:00
Bernhard Kölbl
12c28aa22f mfmediaengine: Pass volume changes to media session. 2022-11-29 21:33:58 +01:00
Rémi Bernon
2f5d06af1d mfmediaengine: Remove vertical flipping of video frames. 2022-10-14 18:03:38 +02:00
Rémi Bernon
ae4ecbe59e mfmediaengine/tests: Check IMFMediaEngine_TransferVideoFrames output orientation. 2022-10-14 18:03:38 +02:00
Rémi Bernon
31871d713a mfmediaengine/tests: Pass a device manager and output format to create_media_engine. 2022-10-14 18:03:37 +02:00
Nikolay Sivov
8ce0ab9739 mfmediaengine/tests: Remove unused header include.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-01 12:54:40 +02:00
Nikolay Sivov
7608e775ab mfmediaengine: Implement GetStreamAttribute().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 09:31:42 +01:00
Nikolay Sivov
2086698e7d mfmediaengine: Implement GetPresentationAttribute().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 09:31:40 +01:00
Nikolay Sivov
40c9923982 mfmediaengine: Handle realtime mode flag.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 09:31:37 +01:00
Nikolay Sivov
1d1eebf38a mfmediaengine: Implement GetResourceCharacteristics().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 09:31:34 +01:00
Nikolay Sivov
9a7d166e6b mfmediaengine: Shutdown media source when clearing current presentation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 09:31:31 +01:00
Nikolay Sivov
29a9ba6e18 mfmediaengine/tests: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:20:41 +01:00
Eric Pouech
bbfb164e0a mfmediaengine: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 10:57:17 +01:00
Nikolay Sivov
0b98026e2d mfmediaengine: Use resolver functionality for content type resolution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-10 10:44:10 +01:00
Eric Pouech
223d2945b5 mfmediaengine: 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-02-02 13:47:27 +01:00
Nikolay Sivov
9b17bd1754 mfmediaengine: Improve AddRange() behavior for intersecting ranges.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Nikolay Sivov
4c61027967 mfmediaengine: Handle shutdown state in a few stubs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Nikolay Sivov
a4890ac799 mfmediaengine: Handle shutdown state in GetBuffered().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Nikolay Sivov
318aa0f387 mfmediaengine: Handle shutdown state in Pause().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Nikolay Sivov
0f4f7ca937 mfmediaengine: Handle shutdown state in Play().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Nikolay Sivov
86c0afc797 mfmediaengine: Handle shutdown state in GetCurrentSource().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:20 +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
6938f9b903 mfmediaengine: Implement audio renderer configuration methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:58:33 +01:00