Sebastian Dröge
391d09dc24
audio/video: Copy more metas by default in the codec base classes
...
For audio we copy metas that have no tags at all, or that only have the
"audio" and/or "audio-channels" tag. Audio codecs don't change the
audio aspect of the stream and in almost all cases don't change the
number of channels. They might however change the sample rate (e.g.
Opus). Subclasses that change the number of channels will have to
override ::transform_meta() accordingly.
For video we copy metas that have no tags at all, or that only have the
"video" and/or "video-size" and/or "video-orientation" tag. Video codecs
don't change the "video" aspect of the stream and in almost all cases
don't change the resolution or orientation. Subclasses that rescale or
change the orientation will have to override ::transform_meta()
accordingly.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/576#note_610581
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/801 >
2020-08-30 22:12:22 +00:00
Tim-Philipp Müller
4f12ce6213
videoscale: make local quark vars static
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/802 >
2020-08-28 12:30:43 +01:00
Matthew Waters
1cc18ec186
gl/build: build with implicit_include_directories : false
...
Fixes case-insensitive file systems confusing gst-libs/gst/gl/egl/egl.h
with EGL/egl.h when the source directory gst-libs/gst/gl is automatically
added to the compiler's search path.
Due to https://github.com/mesonbuild/meson/issues/7582 we also need to
perform manual enumtype generation.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/814
2020-08-27 00:08:08 +00:00
Jan Schmidt
8cacd54e8f
compositor: fix off-by-1 error in blending ARGB
...
Use a more naive blend formulation that avoids off-by-one errors
at the 0x00 and 0xff alpha endpoints.
Fixes #810
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/796 >
2020-08-26 13:10:09 +00:00
Sebastian Dröge
3edf390b4c
videorate/videoscale/audioresample: Ensure that the caps returned from fixate_caps() are actually fixated
...
If there is some other field than the ones we care about left and not
fixated yet then basetransform will just error out. So instead just pass
the result through gst_caps_fixate() in the very end.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/799 >
2020-08-26 09:10:29 +00:00
Marcin Kolny
d74b9f56fc
encoding-profile: minor fix in documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/212 >
2020-08-25 07:29:33 +00:00
Tim-Philipp Müller
94dcf915e8
Release 1.17.90
2020-08-20 16:10:19 +01:00
Sebastian Dröge
39dbbf1369
videoscale: Don't call NULL GstMeta transform function
...
It's optional and if it does not exist then no transformation is
possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/790 >
2020-08-18 10:26:48 +03:00
Mathieu Duponchelle
1ce61b1b08
tags: update to latest iso-code and support more languages
...
Some languages have an ISO 639-2 representation but no 639-1
representation, for example where "eng" has a two-letter
equivalent in "en", "enm" doesn't have one.
Discarding those languages from our static table caused functions
such as gst_tag_get_language_code_iso_639_2T() or
gst_tag_get_language_code_iso_639_2B() to return NULL for
valid language codes such as "enm", potentially causing users
of these API such as mpegtsmux to discard language code tags
as invalid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/785 >
2020-08-12 17:59:58 +00:00
Nicolas Dufresne
6500a76bfb
pbutils: Add latest H.264 level values
...
The spec now list 6, 6.1 and 6.2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/786 >
2020-08-11 17:15:50 -04:00
Jan Schmidt
b18fd0f239
appsrc: Post a bus error if a segment can't be applied
...
When applying segments from the input samples, post a bus
error and fail loudly if the segment fails to configure, instead of
just posting debug output.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/783 >
2020-08-11 07:35:56 +00:00
Matthew Waters
42b3025bdc
build/gl: add top-level include files for sub-libraries
...
Makes gir happy
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/809
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/784 >
2020-08-11 07:11:30 +00:00
Josh Matthews
855315cd39
Add required dependencies of cocoa GL example for linking.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/782 >
2020-08-10 16:18:31 +00:00
Sebastian Dröge
2d69cd5639
pkg-config: Fix dependency typo in uninstalled gstreamer-gl-* pc files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/781 >
2020-08-10 09:59:09 +03:00
Sebastian Dröge
6b14080941
audioaggregator: Add support for new sample selection API
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/805
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/780 >
2020-08-07 19:23:50 +03:00
Sebastian Dröge
61064257ef
videoaggregator: Update for additional info parameter to the "samples-selected" signal
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/590
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/780 >
2020-08-07 09:34:37 +03:00
Josh Matthews
61800dd435
Fix incorrect pkgconfig description.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/779 >
2020-08-06 14:22:27 +00:00
Guillaume Desmottes
dd5f7f1bf9
gl: move each gl platform specific API to its own gir
...
With contributions from:
Thibault Saunier <tsaunier@igalia.com>
Matthew Waters <matthew@centricular.com>
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/651
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/661 >
2020-08-06 04:09:09 +00:00
Guillaume Desmottes
9339f0198c
gl: egl: add missing gir annotations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/661 >
2020-08-06 04:09:09 +00:00
Mathieu Duponchelle
1de8af6f8b
videoaggregator: update to new samples selection API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/778 >
2020-08-05 20:09:52 +02:00
Jordan Petridis
66ff1eedca
tests/check/elements/audioresample.c: avoid implict int ot float conversion
...
Also use doubles instead so the calculation won't overflow
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/773 >
2020-08-04 17:32:31 +03:00
Jordan Petridis
31d683d59e
alsamidisrc: fix compiler warning with clang 10
...
```
../subprojects/gst-plugins-base/ext/alsa/gstalsamidisrc.c:201:54: error: converting the result of '<<' to a boolean always evaluates to false [-Werror,-Wtautological-constant-compare]
snd_seq_ev_schedule_real (&ev, alsamidisrc->queue, SND_SEQ_TIME_MODE_ABS,
^
/usr/include/alsa/seq_event.h:215:34: note: expanded from macro 'SND_SEQ_TIME_MODE_ABS'
```
The ALSA API expects 0 or 1 here and will then add the flags accordingly,
and that's also what other code using this API does.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/777 >
2020-08-04 15:19:08 +03:00
Xavier Claessens
0d246fb8b0
Meson: find_program() will return gst-tester from subproject
...
gstreamer now use override_find_program() so it won't return the system
version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/776 >
2020-08-04 07:11:54 -04:00
Nirbheek Chauhan
8c94e746f5
meson: Only look for Objective-C compiler on macOS/iOS
...
On Windows, MinGW-GCC Objective-C compilers can be in PATH and mess up
the build since they may not match the CPU family of the C/C++
compilers we are using.
Also require them on macOS/iOS, because they should always be present.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/88
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/774 >
2020-08-04 05:37:19 +05:30
Tim-Philipp Müller
141062c4d6
examples: compositor: fix build with older GLib versions
...
Don't use g_hash_table_steal_extended() which was only
added in 2.58.
Fixes #801
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/772 >
2020-07-31 23:24:02 +00:00
Thibault Saunier
5ad727f9ee
compositor: Frames where we introduce alpha can't obscure anything
...
When a pad has alpha != 1.0 it means that the resulting frames will
contain alpha and thus can't fully obscure with a lower zorder.
Also simplifies the other checks as blending with an OVER or on a
transparent is not a no-op as previously assumed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/764 >
2020-07-31 15:52:14 -04:00
Mathieu Duponchelle
2faeb7d394
videoaggregator: implement samples selection API
...
Call gst_aggregator_selected_samples() after filling the queues
(but before preparing frames).
Implement GstAggregator.peek_next_sample.
Add an example that demonstrates usage of the new API in combination
with the existing buffer-consumed signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/728 >
2020-07-31 07:54:56 +00:00
Thibault Saunier
718122a9bf
encoding: Support more topologies in profile_from_discoverer()
...
Previous implementation was only working when the stream was inside a
container, this refactoring allows using virtually any stream as input.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/766 >
2020-07-31 00:15:58 +00:00
Seungha Yang
c2b9be5c94
glwindow/winrt: Increase timeout value to 15 seconds
...
5 seconds might not be enough value for timeout in case an application
is running on a device with very limited computing power.
Note that ANGLE uses 10 seconds timeout value. So even if a timeout
happens here, it's also ANGLE's timeout condition as well
(meaning that bad things will happen either way)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/769 >
2020-07-30 21:05:54 +09:00
Sebastian Dröge
f5a02639e1
audioaggregator: Only check downstream caps when handling CAPS events if we didn't negotiate with downstream yet
...
If we already negotiated with downstream there is not point in checking
if the caps are supported. We already know that this is the case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/768 >
2020-07-28 10:59:25 +03:00
Sebastian Dröge
607dc1d135
audioaggregator: Check all downstream allowed caps structures if they support the upstream rate
...
Otherwise it might happen that downstream prefers a different rate (i.e.
puts it into the first structure) and also supports other rates, but
audioaggregator would then fail negotiation.
Also this now correctly handles downstream returning a range of
supported rates.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/795
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/768 >
2020-07-27 18:49:48 +03:00
Stéphane Cerveau
22827e8f9e
meson: add a plugin summary
...
This summary displays a list of plugins which
have been enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/765 >
2020-07-23 15:09:17 +00:00
Thibault Saunier
1cead20777
encodebin: Fix and refactor smart encoding
...
It was not working properly and the implementation of the smartencoder
element was weird. This introduce a number of changes (which are all
in one single commit because they basically all work together and lead
to basically reimplementing the element):
* Make smartencoder a bin so that the reencoding chain of elements are
inside of it instead of not having any parent. Those elements were not
be visible when dumping the pipeline which was very confusing.
* Make encodebin create the right encoder with a capsfilter (and parser)
to properly enforce the format specified by the user, and so that the
encoder properties specified in the encoding profile are respected.
* Use `decodebin` to do the decoding instead of selecting a decoder
ourself and not plug any parser etc...
* Ensure that negotiated format in the sinkpad of smart encoder is fixed
through time when the user requested a non dynamic output
* Add a parser at the beginning of the smart encoder
* Handle errors when reencoding
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/751 >
2020-07-22 16:01:25 +00:00
Thibault Saunier
d10929da7c
streamsplitter: Forward STREAM_START to all branchs
...
Otherwise the branch that get selected later won't receive it ever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/751 >
2020-07-22 16:01:25 +00:00
Thibault Saunier
871fa29639
streamsplitter/combiner: Drain encoder before switching branch
...
Otherwise we miht have frames queued in the encoder from the old branch
that do not get encoded/muxed when they should.
The implementation is a bit 'weird' but the rational and solution
is documented in the code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/751 >
2020-07-22 16:01:25 +00:00
Thibault Saunier
a31158012b
encodebin: Rebuilt internal state when swicthing to avoid-reencoding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/751 >
2020-07-22 16:01:25 +00:00
Matthew Waters
a1e9f4e37b
rtpbasepayload: place twcc-ext-id behind environment variable
...
Adding properties for each and every rtp header extension is not
scalable and a new interface will be implemented for the general case
(https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/777 ).
Set the environment variable "GST_RTP_ENABLE_EXPERIMENTAL_TWCC_PROPERTY"
to any value to reenable the short-lived twcc-ext-id property.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/761
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/756 >
2020-07-21 11:57:55 +00:00
Olivier Crête
cb6edaf6f8
videorate: Error out on streams with no way to guess framerate
...
This is better than going into an infinite loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/761 >
2020-07-20 22:05:57 +00:00
Olivier Crête
90ff086a43
videorate: Assert on invalid result from internal code
...
Letting this through instead results in an infinite loop where
the exact same buffer gets pushed out ad infinitum.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/761 >
2020-07-20 22:05:57 +00:00
Olivier Crête
323554a31a
videorate: Add test that reproduces infinite loop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/761 >
2020-07-20 22:05:57 +00:00
Olivier Crête
2de70ed7c5
alsadeviceprovider: Remove redundant start function
...
The ALSA provider doesn't provider live monitoring, so don't
pretend otherwise.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/735 >
2020-07-20 21:12:54 +00:00
Matthew Waters
e762f1b376
Revert "gstgldisplay: Add public foreign_display property"
...
This introduced a possible regression where the EGL display connection
could be leaked when a foreign native display (x11, wayland, etc) could
create a non-foreign EGL display that would never be destroyed.
The underlying problem needed to be solved in a different way. See
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/640
for more details.
This reverts commit 2e686b0dad
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/758 >
2020-07-20 05:59:14 +00:00
Silvio Lazzeretti
aa4bea913b
audioutilsprivate: restore thread priority before ending
...
The priority of the thread that executes audioringbuffer_thread_func
is incremented on Windows by the usage of the AvSetMmThreadCharacteristics
API. This change has to be restored, as described on the documentation
of the API (https://docs.microsoft.com/en-us/windows/win32/api/avrt/nf-avrt-avsetmmthreadcharacteristicsw#remarks ),
with a call to the AvRevertMmThreadCharacteristics. If this is not done,
a handle will be leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/760 >
2020-07-18 13:00:00 +02:00
Seungha Yang
f0a9907097
audioutilsprivate: Don't try to load avrt for UWP application
...
All APIs in avrt.h are desktop only.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/763 >
2020-07-17 18:55:31 +09:00
Matthew Waters
26a88fdb7a
build/gl: remove unused cocoa/win32 header variables
...
We don't install any cocoa/win32 specific headers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/759 >
2020-07-16 08:12:53 +00:00
Havard Graff
36fec290a3
test/rtp: use the proper _INIT for initializing rtp/rtcp buffer structs.
...
Fixes -Wmissing-field-initializers in Clang.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/757 >
2020-07-15 16:57:01 +02:00
Havard Graff
c488fd74a0
rtpbasedepayload: test warning fixes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/757 >
2020-07-15 16:57:01 +02:00
Nicolas Dufresne
9a6730eee6
doc: Update cache with new raw pixel format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/754 >
2020-07-14 22:03:39 -04:00
Nicolas Dufresne
98b44fdb46
video: Add support for linear 32x32 NV12 tiles
...
This adds linear 32x32 NV12 based tiles. This format is notably used by
Allwinner VCU and exposed in V4L2 as being "SUNXI Tiled" format. In this
patch we generalize the plane info calculation so we can share this part
with the 4L4 variant.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/754 >
2020-07-14 21:43:56 -04:00
Nicolas Dufresne
29497285d7
doc: Update cache after adding a new pixel format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/753 >
2020-07-14 17:33:31 +00:00