Derek Lesho
508b124f80
winegstreamer: Register the audio conversion transform.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-03 20:18:39 +01:00
Derek Lesho
35c0da85ef
winegstreamer: Introduce audio conversion transform.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-03 20:18:39 +01:00
Derek Lesho
d52f2a0f99
winegstreamer: Use gst_audio_info_to_caps for media type translation.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-03 20:18:39 +01:00
Nikolay Sivov
8315486d64
winegstreamer: Fix possible leak on error path (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 23:25:24 +01:00
Gijs Vermeulen
3bcabb2422
winegstreamer: Initialise type_handler to NULL in media_stream_init_desc().
...
Otherwise it is used uninitialised if a failure occurs.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-25 21:39:18 +01:00
Zebediah Figura
54d74a053b
winegstreamer: Don't query the pad position in IMediaSeeking::SetPositions().
...
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
ef7dcc7d51
winegstreamer: Don't fail parser_init_stream() if a source 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:40 +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
Derek Lesho
59c55e96f5
winegstreamer: Set MF_PD_DURATION on source's presentation descriptor.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 21:38:06 +01:00
Derek Lesho
e12b7d2104
winegstreamer: Implement IMFMediaSource::GetCharacteristics.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 21:38:06 +01:00
Derek Lesho
964cf9cfce
winegstreamer: Require media source's IMFByteStream to be seekable.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 21:38:06 +01:00
Derek Lesho
96097c072b
winegstreamer: Implement IMFMediaStream::GetMediaSource.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-06 12:00:17 +01:00
Derek Lesho
03eaa2cc93
winegstreamer: Implement IMFMediaStream::RequestSample.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-30 22:14:11 +01:00
Derek Lesho
12f1afbffe
winegstreamer: Implement IMFMediaSource::Start.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-30 22:14:11 +01:00
Derek Lesho
e2893c3452
winegstreamer: Implement IMFMediaSource::CreatePresentationDescriptor.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-28 20:36:32 +01:00
Derek Lesho
f26e81cf38
winegstreamer: Replace gst_pad_get_current_caps with gst_pad_query_caps.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-28 20:36:29 +01:00
Derek Lesho
93107c08f5
winegstreamer: Insert audioconvert into decoded audio streams.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 22:25:06 +01:00
Derek Lesho
528e6870ad
winegstreamer: Insert videoconvert into decoded-video streams.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 22:24:47 +01:00
Zebediah Figura
63cf882e39
winegstreamer: DirectShow and GStreamer proportions are inverted with respect to each other.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-22 22:02:03 +02:00
Zebediah Figura
458dfcb95a
winegstreamer: Respect integer promotion rules when clamping timestamp + diff.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-22 22:02:03 +02:00
Anton Baskanov
0542a34c24
winegstreamer: Expose 15/16-bit RGB formats.
...
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 10:15:49 +02:00
Anton Baskanov
e484056171
winegstreamer: Add a second videoconvert to handle 15/16-bit RGB formats.
...
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 10:15:47 +02:00
Anton Baskanov
9afc5ed72e
winegstreamer: Fix RGB565 conversion in amt_from_gst_video_info().
...
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 10:15:46 +02:00
Anton Baskanov
e47b45e2f5
winegstreamer: Use RGB15/16 formats instead of BGR15/16.
...
Gstreamer stores the first component in the most significant bits, same as DirectShow.
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 10:15:43 +02:00
Derek Lesho
4228016b0c
winegstreamer: Implement IMFMediaStream::GetStreamDescriptor.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:02:17 +02:00
Derek Lesho
7d4395a00e
winegstreamer: Use decodebin to initialize media streams.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:02:15 +02:00
Derek Lesho
a4d6ad6d49
winegstreamer: Add a GstPad wrapping the media source's bytestream.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:02:12 +02:00
Zebediah Figura
025b3de29c
winegstreamer: Avoid leaking a newly allocated buffer on failure in request_buffer_src().
...
According to the GStreamer documentation, the contents of "buffer" should be
considered undefined on failure, which means that the caller has no way of
freeing a newly allocated buffer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:48:40 +02:00
Zebediah Figura
622f2ce991
winegstreamer: Don't set the buffer offset in request_buffer_src().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:48:34 +02:00
Michael Stefaniuc
60a8f050a5
winegstreamer: Drop redundant NULL check before heap_free().
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 11:36:20 +02:00
Zebediah Figura
21d2e68d8e
winegstreamer: Dereference messages dropped from watch_bus().
...
From GStreamer documentation: "If the handler returns GST_BUS_DROP, it should
unref the message, else the message should not be unreffed by the sync handler."
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:24:28 +02:00
Derek Lesho
e7b8911695
winegstreamer: Implement IMFMediaSource::Shutdown.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Derek Lesho
d832ebf1b0
winegstreamer: Implement source event methods.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Derek Lesho
784ae1e9bd
winegstreamer: Add stub media source.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Derek Lesho
a6be76bb9c
winegstreamer: Add stub bytestream handler.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Zebediah Figura
0c34a2c97a
winegstreamer: Fix a leak in gstdecoder_source_get_media_type().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:40 +02:00
Zebediah Figura
3231901ad8
Revert "winegstreamer: Check for failure from gst_video_info_set_format().".
...
This reverts commit ddd43e0a80
.
This function returns void before 1.12.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49647
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-03 10:19:19 +02:00
Zebediah Figura
e707578007
winegstreamer: Release the IAsyncReader on disconnection.
...
This allows "Zero Escape: Nine Hours, Nine Persons, Nine Doors" to start.
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
5ea1287e08
winegstreamer: Preserve the frame rate when converting video formats.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 10:17:47 +02:00
Zebediah Figura
ddd43e0a80
winegstreamer: Check for failure from gst_video_info_set_format().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-23 22:30:48 +02:00
Zebediah Figura
1a72836c37
winegstreamer: deinterlace belongs to the "good" set, not the "base" set.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 13:07:21 +02:00
Zebediah Figura
eadcba7925
winegstreamer: Append a deinterlace element to the video post-processing chain.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=30366
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-02 18:01:21 +02:00
Zebediah Figura
7be64a8d3e
winegstreamer: Don't store DirectShow caps.
...
Primarily so that we can connect using video caps that can't be translated into
DirectShow caps. They will later be converted into translatable caps once the
DirectShow source pin is connected.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47642
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-30 09:12:55 +02:00
Zebediah Figura
fd25ba65e0
winegstreamer: Avoid performing color matrix conversions in videoconvert.
...
This reduces the time videoconvert takes to process I420 -> YV12 from 15 ms to 0.8 ms on my system.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:42 +02:00
Zebediah Figura
930dc23c7c
winegstreamer: Prefer YUV formats to RGB ones.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:39 +02:00
Zebediah Figura
d085e5ba72
winegstreamer: Clear the "colorimetry" and "chroma-site" fields in amt_to_gst_caps_video().
...
These fields don't prevent us from connecting, but they may force videoconvert
to do an expensive conversion where not necessary.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-19 10:39:00 +02:00
Akihiro Sagawa
bd28efb4c7
winegstreamer: Also wait for EOS events when retrieving duration.
...
The mpegaudioparse element will not send a duration-changed message if no
Xing or VBRI headers are present.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-14 19:35:20 +02:00
Zebediah Figura
613446d018
winegstreamer: Try to convert the duration from bytes if the pad doesn't support querying time directly.
...
This can help mpegaudioparse report a usable duration, and presumably also
other elements built from baseparse.
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
Zebediah Figura
9cc742d258
winegstreamer: Calculate duration independently per pin.
...
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
Zebediah Figura
1e079a0ca4
winegstreamer: Don't query our own source pad to convert duration.
...
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
a18bc50f2f
winegstreamer: Commit allocator before pausing the stream.
...
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-09 12:09:44 +02:00
Akihiro Sagawa
49c33c920e
winegstreamer: Unref the GstCaps object in init_new_decoded_pad().
...
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura
1a4e9a84c2
winegstreamer: Remove some no longer necessary callbacks.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:02:08 +02:00
Zebediah Figura
5d0e10b77c
winegstreamer: Delay-load mfplat.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:03 +02:00
Zebediah Figura
ecac569df2
winegstreamer: Remove some unused imports.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:03 +02:00
Zebediah Figura
ac531be92e
winegstreamer: Check the format GUID, size, and pointer in amt_to_gst_caps().
...
Some application filters enumerate types without a format block.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:41 +02:00
Zebediah Figura
b9b2a04fe7
winegstreamer: Set the bit depth for UYVY video.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 12:18:49 +01:00
Zebediah Figura
bdf8f6753d
winegstreamer: Flip only RGB video.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 12:18:46 +01:00
Zebediah Figura
5814d19373
winegstreamer: Also clear the pixel-aspect-ratio field in amt_to_gst_caps_video().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:19:32 +01:00
Rémi Bernon
b3a33f065d
winegstreamer: Check the callback list before waiting.
...
Some callbacks may be pushed during pipeline initialization and before
the dispatch thread is actually started and waiting for them, which
sometimes causes some hangs.
This fixes Fallout 3 and Panzer Corps -and possibly others- intro videos
hanging forever.
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>
2020-03-26 21:18:08 +01:00
Derek Lesho
3ddf3a720f
winegstreamer: Move broad callback handling code to gst_cbs.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 22:37:58 +01:00
Derek Lesho
168ec2c82a
winegstreamer: Make callback parameter names more generic.
...
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 22:37:56 +01:00
Zebediah Figura
5ca1d28e8d
winegstreamer: Clamp both timestamp and timestamp + diff to 0.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 09:44:06 +01:00
Zebediah Figura
38c50751fe
winegstreamer: Also use GST_QOS_TYPE_OVERFLOW for samples that arrive on time.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 09:44:03 +01:00
Zebediah Figura
8575484f21
winegstreamer: Use the image size provided by GStreamer.
...
If the stride is not equal to the width, this calculation will be invalid.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:42:47 +01:00
Zebediah Figura
1bb868e9c1
winegstreamer: Use amt_from_gst_video_info() in gstdecoder_source_get_media_type().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:42:43 +01:00
Zebediah Figura
3178f1d0af
winegstreamer: Use accessor macros for GstVideoInfo fields.
...
As the documentation prescribes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:42:39 +01:00
Zebediah Figura
57492f55fd
winegstreamer: Allocate media type format blocks with CoTaskMemAlloc().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:42:35 +01:00
Zebediah Figura
d61504f16b
winegstreamer: Read into an existing buffer if requested.
...
oggdemux needs this.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:38 +01:00
Zebediah Figura
74dc0c5df9
winegstreamer: Reimplement COM registration and vending locally.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Zebediah Figura
fe6220dba7
winegstreamer: Use nAvgBytesPerSec to determine buffer size only for raw audio formats.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 11:27:16 +01:00
Zebediah Figura
2620d649c3
winegstreamer: Defer a seek to pause time if necessary.
...
This fixes background music in Tomb Raider II.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 11:27:13 +01:00
Zebediah Figura
7987e84229
winegstreamer: Don't fail seeking methods if we couldn't query duration.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48315
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 11:27:10 +01:00
Zebediah Figura
18bdaaaa26
winegstreamer: Don't query or set GStreamer duration if the filter is stopped.
...
This check is not equivalent to the existence of "their_src" for the
MPEG-1 splitter, since that always exposes a source audio pin.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 11:27:05 +01:00
Zebediah Figura
540f2983a9
winegstreamer: Decommit the source allocator when cleaning up the stream.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura
6745afd81d
winegstreamer: Negotiate allocators per source pin.
...
In particular, pass the correct buffer size for the format we have chosen.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48570
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:49:19 +01:00
Zebediah Figura
c90a36e38c
winegstreamer: Read samples synchronously in push_data().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:49:16 +01:00
Zebediah Figura
c366415360
strmbase: Merge enumpins.c into filter.c.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-29 09:45:56 +01:00
Zebediah Figura
d263c4a366
winegstreamer: Get rid of the mp3 decoder.
...
In the unlikely event that we are hotplugging not from an IAsyncReader, we
already have the ACM wrapper and l3codeca.acm available to do the same thing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-29 09:45:32 +01:00
Zebediah Figura
943b6564f5
winegstreamer: Get rid of the AudioConvert filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:25:38 +01:00
Zebediah Figura
1052d5cfb1
winegstreamer: Allow converting to 16-bit 2-channel PCM within the splitter filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:25:34 +01:00
Zebediah Figura
11b30ffc07
winegstreamer: Append an audioconvert element to raw audio streams.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:25:31 +01:00
Zebediah Figura
aa7017510d
winegstreamer: Correctly represent non-32-bit float types.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:25:27 +01:00
Zebediah Figura
ec0d6323d0
winegstreamer: Report MEDIASUBTYPE_IEEE_FLOAT for float types.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:25:23 +01:00
Zebediah Figura
841502993f
winegstreamer: Get rid of the YUV-to-(A)RGB converters.
...
This is handled by the splitter filter now.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:39:20 +01:00
Zebediah Figura
f5a1e2bd87
winegstreamer: Support converting color spaces within the splitter filter.
...
The idea being firstly that it's more efficient to handle this all within one
GStreamer pipeline, especially since we may need to be converting color
spaces anyway (for videoflip), and secondly that this renders obsolete the
color space converter transform filters in gsttffilter.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:39:14 +01:00
Zebediah Figura
847d8970fe
winegstreamer: Split the implementation of source_get_media_type().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:39:11 +01:00
Zebediah Figura
87e02cb5fc
winegstreamer: Implement IPin::QueryAccept() for the MPEG splitter source.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:39:09 +01:00
Zebediah Figura
0401213770
winegstreamer: Implement IPin::QueryAccept() for the AVI splitter source.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:39:06 +01:00
Zebediah Figura
71967608a3
winegstreamer: Implement IPin::QueryAccept() for the WAVE parser source.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-24 17:23:01 +01:00
Zebediah Figura
0a9acdefe8
winegstreamer: Fix pin enumeration order for the AVI and WAVE parsers.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-24 17:22:56 +01:00
Zebediah Figura
0897293b99
winegstreamer: Rename the "cStreams" element of struct gstdemux to "source_count".
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-24 17:22:54 +01:00
Zebediah Figura
a9d6341290
winegstreamer: Rename the "ppPins" element of struct gstdemux to "sources".
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-24 17:22:52 +01:00
Zebediah Figura
a191a0c23a
winegstreamer: Catch errors while waiting for pin connection.
...
In the event that the user is missing GStreamer plugins this may allow the
program to terminate gracefully rather than hanging in the init_gst() callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-02 19:16:02 +01:00
Zebediah Figura
826e2508e5
winegstreamer: Recognize the "video/x-cinepak" type.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39809
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-23 20:13:23 +01:00
Zebediah Figura
15e3adab4c
winegstreamer: Clear the "reader" and "allocator" fields if connection fails.
...
This fixes a regression introduced by dafe81dfcb
.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-16 11:57:33 +01:00
Zebediah Figura
a6aea1cecd
strmbase: Get rid of the "vtbl" parameter to strmbase_sink_init().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:57:00 +01:00
Zebediah Figura
5d2c3de55d
winegstreamer: Use base sink streaming methods.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:57:00 +01:00
Zebediah Figura
dafe81dfcb
winegstreamer: Use base sink connection methods.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-11 21:51:28 +01:00
Zebediah Figura
02cb76c40c
winegstreamer: Store the sink as a strmbase_sink structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-11 21:51:28 +01:00
Zebediah Figura
264c539ed6
strmbase: Combine the SetMediaType() and CompleteConnect() callbacks.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00
Zebediah Figura
675e061142
strmbase: Get rid of the "vtbl" argument to strmbase_source_init().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Zebediah Figura
5c83561b33
winegstreamer: Use BasePinImpl_QueryInterface().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Zebediah Figura
18f561a783
strmbase: Get rid of the "vtbl" parameter to strmbase_filter_init().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-05 23:36:16 +01:00
Zebediah Figura
60680651d7
winegstreamer: Fix the timeout passed to gst_element_get_state().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:36:15 +01:00
Zebediah Figura
90ebc7e33b
winegstreamer: Use strmbase state change methods.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-03 21:27:14 +01:00
Zebediah Figura
078ac0f764
winegstreamer: Also wait for the no-more-pads signal when pausing the filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-03 21:27:14 +01:00
Zebediah Figura
7a0d963df3
winegstreamer: Don't hold the filter lock from the pad-added or pad-removed callbacks.
...
These may be called from the streaming thread, so it's not safe to do so.
Nor does it seem necessary. We expect that no streaming thread should ever
call methods on our pad or pin, and as long as we hold the filter lock and
wait for the no-more-pads signal when connecting or starting the stream, we
cannot race with application threads.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-03 21:27:14 +01:00
Zebediah Figura
4008aba453
strmbase: Use a separate critical section for the SourceSeeking structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-03 21:27:14 +01:00
Zebediah Figura
bdc09fb8b4
winegstreamer/gsttffilter: Don't drop the streaming lock in Gstreamer_transform_ProcessEnd().
...
This sort of reverts 096da45036
. The deadlock
mentioned there is not spelled out in detail, but likely results from the
streaming thread trying to acquire the filter lock while a main thread which
is holding the filter lock waits for the streaming thread to finish. However,
DirectShow documentation (and manual testing) suggests that the correct way
to avoid this problem is simply to never take the filter lock from the
streaming thread. Since we currently don't do this anymore, it should be safe
to reinstate this lock.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 10:42:13 +01:00
Zebediah Figura
3a7f54947e
strmbase/transform: Hold the streaming lock for the entirety of Receive().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 10:42:10 +01:00
Zebediah Figura
1b3d163208
winegstreamer/gsttffilter: Call IMemInputPin::Receive() directly.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-26 22:49:03 +01:00
Zebediah Figura
bd83b11a23
strmbase: Return a strmbase_pin pointer from the filter_get_pin() callback.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Zebediah Figura
03f0479c34
strmbase: Rename the "mtCurrent" field of struct strmbase_pin to "mt".
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 09:23:09 +01:00
Zebediah Figura
6c8cb0abac
winegstreamer: 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:58 +02:00
Zebediah Figura
b3e325f36b
strmbase: Move tracking of the stream start time to the renderer.
...
Only renderers should ever need to care about this.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-04 23:16:25 +02:00
Zebediah Figura
f65cb89cbc
winegstreamer: Initialize COM on the callback dispatcher thread.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47822
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-30 22:24:25 +02:00
Zebediah Figura
c7a447b67a
strmbase: Rename "pConnectedTo" to "peer".
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 13:26:52 +02:00
Zebediah Figura
b0e47ab9e7
strmbase: Pass an unsigned index to pin_get_media_type().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 16:27:57 +02:00
Zebediah Figura
f46fe6d371
strmbase: Rename pfnGetMediaType() to pin_get_media_type().
...
And remove the unnecessary calling convention.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 16:27:54 +02:00
Zebediah Figura
9f1909be89
strmbase: Rename pfnCheckMediaType() to pin_query_accept().
...
And remove the unnecessary calling convention.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 16:27:51 +02:00
Zebediah Figura
8619eb9838
strmbase: Get rid of the BasePin typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-24 09:08:20 +02:00
Zebediah Figura
40a4c782b7
winegstreamer: Reimplement the MPEG splitter on top of the mpegaudioparse plugin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-23 10:10:04 +02:00
Zebediah Figura
5de712b5d8
winegstreamer: Reimplement the AVI splitter on top of the avidemux plugin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 12:47:22 +02:00
Zebediah Figura
bf46266099
winegstreamer: Don't set the source and target rects in amt_from_gst_caps_video().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 12:47:19 +02:00
Zebediah Figura
923a7808f4
winegstreamer: Set lSampleSize to 1 in amt_from_gst_caps_video().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 12:47:13 +02:00
Zebediah Figura
8d5c0a6631
winegstreamer: Clear bFixedSizeSamples in amt_from_gst_caps_video().
...
This makes no logical sense, but the native AVI splitter never sets this field.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 12:47:08 +02:00
Zebediah Figura
28c334b273
winegstreamer: Fix registration for the WAVE parser.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-20 12:47:04 +02:00
Zebediah Figura
939638b055
winegstreamer: Reimplement the WAVE parser ontop of the wavparse plugin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-19 12:56:59 +02:00
Zebediah Figura
41fc456498
winegstreamer: Introduce a callback for filter-specific initialization.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-19 12:56:59 +02:00
Zebediah Figura
e73c58f9e6
winegstreamer: Move more common pin initialization into create_pin().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-19 12:56:59 +02:00
Zebediah Figura
68a9cbcc80
winegstreamer: Also set cbFormat when using WAVE_FORMAT_PCM.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 14:54:32 +02:00
Zebediah Figura
19c6b2f26e
winegstreamer: Clear bTemporalCompression in amt_from_gst_caps_audio().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 14:54:29 +02:00
Zebediah Figura
13da4669bd
winegstreamer: Set bFixedSizeSamples in amt_from_gst_caps_audio().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 14:54:25 +02:00
Zebediah Figura
ad79189402
winegstreamer: Set lSampleSize in amt_from_gst_caps_audio().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 14:54:21 +02:00
Zebediah Figura
c9a94b4de1
winegstreamer: Factor out amt_from_gst_caps().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-16 10:12:53 +02:00
Zebediah Figura
450d443b89
winegstreamer: Use the "format" field to determine the subtype and bit depth.
...
The "bits" field does not directly describe the total bit depth.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-16 10:12:53 +02:00
Zebediah Figura
9ef5825941
winegstreamer: Improve some trace messages.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-16 10:12:40 +02:00
Zebediah Figura
7782b8ea4c
winegstreamer: Store the pin media type directly.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-16 10:12:38 +02:00
Zebediah Figura
993d1dd2f8
winegstreamer: Get rid of the GSTOutPin typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-13 19:34:19 +02:00
Zebediah Figura
4b635019dd
winegstreamer: Get rid of the GSTImpl typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-13 19:34:19 +02:00
Zebediah Figura
9c92c0bf19
winegstreamer: Use BasePinImpl_QueryAccept() and BasePinImpl_EnumMediaTypes().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-13 19:34:17 +02:00
Zebediah Figura
765cb748a8
strmbase: Get rid of the BaseOutputPinFuncTable typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-13 10:37:49 +02:00
Zebediah Figura
c585931d61
strmbase: Get rid of the BaseOutputPin typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-13 10:37:37 +02:00
Zebediah Figura
d9f218a338
winegstreamer: Use the global HeapAlloc() wrappers.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-10 23:20:41 +02:00
Zebediah Figura
9e015a2ad1
winegstreamer: Don't activate our source pad immediately after connecting.
...
There's not any reason to do this here; this should be handled with state
change transitions. Since the pipeline is in the ready state, the only
effect this will have is push_data() trying to run and failing since the
decodebin sink pad isn't active.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-10 23:20:41 +02:00
Zebediah Figura
3619ff7517
winegstreamer: Handle GST_EVENT_RECONFIGURE.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:56 +02:00
Zebediah Figura
c98c263266
winegstreamer: Get rid of the unused "discont" field from GstImpl.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:56 +02:00
Zebediah Figura
d6e2deef19
winegstreamer: Get rid of the GSTInPin structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:56 +02:00
Zebediah Figura
92e4d33635
winegstreamer: Get rid of the "isaud" and "isvid" fields of GstOutPin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:56 +02:00
Zebediah Figura
da69d353aa
winegstreamer: Get rid of the unused "gstpool" field from GSTOutPin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:56 +02:00
Zebediah Figura
aa88c5d65b
strmbase: Get rid of the "pCritSec" member of BasePin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-06 13:07:22 +02:00
Zebediah Figura
28a511554c
strmbase: Store the filter as a strmbase_filter pointer in the BasePin structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-06 13:07:16 +02:00
Zebediah Figura
06d72b61ce
winegstreamer: Use strmbase_source_init().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-05 08:30:50 +02:00
Zebediah Figura
eeb7bc58aa
strmbase: Get rid of the BaseFilter typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-29 20:08:14 +02:00
Zebediah Figura
cfe3b05c83
strmbase: Get rid of the BaseFilterFuncTable typedef.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-29 20:08:14 +02:00
Zebediah Figura
1317102f6c
strmbase: Get rid of the "debug_info" parameter to strmbase_filter_init().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-28 08:44:35 +02:00
Zebediah Figura
abdaa6f21f
winegstreamer: Share source with strmbase.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-05 18:45:57 +02:00
Nikolay Sivov
787ed80858
winegstreamer: Add stub Video Processor MFT.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-05 17:37:44 +02:00
Zebediah Figura
2d5c9d0666
strmbase/transform: Store the pins inline in the TransformFilter structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-21 08:06:00 +02:00
Zebediah Figura
117e07e706
winegstreamer: Use strmbase pin reference counting methods.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 08:51:23 +02:00
Zebediah Figura
42b3fd84bb
strmbase: Share pin and filter reference counts in base pin reference counting methods.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 10:26:21 +02:00
Zebediah Figura
8983528f60
winegstreamer: Share source pin and filter reference counts.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-18 08:57:33 +02:00
Zebediah Figura
8d249e1863
winegstreamer: Share sink pin and filter reference counts.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-18 08:57:31 +02:00
Zebediah Figura
690838a0e0
strmbase: Don't increment the pin reference count in filter_get_pin().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 18:21:26 +02:00
Zebediah Figura
f500b1dc19
strmbase: Support aggregation in the base transform filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 17:40:44 +02:00
Zebediah Figura
31a5cb5f05
strmbase: Support aggregation in the base filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 23:05:25 +02:00
Zebediah Figura
c15b457379
winegstreamer/gstdemux: Use BaseFilterImpl_QueryInterface().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-31 10:10:17 +02:00
Zebediah Figura
42699ad1ad
winegstreamer/gstdemux: Use BaseFilterImpl_Release().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-27 14:37:40 +02:00
Zebediah Figura
1fc5c6b75d
strmbase: Remove unnecessary calling convention from the filter_get_pin() callback.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-24 11:25:35 +02:00
Zebediah Figura
8a8c5a8229
strmbase: Rename pfnGetPin to filter_get_pin.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-24 11:25:35 +02:00
Zebediah Figura
97546ca0b7
strmbase: Use an unsigned int for the GetPin() callback.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-24 11:25:35 +02:00
Zebediah Figura
43444f4096
strmbase: Rename BaseFilter_Destroy() to strmbase_filter_cleanup().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-22 09:27:19 +02:00
Zebediah Figura
0f9e4cd660
strmbase: Get rid of the "filterVtbl" parameter to TransformFilter_Construct().
...
Reordering some functions to avoid forward declarations.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 09:36:15 +02:00
Jimi Huotari
eca00491cd
winegstreamer: Fix spelling of 'initialized' in a TRACE().
...
Signed-off-by: Jimi Huotari <chiitoo@gentoo.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:20 +02:00
Zebediah Figura
cade211d06
winegstreamer: Use CONTAINING_RECORD instead of casting.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:17 +02:00
Zebediah Figura
dad885e2b9
strmbase: Get rid of the "pfnGetPinCount" callback.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:15 +02:00
Zebediah Figura
df05902b96
strmbase: Get rid of the "pfnBreakConnect" field from BaseOutputPinFuncTable.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 12:48:18 +02:00
Zebediah Figura
797672182b
winegstreamer: Make GSTOutPin_BreakConnect() a local helper.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 12:48:13 +02:00
Zebediah Figura
9be7995448
strmbase: Get rid of the "pfnGetMediaTypeVersion" callback.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-10 16:04:25 +02:00
Zebediah Figura
7e6ab5e53c
strmbase: Move "AttemptConnection" to the base source pin function table.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-10 15:54:15 +02:00
Zebediah Figura
cf345813de
winegstreamer: Convert media type registration to IRegistrar mechanism.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:52:39 +02:00
Nikolay Sivov
11401be90b
winegstreamer: Actually pin module on initialization.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:42 +01:00
Nikolay Sivov
d6fcab825b
winegstreamer: Print current and build version of GStreamer.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:36 +01:00
Nikolay Sivov
9a9e521da8
winegstreamer: Get rid of allocated arguments array.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:13 +01:00
Nikolay Sivov
f5908390a7
winegstreamer: Use init-once API to initialize library.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:00 +01:00
Michael Stefaniuc
b618a6c6a7
winegstreamer: Use the ARRAY_SIZE() macro.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 22:43:52 +01:00
Zebediah Figura
f482b9463c
winegstreamer: Add a missing debugstr_a.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-05 19:57:16 +02:00
Zebediah Figura
b252ef91a2
winegstreamer: Use CBaseFilter::FindPin().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 14:56:24 +02:00
Zebediah Figura
10ff8f3082
strmbase: Implement QueryAccept() on top of CheckMediaType() for output pins too.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-04 11:01:40 +02:00
Zebediah Figura
577fd01249
winegstreamer: Remove unused callbacks.
...
These were left behind in the transition to 1.0.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura
999c862f4f
winegstreamer: Wait for GST_EVENT_CAPS instead of data.
...
Some decoders and files fail to find any valid frames during test-play, so
don't wait for data we might never receive.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura
7ae35a04f4
winegstreamer: Zero-initialize the GstImpl filter.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura
c907d69cf0
winegstreamer: Avoid using the same event for multiple purposes.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura
9550556f3c
winegstreamer: Use ERR instead of FIXME for GStreamer errors.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura
7bf59055cb
winegstreamer: Make sure the pipeline state is NULL before removing output pins.
...
Source pads can be created asynchronously, so they might not be created until
during the call to gst_element_set_state(). Therefore don't copy This->ppPins
into a local variable.
This condition can be triggered by failing to demux a stream.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura
3201cee735
winegstreamer: Don't wait for the no-more-pads signal if playback fails.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura
2ea0d6ff81
winegstreamer: Check for failure from gst_element_set_state() instead of counting pads.
...
Especially since pads might be exposed before failure is reported.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura
5374d5ca59
winegstreamer: Stop creating the filter if gstreamer fails to render.
...
Otherwise the push_data() thread will run and try to use resources we
never allocated.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00