Commit Graph

1775 Commits

Author SHA1 Message Date
Zebediah Figura cf366488f6 quartz/dsoundrender: Don't drop stream_cs in DSoundRender_SendSampleData().
We don't grab stream_cs to change any variables checked here, except to reset
flush_event, and that cannot result in a deadlock.

The only possible deadlocks here are:

(1) between this function and EndOfStream(), which is correct, as the two
    should presumably be serialized;

(2) between this function and EndFlush(); however, in that case we expect
    BeginFlush() first, which will unblock the streaming thread.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:13:35 +01:00
Zebediah Figura 2d6043eb4f quartz/dsoundrender: Don't drop stream_cs in DSoundRender_HandleEndOfStream().
We don't grab stream_cs to change any variables checked here, except to reset
flush_event, and that cannot result in a deadlock.

The only possible deadlocks here are:

(1) between this function and Receive(), which is correct, as the two
    should presumably be serialized;

(2) between this function and EndFlush(); however, in that case we expect
    BeginFlush() first, which will unblock the streaming thread.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:13:29 +01:00
Zebediah Figura 3933ceca58 quartz/dsoundrender: Remove the unused "in_loop" field.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:13:23 +01:00
Zebediah Figura 68d3558830 quartz: Avoid autoplugging renderers in IGraphBuilder::Connect().
I don't know of an application that this helps, but it seems like an
optimization worth performing.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 16:53:52 +01:00
Zebediah Figura bc588e9c52 quartz/tests: Avoid some test failures related to timing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 16:53:52 +01:00
Gijs Vermeulen 4807a8f588 quartz: Only return S_FALSE in IEnumFilters::Skip() if count goes past the end of the sequence.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=28332
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-11-23 22:11:17 +01:00
Gijs Vermeulen 68d03ba8bb quartz: Return E_INVALIDARG when cursor is NULL in IEnumFilters::Skip().
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-11-23 22:07:56 +01:00
Gijs Vermeulen d918c6a482 quartz: Return VFW_E_ENUM_OUT_OF_SYNC in IEnumFilters::Skip() when enum version doesn't match graph version.
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-11-23 22:07:53 +01:00
Zebediah Figura 627b6b29cd quartz: Correct return value handling in IMediaSeeking::GetDuration().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura ec4feafcc0 quartz/tests: Add some more tests for IMediaSeeking return value handling.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 1bb7ef1c1a winegstreamer: Return the seeking start time from IMediaSeeking::GetCurrentPosition().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura b04c0a56e3 quartz/tests: Add some tests for parser streaming.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 08026a2c66 quartz/tests: Add some tests for IMediaSeeking on parser filters.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 9281b542ff quartz/tests: Add some tests for IPin::EndOfStream() on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 6e9920a1d3 quartz/tests: Add some tests for flushing on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Zebediah Figura 48552496a4 quartz/tests: Add some tests for streaming events on the AVI decoder.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:42 +01:00
Zebediah Figura cd3b23c13c quartz/avidec: Don't copy the media time to the output sample.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:40 +01:00
Zebediah Figura f0a6cb9111 quartz/tests: Add some tests for AVI decoder sample processing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:38 +01:00
Zebediah Figura cf7717b830 quartz/avidec: Don't send ICM_DECOMPRESS_BEGIN or ICM_DECOMPRESS_END messages if the source is disconnected.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:37 +01:00
Zebediah Figura 6463f65adc quartz/tests: Test (dis)connecting while not stopped.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:29 +01:00
Zebediah Figura c00c6000bc quartz/tests: Enable no longer failing tests for IBasicVideo::GetCurrentImage().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:29 +01:00
Zebediah Figura 4fe604a2ba strmbase: Get rid of strmbase_pin_get_media_type().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:27 +01:00
Zebediah Figura 9685f12d7c quartz: 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:18 +01:00
Zebediah Figura 60814198fe winegstreamer: Don't fail state change methods if the sink pin is not connected.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:36:38 +01:00
Zebediah Figura f35e5c4de2 quartz/tests: Pass an IMediaControl to some functions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:36:36 +01:00
Zebediah Figura bd1174e125 quartz: Immediately return failure from IFilterGraph::RemoveFilter() if IPin::Disconnect() fails.
Do not try to stop the filter.

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
Zebediah Figura be1ccdf73f quartz/tests: Add more tests for interaction between pin connection and graph state.
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
Zebediah Figura 316396275c quartz/tests: Store a testfilter pointer inside the testpin structure.
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
Zebediah Figura d19aac6edb quartz: Don't stop the filter in IFilterGraph::RemoveFilter().
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
Zebediah Figura 57eddc004b quartz/tests: Test adding and removing filters while the graph is running.
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
Zebediah Figura 40a43d72a2 quartz/tests: Test releasing the graph while waiting for an asynchronous paused -> running transition.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 10:52:37 +01:00
Zebediah Figura c44173dd49 quartz: Don't hold an extra reference in async_run_cb().
We don't actually need to, because we'll wait for the callback when stopping the graph.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49907
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 10:52:34 +01:00
Zebediah Figura dfa4c07941 quartz: Treat a filter as supporting IMediaSeeking only if it supports TIME_FORMAT_MEDIA_TIME.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48715
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 23:20:24 +01:00
Zebediah Figura 294de6f218 quartz/tests: Add some more tests for seeking formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:41:25 +01:00
Gijs Vermeulen c7bd395ad9 quartz: Implement IVMRAspectRatioControl9.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37517
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-11-02 22:41:22 +01:00
Gijs Vermeulen a6d1ee860c quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
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-10-26 20:25:10 +01:00
Gijs Vermeulen 80fa0b93a6 quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
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-10-26 20:25:08 +01:00
Gijs Vermeulen f708161a47 quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
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-10-26 20:25:06 +01:00
Gijs Vermeulen ef8acacaef quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
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-10-26 20:25:01 +01:00
Gijs Vermeulen 08166d7a2d quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
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-10-26 20:24:59 +01:00
Zebediah Figura f4b04e2e84 quartz/tests: Use compare_double() to test IBasicVideo::get_AvgTimePerFrame().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-23 11:42:07 +02:00
Zebediah Figura 78c2f08225 quartz: Return the paused timestamp from IMediaSeeking::GetCurrentPosition() if the graph is running asynchronously.
In this case "graph->stream_start" has not yet been set.

