Commit graph

347 commits

Author SHA1 Message Date
Zebediah Figura
690afb42f6 strmbase: Rename csFilter to filter_cs.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 08:52:32 +01:00
Zebediah Figura
402532b3fd amstream/tests: Define NONAMELESSUNION.
Old versions of gcc allow nameless unions, but can't parse them in designated initializers.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50378
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-21 21:08:14 +01:00
Zebediah Figura
6e6d73b818 amstream/tests: Commit the allocator directly.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:20 +01:00
Anton Baskanov
a103368917 amstream: Implement AMMultiMediaStream::GetTime.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:47:57 +01:00
Anton Baskanov
23cbd7f591 amstream: Implement AMMultiMediaStream::GetState.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:47:55 +01:00
Anton Baskanov
16874608d6 amstream: Implement MediaStreamFilter::IsFormatSupported.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:47:52 +01:00
Anton Baskanov
826164c127 amstream: Factor out the common code of MediaStreamFilter seeking tests.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:47:30 +01:00
Anton Baskanov
e5d1245842 amstream: Implement AMDirectDrawStream::GetTimePerFrame.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 21:06:18 +01:00
Anton Baskanov
b2148c2fff amstream: Wait for presentation time in AMDirectDrawStream::Receive.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Anton Baskanov
a68f2bd7b4 amstream/tests: Add comments to AMDirectDrawStream::CompletionStatus tests.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Anton Baskanov
4919b9b99f amstream: Implement MediaStreamFilter::Flush.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-05 22:30:05 +01:00
Anton Baskanov
28764bd0c5 amstream: Implement MediaStreamFilter::WaitUntil.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-04 09:07:23 +01:00
Anton Baskanov
8492657ab8 amstream: Release filter critical section before calling upstream seeking methods.
Otherwise a seek might deadlock when the stream calls the filter methods (e.g. WaitUntil) from streaming thread.

Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-04 09:07:20 +01:00
Anton Baskanov
7cdfafe0bc amstream: Handle AMMSF_NOCLOCK flag in AMMultiMediaStream::OpenFile.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-03 21:50:20 +01:00
Anton Baskanov
a73460bca0 amstream: Wait for the state transition to complete in AMMultiMediaStream::SetState.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-03 21:50:14 +01:00
Anton Baskanov
aaf461b7d2 amstream: Implement SSUPDATE_CONTINUOUS flag in IDirectDrawStreamSample::Update.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 11:33:46 +02:00
Anton Baskanov
5d5102f849 amstream: Reference the multimedia stream in ddraw stream sample.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-07 22:31:24 +02:00
Anton Baskanov
6bfa705e3c amstream: Implement AMDirectDrawStream::NewSegment.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:49:41 +02:00
Anton Baskanov
b9fb8c55c4 amstream: Implement AMDirectDrawStream::BeginFlush and ::EndFlush.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:49:38 +02:00
Anton Baskanov
e58b42d48d amstream: Implement IDirectDrawStreamSample::GetSampleTimes.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:57:13 +02:00
Anton Baskanov
29a4921278 amstream: Implement IDirectDrawStreamSample::CompletionStatus.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:57:10 +02:00
Anton Baskanov
dca38a84fb amstream: Implement AMDirectDrawStream::Receive and IDirectDrawStreamSample::Update.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 19:39:30 +02:00
Anton Baskanov
5f7e25c7b1 amstream: Call ::SetFormat in AMDirectDrawStream::CreateSample.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 19:29:33 +02:00
Anton Baskanov
fdf43b9bac amstream: Implement AMDirectDrawStream::EndOfStream.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 15:02:28 +02:00
Anton Baskanov
999b59b7c1 amstream: Implement AMDirectDrawStream::SetState.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 15:02:25 +02:00
Anton Baskanov
e64a2e112e amstream: Use current format to create surface in AMDirectDrawStream::CreateSample.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:23:24 +02:00
Anton Baskanov
47ab124022 amstream: Reconnect if the new format is incompatible with the connection media type in AMDirectDrawStream::SetFormat.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:23:23 +02:00
Anton Baskanov
337fcca4d1 amstream: Reject incompatible media types in AMDirectDrawStream::ReceiveConnection.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:23:21 +02:00
Anton Baskanov
8c1204ffee amstream: Implement AMDirectDrawStream::SetFormat.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:23:19 +02:00
Anton Baskanov
3f712c1d43 amstream: Implement AMDirectDrawStream::GetFormat.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:23:17 +02:00
Zebediah Figura
5f71e720fd amstream/tests: Get rid of test_renderfile().
It's not testing anything anymore that's not tested elsewhere.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:48 +02:00
Zebediah Figura
b02de178eb amstream/tests: Avoid leaking "stream" in test_find_pin().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:44 +02:00
Gijs Vermeulen
a53288e8c9 amstream: Implement IMediaStreamFilter::ReferenceTimeToStreamTime().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-25 23:01:48 +02:00
Gijs Vermeulen
0a2bf90733 amstream: Return S_FALSE when IMediaSeeking::GetDuration() fails in IAMMultiMediaStream::GetDuration().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-20 18:47:14 +02:00
Gijs Vermeulen
bdf8600338 amstream: Return VFW_E_CANNOT_CONNECT in IAMMultiMediaStream::OpenFile() when no renderers are present and AMMSF_NORENDER is not specified.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-20 18:47:08 +02:00
Gijs Vermeulen
a518975663 amstream: Increase parent IAMMediaStream refcount in IDirectDrawMediaStream::CreateSample().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 22:51:35 +02:00
Gijs Vermeulen
a4ddb5a1e6 amstream: Return E_INVALIDARG when a rect but no surface is passed in IDirectDrawMediaStream::CreateSample().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 22:51:33 +02:00
Gijs Vermeulen
7bdb713bc4 amstream/tests: Split test_IDirectDrawStreamSample().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 22:51:31 +02:00
Gijs Vermeulen
218409c2d6 amstream: Return correct media type info when enumerating AMAudioStream media types.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-01 10:02:16 +02:00
Gijs Vermeulen
e68e74a1bc amstream: Get rid of the IAudioStreamSampleImpl typedef.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:53 +02:00
Gijs Vermeulen
b8a39aaf75 amstream: Implement IAudioStreamSample::GetAudioData().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:51 +02:00
Gijs Vermeulen
67b7d597c9 amstream: Implement IAudioStreamSample::GetMediaStream().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:48 +02:00
Gijs Vermeulen
1b3121c2ed amstream: Increase IAudioData refcount in IAudioMediaStream::CreateSample().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:45 +02:00
Gijs Vermeulen
08c076f542 amstream: Increase parent IAMMediaStream refcount in IAudioMediaStream::CreateSample().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 21:26:42 +02:00
Myah Caron
fc74e4b3dc amstream: Implement IMediaStreamFilter::GetStopPosition.
Signed-off-by: Myah Caron <qsniyg@protonmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 11:24:05 +02:00
Myah Caron
b0fcdf9405 amstream: Implement IAMMultiMediaStream::GetDuration.
Signed-off-by: Myah Caron <qsniyg@protonmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 11:24:01 +02:00
Myah Caron
17f766a853 amstream: Implement IMediaStreamFilter::GetDuration.
Signed-off-by: Myah Caron <qsniyg@protonmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-29 11:23:55 +02:00
Gijs Vermeulen
97aeeb0142 amstream: Accept more media subtypes in AMVideoStream::ReceiveConnection().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-28 12:59:27 +02:00
Anton Baskanov
bd97b597e6 amstream: Start the stream when AMMSF_RUN is passed to AMMultiMediaStream::OpenFile.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 18:30:09 +02:00
Anton Baskanov
6395c83d2a amstream: Return S_OK from AMMultiMediaStream::SetState when IMediaControl::Run succeeds.
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 18:30:08 +02:00