Seungha Yang [Mon, 23 Mar 2020 09:42:19 +0000 (18:42 +0900)]
videorate: Signalling reconfigure to upstream whenever updating downstream caps
Previously configured bufferpool can be expired/inactivate by the
updated caps. Therefore new reconfigure event should be signalled in order to
do allocation query dancing between upstream and downstream again.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/730
Loïc Minier [Sat, 14 Mar 2020 19:22:50 +0000 (20:22 +0100)]
pkgconfig: fix missing gst-tag Requires
Promote deps gstreamer-tag to Requires for pbutils and add missing
gstreamer-tag Requires for gst-audio. Uninstalled builds would fail
with:
stage/usr/local/lib/x86_64-linux-gnu/libgstpbutils-1.0.so: undefined reference to `gst_tag_list_to_vorbiscomment_buffer'
[...]
stage/usr/local/lib/x86_64-linux-gnu/libgstaudio-1.0.so: undefined reference to `gst_tag_register_musicbrainz_tags'
Loïc Minier [Sat, 14 Mar 2020 18:42:24 +0000 (19:42 +0100)]
pkgconfig: add missing gst-rtp dep to gst-sdp
Uninstalled builds using rtp would fail with:
stage/usr/local/lib/x86_64-linux-gnu/libgstsdp-1.0.so: undefined reference to `gst_rtp_payload_info_for_pt'
Víctor Manuel Jáquez Leal [Sat, 21 Mar 2020 13:03:44 +0000 (14:03 +0100)]
videodecoder: fix documentation
Fix list indentation, othewise it is interpreted as verbatim.
Niels De Graef [Tue, 17 Mar 2020 17:40:26 +0000 (18:40 +0100)]
navigation: Use G_DEFINE_INTERFACE
Niels De Graef [Tue, 17 Mar 2020 17:20:59 +0000 (18:20 +0100)]
streamvolume: Use G_DECLARE_INTERFACE
Niels De Graef [Tue, 17 Mar 2020 16:51:36 +0000 (17:51 +0100)]
gstphysmemory: Use G_DECLARE_INTERFACE
Niels De Graef [Tue, 17 Mar 2020 16:47:47 +0000 (17:47 +0100)]
audiovisualizer: Add support for g_autoptr()
Ideally, we would use something like `G_DECLARE_DERIVABLE_TYPE`, but
that would break API.
Miguel Paris [Thu, 20 Feb 2020 16:25:19 +0000 (17:25 +0100)]
rtpbuffer: add_extension_onebyte_header: fix the proper wordlen
The wordlen ("length") MUST represent the total "number of 32-bit words
in the extension, excluding the four-octet extension header" (rfc3550).
There are cases where already existent padding is reused for adding
the new extension. So the new wordlen should be updated if the new
added extension makes it to increase.
Miguel Paris [Fri, 13 Dec 2019 15:06:44 +0000 (16:06 +0100)]
rtpbuffer: get_onebyte_header_end_offset: allow 0 offset
There are some cases where the full extension data could be padding.
In order to make the GstRtpBuffer robust enough, this change supports
this case.
Philippe Normand [Mon, 10 Feb 2020 18:17:42 +0000 (18:17 +0000)]
gl/wayland: Mouse events handling
Philippe Normand [Mon, 10 Feb 2020 18:05:01 +0000 (18:05 +0000)]
gl/navigation: Scroll events dispatch support
Philippe Normand [Mon, 10 Feb 2020 17:55:24 +0000 (17:55 +0000)]
navigation: Mouse scroll events support
This patch introduces a new API to send and parse mouse scroll events. Mouse
event coordinates are sent relative to the display space of the related output
area. This is usually the size in pixels of the window associated with the
element implementing the GstNavigation interface.
Guillaume Desmottes [Wed, 18 Mar 2020 14:38:25 +0000 (15:38 +0100)]
audio: annotate @buf in finish_frame methods
Haihao Xiang [Thu, 27 Feb 2020 09:52:20 +0000 (17:52 +0800)]
video: add support for P012 format
P012 is a semi-planar 4:2:0 format, 2bytes per component with the value
stored in the 12 most significant bits
Niels De Graef [Thu, 12 Mar 2020 12:32:23 +0000 (13:32 +0100)]
volume: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:31:22 +0000 (13:31 +0100)]
videotestsrc: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:29:22 +0000 (13:29 +0100)]
videoscale: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:27:40 +0000 (13:27 +0100)]
videorate: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:25:47 +0000 (13:25 +0100)]
videoconvert: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:23:36 +0000 (13:23 +0100)]
subparse: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:20:51 +0000 (13:20 +0100)]
rawparse: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 12:20:31 +0000 (13:20 +0100)]
overlaycomposition: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 07:02:02 +0000 (08:02 +0100)]
gio: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:55:52 +0000 (07:55 +0100)]
encoding: Use G_DECLARE_FINAL_TYPE
Note that we didn't do it for encodebin, as it has a class struct. We
_could_ techincally use `G_DECLARE_DERIVABLE_TYPE()` for that one, but
that would mean also using a private struct, which is even more work for
no gain.
Niels De Graef [Thu, 12 Mar 2020 06:51:24 +0000 (07:51 +0100)]
adder: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:49:45 +0000 (07:49 +0100)]
audioconvert: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:46:47 +0000 (07:46 +0100)]
audiomixer: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:44:28 +0000 (07:44 +0100)]
audiorate: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:42:52 +0000 (07:42 +0100)]
audioresample: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:41:16 +0000 (07:41 +0100)]
audiotestsrc: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Thu, 12 Mar 2020 06:39:09 +0000 (07:39 +0100)]
compositor: Use G_DECLARE_FINAL_TYPE
Niels De Graef [Sat, 14 Mar 2020 13:42:12 +0000 (14:42 +0100)]
*aggregator: Add g_autoptr support for *ConvertPad
Tobias Ronge [Mon, 9 Mar 2020 14:26:42 +0000 (15:26 +0100)]
gstrtpbasepayloader: Add property for scaling RTP timestamp
This patch introduces a property which, if set to FALSE, prevents RTP
basepayloader from scaling the RTP time when a segment's rate is not
equal to 1.0. The specification is ambiguous on this subject and some
clients expect the timestamps not to be scaled.
Matthew Waters [Mon, 16 Mar 2020 04:32:47 +0000 (15:32 +1100)]
videometa: constify tc argument to add_video_time_meta()
We don't modify the argument.
Peter Seiderer [Mon, 16 Dec 2019 18:49:09 +0000 (19:49 +0100)]
meson: add window system egl
Guillaume Desmottes [Thu, 12 Mar 2020 08:14:10 +0000 (13:44 +0530)]
rtsp: remove documentation link on GTimeVal
Looks like it's been removed from glib.devhelp2 on Fedora 31.
Fix #508
Matthew Waters [Thu, 5 Mar 2020 01:29:49 +0000 (12:29 +1100)]
gl/wayland: use wayland's roundtrip_queue()
There's no need to roll our own anymore
Mathieu Duponchelle [Wed, 11 Mar 2020 00:01:34 +0000 (01:01 +0100)]
subparse: accept WebVTT timestamps without an hour component
https://www.w3.org/TR/webvtt1/#webvtt-timestamp
mm:ss,000 is a valid WebVTT timestamp
Sebastian Dröge [Mon, 9 Mar 2020 18:16:47 +0000 (20:16 +0200)]
compositor: Create a square checkerboard for UYVY/YUY2/YVYU too
Previously the "squares" were twice as wide.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/732
Sebastian Dröge [Mon, 9 Mar 2020 18:12:12 +0000 (20:12 +0200)]
compositor: Define a separate checker fill function for BGRx/RGBx than for xBGR/xRGB
Otherwise we'll create a cyan or yellow checkerboard.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/736
Vivia Nikolaidou [Tue, 3 Mar 2020 13:19:21 +0000 (15:19 +0200)]
tcpclientsrc: Fix compilation on FreeBSD
The members of the tcp_info struct are prefixed with a double
underscore, as reported in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/584#note_423487
Philipp Zabel [Thu, 5 Mar 2020 23:03:49 +0000 (00:03 +0100)]
glupload: dmabuf: only accept uploads to external-oes if supported by the context
This keeps the DirectDmabufExternal uploader from accepting buffers if
texture-target=external-oes is not supported by the GL context.
Edward Hervey [Thu, 28 Nov 2019 16:31:57 +0000 (17:31 +0100)]
gloverlay: Fix various issues in allocation handling
* A copy-paste error was getting the information from the wrong
query
* The 'allocation_meta' GstStructure was being leaked
* No check was done on whether the query existed (to try to set the
resulting allocation meta on)
CID: 1439872
CID: 1439873
CID: 1439874
CID: 1439875
CID: 1439876
CID: 1439877
Peter Seiderer [Tue, 3 Mar 2020 16:07:24 +0000 (17:07 +0100)]
meson: static linkig of tools needs gmodule_dep
Add gmodule_dep (analog to gstreamer/tools/meson.build).
Fixes:
.../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `gst_plugin_register_func':
gstplugin.c:(.text+0x3bc): undefined reference to `g_module_make_resident'
.../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `_priv_gst_plugin_load_file_for_registry':
gstplugin.c:(.text+0x1228): undefined reference to `g_module_supported'
.../bin/ld: gstplugin.c:(.text+0x126c): undefined reference to `g_module_open'
.../bin/ld: gstplugin.c:(.text+0x1368): undefined reference to `g_module_symbol'
.../bin/ld: gstplugin.c:(.text+0x1494): undefined reference to `g_module_supported'
.../bin/ld: gstplugin.c:(.text+0x17f4): undefined reference to `g_module_close'
.../bin/ld: gstplugin.c:(.text+0x1a2c): undefined reference to `g_module_error'
Matthew Waters [Tue, 3 Mar 2020 00:53:53 +0000 (11:53 +1100)]
gl/wayland: use a proxy wrapper for the wl_display
This allows us to remove races when setting the wl_queue on wayland
objects with wl_proxy_set_queue() as each created object is created with
the queue already set.
We can also move all our initilization code into the window as we
can retrieve all wayland objects from each window instance. This
removes a possible race when integrating with external API's as we would
always attempt to immediately retrieve a small set of wayland objects.
That is no longer the case with the objects from each window instance.
Matthew Waters [Tue, 3 Mar 2020 00:43:48 +0000 (11:43 +1100)]
glfilter: use gst_object_unref/ref functions
Allows better visibility into ref/unref points with the leaks tracer
Matthew Waters [Tue, 3 Mar 2020 00:42:11 +0000 (11:42 +1100)]
gl/wayland: fix xdg shell close notification
Don't segfault by not calling the appropriate callback that destroys
resources in the correct order.
Matthew Waters [Wed, 12 Feb 2020 01:44:54 +0000 (12:44 +1100)]
glstereomix: support gl display changes
Matthew Waters [Wed, 5 Feb 2020 01:26:54 +0000 (12:26 +1100)]
glbasefilter: add support for changing the display
Each element will remove its usage of the old display and context and
try to retrieve a new GL context.
Matthew Waters [Tue, 4 Feb 2020 03:19:21 +0000 (14:19 +1100)]
glstereosplit: support gl display changes
Matthew Waters [Tue, 4 Feb 2020 03:06:05 +0000 (14:06 +1100)]
glbasesrc: add support for changing display's
Matthew Waters [Tue, 4 Feb 2020 03:04:21 +0000 (14:04 +1100)]
gldisplay: add support removing a context from the internal list
Matthew Waters [Tue, 4 Feb 2020 02:58:06 +0000 (13:58 +1100)]
gl/mixer: support GstGLDisplay changes
Philipp Zabel [Tue, 18 Feb 2020 12:46:08 +0000 (13:46 +0100)]
glupload: dmabuf: add DirectDmabufExternal uploader
Automatic negotiation of texture-target=external-oes does not work
without separating the external-oes support out of the DirectDmabuf
uploader into a separate DirectDmabufExternal uploader.
Philipp Zabel [Mon, 24 Feb 2020 15:38:56 +0000 (16:38 +0100)]
glupload: fix transform_caps NULL pointer dereference
gst_gl_upload_transform_caps() is missing a NULL pointer check in case
the current upload method's transform_caps returns a NULL pointer. In
the following loop over all upload methods, NULL pointer return values
are already handled correctly.
Philipp Zabel [Wed, 12 Feb 2020 17:25:54 +0000 (18:25 +0100)]
glupload: dmabuf: support direct upload into external-oes textures
Some drivers support directly importing DMA buffers in some formats into
external-oes textures only, for example because the hardware contains
native YUV samplers.
Note that in these cases colorimetry can only be passed as hints and
there is no feedback whether the driver supports the required YUV
encoding matrix and quantization range.
Philipp Zabel [Thu, 13 Feb 2020 09:28:40 +0000 (10:28 +0100)]
gl/egl: support direct dmabuf import with external-oes only formats
Allow creating EGL images from DMA buffers in formats that the driver
only supports for the external-oes texture target.
Pass the intended texture target to gst_egl_image_from_dmabuf_direct so
that _gst_egl_image_check_dmabuf_direct can decide whether to create an
EGL image for a format that can only be targeted at external-oes
textures by the driver. Allow creating GstGLMemoryEGL objects from these
DMA buffers.
Matthew Waters [Mon, 2 Mar 2020 08:35:16 +0000 (19:35 +1100)]
glquery: fix a possible unintialized value
A GL driver may not fill the resulting value so initialize it to 0
ourselves.
Matthew Waters [Wed, 26 Feb 2020 03:33:16 +0000 (14:33 +1100)]
gl/context/glx: dump GLXFBConfig information to debug logs
Vivia Nikolaidou [Mon, 24 Feb 2020 14:44:12 +0000 (16:44 +0200)]
tcpclientsrc: Expose connection stats as property
Unfortunately the OS takes care of bad connections for us, so we can't
get the stats in a platform-independent way. Count total bytes received
as well, platform-independently.
Guillaume Desmottes [Mon, 10 Feb 2020 04:59:25 +0000 (10:29 +0530)]
video-info: fix typo in doc
Guillaume Desmottes [Fri, 7 Feb 2020 05:48:24 +0000 (11:18 +0530)]
video: fix GST_VIDEO_FRAME_IS_BOTTOM_FIELD()
GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD is a subset of
GST_VIDEO_FRAME_FLAG_TOP_FIELD so needs to be checked accordingly.
Fix #726
Guillaume Desmottes [Thu, 6 Feb 2020 09:05:47 +0000 (14:35 +0530)]
video: add macros checking for GST_VIDEO_BUFFER_FLAG_TOP/BOTTOM_FIELD flags
The GST_VIDEO_BUFFER_FLAG_TOP_FIELD flag is a superset of
GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD as they are defined using other
flags. As a result we can't use GST_BUFFER_FLAG_IS_SET() to check for
those flags.
Stéphane Cerveau [Thu, 6 Feb 2020 08:52:31 +0000 (09:52 +0100)]
videoencoder: protect the use of num_subframes
change stream lock location to protect the use of
frame->abidata.ABI.num_subframes
Devarsh Thakkar [Wed, 5 Feb 2020 10:58:14 +0000 (02:58 -0800)]
videoencoder: Release stream lock in finish_subframe before pad_push
Derived from
780d635dadc0723e39a8ba90cfe0903a2de346fd for
https://bugzilla.gnome.org/show_bug.cgi?id=715192
which was for finish_frame.
Seungha Yang [Tue, 18 Feb 2020 11:36:38 +0000 (20:36 +0900)]
meson: gl: Update to support when egl and win32 window system are explicitly requested
Seungha Yang [Tue, 18 Feb 2020 11:09:19 +0000 (20:09 +0900)]
glwindow/win32: Accept both win32 and egl display
EGL would be the case where we use ANGLE.
Seungha Yang [Tue, 18 Feb 2020 10:40:34 +0000 (19:40 +0900)]
glcontext: egl: Fix build with win32 window system
Seungha Yang [Tue, 18 Feb 2020 10:33:18 +0000 (19:33 +0900)]
gl: Decouple win32 window and wgl context
With ANGLE, win32 window can be used with gles and egl
Seungha Yang [Tue, 18 Feb 2020 04:03:00 +0000 (13:03 +0900)]
glcontext/egl: Fix build with upstream ANGLE
ANGLE_surface_d3d_render_to_back_buffer extension is only available
with Microsoft fork of ANGLE. Note that Microsoft's ANGLE repository
has been deprecated.
Seungha Yang [Thu, 13 Feb 2020 12:33:11 +0000 (21:33 +0900)]
gl/window/win32: Handle mouse and key events
This is at least useful for the gst-play-1.0 use case.
He Junyan [Fri, 14 Feb 2020 17:19:29 +0000 (01:19 +0800)]
libs: dmabuf: init the GST_CAT_DEFAULT in type define.
To avoid `gst_debug_log_valist: assertion 'category != NULL' failed`
if we do not call gst_dmabuf_allocator_new
Sebastian Dröge [Wed, 12 Feb 2020 11:11:43 +0000 (13:11 +0200)]
appsrc/appsink: Make setting/replacing callbacks thread-safe
Previously we would simply use them without any locking at all, while
using the object lock for setting them. Nothing prevented new callbacks
to be set in the meantime, potentially calling a callback with already
freed user_data.
To prevent this move the callbacks into a reference counted struct and
use the appsrc/appsink mutex to protect access to it, which is used in
all functions calling the callbacks already anyway.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/729
Håvard Graff [Fri, 14 Feb 2020 09:40:59 +0000 (09:40 +0000)]
rtpbasepayload: add property for embedding twcc sequencenumbers
By setting the extension-ID for TWCC (Transport Wide Congestion Control),
the payloader will embed sequencenumbers as a RTP header-extension
according to https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01#section-2
The negotiation of this being enabled with downstream elements
is done with caps reflecting the way this is communicated using SDP.
Matthew Waters [Wed, 12 Feb 2020 23:41:29 +0000 (10:41 +1100)]
gl/window/win32: implement get_window_handle()
Some other frameworks need the HWND to retrieve information from.
Havard Graff [Mon, 10 Feb 2020 16:39:57 +0000 (17:39 +0100)]
rtpbasepayload: fix test warnings
Compiling with MSVC and Clang.
Kristofer Björkström [Thu, 23 Jan 2020 15:11:28 +0000 (16:11 +0100)]
rtpbasepayload: timestamp bug, if rate control=no
With commit "basepayload: Expose onvif-no-rate-control property" the rtp
timestamp changed behaviour when rate control is disabled.
When disabling rate control, we must take care of the stream time to
avoid the timestamps to begin from zero again.
Thibault Saunier [Mon, 10 Feb 2020 20:15:13 +0000 (17:15 -0300)]
discoverer: Start discovering next URI from right thread
When using the cache, we were not using the right GMainContext to setup
next URI to discovery, fix that.
Matthew Waters [Tue, 4 Feb 2020 03:14:38 +0000 (14:14 +1100)]
glcolorconvert: error out if memory context is different than ours
Matthew Waters [Tue, 4 Feb 2020 03:06:36 +0000 (14:06 +1100)]
gltestsrc: NULL out the functions used
Fixes segfault when the display changes
Matthew Waters [Tue, 4 Feb 2020 03:01:47 +0000 (14:01 +1100)]
glviewconvert: fix reset context for GL context change
We need to remove GL resources from the old context instead of the new
GL context. The two GL context may not even be shared.
Matthew Waters [Tue, 4 Feb 2020 03:00:48 +0000 (14:00 +1100)]
glviewconvert: fix a use-after-free with allocation params
_free(params) followed by a params->align is a bad idea :)
Matthew Waters [Tue, 4 Feb 2020 02:59:37 +0000 (13:59 +1100)]
glviewconvert: also remove GL buffers on a reset
Fixes a possible memory leak on renegotiation
Matthew Waters [Thu, 12 Dec 2019 07:59:10 +0000 (18:59 +1100)]
gl/basesrc: call gl_stop when shutting down
Fixes multiple leaks
Havard Graff [Tue, 28 Jan 2020 17:17:47 +0000 (18:17 +0100)]
rtpbuffer: add gst_rtp_buffer_get_extension_onebyte_header_from_bytes
So that one can parse the GBytes returned by gst_rtp_buffer_get_extension_bytes
Mathieu Duponchelle [Thu, 30 Jan 2020 18:00:07 +0000 (19:00 +0100)]
videoaggregator: handle gap buffers properly
This simply implies not trying to "prepare" those buffers,
as mapping an empty buffer to a video frame does not make
much sense.
This also adds a simple test in compositor that performs
some trivial checking of the handling of gap events, the test
was not failing before, but an error was logged, this is
no longer the case.
Fixes #717
Sebastian Dröge [Tue, 28 Jan 2020 20:07:44 +0000 (22:07 +0200)]
videoaggregator: Don't configure NULL chroma-site/colorimetry
If there's no known value in the best caps then the functions to convert
them to strings will return NULL. Having the fields not in the caps is
not a problem, having them with a NULL value however will cause
negotiation failures.
Dimitrios Katsaros [Fri, 17 Jan 2020 13:26:29 +0000 (14:26 +0100)]
decodebin3: Reset main group id on PAUSED->READY state change
The main_input stream-id would not get reset when going to READY state.
This would cause warnings when trying to reuse the same decodebin3, since
you would get a new STREAM_START event with a new stream-id, which would
collide with the now stale stream-id
Dimitrios Katsaros [Fri, 17 Jan 2020 13:16:23 +0000 (14:16 +0100)]
decodebin3: Reduced logging level of messages
The logging is set to warning for a drain event, which is part of the
normal functionality of the parsebin.
Tim-Philipp Müller [Thu, 23 Jan 2020 18:03:13 +0000 (18:03 +0000)]
clockoverlay: fix bogus time display caused by previous commit
Fixes regression introduced by "clean-up" done as part of commit 98ebcb4.
dummy must live as long as use the return value of localtime_r() since
that's just a pointer to it, and by putting it inside the block we made
dummy go out of scope right after localtime_r() returned, which messed
up the time values since when we poked at the struct the contents might
already have been overwritten.
Fixes #722
Dimitrios Katsaros [Fri, 17 Jan 2020 10:22:48 +0000 (11:22 +0100)]
uridecodebin3: Fixed defauts not being set on initialization
The default values were not being set on element initialization. This
was a problem for buffer_duration and buffer_size since they would be
zero initialized, rather then being set to -1. This would cause the
underlaying queue2 element to have no limits and depending on the
streamed file, could cause queue2 to allocate massive amounts of memory.
Thibault Saunier [Mon, 13 Jan 2020 21:32:59 +0000 (18:32 -0300)]
encodebin: Add missing 'Since' marker
Philippe Normand [Mon, 13 Jan 2020 09:06:02 +0000 (09:06 +0000)]
oggstream: Workaround for broken PAR in VP8 BOS
Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios
as 1:1.
Fixes #719
Nicolas Dufresne [Sun, 12 Jan 2020 00:26:24 +0000 (19:26 -0500)]
tests: rtpbasedepayload: Test flow return whith push/push_list
This validate that the base class properly save and return the flow
return value received when gst_rtp_base_depay_push/push_list() helper is
being used.
Nicolas Dufresne [Fri, 22 Nov 2019 02:04:14 +0000 (21:04 -0500)]
rtpbasepayload: Save and forward the push flow return
Save push/push_list helper flow return and in case of failure, return it
in the process function. This allow forwarding downstream flow return
even if the subclass is using the push/push_list helper.
Víctor Manuel Jáquez Leal [Sun, 3 Nov 2019 14:52:28 +0000 (15:52 +0100)]
playbin3: handle GST_PLAY_FLAG_FORCE_SW_DECODERS
In decodebin3 and uridecodebin3 the `force-sw-decoders` boolean property is
added. In uridecodebin3 it is only a proxy property which will forward
the value to decodebin3.
When decodebin3 has `force-sw-decoders` disabled, it will filter out in its
decoder and decodable factories those elements within the 'Hardware'
class, at reconfiguring output stream.
playbin3 adds by default GST_PLAY_FLAG_FORCE_SW_DECODERS, and sets
`force-sw-decoders` property accordingly to its internal uridecodebin, also
filters out the 'Hardware' class decoder elements when caps
negotiation.
Víctor Manuel Jáquez Leal [Sun, 3 Nov 2019 14:37:44 +0000 (15:37 +0100)]
playbin2: handle GST_PLAY_FLAG_FORCE_SW_DECODERS
Added `force-sw-decoders` boolean property in decodebin2 and
uridecodebin. By default the property is %FALSE and it bypass the new
code. Otherwise the factory list is filtered removing decoders
within 'Hardware' class.
uridecodebin sets the `force-sw-decoders` property in its internal
decodebin, and also filters out Hardware class in the
autoplug-factories default signal handler.
playbin2 adds by default GST_PLAY_FLAG_FORCE_SW_DECODERS it its flags
property, and depending on it playbin2 sets the `force-sw-decoders`
property on its internal uridecodebin, also filters out the Hardware
class decoding decoders at the autoplug-factories signal handler.
Víctor Manuel Jáquez Leal [Sun, 3 Nov 2019 14:16:04 +0000 (15:16 +0100)]
playback: add GST_PLAY_FLAG_FORCE_SW_DECODERS enum
This flag would be common either for playbin2 and playbin3.
Tim-Philipp Müller [Wed, 8 Jan 2020 17:28:46 +0000 (17:28 +0000)]
meson: add graphene subproject
So we can build all the OpenGL elements.