Tobias Ronge [Thu, 14 Mar 2019 09:12:27 +0000 (10:12 +0100)]
gstrtspconnection: Security loophole making heap overflow
The former code allowed an attacker to create a heap overflow by
sending a longer than allowed session id in a response and including a
semicolon to change the maximum length. With this change, the parser
will never go beyond 512 bytes.
Guillaume Desmottes [Tue, 12 Mar 2019 15:42:11 +0000 (16:42 +0100)]
video-color: add more color primaries formats
They correspond to index 10, 11, 12 and 22 from ITU-T H.273,
Table 2 – Interpretation of colour primaries (ColourPrimaries) value
Nirbheek Chauhan [Mon, 11 Mar 2019 11:29:36 +0000 (16:59 +0530)]
glwindow/win32: Don't use condition variables for message synchronization
Using a single condition variable for synchronization across all GL
messages is very slow on Windows and uses up to 20% CPU usage in some
workloads due to lock contention and false broadcasts.
Using per-message event handles reduces the CPU usage to negligible
amounts despite having to allocate a new event handle for each
message.
Nirbheek Chauhan [Mon, 11 Mar 2019 12:39:30 +0000 (18:09 +0530)]
glmemory: Disable GL timing queries when debugging
This can be very expensive in some workloads, taking up to 11% of the
total execution time.
Nirbheek Chauhan [Thu, 28 Feb 2019 09:31:40 +0000 (15:01 +0530)]
glframebuffer: Don't do expensive checks with low gst debug levels
Framebuffer checks can be very expensive, taking up to 3-5% of the
total CPU consumed by the application.
Lucas Stach [Fri, 8 Mar 2019 18:52:25 +0000 (19:52 +0100)]
gl/wayland: fix glib mainloop integration
Implement the prepare and check functions according to the
documentation by returning TRUE when events should be dispatched
via the dispatch function.
As wl_display_read_events never blocks we can call it unconditionally
without looking at the poll status.
This simplifies the implementation and gets rid of a race where the
mainloop could get blocked due to nobody actually reading the events
from the wayland connection.
Tim-Philipp Müller [Sat, 9 Mar 2019 17:17:11 +0000 (17:17 +0000)]
tests: audiodecoder: speed up audiodecoder_buffer_after_segment test
We're creating buffers with one sample here for some reason. The
actual value of the segment stop is irrelevant for what we're testing
here, so lower it to 10ms so that we create fewer buffers which speeds
things up on slow machines and in valgrind.
Mathieu Duponchelle [Thu, 7 Mar 2019 17:55:33 +0000 (18:55 +0100)]
videoaggregator: fix buffer skipping with pad offsets
The ->skip_buffer implementation in videoaggregator replicates
the behaviour of the aggregate method to determine whether a
buffer can be skipped
(https://bugzilla.gnome.org/show_bug.cgi?id=781928).
This fixes a typo that made it so the start time of the buffer
was calculated against the output segment, not the segment of
the relevant sinkpad, which caused buffers to be skipped when
for example a sinkpad had received a segment which base had
been modified by a pad offset somewhere along the way.
This simply makes the calculation of the buffer start time
identical to the calculation in aggregate()
Matthew Waters [Tue, 5 Mar 2019 05:13:15 +0000 (16:13 +1100)]
gl: Don't restore the viewport on function exit
Doing so involves retrieving the current viewport from OpenGL which as
with any glGet operation, is expensive.
This means that the various sinks need to reset the viewport on draw.
In the process, fix resizing on cocoa.
Thibault Saunier [Thu, 7 Mar 2019 22:49:51 +0000 (19:49 -0300)]
Revert "Revert "discoverer: Serialize/load "next" StreamInfo in GVariants""
This reverts commit
747f5a75c391ef18a587a1c064d512340872f32d.
This was never meant to be reverted in the first place but sliped in
during developement
Thibault Saunier [Wed, 20 Feb 2019 17:58:36 +0000 (14:58 -0300)]
tools:discoverer: Add an option to print the cache directory
Thibault Saunier [Wed, 20 Feb 2019 14:57:08 +0000 (11:57 -0300)]
Revert "discoverer: Serialize/load "next" StreamInfo in GVariants"
This reverts commit
6ca357f5b67590c694a95013f5eb5fdd04cf46a9.
Thibault Saunier [Wed, 20 Feb 2019 14:41:57 +0000 (11:41 -0300)]
discoverer: Remove padding from private headers
Thibault Saunier [Fri, 10 Nov 2017 15:29:05 +0000 (12:29 -0300)]
dicoverer: Do not add container infos to the stream list
They are not added on actual discovery
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
Thibault Saunier [Wed, 8 Nov 2017 16:25:08 +0000 (13:25 -0300)]
discoverer: Serialize/load "next" StreamInfo in GVariants
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
Thibault Saunier [Wed, 8 Nov 2017 13:38:57 +0000 (10:38 -0300)]
discoverer: Implement GstDiscovererInfo caching
This uses the gst_discoverer_info_from/to_variant API and saves
the variants on disc (in the user data cache dir) allowing much
faster retrieval of the information after the cache has been built.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
Olivier Crête [Thu, 7 Mar 2019 19:43:06 +0000 (14:43 -0500)]
video-aggregator: Sync property values to output timestamp
The properties need to be change at every output frame based on the output
time because they may change even though the input frame is not changing.
Matthew Waters [Wed, 6 Mar 2019 15:01:09 +0000 (02:01 +1100)]
gl: fix a few other leaks when not getting to PAUSED
Matthew Waters [Wed, 6 Mar 2019 12:29:56 +0000 (23:29 +1100)]
glcolorconvert: Ensure we free the internal convert object
If we only ever make it to READY, transform_caps can create an
internal convert object that will never be freed by basetransform's
stop vmethod (PAUSED->READY).
Matthew Waters [Wed, 6 Mar 2019 12:27:11 +0000 (23:27 +1100)]
tests/glbin: setting a full reference means we need to unref
Fixes the element leaks in the full variants of the glbin test.
Tim-Philipp Müller [Wed, 6 Mar 2019 09:23:47 +0000 (09:23 +0000)]
tests: vorbisec: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:23:22 +0000 (09:23 +0000)]
tests: glmatrix: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:23:15 +0000 (09:23 +0000)]
tests: glmemory: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:22:52 +0000 (09:22 +0000)]
tests: videoencoder: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:22:44 +0000 (09:22 +0000)]
tests: audio: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:22:28 +0000 (09:22 +0000)]
tests: audiomixer: fix leaks in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 09:22:17 +0000 (09:22 +0000)]
tests: audioconvert: fix leaks in unit test
Tim-Philipp Müller [Sat, 23 Feb 2019 10:04:27 +0000 (10:04 +0000)]
gl: .gitignore generated wayland xdg shell files
Tim-Philipp Müller [Wed, 6 Mar 2019 09:17:02 +0000 (09:17 +0000)]
video: fix pipeline leak in gst_video_convert_sample_async()
Tim-Philipp Müller [Wed, 6 Mar 2019 09:14:04 +0000 (09:14 +0000)]
vorbisdec: fix leak of header buffers
handle_header_buffer() does no take ownership of
the buffer passed.
Fixes leaks in various unit tests.
Matthew Waters [Tue, 5 Mar 2019 13:59:35 +0000 (00:59 +1100)]
gloverlaycompositor: Also free the texcoord GL buffer
Fix a typo that was attempting to free the position GL buffer twice
(without any consequences as there was a if (buffer) check)
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/561
Tim-Philipp Müller [Mon, 25 Feb 2019 23:57:13 +0000 (23:57 +0000)]
audiodecoder: add _finish_subframe() method
This allows us to output audio samples without discarding
any input frames, which is useful for some formats/codecs
(e.g. the MonkeysAudio decoder implementation in ffmpeg
which will might return e.g. 16 output buffers for an
input buffer for certain files).
In the past decoder implementations just concatenated
the returned audio buffers until a full frame had been
decoded, but that's no longer possible to do efficiently
when the decoder returns audio samples in non-interleaved
layout.
Allowing subframes to be output before the entire input
frame is decoded can also be useful to decrease startup
latency/delay.
https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/49
Marc Leeman [Tue, 5 Mar 2019 13:32:37 +0000 (14:32 +0100)]
rtp: add H265 to lookup for media info
Nicolas Dufresne [Mon, 4 Mar 2019 22:05:04 +0000 (17:05 -0500)]
videooverlay: Fix render-rectangle range
The range was set to -1 to MAXINT, but the x,y value can be negative.
Relax the restriction so that we can now have negative coordinates.
Seungha Yang [Mon, 4 Mar 2019 13:49:23 +0000 (22:49 +0900)]
tests: audiorate: Don't compare string with enum
../subprojects/gst-plugins-base/tests/check/elements/audiorate.c(192): warning C4047
Meaningful validation at that point seems to checking output GstAudioFormat
of gst_audio_format_from_string()
Tim-Philipp Müller [Mon, 4 Mar 2019 09:05:02 +0000 (09:05 +0000)]
Back to development
Tim-Philipp Müller [Thu, 28 Feb 2019 16:10:35 +0000 (16:10 +0000)]
meson: subprojects: use gl-headers from gstreamer gitlab
Tim-Philipp Müller [Thu, 28 Feb 2019 15:46:02 +0000 (15:46 +0000)]
meson: don't build icles when tests are disabled
They are manual tests, so let them be controlled
via the tests option.
Matthew Waters [Thu, 28 Feb 2019 12:38:45 +0000 (23:38 +1100)]
gl: actually use the highp specifier
675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc contained a typo that incorrectly
used the mediump specifier instead of highp.
Matthew Waters [Thu, 28 Feb 2019 05:17:37 +0000 (16:17 +1100)]
gl: try to use highp precision where supported
The use of mediump as a specifier in GLSL shaders will have limited
resolution and when used as texture coordinates may become inaccurate
over texture sizes of 1024.
Tim-Philipp Müller [Tue, 26 Feb 2019 11:43:43 +0000 (11:43 +0000)]
Release 1.15.2
Tim-Philipp Müller [Tue, 26 Feb 2019 11:43:42 +0000 (11:43 +0000)]
Update docs
Tim-Philipp Müller [Tue, 26 Feb 2019 11:43:40 +0000 (11:43 +0000)]
Update translations
Vivia Nikolaidou [Tue, 19 Feb 2019 14:59:34 +0000 (16:59 +0200)]
videorate: Add max-duplication-time property
This will only duplicate buffers if the gap between two consecutive
buffers is up to fill-until nsec. If it's larger, it will only output
the new buffer and mark it as discont.
Nirbheek Chauhan [Thu, 21 Feb 2019 13:48:18 +0000 (19:18 +0530)]
meson: Remove outdated msvc-specific disabling code
This was done ages ago when the meson build files were newly added
but now we do the appropriate disabling in Cerbero instead since this
does not apply to gst-build.
https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121
Tim-Philipp Müller [Wed, 20 Feb 2019 09:46:30 +0000 (09:46 +0000)]
tests: video: add basic sanity check of pstrides for formats
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/117
James Cowgill [Sat, 9 Feb 2019 17:21:13 +0000 (17:21 +0000)]
video-format: Fix GBRA_10/12 alpha channel pixel strides
These formats have 4 components, so they should also have 4 components
of pixel stride.
Victor Toso [Thu, 17 Jan 2019 14:38:40 +0000 (15:38 +0100)]
tests: use GPOINTER_TO_INT to avoid warnings with mingw
New casts to avoid the the warnings mentioned below. While at it, move
some existing casts (introduced at
61bc9091894062b9) to use
GPOINTER_TO_INT too.
[458/673] Compiling C object 'tests/check/7d01337@@libs_video@exe/libs_video.c.obj'.
../tests/check/libs/video.c: In function 'fourcc_get_size':
../tests/check/libs/video.c:160:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return (unsigned long) p->endptr;
^
In file included from ../tests/check/libs/video.c:32:
../tests/check/libs/video.c: In function 'test_video_formats':
../tests/check/libs/video.c:563:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
fail_unless_equals_int (size, (unsigned long) paintinfo.endptr);
^
And more.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/94
Victor Toso [Thu, 17 Jan 2019 14:25:58 +0000 (15:25 +0100)]
tests: fix compiler warnings on Windows with mingw
With commit
3f184c3abc55, the gst_dir variable becomes unusable in
windows build. Moving it to linux scope to avoid warning:
[433/673] Compiling C object 'tests/check/7d01337@@libs_profile@exe/libs_profile.c.obj'.
../tests/check/libs/profile.c: In function 'profile_suite':
../tests/check/libs/profile.c:688:10: warning: unused variable 'gst_dir' [-Wunused-variable]
gchar *gst_dir;
^~~~~~~
Also fix a typo in the comment.
Kristofer Bjorkstrom [Mon, 18 Feb 2019 14:24:18 +0000 (15:24 +0100)]
rtspconnection: Fix GError set over the top of a previous GError
The function fill_bytes could sometimes return a value greater than zero
and in the same time set the GError.
Function read_bytes calls fill_bytes in a while loop. In the special
case above it would call fill_bytes with error already set.
Thus resulting in "GError set over the top of a previous GError".
Solved this by clearing GError when return value is greater than zero.
Actions are taken depending on error type by caller of read_bytes. Eg.
with EWOULDBLOCK gst_rtsp_source_dispatch_read will try to read the
missing bytes again (GST_RTSP_EINTR )
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/445
Tim-Philipp Müller [Mon, 18 Feb 2019 13:28:49 +0000 (13:28 +0000)]
gl: eglimage: fix build on RPi by adding more fallback defines for EGL_*_EXT
Nicolas Dufresne [Sat, 17 Nov 2018 04:51:44 +0000 (23:51 -0500)]
tests: video: Test video format enum stability
It is really easy to break the API and insert a new video format in the
middle of the enum instead of at the end. This minimal test should catch
the most obvious errors. Ideally, this test should be updated after new
format have been added, so that it won't allow further modification to
the enumeration API.
Tim-Philipp Müller [Sat, 16 Feb 2019 15:29:57 +0000 (15:29 +0000)]
pbutils: add description for AV1 codec
Fixes #558
Nicolas Dufresne [Fri, 15 Feb 2019 21:45:09 +0000 (16:45 -0500)]
glimagesink: Don't call set_property helper in get_property
Edward Hervey [Wed, 13 Feb 2019 10:59:10 +0000 (11:59 +0100)]
wayland: Also dist the private header
Nicolas Dufresne [Mon, 11 Feb 2019 15:01:55 +0000 (10:01 -0500)]
eglimage: Add some more defines
This allow building on advertised version of libdrm drm_fourcc.h files.
Fixes #549
Nicolas Dufresne [Mon, 11 Feb 2019 15:01:50 +0000 (10:01 -0500)]
Revert "fix issue"
This reverts commit
5e0c458e0ef544f1afae13c5eb047bc0826b011a.
yanle.zhang [Mon, 11 Feb 2019 08:13:15 +0000 (16:13 +0800)]
fix issue
549."https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/549".
Thibault Saunier [Wed, 30 Jan 2019 13:49:37 +0000 (10:49 -0300)]
tools: device-monitor: Add support for modified devices
Seungha Yang [Fri, 8 Feb 2019 12:38:04 +0000 (21:38 +0900)]
glupload: Don't leak caps features
Create caps features when it is required.
Niels De Graef [Fri, 14 Dec 2018 15:33:50 +0000 (16:33 +0100)]
gl/wayland: add support for XDG-shell
[wl_shell] is officially [deprecated], so provide support for the
XDG-shell protocol should be provided by all desktop-like compositors.
(In case they don't, we can of course fall back to wl_shell).
Note that the [XML spec] is provided by the `wayland-protocols`
git repository, which is provided by the Wayland project.
[wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
[deprecated]: https://github.com/wayland-project/wayland/commit/
698dde195837f3d0844b2725ba4ea8ce9ee7518c
[XML spec]: https://github.com/wayland-project/wayland-protocols/blob/master/stable/xdg-shell/xdg-shell.xml
Niels De Graef [Fri, 14 Dec 2018 13:54:24 +0000 (14:54 +0100)]
gl/wayland: extract code to create wl_shell_surface
This is just a cosmetic change that will make it easier to differentiate
between wl_shell and xdg_wm_base later.
Niels De Graef [Fri, 14 Dec 2018 13:28:26 +0000 (14:28 +0100)]
gl/wayland: prefix shell(_surface) with wl_
This will help us make the distinction later with xdg-shell and other
possible protocols that need to be supported.
Nirbheek Chauhan [Tue, 5 Feb 2019 16:36:15 +0000 (22:06 +0530)]
misc: Fix compiler warnings on Cerbero's MinGW
rtpbasedepayload.c:126:5: error: unknown conversion type character 'z' in format [-Werror=format]
profile.c:688:10: error: unused variable 'gst_dir' [-Werror=unused-variable]
Guillaume Desmottes [Mon, 4 Feb 2019 10:48:25 +0000 (11:48 +0100)]
videodecoder: remove useless code in negotiate_default_caps()
gst_video_decoder_negotiate_default_caps() is meant to pick a default output
format when we need one earlier because of an incoming GAP.
It tries to use the input caps as a base if available and fallback to a default
format (I420 1280x720@30) for the missing fields.
But the framerate and pixel-aspect were not explicitly passed to
gst_video_decoder_set_output_state() which is solely relying on the input format
as reference to get the framerate anx pixel-aspect-ratio.
So there is no need to manually handling those two fields as
gst_video_decoder_set_output_state() will already use the ones from
upstream if available, and they will be ignored anyway if there are not.
This also prevent confusing debugging output where we claim to use a
specific framerate while actually none was set.
Nirbheek Chauhan [Thu, 31 Jan 2019 09:52:21 +0000 (15:22 +0530)]
meson: orc-test is not required
This is especially never available on iOS.
Sebastian Dröge [Wed, 30 Jan 2019 12:32:50 +0000 (14:32 +0200)]
rtspconnection: Fix uninitialized variable warning when compiling with pre-2.59.1 GLib
gstrtspconnection.c: In function ‘writev_bytes’:
gstrtspconnection.c:1348:10: error: ‘res’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
return res;
^
Seungha Yang [Wed, 30 Jan 2019 11:41:13 +0000 (20:41 +0900)]
rtspconnection: Fix broken build on GLib 2.59.0
GPollableReturn enum was introduced after GLib 2.59.0 release.
Seungha Yang [Tue, 29 Jan 2019 01:38:15 +0000 (10:38 +0900)]
meson: Add support orc fallback
Allow fallback to orc subproject if any.
Additionally 'dependencies' keyword is removed from find_library,
because it's invalid keyword for find_library.
Thibault Saunier [Thu, 17 Jan 2019 21:04:11 +0000 (18:04 -0300)]
typefindfunctions: Add a function to typefind xges files
mrk501 [Sun, 27 Jan 2019 03:35:12 +0000 (12:35 +0900)]
audioringbuffer: Fix wrong memcpy address when reordering channels
When using multichannel audio data and being needed to reorder channels,
audio data is not copied correctly because destination address of
memcpy is wrong.
For example, the following command
$ gst-launch-1.0 pulsesrc ! audio/x-raw,channels=6,format=S16LE ! filesink location=test.raw
will reproduce this issue if there is 6-ch audio input device.
This commit fixes that.
The detailed process of this issue is as follows:
1. gst-launch-1.0 calls gst_pulsesrc_prepare (gst-plugins-good/ext/pulse/pulsesrc.c)
1466 gst_pulsesrc_prepare (GstAudioSrc * asrc, GstAudioRingBufferSpec * spec)
1467 {
(skip...)
1480 {
1481 GstAudioRingBufferSpec s = *spec;
1482 const pa_channel_map *m;
1483
1484 m = pa_stream_get_channel_map (pulsesrc->stream);
1485 gst_pulse_channel_map_to_gst (m, &s);
1486 gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SRC
1487 (pulsesrc)->ringbuffer, s.info.position);
1488 }
In my environment, after line 1485 is processed, position of spec and s are
spec->info.position[0] = 0
spec->info.position[1] = 1
spec->info.position[2] = 2
spec->info.position[3] = 6
spec->info.position[4] = 7
spec->info.position[5] = 8
s.info.position[0] = 0
s.info.position[1] = 6
s.info.position[2] = 2
s.info.position[3] = 1
s.info.position[4] = 7
s.info.position[5] = 8
The values of spec->info.positions equal
GST_AUDIO_BASE_SRC(pulsesrc)->ringbuffer->spec->info.positions.
2. gst_audio_ring_buffer_set_channel_positions calls
gst_audio_get_channel_reorder_map.
3. Arguments of gst_audio_get_channel_reorder_map are
from = s.info.position
to = GST_AUDIO_BASE_SRC(pulsesrc)->ringbuffer->spec->info.positions
At the end of this function, reorder_map is set to
reorder_map[0] = 0
reorder_map[1] = 3
reorder_map[2] = 2
reorder_map[3] = 1
reorder_map[4] = 4
reorder_map[5] = 5
4. Go back to gst_audio_ring_buffer_set_channel_positions and
2065 buf->need_reorder = TRUE;
is processed.
5. Finally, in gst_audio_ring_buffer_read,
1821 if (need_reorder) {
(skip...)
1829 memcpy (data + i * bpf + reorder_map[j] * bps, ptr + j * bps, bps);
is processed and makes this issue.
Sebastian Dröge [Thu, 24 Jan 2019 15:52:50 +0000 (17:52 +0200)]
rtspconnection: Update to merged GOutputStream::writev() API
Sebastian Dröge [Fri, 30 Nov 2018 10:47:57 +0000 (12:47 +0200)]
rtspconnection: Handle EOF on writev() after checking for all other error conditions
Otherwise we would return EOF if nothing was written in any case, even
if this was actually a case of TIMEOUT or EWOULDBLOCK for example.
Thanks to Edward Hervey for debugging and finding this issue.
Ognyan Tonchev [Wed, 24 Oct 2018 09:32:22 +0000 (11:32 +0200)]
rtspconnection: Fixes for corrupt RTP packets in dispatch_write()
Fixes 2 problems:
1) Number of unmapped memories does not always match number of mmaped ones in
dispatch_write().
2) When dispatch_write() is dispatched second time after an incomplete write,
already set offsets will not be taken into account, thus corrupt RTP data will
be sent.
Sebastian Dröge [Mon, 17 Sep 2018 14:03:45 +0000 (17:03 +0300)]
rtsp-connection: Make use of new GstRTSPMessage API for directly storing a body buffer and add API for writing multiple messages
By doing so we can send a whole GstBufferList and each memory in the
contained buffers without copying into a single memory area and with a
single writev() call. This improves performance considerably for
high-packet-rate streams.
This depends on https://gitlab.gnome.org/GNOME/glib/merge_requests/333
to be efficient, otherwise each chunk of memory is a separate write()
call.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/370
Sebastian Dröge [Fri, 17 Aug 2018 09:51:31 +0000 (12:51 +0300)]
rtsp-message: Add support for storing GstBuffers directly as body payload of messages
This makes it unnecessary for callers to first merge together all
memories, and it allows API like GstRTSPConnection to write them out
without first copying all memories together or using writev()-style API
to write multiple memories out in one go.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/370
Andrew Gall [Mon, 28 Jan 2019 14:16:06 +0000 (15:16 +0100)]
video-anc: Fix glib version check for G_GNUC_CHECK_VERSION macro
Fixes #544
Seungha Yang [Mon, 28 Jan 2019 04:54:43 +0000 (13:54 +0900)]
tests: discoverer: Add async API test cases
Add more test cases for async APIs such as gst_discoverer_{start,stop},
and gst_discoverer_discover_uri_async()
Seungha Yang [Mon, 28 Jan 2019 09:13:27 +0000 (18:13 +0900)]
discoverer: Hold GSource object instead of source id
g_source_remove() works only for a GSource which was attached
to default GMainContext, but the GSource might be attached to
custom context depending on how gst_discoverer_start() was called.
Whatever the attached context was, g_source_destroy() can clean it up.
Sebastian Dröge [Thu, 24 Jan 2019 08:14:36 +0000 (10:14 +0200)]
glcolorbalance: Copy caps in transform_internal_caps()
We don't get ownership of the caps that are passed in, and doing so
causes crashes at a later time.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/546
Tim-Philipp Müller [Tue, 22 Jan 2019 13:24:29 +0000 (13:24 +0000)]
meson: opengl: fix enabled_gl_apis in pkg-config file
Make consistent with what autotools puts into enabled_gl_apis
variable. Autotools puts 'gl' in there instead of 'opengl'.
This would cause problems when building -bad glmixers plugin
in meson against a -base that was built with autotools.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/871
Haihao Xiang [Wed, 19 Dec 2018 02:59:09 +0000 (10:59 +0800)]
gstglwindow_x11: require a resize event at once after XResizeWindow
Otherwise surface_width/surface_height stored in GstGLWindowPrivate
isn't changed, sometimes an unnecessary reconfigure event is sent on
sinkpad, then result in upstream reconfiguring.
Example pipeline:
gst-launch-1.0 videotestsrc ! msdkvpp ! glimagesink
Nicolas Dufresne [Fri, 18 Jan 2019 16:39:02 +0000 (11:39 -0500)]
Revert "alsa: Implement a DeviceProvider"
This reverts commit
69c3c31608ecebfadd9717e950d8c708988563e3.
All devices have the same name, they are duplicated with pulseaudio one
and the provided does not respond to HW being plugged/unplugged. I think
it's not ready for 1.16.
Thibault Saunier [Fri, 31 Aug 2018 21:33:43 +0000 (18:33 -0300)]
alsa: Implement a DeviceProvider
Removing gstalsadeviceprobe.[ch] as it was a relique from the 0.10
century.
George Kiagiadakis [Fri, 7 Dec 2018 16:07:42 +0000 (18:07 +0200)]
videoaggregator: remove broken rate adjustment
The start_time and end_time in this context have already
been adjusted for the input's rate by converting them to running
time above. What is needed afterwards is to compare these
with the output's start/stop running time, which also takes
into account the rate, so we are comparing equal things.
Multiplying these with the output's rate here is only breaking
this logic. In most cases the input and output rate is the same,
so this multiplication effectively reverses the rate adjustment
that happened while converting to running time, which is why
we see the video playing with the original rate in tests.
Fixes #541
Tim-Philipp Müller [Thu, 17 Jan 2019 01:50:25 +0000 (01:50 +0000)]
Release 1.15.1
Tim-Philipp Müller [Thu, 17 Jan 2019 01:50:25 +0000 (01:50 +0000)]
Update docs
Tim-Philipp Müller [Thu, 17 Jan 2019 01:50:16 +0000 (01:50 +0000)]
Update translations
Sebastian Dröge [Wed, 16 Jan 2019 12:09:18 +0000 (14:09 +0200)]
gl: Only unbind buffers/vertex attrib arrays if we can't directly bind the vertex array to 0
Binding the vertex array to 0 will unbind everything else already.
In the previous order older versions of the Intel GL driver caused
errors to be printed for every single call when disabling the vertex
attrib arrays after binding the vertex array to 0.
Tim-Philipp Müller [Wed, 16 Jan 2019 00:37:48 +0000 (00:37 +0000)]
meson: enable tests for orc code
Tim-Philipp Müller [Wed, 16 Jan 2019 00:28:16 +0000 (00:28 +0000)]
video-format: minor docs improvement
Jordan Petridis [Fri, 11 Jan 2019 15:43:03 +0000 (17:43 +0200)]
subparse: do not assert when failing to parse subrip timestamp
If a badly formatted was passed into `parse_subrip_time` it would
assert instead of exiting gracefully. This is problematic since
the input is provided by the user, and will trigger a crash.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/532
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 13:39:11 +0000 (14:39 +0100)]
videoscale: Add a test to verify stepped dimensions work
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 13:42:31 +0000 (14:42 +0100)]
videoscale: Round when fixating to nearest ints to reduce error
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 13:24:35 +0000 (14:24 +0100)]
videoscale: Choose the best dimensions for fixed PAR
We might not get an exact match for width or height if stepped ranges
are involved.
Sebastian Dröge [Mon, 14 Jan 2019 08:29:54 +0000 (10:29 +0200)]
pbutils: Add audio, base and video library to Requires line in the pkg-config file
We use all those libraries internally and include headers from them in
the public headers.
And add the tag library to Requires.private as we use it internally and
it would be needed when doing static linking.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/537
Seungha Yang [Sun, 30 Dec 2018 09:01:30 +0000 (18:01 +0900)]
gl: Fix some type conversion warnings with MSVC
MSVC complained about implicit conversion between GstGLFormat* and guint*
Víctor Manuel Jáquez Leal [Sat, 12 Jan 2019 11:27:27 +0000 (12:27 +0100)]
glsinkbin: validate property in internal sink
It might be the case that glgsinkbin would try to set a property to
its internal sink which doesn't exist in it, leading to a glib's
warning. For example, when playsink sets 'force-aspect-ratio' property
and glsinkbin has, as internal sink, appsink, which doesn't handle
that property.
The patch validates the incoming property to forward to internal sink
if it exists in the internal sink and both properties has the same
type.
Wim Taymans [Fri, 11 Jan 2019 15:37:40 +0000 (16:37 +0100)]
video-converter: fix number of allocated lines
We make an allocator for temporary lines and then use this for all
the steps in the conversion that can do in-place processing.
Keep track of the number of lines each step needs and use this to
allocate the right number of lines.
Previously we would not always allocate enough lines and we would
end up with conversion errors as lines would be reused prematurely.
Fixes #350
Alex Ashley [Thu, 5 Jul 2018 12:45:14 +0000 (13:45 +0100)]
codec-utils: support extension audio object type and sample rate
ISO 14496-3 defines that audioObjectType 5 is a special case that
indicates SBR is present and that an additional field has to be
parsed to find the true audioObjectType.
There are two ways of signaling SBR within an AAC stream - implicit
and explicit (see [1] section 4.2). When explicit signaling is used,
the presence of SBR data is signaled by means of the SBR
audioObjectType in the AudioSpecificConfig data.
Normally the sample rate is specified by an index into a
table of common sample rates. However index 0x0f is a special case
that indicates that the next 24 bits contain the real sample rate.
[1] https://www.telosalliance.com/support/A-closer-look-into-MPEG-4-High-Efficiency-AAC
Fixes #39