Commit graph

2330 commits

Author SHA1 Message Date
Philippe Normand
7240cad9c5 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.
2020-03-19 09:59:47 +00:00
Matthew Waters
7e2073000a 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.
2020-03-03 02:11:52 +00:00
Guillaume Desmottes
ea2619aadc 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
2020-02-26 16:15:59 +00:00
Guillaume Desmottes
26f386ce8b 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.
2020-02-26 16:15:59 +00:00
Håvard Graff
85e201fe30 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.
2020-02-14 09:40:59 +00:00
Havard Graff
7283a45afe rtpbasepayload: fix test warnings
Compiling with MSVC and Clang.
2020-02-11 14:06:45 +00:00
Kristofer Björkström
4152b0c840 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.
2020-02-11 12:30:49 +00:00
Mathieu Duponchelle
54cc985810 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
2020-01-30 19:02:44 +01:00
Nicolas Dufresne
104458071a 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.
2020-01-11 19:39:55 -05:00
Aaron Boxer
807418894b rtspurl: add API method to create request uri combined with control url
code logic very similar to gst_rtsp_url_get_request_uri ()
2019-12-27 16:57:08 +00:00
Stéphane Cerveau
66df967dab tests: add video encoder test with subframes API 2019-12-21 02:59:14 +00:00
Olivier Crête
6b283d9e78 Revert "videoencoder: factor out logic from gst_video_encoder_finish_frame()"
This reverts commit b1ec312b8e.
2019-12-19 17:52:12 -05:00
Stéphane Cerveau
b1ec312b8e videoencoder: factor out logic from gst_video_encoder_finish_frame()
No semantic change, I'm going to reuse all those functions in a new
finish_slice() methods.
2019-12-19 21:59:10 +00:00
Olivier Crête
61aeb4bbc3 rtspconnection: Add functions without GTimeVal deprecate existing
GTimeVal is now deprecated in GLib, so let's deprecate it here too
2019-12-18 18:20:25 +00:00
Olivier Crête
487a2202d3 tests: Remove deprecated GTimeVal
GTimeVal won't work past 2038
2019-12-18 18:20:25 +00:00
Tim-Philipp Müller
2b498878ea tests: actually define HAVE_VALGRIND
This stuff should probably be done differently, but
for now just define it like we used to.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
3921a94f28 test: fix up HAVE_X11 / HAVE_X defines
Only HAVE_X was defined, while both HAVE_X11 and HAVE_X were used.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
574d097d43 tests: simple-launch-lines: remove use of unused HAVE_LIBVISUAL define
This is not set anywhere, and it's pretty clear the pipeline in
question has not been tested in a long time. Disable test with
a FIXME, test needs to be rewritten to not use real output devices.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
f357c55587 tests: gl-launch-lines: check for features at runtime
Instead of using HAVE_PNG and HAVE_JPEG defines.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
64b6c4796a multifdsink: remove defunct include guarded by unused HAVE_FIONREAD_IN_SYS_FILIO
The configure check for this went away in 2012 in commit cd3eee.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
2b99761dcf tests: oggmux: check vorbisenc + theoraenc availability at runtime
HAVE_VORBIS was used but never set, so only 3 out of 7 tests
actually ran. Drop now-unused HAVE_THEORA define.
2019-12-09 07:33:55 +00:00
Tim-Philipp Müller
ca11e82e66 tests: playback: include stdlib.h unconditionally
Like we do elsewhere. And drop the check for the header.
Also remove some superfluous unistd.h includes.
2019-12-09 07:33:55 +00:00
Seungha Yang
c8ff6f82a5 examples: overlaycomposition: Fix implicit declaration warning
overlaycomposition.c:276:5: warning: implicit declaration of function 'exit' [-Wimplicit-function-declaration]
overlaycomposition.c(263): warning C4090: 'initializing': different 'const' qualifiers
2019-12-08 18:57:26 +09:00
Seungha Yang
90bcaf5a43 examples: win32-videooverlay: Remove unused variable
win32-videooverlay.c:34:20: warning: 'msg_io_channel' defined but not used [-Wunused-variable]
2019-12-08 18:45:22 +09:00
Stéphane Cerveau
3b8769e673 codec-utils: add h264 constrained and progressive profiles
Those profiles have been added in the version 2012-01
and 2011-06 of the AVC spec.

Aligned code with https://bugzilla.gnome.org/show_bug.cgi?id=794127
2019-12-03 23:35:23 +00:00
Mart Raudsepp
dec2750e96 tests: expand compositor repeat-after-eos tests for multiple pads
If there are any pads with repeat-after-eos NOT set, then the compositor
should EOS after all of those pads have gone EOS, but not before all
repeat-after-eos pads have as well.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/664
2019-11-27 22:21:14 +02:00
Seungha Yang
ed651022cb examples: win32-videooverlay: Add an option for testing reuse of external window
Adding "repeat" option to test a case where external window is reused.
2019-11-18 11:25:47 +00:00
Seungha Yang
39dcceb028 examples: overlaycomposition: Fix typo
Sorry for the noise. Default should be autovideosink
2019-11-15 06:28:18 +00:00
Seungha Yang
4960f385cf examples: overlaycomposition: Add option for videosink element selection
It would be useful for testing overlaycomposition with specific videosink element.
2019-11-13 12:45:10 +00:00
Sebastian Dröge
c363747251 videorate: Fix max-duplication-time handling
Previously this would've only set discont=TRUE and then for all future
buffers simply returned immediately.

