Commit Graph

260 Commits

Author SHA1 Message Date
Zebediah Figura 15303e5401 quartz: Implement IFilterGraph2::RenderEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35215
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:25:05 +02:00
Zebediah Figura c603a5bfbc quartz: Combine IGraphBuilder::Render() and IGraphBuilder::Connect() into a single helper.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:25:00 +02:00
Zebediah Figura cdab25b03a quartz: Try to connect all source pins when autoplugging from the registry.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:24:38 +02:00
Anton Baskanov ff38669c1a quartz/filtergraph: Always sort filter list before use.
Some applications (e.g. Earth 2150) call IPin::Connect directly
instead of IFilterGraph::ConnectDirect.

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-12 19:26:05 +02:00
Anton Baskanov e92c851d95 quartz/filtergraph: Count renderers in IMediaControl::Pause and ::Run.
Some filters (e.g. MediaStreamFilter) can become renderers when they are already in the graph.

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-11 10:50:28 +02:00
Anton Baskanov 609a832a56 quartz/filtergraph: Always try to query IMediaSeeking if it's not cached yet.
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-11 10:50:28 +02:00
Gijs Vermeulen 2680b076e3 quartz/filtergraph: Add a stub IVideoFrameStep interface.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42372
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-08 21:01:33 +02:00
Zebediah Figura fe5292bf50 quartz: Implement IMediaControl::StopWhenReady().
This allows The Bunker to exit cleanly.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 11:04:43 +02:00
Zebediah Figura 925e5ddefe quartz: Complain louder if a filter reports the wrong state.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 11:04:41 +02:00
Zebediah Figura 11af7a02bf quartz/filtergraph: Get rid of tracing for outer IUnknown methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 12:09:20 +02:00
Gabriel Ivăncescu 0320f165c8 quartz: Cache IMediaSeeking for filters.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-08 21:47:00 +02:00
Zebediah Figura cb3dc98928 quartz: Implement proper DLL refcounting.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48734
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:49 +01:00
Zebediah Figura 56a6bc87ac quartz: Pass an IUnknown pointer to the object creation functions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 10:12:03 +01:00
Zebediah Figura 05a8d45e8a quartz/filtergraph: Iterate over all filters in state change methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura e0d5e16d7e quartz/filtergraph: Don't check for cyclic connections in IFilterGraph2::Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura 98a0c1dac1 quartz/filtergraph: Maintain a topologically sorted list of filters.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura 7a392c55d6 quartz/filtergraph: Use IFilterGraph2::ConnectDirect() instead of calling IPin::Connect().
It will need to do some bookkeeping.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura 570e0a0d3b quartz/filtergraph: Implement IFilterGraph2::ReconnectEx().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 09:32:58 +01:00
Zebediah Figura eea01d8e8b quartz: Introduce a helper to trace reference time.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:19:19 +01:00
Zebediah Figura 7770e0bbaf quartz: Use wide character string literals.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-23 09:27:00 +01:00
Zebediah Figura 228b8b984b quartz: Simplify FilterGraph2_AddFilter().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-22 10:21:07 +01:00
Francois Gouget 79ab06b295 quartz: Fix the name of a type in a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:59:11 +01:00
Zebediah Figura 524783dfeb quartz/filtergraph: Clarify stream time tracking.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:27 +02:00
Zebediah Figura 13dbe644ce quartz/filtergraph: Pause the graph even if AM_SEEKING_NoFlush is used.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:27 +02:00
Zebediah Figura facbd0585c quartz/filtergraph: Set the current position in IMediaFilter::Stop().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:26 +02:00
Zebediah Figura 539fa6922b quartz/filtergraph: Store the current position and return it in IMediaSeeking::GetCurrentPosition().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:26 +02:00
Zebediah Figura 1c0985013e quartz/filtergraph: Iterate filters directly in IMediaSeeking::SetPositions().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:26 +02:00
Zebediah Figura 0705b0f182 quartz/filtergraph: Correctly handle AM_SEEKING_ReturnTime in IMediaSeeking::SetPositions().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 17:11:43 +02:00
Zebediah Figura c1f2e8476d quartz/filtergraph: Remove the no longer used "stop_position" field from IFilterGraphImpl.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 17:11:43 +02:00
Zebediah Figura a0043c1c5c quartz/filtergraph: Correctly implement IMediaSeeking::GetStopPosition().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 17:11:43 +02:00
Zebediah Figura 2b45d0fefe quartz/filtergraph: Ensure that the thread has a message queue before posting messages to it.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-15 17:19:59 +02:00
Zebediah Figura c4e3f4180d quartz: Use strmbase_dump_media_type() where appropriate.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-07 10:00:46 +02:00
Zebediah Figura 5994c8cc85 quartz/filtergraph: Create filters on a separate thread if requested.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-03 09:45:49 +02:00
Zebediah Figura c11b621704 quartz: Get rid of GetFileSourceFilter() and CreateFilterInstanceAndLoadFile().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 20:02:49 +02:00
Zebediah Figura 26ac991c69 quartz: Use file APIs directly in get_media_type().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 20:02:47 +02:00
Zebediah Figura 028ad9b8db quartz: Simplify error handling in GetClassMediaFile().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 20:02:43 +02:00
Zebediah Figura 7d89e791bd quartz: Remove unnecessary tracing from GetClassMediaFile().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 20:02:38 +02:00
Zebediah Figura a4006aa7d7 quartz/filtergraph: Remove type tracing from IGraphBuilder::AddSourceFilter().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-07 20:02:36 +02:00
Zebediah Figura fb504baaa8 strmbase: Build with msvcrt.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-05 18:49:31 +02:00
Zebediah Figura 6edee72560 quartz/filtergraph: Use the type info cache for IBasicVideo.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 18:21:16 +02:00
Zebediah Figura 245649f87a quartz/filtergraph: Use the type info cache for IVideoWindow.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 18:21:12 +02:00
Zebediah Figura 014012ddf3 quartz/filtergraph: Use the type info cache for IBasicAudio.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 18:21:09 +02:00
Zebediah Figura 8e302b83ad quartz/filtergraph: Don't require IAMFilterMiscFlags in IFilterGraph::SetDefaultSyncSource().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Zebediah Figura 474295e34e quartz/filtergraph: Don't require IAMFilterMiscFlags when performing seek operations.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-20 12:20:30 +02:00
Sven Baars 889fe31483 quartz: Fix some memory leaks (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-26 11:51:55 +01:00
Brendan McGrath 9f05343013 quartz/filtergraph: Iterate over all source pins in ExploreGraph().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 18:56:59 +02:00
Zebediah Figura fb6c88e260 quartz/filtergraph: Don't prevent the same filter from being used multiple times in IGraphBuilder_Connect().
This reverts part of 6301fec0ef.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 09:31:35 +02:00
Zebediah Figura 783c2d66a4 quartz/filtergraph: Check for AM_FILTER_MISC_FLAGS_IS_RENDERER or IMediaSeeking to count renderers.
Instead of using IPin_QueryInternalConnections().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 16:52:20 +02:00
Zebediah Figura 093a32ec7b quartz/filtergraph: Implement IMediaControl state functions on top of IMediaFilter.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 16:52:15 +02:00
Zebediah Figura 12d72c891d quartz/filtergraph: Also set the default sync source if necessary in IMediaControl_Pause().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 16:52:11 +02:00