Commit graph

202 commits

Author SHA1 Message Date
Rémi Bernon f0e77b163d mfreadwrite/reader: Fixup MFVideoFormat_ABGR32 subtype to enumerate the video processor. 2024-05-17 18:01:44 +02:00
Rémi Bernon cc57b05d47 mfreadwrite/tests: Add tests with MFVideoFormat_ABGR32 output format. 2024-05-17 18:01:44 +02:00
Rémi Bernon 2294bf6c1e mfreadwrite/reader: Shutdown the queue when public ref is released.
Instead of internal ref, otherwise an executing callback might be the
one releasing the last ref, and MFUnlockWorkQueue will cancel and then
block waiting for the callback itself to finish executing.
2024-05-16 23:09:04 +02:00
Rémi Bernon 11c47925f0 mfreadwrite/reader: Pass the device manager to the stream transforms. 2024-05-08 20:41:15 +02:00
Rémi Bernon cf3134a841 winegstreamer/video_processor: Implement D3D awareness. 2024-05-08 20:41:15 +02:00
Rémi Bernon 54ff5bdf85 mfreadwrite/tests: Add some source reader D3D11 awareness tests. 2024-05-08 20:41:15 +02:00
Rémi Bernon fd1d08ed5d mfreawrite/tests: Allow MF_E_SHUTDOWN result in test stream RequestSample. 2024-05-03 21:36:22 +02:00
Rémi Bernon 7bb1b147ce mfreadwrite/reader: Avoid leaking the stream transform service MFT. 2024-04-24 17:17:21 +02:00
Rémi Bernon 8514ddb200 mfreadwrite/tests: Shutdown the test stream event queues on source shutdown. 2024-04-24 17:17:21 +02:00
Rémi Bernon c908181eef mfreadwrite/tests: Avoid using MFCreateMediaBufferFromMediaType.
It's not available on Win7.
2024-04-24 17:17:19 +02:00
Rémi Bernon 7b47833b28 mfreadwrite/tests: Do not accept MFVideoFormat_RGB32 in the test transform. 2024-04-24 17:17:19 +02:00
Danyil Blyschak f97e12de40 mfreadwrite: Store result of object activation in stream transform.
In source_reader_create_transform(), store the result of
IMFActivate_ActivateObject() so that in the event of failure, resources
are freed and an appropriate HRESULT is returned.

Previously, if every object's activation failed, the last part of the
function was not aware of this.
2024-04-23 22:09:14 +02:00
Rémi Bernon a7564b0f8b mfreadwrite/reader: Keep the output subtypes when propagating media types. 2024-04-03 23:03:38 +02:00
Rémi Bernon e3510c6bdb mfreadwrite/reader: Avoid accessing an invalid stream index.
Fixes d6c9ac94d2.
2024-04-02 23:30:11 +02:00
Rémi Bernon 5cd5e7b8c6 mfreadwrite/tests: Test the D3D awareness of source reader transforms. 2024-04-02 23:30:11 +02:00
Rémi Bernon ed5031ebd8 mfreadwrite/tests: Test the source reader stream change events. 2024-04-02 23:30:11 +02:00
Rémi Bernon b5f7ce4263 mfreadwrite/reader: Make the GetTransformForStream category parameter optional. 2024-04-02 23:30:11 +02:00
Rémi Bernon 17fd8c8e11 mfreadwrite/reader: Use MFTEnumEx to enumerate stream transforms. 2024-04-02 23:30:11 +02:00
Rémi Bernon 14743b0ffb mfreadwrite/reader: Handle MF_E_TRANSFORM_STREAM_CHANGE results. 2024-03-14 18:41:42 +01:00
Zhiyi Zhang e21244f7a3 mfreadwrite: Fix a memory leak (Coverity). 2024-03-12 08:31:36 +01:00
Rémi Bernon bf800b5e76 mfreadwrite/reader: Adjust min_buffer_size to be 1s of audio data. 2024-03-04 15:39:06 +01:00
Rémi Bernon 440edde5e1 mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream. 2024-03-01 23:14:22 +01:00
Rémi Bernon ea4b9bafb2 mfreadwrite/reader: Create and append a converter transform.
This enables advanced color conversion in all cases, and thus allows
NV12 -> RGB32 conversion even when MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING
is not set. This should be harmless and makes the code simpler as we
can simply append a VideoProcessor transform in all cases.

