Commit Graph

326 Commits

Author SHA1 Message Date
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
Anton Baskanov 0e6f24db19 amstream/tests: Move the testfilter code above to use it in SetState 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-07-21 18:30:08 +02:00
Anton Baskanov 053b55d2a8 amstream/tests: Add a test AVI file.
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
Anton Baskanov 7490b857b9 amstream/tests: Fix file rendering test.
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
Anton Baskanov 6a1109f3cd amstream/tests: Fix AMMultiMediaStream::OpenFile test.
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
Gijs Vermeulen c6b4372845 amstream: Implement AMMediaStream::JoinFilterGraph.
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-14 18:04:05 +02:00
Gijs Vermeulen 3572a7f440 amstream: Add AMMediaStream::JoinFilterGraph() tests.
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-14 18:04:03 +02:00
Gijs Vermeulen c8d748749a amstream/tests: Fix filter leak in test_add_stream().
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-07 21:31:54 +02:00
Gijs Vermeulen 388c53160d amstream: Add graph to stream in IMediaStreamFilter::AddMediaStream().
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-07 19:24:27 +02:00
Gijs Vermeulen 6bfd79be6d amstream/tests: Add IAMMediaStream::JoinFilter() tests.
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-06 22:36:47 +02:00
Gijs Vermeulen f446bb21f2 amstream: Increment/decrement IMediaStreamFilter refcount twice in multimedia_stream_create/release().
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-06 22:36:45 +02:00
Gijs Vermeulen a2fe0d5759 amstream: Return E_POINTER on NULL stream in IMediaStreamFilter::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-03 19:44:15 +02:00
Gijs Vermeulen a7c515fe01 amstream: Accept only MEDIASUBTYPE_RGB8 in check_media_type().
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-01 10:59:35 +02:00
Gijs Vermeulen fddae90d9b amstream: Validate the format type in check_media_type().
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-01 10:59:35 +02:00
Gijs Vermeulen 83bdfb780c amstream: Return VFW_E_TYPE_NOT_ACCEPTED on error in AMVideoStream::QueryAccept().
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-01 10:59:35 +02:00
Gijs Vermeulen ddcabfa2d7 amstream/tests: Add more AMVideoStream::QueryAccept() tests.
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-01 10:59:35 +02:00
Gijs Vermeulen 276701e9b4 amstream: Lock the entirety of 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-07-01 10:59:35 +02:00
Gijs Vermeulen c80d5c1507 amstream: Decrement "sample_refs" only when the object is being released.
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-01 10:59:35 +02:00
Gijs Vermeulen b2c74e0cca amstream: Create ddraw if no source object was specified in ddraw_IAMMediaStream_Initialize().
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-06-25 23:08:31 +02:00
Gijs Vermeulen 51fce87c60 amstream: Implement IDirectDrawMediaStream::SetDirectDraw().
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-06-25 23:08:31 +02:00
Gijs Vermeulen 84566a0cc1 amstream: Use IDirectDraw instead of IDirectDraw7 internally.
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-06-25 23:08:31 +02:00
Anton Baskanov 117e13e05e amstream: Return E_NOTIMPL from AMAudioStream::QueryInterface.
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-06-25 23:08:31 +02:00