Instead we also need to
  a) drain previous input until its buffer time
  b) update next_ts and base_ts accordingly for the gap
  c) actually store the new buffer after the gap so it can be used in
     the future and so the old buffer before the gap is gone

Also update the unit test accordingly so that it actually tests for this
behaviour. Previously it only tested that after the gap we got no output
at all.
2019-11-04 19:01:10 +00:00
Seungha Yang
dc274ea9ca compositor: Add support for VUYA format
Reversed order of AYUV format. Most of core methods are prepared
already.
2019-11-04 14:50:28 +00:00
Guillaume Desmottes
75680e5d34 videometa: add alignment field
By adding this field, buffer producers can now explicitly set the exact
geometry of planes, allowing users to easily know the padded size and
height of each plane.

GstVideoMeta is always heap allocated by GStreamer itself so we can
safely extend it.
2019-11-02 13:05:43 +01:00
Guillaume Desmottes
36ce08826e video-info: add gst_video_info_align_full()
When using gst_video_info_align() user had no easy way to retrieve the
padded size and height of each plane.
This can easily be implemented in fill_planes() as it's already called
in align() with the padded height.

Ideally we'd add a plane_size field to GstVideoInfo but the remaining
padding is too small so that would be an ABI break.

Fix #618
2019-11-02 13:05:43 +01:00
Seungha Yang
8b92d144a1 tests: audio: Add test for gst_audio_info_from_caps() method
Test gst_audio_info_from_caps() with raw and encoded formats.
2019-10-25 20:53:47 +09:00
Tim-Philipp Müller
289d8e53e2 Remove autotools build system 2019-10-13 14:15:43 +01:00
Edward Hervey
2409f4f360 base: Avoid usage of deprecated API
GTimeval and related functions are now deprecated in glib.
Replacement APIs have been present since 2.26
2019-10-11 06:17:39 +00:00
Edward Hervey
7eb98ba4f3 check: Don't use real audio devices for tests
When checking the behaviour of live seeking on audiomixer or
adder we don't *really* need real audio devices. audiotestsrc
in live mode is enough to test the behaviour of those elements.

Also avoids people repeatedly wasting hours trying to figure out
whether that failing behaviour is due to their code or not.
2019-10-10 16:58:26 +02:00
Mathieu Duponchelle
dd556ccf3d examples: add device provider example 2019-10-08 00:34:13 +02:00
Thibault Saunier
8d32de0905 glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers
This is done by reusing `gst_gl_memory_setup_buffer` avoiding to
duplicate code.

Without a VideoMeta, mapping those buffers lead to GstBuffer mapping the
buffer in system memory even when specifying the GL flags (through the
buffer merging mechanism) making the result totally broken.
2019-10-02 19:27:39 +00:00
Matthew Waters
9939149933 examples/gl/sdlshare: port to OpenGL 3.0 core profile 2019-10-03 00:18:36 +10:00
Sebastian Dröge
e8edb0eb71 examples/sdlshare: Map video frames as early as possible and wait via GL sync meta before using texture ids 2019-09-30 13:29:58 +03:00
Sebastian Dröge
e750ea40b6 examples/sdlshare: Initialize GL as part of the event loop
And unref additional buffers we never use for rendering directly instead
of going via the output queue.
2019-09-30 13:29:58 +03:00
Sebastian Dröge
0bcba6a3ec examples/sdlshare: Activate and initialize our wrapped GL context
This allows us to e.g. use the GL functions vtable on it later.
2019-09-30 13:29:58 +03:00
Sebastian Dröge
9000bc86df examples/sdlshare: Call gst_init() a bit earlier in main()
Let's not accidentally call other GStreamer API before that.
2019-09-30 13:29:58 +03:00
Sebastian Dröge
abc243fee4 examples/sdlshare: Create an OpenGL context for OpenGL 2.0 2019-09-30 13:29:58 +03:00
Sebastian Dröge
eb3699a74b examples/sdlshare: Switch from a GLib main loop to a normal SDL event loop 2019-09-30 13:29:58 +03:00
Sebastian Dröge
6a5ab50103 examples/sdlshare: Port to SDL2 2019-09-30 13:29:58 +03:00
Sebastian Dröge
b0bd448d37 examples/sdlshare: Move from a fakesink to an appsink 2019-09-30 13:29:35 +03:00
Sebastian Dröge
6f14785c3e examples/sdlshare: Store buffer queues and loop in a global variable
There's no point storing them in GObject data, we already have other
global variables anyway.
2019-09-30 13:29:35 +03:00
Sebastian Dröge
8b891c218f examples/sdlshare: Bus sync handlers return no value 2019-09-30 13:29:35 +03:00