The tests todos is tweaked to reflect cases where a single processor
is used, which outputs slightly different attributes to when it is
connected to an upstream decoder. Ultimately we could try to match
native here, but it shouldn't matter too much in the meantime.
2024-03-01 23:14:22 +01:00
Rémi Bernon d6c9ac94d2 mfreadwrite/reader: Keep the stream transforms in a list. 2024-03-01 23:14:22 +01:00
Rémi Bernon 48cb5297e7 mfreadwrite/reader: Call SetOutputType directly on the decoder transform. 2024-03-01 23:14:22 +01:00
Rémi Bernon 7325dd4a5a mfreadwrite/reader: Split source_reader_create_decoder_for_stream helper. 2024-03-01 23:14:22 +01:00
Rémi Bernon 75fa35ad7f mfreadwrite/reader: Repeat pushing / pulling samples while it succeeds. 2024-02-16 23:32:06 +01:00
Rémi Bernon c20fc715e2 mfreadwrite/reader: Introduce new source_reader_(drain|flush)_transform_samples helpers. 2024-02-16 23:32:06 +01:00
Rémi Bernon 8946e6df7e mfreadwrite/reader: Introduce a new source_reader_allocate_stream_sample helper. 2024-02-16 23:32:06 +01:00
Rémi Bernon dd6e8198e0 mfreadwrite/reader: Pass the transform to source_reader_pull_stream_samples. 2024-02-16 23:32:06 +01:00
Rémi Bernon cbb343567a mfreadwrite/reader: Introduce source_reader_queue_sample helper. 2024-02-16 23:32:06 +01:00
Rémi Bernon 3c64448037 mfreadwrite/tests: Test source reader transforms with MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING. 2024-02-08 23:31:24 +01:00
Rémi Bernon b37a16c7f3 mfreadwrite/tests: Test source reader transforms with MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING. 2024-02-08 23:31:24 +01:00
Rémi Bernon f5daee4a2f mfreadwrite/tests: Test source reader exposed transforms and types. 2024-02-08 23:31:24 +01:00
Rémi Bernon 5122f6ad9f mfreadwrite/tests: Initialize test source stream types from descriptors. 2024-02-08 23:31:24 +01:00
Nikolay Sivov dcd8551142 mfreadwrite/tests: Skip tests if D3D9 is unusable.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-01-08 20:52:27 +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
Alistair Leslie-Hughes 0635e9e767 mfreadwrite/tests: Move test_interfaces after test_factory.
test_interfaces requires that CoInitialize to have tbeen called.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55635
2023-09-22 20:54:23 +02:00
Alistair Leslie-Hughes 07f50ee66b mfreadwrite/reader: Update to IMFSourceReaderEx.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-09-18 11:02:33 +02:00
Ziqing Hui b3edb269ec winegstreamer: Add MFMPEG4SinkClassFactory. 2023-09-05 15:20:38 +02:00
Alexandre Julliard 20afe43832 Remove unused NONAMELESS defines. 2023-08-15 18:56:45 +02:00
Alistair Leslie-Hughes 073f0af574 mfreadwrite: Remove DECLSPEC_HIDDEN usage. 2023-07-12 10:54:56 +02:00
Ziqing Hui cfbcd014c6 mfreadwrite/tests: Add tests for MP4 sink writer. 2023-05-17 07:13:09 -05:00
Ziqing Hui d1c317720a mfreadwrite: Fix an address of operator typo. 2023-04-21 22:33:29 +02:00
Zebediah Figura ef354da590 winegstreamer: Set the MF_MT_DEFAULT_STRIDE attribute in mf_media_type_from_wg_format(). 2023-04-07 13:26:58 +02:00
Adrian Thiele 0d4f63b34c mfreadwrite/reader: Release device manager in source_reader_release. 2023-03-01 21:39:30 +01:00
Adrian Thiele eeb25932c7 mfreadwrite/tests: Check refcount of device manager after release. 2023-03-01 21:39:30 +01:00
Zebediah Figura 81b09cdee2 mfreadwrite/tests: Test an audio/video file. 2023-02-09 17:54:55 +01:00
Zebediah Figura b924671ea8 mfreadwrite/tests: Avoid depending on sample size in test_source_reader().
At the same time, avoid depending on file length.
2023-02-09 17:54:55 +01:00