This fixes a regression with Blazblue Centralfiction, which incorrectly skipped
a video. The application called IMediaControl::Run() and
IMediaSeeking::GetCurrentPosition() in quick succession, received an incorrect
value for the latter, and consequently believed that the video had already
finished.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-21 10:50:36 +02:00
Michael Stefaniuc 1b9c43df16 quartz: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-07 11:24:12 +02:00
Pengpeng Dong 4765c5ffe2 quartz: Return E_POINTER from IVideoWindow::get_Visible() if "visible" is NULL.
Signed-off-by: Pengpeng Dong <dongpengpeng@uniontech.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:31:44 +02:00
Zebediah Figura f4d66140ad quartz/vmr9: Avoid leaking the presenter's reference to the d3d9 device.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:31 +02:00
Gijs Vermeulen 5e1753f04d quartz: Close hfile when GetFileSizeEx fails in IFileSourceFilter::Load() (Coverity).
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:23 +02:00
Zebediah Figura 0beda8a480 quartz: Reimplement AM_RENDEREX_RENDERTOEXISTINGRENDERERS by forbidding renderers from IFilterMapper2::EnumMatchingFilters().
Primarily to avoid unnecessarily creating filters like the VMR.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-18 22:30:09 +02:00
Zebediah Figura eedbfe0c0d quartz/tests: Fix a test in test_basic_video().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-03 10:22:55 +02:00
Zebediah Figura 1ce2cae3e9 quartz/vmr9: Allow AdviseSurfaceAllocator() to be called multiple times.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47161
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Zebediah Figura 41a9f82870 quartz: Don't pause the graph in IMediaSeeking::SetPositions if it hasn't finished running yet.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49604
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00