This uses the new path for OpenCV headers. OpenCV now have
master headers files per modules, which reduce the amount of
required includes. Note that HIGHGUI was included to get the
imgcodecs includes, which I fixed, though the master header is
missing the C headers, so I included that directly. All the
image stuff should be ported to C++ eventually. Finally, this
patch also update the header checks to reflect the modules that
are really being used.
... instead of doing it ourselves. Otherwise, we should add more
logic here (such as checking GstClock and etc) which was already provided by
GstBaseSrc.
https://bugzilla.gnome.org/show_bug.cgi?id=796842
Relaxed the wl_shell interface constrains, so application that
pass via GstContext the wl_surface can use waylandsink in a
compositor without wl_surface and zwp_fullscreen_shell.
Added support for zwp_fullscreen_shell.
https://bugzilla.gnome.org/show_bug.cgi?id=796772
When scanning paths for LADSPA plugins, don't try and load
every random file as a module, as g_module_open ends up throwing
errors on Windows.
Use a G_MODULE_SUFFIX and GST_EXTRA_MODULE_SUFFIX suffix check as
we do for GStreamer plugins.
https://bugzilla.gnome.org/show_bug.cgi?id=796450
Refactor transportsendbin, and change the way
pads are blocked on dtlssrtpenc so that they
don't interfere with state changes.
As well as being easier to read, this fixes
spurious failures shutting down webrtcbin
if DTLS negotiation hasn't completed yet.
Move the errant piece of dtlssrtpenc state change
management from dtlstransport in the Webrtc libs,
into the transportsendbin that does the rest of
the element management so it's all in one place.
The `CV_RGB` macro is now in `imgproc.hpp`.
Fixes:
../subprojects/gst-plugins-bad/ext/opencv/gsthanddetect.cpp:497:40: error: ‘CV_RGB’ was not declared in this scope
cvCircle (img, center, radius, CV_RGB (0, 0, 200), 1, 8, 0);
^~~~~~
When negotiation is triggered by receiving caps on our sink pad
probes, we could encounter a race condition where need-negotiation
is emitted and the application requires the creation of an offer
before the current caps were actually updated.
This led to retrieving incomplete caps when creating the offer,
using find_codec_preferences -> pad_get_current_caps.
Instead, as we save the caps in the probe callback anyway, it is better
and thread safe to use these if they were set.
https://bugzilla.gnome.org/show_bug.cgi?id=796801
Matches the output from a similar glimagesink pipeline when
rotating from an upstream gltransformation passed through
the affine transformation meta with xpos/ypos being set.
https://bugzilla.gnome.org/show_bug.cgi?id=794401
Fixes random crashes when an allocated webrtcbin isn't
given fresh 0-filled memory in its allocation. It works
mostly because GMutex and GCond are automatically initialised
in that case.
Move freeing of the pad blocks back to before we call the
GstBin state change function, as there's something racy
going on on the build server otherwise, where the pads don't
unblock during downward state changes.
This is a bit of a stab in the dark, since I can't recreate
the build server failure locally.
Release references in pad blocks and release the memory in the
dispose function too, in case the state change doesn't get
run (because calling the parent state change fails).
When changing state downward, we can't set pads
to inactive if they are blocked, it will deadlock
trying to acquire the streaming lock.
Just calling the parent state change function
will do the correct things to unblock probes and
set the pad inactive, so let it do that and
remove the probes after the parent state change
function has run
https://bugzilla.gnome.org/show_bug.cgi?id=796682
When max is GST_CLOCK_TIME_NONE in the query, it should not
be set in the query handler, this otherwise could lead to
impossible situations, where the minimum latency ended up
greater than the maximum.
https://bugzilla.gnome.org/show_bug.cgi?id=796603
The flush function immediately returned when pitch->next_buffer_offset
was 0.
This is clearly wrong, as next_buffer_offset can be 0 when a single
input buffer has been received, and no output buffer has been produced
before receiving EOS.
Simply remove that condition.
https://bugzilla.gnome.org/show_bug.cgi?id=796603
This lets users call gst_pad_get_current_caps on newly-added
pads to easily determine what to plug them into.
We cannot copy sticky events unconditionally in core,
see #719437https://bugzilla.gnome.org/show_bug.cgi?id=796387
This new element allows decoding and overlaying CEA-708 Closed Caption
streams over video.
* Supports CDP and cc_data closedcaption/x-cea-708 streams
* Uses pango to render CC stream
* Support GstVideoOverlayComposition meta if downstream supports is
Tested on various test files.
Remains to be fixed/improved:
* Switch to GstByteReader (for code safety)
* Switch to GString (instead of manual pango string construction)
* Move pango/rendering code outside of main 708 decoder file (so
that actual CC parser/decoder can be (re)used in other scenarios).
Initial patches and improvements by:
* CableLabs RUIH-RI Team <ruihri@cablelabs.com>
* Steve Maynard <steve@secondstryke.com>
* cjun.wang" <cjun.wang@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=704881
zvbi switched to a lot more flexible CC detection in VBI.
The problem is that it returns a *lot* of non-VBI lines as containing
CC which isn't the case.
Current code from zapping/zvbi as of 2018-03-14. Files copied
are all LGPL v2+.
Changes from original zvbi code:
* Switch to gst-debug logging system
* Use glib for endianness detection
* Fix compilation warnings
Allows extracting GstVideoCaptionMeta from a stream and outputs
it to a standalone stream.
Part of a new 'ext' closedcaption plugin, since more features are
going to be added, which will depend on external dependencies such
as pango.
On debian system headers trigger compiler warnings like these,
don't error out on them:
/usr/include/directfb/direct/os/linux/glibc/waitqueue.h:95:1: note: previous definition of ‘direct_waitqueue_signal’ was here
Explicitly cast to void* because GCC 8 is (rightfully) upset that this is
"writing to an object of type ‘...’ with no trivial copy-assignment".
Caused by the new "class-memaccess" warning
This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.
The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.
Previously we assumed that the texture ID is going to be valid even
after unmapping the frame, as it was immediately unmapped before even
being used. Now we only unmap once we're done with the texture.
During element shutdown, the srtp encryption session
object can be cleaned up. In that case, return GST_FLOW_FLUSHING
from the chain function. Also properly return GST_FLOW_ERROR
upstream during actual errors.
https://bugzilla.gnome.org/show_bug.cgi?id=790508
Store a PTS of a highlight event directly into the event structure,
rather than the GST_EVENT_TIMESTAMP that will probably be removed
in GStreamer 2.0, and is hardly used.
https://bugzilla.gnome.org/show_bug.cgi?id=761477
If that threshold is reached, `iqa` will emit an ERROR message on the
bus, stopping any processing.
This way we can do a simpler comparison with gst-validate and the
process will error out if the specified threshold is reached.
https://bugzilla.gnome.org/show_bug.cgi?id=795428