Mathieu Duponchelle
dd556ccf3d
examples: add device provider example
2019-10-08 00:34:13 +02:00
Sebastian Dröge
73bd32e791
glfilters: Don't use static variables for storing per-element state
2019-10-03 00:49:09 +00: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
Matthew Waters
56b0ced0bc
build: fix werror build on windows
...
_isatty() is in the io.h header
2019-10-01 01:29:47 +00:00
Mathieu Duponchelle
0e1da383a7
device-monitor: fix device listing without --follow
...
In !427 , I removed the call to get_devices in order to always
print added devices from the bus handler, however this requires
the main loop to run until all pending messages have been consumed.
This commit achieves this by always running the main loop, and
simply adding an idle source to quit it in the non --follow case.
2019-09-30 18:54:12 +00:00
Haihao Xiang
606ab04cd6
video-format: correct the pixel stride for Y410
...
The stride for Y410 is 4 bytes, not 0 byte
2019-09-30 14:26:14 +00: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
Sebastian Dröge
9daa7fa663
examples/sdlshare: Fix various memory leaks
2019-09-30 13:29:35 +03:00
Axel Mårtensson
5d3c948572
alsasink: pause/resume
...
alsasink can now detect a resume, stop and pause. The sink is now
properly paused using snd_pcm_pause(), and without losing any data
2019-09-27 05:34:57 +00:00
Axel Mårtensson
feb1e24347
audiosink: fix resuming after pause
...
For resuming after paused, gst_audio_sink_ring_buffer_start() needs to
be called to notify the ringbuffer to continue to play.
2019-09-27 05:34:57 +00:00
Philippe Renon
0dc1b6049e
audiosink: expose more audioringbuffer vmethods to child sinks
...
The newly exposed vmethods are pause, resume, stop and clear_all.
The existing reset vmethod is deprecated.
The audio sink will fallback to calling reset if pause or stop
are not provided and will fallback to calling start if
resume is not provided. There is no default clear_all
implementation.
Existing audio sinks continue to work as before.
This change is useful for sinks that need to distinguish
between a pause and a stop (currently both are handled
by a reset) and is needed for https://bugzilla.gnome.org/show_bug.cgi?id=788362
https://bugzilla.gnome.org/show_bug.cgi?id=788361
2019-09-27 05:34:57 +00:00
Seungha Yang
f1d3307e03
gst-play: Add support for interacting console input on Windows
...
Add Windows keyboard input handler. This could make gst-play UX
consistent between *nix and Windows.
2019-09-26 03:02:31 +09:00
Charlie Turner
96c6f581ae
streamsynchronizer: avoid pad destruction races.
...
Due to the use of {set/get}-element_private methods being used to store
the GstSyncStream in the src and sink pads, and the racey nature of pad
destruction, there are numerous ways we can be bitten by race conditions
in the stream synchronizer. Fix that by tying the pads toghether with
references.
2019-09-24 20:09:09 +00:00
Nirbheek Chauhan
6f7c9e43bc
audio: Use LoadPackagedLibrary when building for UWP
...
Universal Windows Platform apps are not allowed to use LoadLibrary to
load arbitrary DLLs from the filesystem. They can only use
LoadPackagedLibrary to load DLLs that have been packaged with the app
as assets.
See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/190
2019-09-24 15:17:39 +00:00
Seungha Yang
dfe06287d6
gst-play: Use gst_print* to avoid broken stdout string on Windows
...
Equvalant to https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/258
When debug enabled, the debug string might be broken on Windows.
2019-09-24 15:40:20 +09:00
Matthew Waters
8ce2460ad5
build: fix debug output werror build with newer gcc
...
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gsttageditingprivate.h:24,
from ../gst-libs/gst/tag/gsttageditingprivate.c:23:
../gst-libs/gst/tag/gsttageditingprivate.c: In function ‘__exif_tag_capturing_white_balance_to_exif_value’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gsttageditingprivate.c:265:3: note: in expansion of macro ‘GST_WARNING’
265 | GST_WARNING ("Invalid white balance: %s", str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gsttageditingprivate.c:265:40: note: format string is defined here
265 | GST_WARNING ("Invalid white balance: %s", str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gstxmptag.c:39:
../gst-libs/gst/tag/gstxmptag.c: In function ‘deserialize_exif_gps_direction’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:818:5: note: in expansion of macro ‘GST_WARNING’
818 | GST_WARNING ("Missing %s tag", dirref_str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:818:27: note: format string is defined here
818 | GST_WARNING ("Missing %s tag", dirref_str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gstxmptag.c:39:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:814:5: note: in expansion of macro ‘GST_WARNING’
814 | GST_WARNING ("Missing %s tag", dir_str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:814:27: note: format string is defined here
814 | GST_WARNING ("Missing %s tag", dir_str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/gl/gstgl_fwd.h:24,
from ../gst-libs/gst/gl/gl.h:24,
from ../gst-libs/gst/gl/gstglsl.c:25:
../gst-libs/gst/gl/gstglsl.c: In function ‘gst_glsl_version_profile_from_string’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/gl/gstglsl.c:333:7: note: in expansion of macro ‘GST_WARNING’
333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s);
| ^~~~~~~~~~~
../gst-libs/gst/gl/gstglsl.c:333:62: note: format string is defined here
333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s);
| ^~
In function ‘print_stream_info’,
inlined from ‘print_topology’ at ../tools/gst-discoverer.c:352:3:
../tools/gst-discoverer.c:316:3: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
316 | g_print ("%*s%s: %s\n", 2 * GPOINTER_TO_INT (depth), " ",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
317 | gst_discoverer_stream_info_get_stream_type_nick (info), desc);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-09-23 17:59:12 +10:00
Mathieu Duponchelle
dff5399e87
gst-device-monitor: stop calling gst_device_monitor_get_devices()
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/280
2019-09-17 14:55:00 +00:00
Matthew Waters
1f2028e2ef
device-monitor: print caps features in the caps
2019-09-17 21:34:42 +10:00
Haihao Xiang
14ce1ccdd2
glimagesink: Fix VUYA in memory:DMABuf
...
Sample pipeline:
gst-launch-1.0 videotestsrc ! msdkvpp ! \
video/x-raw\(memory:DMABuf\),format=VUYA ! glimagesink
2019-09-16 15:46:47 +08:00
Seungha Yang
e5d06b24b7
egldevice: Fix undeclared type build error
...
Not all eglext.h defines EGLDeviceEXT type. That's implementation and
egl extension version dependent.
2019-09-12 13:32:07 +00:00
Tim-Philipp Müller
c8d0edfea9
tests: fix up valgrind suppressions for glibc getaddrinfo leaks
...
Make more flexible. There is an extra
gethostbyname2_r@@GLIBC_2.2.5 (getXXbyYY_r.c:217)
in the trace on the build bots (F30).
Fixes the -base and -good valgrind jobs on the 1.16 branch CI.
2019-09-08 01:52:36 +01:00
Thibault Saunier
51e49ab96b
oggdemux: Move seeking in pull mode to the streaming thread
...
Flushing and teering down the streaming thread from the seeking thread
and simply letting the streaming thread handle the seek event in its
loop function.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/639
2019-09-06 15:06:53 +00:00
Seungha Yang
41bad88d6d
streamsplitter: Drop duplicated force-key-unit events
...
Forward force-key-unit event only once for the corresponding sequence number.
2019-09-05 22:48:23 +09:00
Seungha Yang
9af8516873
streamcombiner: Forward upstream force-key-unit events to all sinkpads
...
streamcombiner element forwards a upstream event only to one sinkpad.
When the streamcombiner is used with encodebin, the sinkpad
corresponding to pass-through path is configured before that of encoder,
and therefore streamcombiner forwards upstream events only to
the firstly configured one (i.e., pass-through path).
2019-09-05 22:47:13 +09:00
Doug Nazar
32395fe837
meson: Reenable NEON support
2019-09-03 06:24:26 +00:00
Doug Nazar
0c955c16ce
audio-resampler: Update NEON to handle remainders not multiples of 4
...
If the remainder is not evenly divisable by 4, we'd miss the check
for zero and continue the loop until crashing. Change the branch
to take into account negatives as well.
This more closely matches the SSE loop.
2019-09-02 23:25:39 -04:00
Thibault Saunier
909baa2360
Pass the code through codespell
2019-08-30 13:05:36 +00:00
Matthew Waters
cbd4110611
oggdemux: fix werror build on macos
...
../ext/ogg/gstoggdemux.c:1071:7: error: format specifies type 'long' but the argument has type 'ogg_int64_t' (aka 'long long') [-Werror,-Wformat]
packet->granulepos);
^~~~~~~~~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1062:96: note: expanded from macro 'GST_DEBUG_OBJECT'
#define GST_DEBUG_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, obj, __VA_ARGS__)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
(GObject *) (object), __VA_ARGS__); \
^~~~~~~~~~~
../ext/ogg/gstoggdemux.c:1312:15: error: format specifies type 'long' but the argument has type 'ogg_int64_t' (aka 'long long') [-Werror,-Wformat]
packet.granulepos);
^~~~~~~~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1060:98: note: expanded from macro 'GST_WARNING_OBJECT'
#define GST_WARNING_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, obj, __VA_ARGS__)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
(GObject *) (object), __VA_ARGS__); \
^~~~~~~~~~~
2019-08-30 13:27:28 +10:00
Matthew Waters
0973e1d07a
gl: also build plugin with -fobjc-arc
...
Fixes macos werror build
../ext/gl/caopengllayersink.m:336:23: error: '__bridge_retained' casts have no effect when not using ARC [-Werror,-Warc-bridge-casts-disallowed-in-nonarc]
ca_sink->layer = (__bridge_retained gpointer)layer;
^~~~~~~~~~~~~~~~~~
2019-08-30 13:20:37 +10:00
Matthew Waters
fc539f6162
glwindow/cocoa: silence unused-variable warning
...
We are using ARC to cleanup after ourselves.
../gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:159:20: error: unused variable 'queue' [-Werror,-Wunused-variable]
dispatch_queue_t queue = (__bridge_transfer dispatch_queue_t) window->priv->gl_queue;
^
2019-08-30 13:00:14 +10:00
Jan Schmidt
8b72e4b2a5
m4/gst-gl: Add dummy GST_GL_HAVE_WINDOW_WINRT
...
Add a dummy define to make fix the autotools build for now. To
actually build WinRT support, use the meson build.
2019-08-29 08:40:23 +00:00
Matthew Waters
bff6e9a749
glcontext/egl: fallback to WINDOW_BIT if PBUFFER_BIT fails
...
There are some drivers that do not advertise any PBUFFER EGLConfig's.
2019-08-29 00:31:26 +00:00
Jonas Larsson
94984e13a9
eglimage: Fix memory leak
...
Also free the GstEGLImage struct allocated by g_new0.
Fixes #661
2019-08-28 11:24:01 -07:00
Mathieu Duponchelle
4ccc7a51d1
{audio,video}aggregator: define autoptr cleanup functions
2019-08-28 14:52:22 +00:00
Hou Qi
b65d1c6de9
audiodecoder: fix ctitical info assertion 'GST_IS_CAPS (dec->priv->ctx.caps)' failed
...
Matroskademux will send gap event when lag of video and audio is over 3 seconds.
audiodecoder needs to handle gap event and set default output caps.
Only audio info is set, while output caps is ignored. This cause the assertion failed.
Need to fill output caps in gst_audio_decoder_negotiate_default_caps() with
negotiated caps to avoid critical info printed when check it later.
2019-08-28 00:59:56 +00:00
Nirbheek Chauhan
564ab3031b
gstgl: Add a new window type for WinRT
...
This is needed for using GstGL with ANGLE as the GLES implementation
in Universal Windows Platform apps that use the Windows Runtime
(WinRT) instead of Win32, which is deprecated and not allowed in
Windows Store apps.
This has been tested with Servo on the Microsoft HoloLens 2, and seems
to work quite well.
2019-08-28 02:25:11 +05:30
Mathieu Duponchelle
97426fd52e
encoding-target: fix SECTION comment syntax
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/658
2019-08-27 14:25:34 +00:00
Niels De Graef
0314b482f3
Don't pass default GLib marshallers for signals
...
By passing NULL to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
2019-08-27 07:31:57 +02:00
Mathieu Duponchelle
e0fadd6fdd
docstrings: port ulinks to markdown links
2019-08-23 18:28:16 +02:00
Piotr Drąg
e29e57b77c
po: update POTFILES
2019-08-21 14:50:12 +00:00