Commit Graph

597 Commits

Author SHA1 Message Date
Zebediah Figura fc5719e4c5 winegstreamer: Release stream_cs on error in stream_thread().
This fixes a deadlock when trying to skip video in Persona 4 Golden.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 10:47:03 +01:00
Zebediah Figura 8c7ad5fc39 winegstreamer: Use IMemAllocator::GetBuffer() directly.
BaseOutputPinImpl_GetDeliveryBuffer() is doing nothing helpful here. Note that
we cannot be unconnected at this point, or stream_thread() would not even be
running.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-07 10:57:54 +01:00
Zebediah Figura 83023a9f2b winegstreamer: Constify some static variables.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 09:48:34 +01:00
Zebediah Figura 91c993bb78 winegstreamer: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 09:48:31 +01:00
Rémi Bernon 940110d387 winegstreamer: Implement WMA decoder GetInputStreamInfo.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:49 +01:00
Rémi Bernon 177c232936 winegstreamer: Implement WMA decoder GetOutputStreamInfo.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:45 +01:00
Rémi Bernon 1541d6b6d8 winegstreamer: Implement WMA decoder SetOutputType.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:41 +01:00
Rémi Bernon 22472a3feb winegstreamer: Implement WMA decoder GetOutputAvailableType.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:37 +01:00
Rémi Bernon b1fc2a49ff winegstreamer: Implement WMA decoder IMFTransform_SetInputType.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:32 +01:00
Rémi Bernon a7508d54db winegstreamer: Stub implement WMA decoder DMO / MF transform.
Final Fantasy XIV intro videos require media_object_GetStreamCount and
property_bag_Write to return S_OK in order to not get stuck. This could
be done in a separate commit but would cause a temporary regression.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-03 10:22:27 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Zebediah Figura 03d92af78a winegstreamer: Always set the initial video type for the WMF reader to WG_VIDEO_FORMAT_BGR.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52273
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-30 23:09:45 +01:00
Zebediah Figura 4d2a628dfe winegstreamer: Use the size of the data read when allocating the read buffer.
Instead of the size of the data requested, which may be e.g. UINT_MAX.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52277
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-30 23:09:45 +01:00
Zebediah Figura c5a9373dbe winegstreamer: Allow specifying flipped video via negative height.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50668
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-23 09:58:38 +01:00
Zebediah Figura 78f916f598 winegstreamer: Return E_UNEXPECTED when calling IWMReader::Stop() if no stream is open.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52038
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-15 18:57:16 +01:00
Zebediah Figura fa3fa0e3d5 winegstreamer: Acquire all of the flushing locks in GST_Seeking_SetPositions().
The current code unintentionally repeatedly acquires the lock for the stream
currently being seeked.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50906
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-14 10:52:38 +01:00
Nikolay Sivov bd28c369d0 winegstreamer: Set MF_MT_AUDIO_BLOCK_ALIGNMENT attribute for raw types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-10 14:41:41 +01:00
Zebediah Figura 747905c674 winegstreamer: Call IWMReaderCallbackAdvanced::OnTime() when using a user clock.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 08:46:26 +01:00
Zebediah Figura f3624e2d64 winegstreamer: Implement IWMMediaProps::GetMediaType() for the stream config object.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 08:46:24 +01:00
Zebediah Figura 769057b9b2 winegstreamer: Add IWMMediaProps to the stream config object.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 08:46:22 +01:00
Zebediah Figura 639c04a5b4 winegstreamer: Implement IWMReaderAdvanced::GetMaxStreamSampleSize().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 08:46:19 +01:00
Zebediah Figura 54f825d237 winegstreamer: Implement IWMSyncReader::SetReadStreamSamples().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:27 +01:00
Zebediah Figura cad38401bf winegstreamer: Implement IWMReaderAdvanced::SetAllocateForStream().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:25 +01:00
Zebediah Figura 894e071245 winegstreamer: Implement IWMReaderAdvanced::SetReceiveStreamSamples().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:23 +01:00
Zebediah Figura 2f7e7d284b winegstreamer: Implement IWMReaderAdvanced::SetAllocateForOutput().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:18 +01:00
Zebediah Figura 72b3cb68a7 winegstreamer: Implement IWMReaderAdvanced::GetStreamSelected().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:58:45 +01:00
Zebediah Figura a1a51f54dc winegstreamer: Implement IWMSyncReader::GetStreamSelected().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:58:43 +01:00
Zebediah Figura 3e0a9877ea winegstreamer: Implement IWMReaderAdvanced::SetStreamsSelected().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:58:39 +01:00
Zebediah Figura 5d0858ee98 winegstreamer: Implement IWMSyncReader::SetStreamsSelected().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 18:58:35 +01:00
Zebediah Figura 3864d23554 winegstreamer: Implement IWMOutputMediaProps::GetType().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:30 +01:00
Zebediah Figura fca2f6c12b winegstreamer: Implement IWMReader::Open().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:28 +01:00
Zebediah Figura 63fb4d8270 winegstreamer: Implement INSSBuffer::SetLength().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:24 +01:00
Zebediah Figura 25adac6ede winegstreamer: Implement INSSBuffer::GetMaxLength().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:21 +01:00
Zebediah Figura dc1a1ae450 winegstreamer: Implement INSSBuffer::GetBuffer().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:18 +01:00
Michael Stefaniuc aafbbdb8bc winegstreamer: Drop a debugstr from an out parameter.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 22:45:53 +01:00
Zebediah Figura 682093d0bd winegstreamer: Implement IWMReaderAdvanced::SetUserProvidedClock().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:33 +01:00
Zebediah Figura 21dc092b91 winegstreamer: Implement IWMReader::Start().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:31 +01:00
Zebediah Figura d7175e2655 winegstreamer: Implement IWMReader::SetOutputProps().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:29 +01:00
Zebediah Figura 5306d0ff3c winegstreamer: Implement IWMReader::GetOutputFormatCount().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:27 +01:00
Zebediah Figura 00bc5eb73b winegstreamer: Implement IWMReader::GetOutputFormat().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:25 +01:00
Zebediah Figura a855591fd2 winegstreamer: Implement IWMReader::GetOutputProps().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 10:30:45 +01:00
Zebediah Figura 34d85311f3 winegstreamer: Implement IWMReader::GetOutputCount().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 10:30:42 +01:00
Zebediah Figura 42c82012c7 winegstreamer: Implement IWMReaderAdvanced2::OpenStream().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 10:30:39 +01:00
Zebediah Figura 56dde41b6d winegstreamer: Implement IWMSyncReader::Open().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura c3811e8461 winegstreamer: Implement IWMHeaderInfo::GetAttributeByName(L"Seekable").
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura 799c7704e8 winegstreamer: Implement IWMHeaderInfo::GetAttributeByName(L"Duration").
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura 399ccc0327 winegstreamer: Return S_OK from IWMSyncReader::SetOutputSetting(L"VideoSampleDurations").
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura f7b45d419f winegstreamer: Don't set bTemporalCompression for WMF video formats.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura 6cb1d1ec4f winegstreamer: Set bFixedSizeSamples for WMF video formats.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zebediah Figura 7c02cd8cf8 winegstreamer: Set rcSource and rcTarget for WMF video formats.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00