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