Nikolay Sivov
657a76ce23
mfreadwrite/reader: Use shared multi-threaded queue internally.
...
Using dedicated queue prevents potential lockups with event queue,
specifically when waiting on event queue for seek to finish blocks
events delivery.
The issue was diagnosed by Giovanni.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-26 16:48:30 +01:00
Giovanni Mascellani
06366bd16b
mfreadwrite: Simplify iteration through streams.
...
This also fixes a bug happening when the reader has only one stream,
in which case the iteration body was not even executed once.
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-03-26 16:48:30 +01:00
Nikolay Sivov
016fe6af18
mfreadwrite/reader: Enable DXGI device manager path.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-23 20:58:34 +01:00
Nikolay Sivov
482f977b34
mfreadwrite/reader: Use current stream type to set up sample allocator.
...
It's normal to have incomplete type description for SetCurrentMediaType(),
with just major/subtype attributes. Allocator will need at least frame size.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-23 20:58:32 +01:00
Jacek Caban
ee587da9e5
include: Use nameless unions in dxva2api.idl helpers.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50836
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 21:48:41 +01:00
Jacek Caban
b39b9eea39
include: Don't default to WINE_NO_NAMELESS_EXTENSION for Wine build.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 21:48:38 +01:00
Giovanni Mascellani
1a7be75656
mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped.
...
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-03-22 20:38:45 +01:00
Nikolay Sivov
ca143521ed
mfreadwrite/reader: Consider audio block alignment when creating output buffers for the decoder.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 18:52:57 +01:00
Alexandre Julliard
768ff9ab12
mfreadwrite: Use --prefer_native instead of DLL_WINE_PREATTACH.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 10:54:47 +01:00
Nikolay Sivov
a67d7c1533
mfreadwrite/reader: Add support for reading to SA-allocated samples.
...
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
a0a6fad695
mfreadwrite/reader: Subscribe to allocator's release notifications.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-17 21:42:18 +01:00
Nikolay Sivov
beb9c6578a
mfreadwrite/reader: Create sample allocator for video streams.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-10 20:04:59 +01:00
Nikolay Sivov
cf4fe13a41
mfreadwrite/reader: Keep a reference to configuration attributes.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-10 20:04:51 +01:00
Nikolay Sivov
e89a41a963
mfreadwrite: Fix vtable variables types.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:31 +01:00
Nikolay Sivov
8999dd2ba0
mfreadwrite/reader: Implement GetServiceForStream() for stream objects.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 20:20:35 +01:00
Nikolay Sivov
1fceb12139
mfreadwrite/reader: Alternate between selected streams for MF_SOURCE_READER_ANY_STREAM requests.
...
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
28dcc19dfd
mfreadwrite/tests: And some more tests for ReadSample() and failing requests.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 16:01:23 +01:00
Derek Lesho
03eaa2cc93
winegstreamer: Implement IMFMediaStream::RequestSample.
...
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-10-30 22:14:11 +01:00
Derek Lesho
9d7f98ee7f
mfreadwrite: Abort ReadSample when unable to request any samples.
...
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-10-30 22:14:11 +01:00
Derek Lesho
e2893c3452
winegstreamer: Implement IMFMediaSource::CreatePresentationDescriptor.
...
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-10-28 20:36:32 +01:00
Nikolay Sivov
82584160d4
mfreadwrite/tests: Add return value test (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-30 15:51:02 +02:00
Derek Lesho
2fb948e0ea
mfreadwrite/reader: Add recognition of ftypemp42 mp4 header.
...
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-05-18 15:08:05 +02:00
Nikolay Sivov
855c9bd648
mfreadwrite/reader: Consider end-of-stream state when picking stream for MF_SOURCE_READER_ANY_STREAM requests.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-15 17:33:41 +02:00
Derek Lesho
a2794b5eae
mfreadwrite: Clear STREAM_FLAG_SAMPLE_REQUESTED flag on MEEndOfStream event.
...
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-04-17 21:05:38 +02:00
Nikolay Sivov
f540d1615f
mfreadwrite: Add support for seeking in Source Reader.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Nikolay Sivov
978d497d95
mfreadwrite: Implement MF_SOURCE_READER_ANY_STREAM for synchronous case.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Nikolay Sivov
ee7b317293
mfreadwrite: Block recurring flush calls in async mode when flush is pending.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 20:16:35 +02:00
Nikolay Sivov
42edc14e04
mfreadwrite: Move source shutdown mode to reader flags.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 20:16:33 +02:00
Nikolay Sivov
eb927dbb31
mfreadwrite: Handle async reads when flush is in progress.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 20:16:30 +02:00
Nikolay Sivov
e81d2cf5bc
mfreadwrite: Use default queue so submit flush commands.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 20:16:21 +02:00
Nikolay Sivov
10c6120910
mfreadwrite: Add stream index validation for Flush().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 20:16:00 +02:00
Derek Lesho
8e1761adc0
mfreadwrite: Fix flushing on MF_SOURCE_READER_ALL_STREAMS.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 22:19:40 +02:00
Nikolay Sivov
7186b2c4ab
mfreadwrite: Pack stream selection state as flags.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:27:34 +02:00
Nikolay Sivov
ce38c5c897
mfreadwrite: Implement MF_SOURCE_READER_ANY_STREAM for async mode.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:27:31 +02:00
Nikolay Sivov
4e72ea0f4a
mfreadwrite: Use single reader lock for all streams.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:27:26 +02:00
Nikolay Sivov
c362ce20ef
mfreadwrite: Do not call async reader callback if source failed to start up.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Nikolay Sivov
120505ed6b
mfreadwrite: Move Sink Writer stubs to separate file.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:19:15 +01:00
Nikolay Sivov
88299b0edc
mfreadwrite: Forward some source events to async reader callback.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:19:11 +01:00
Nikolay Sivov
3ac77317b8
mfreadwrite: Autodetect ftyp(isom) as .mp4.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:41 +01:00
Nikolay Sivov
954ed23648
mfreadwrite: Implement reader flushing.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:39 +01:00
Nikolay Sivov
7998801440
mfreadwrite: Implement async reader mode.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:37 +01:00
Nikolay Sivov
767744513e
mfreadwrite: Request one sample at a time from the stream.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:35 +01:00
Nikolay Sivov
63e0b3a71a
mfreadwrite: Handle MEStreamTick event in source reader.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:32 +01:00
Nikolay Sivov
66de5a8ee8
mfreadwrite: Make pending response reader structure more generic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:30 +01:00
Derek Lesho
915e1c782e
mfreadwrite: Pass source samples through decoder as they arrive.
...
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-03-24 19:43:36 +01:00
Derek Lesho
ecf70b83e2
mfreadwrite: Configure stream decoder on SetCurrentMediaType() if necessary.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 19:32:58 +01:00
Nikolay Sivov
b8a846a5d1
mfreadwrite/tests: Add some missing checks (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
Nikolay Sivov
979847e3a2
mfreadwrite/tests: Add a test for reading from delected stream.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
Nikolay Sivov
8f0570b3d7
mfreadwrite: Start media source when stream selection changes.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
Nikolay Sivov
9cb55ea30d
mfreadwrite: Return earlier on ReadSample() is stream is deselected.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-05 16:16:04 +01:00