Commit graph

184 commits

Author SHA1 Message Date
Tim-Philipp Müller
701ed92d27 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
2022-02-04 22:59:41 +00:00
Tim-Philipp Müller
f0b045a69b Release 1.20.0 2022-02-03 20:03:15 +00:00
Tim-Philipp Müller
463bafdd23 Update ChangeLogs for 1.20.0 2022-02-03 19:53:18 +00:00
Tim-Philipp Müller
6c500b619c video: fix up GstVideoOrientationMethod type registration
... in order to make older g-i happy (~1.60) which doesn't like
freeform descriptions in the value_name field. Which in turn
then makes hotdoc happy instead of erroring out when we bump
the symbol index version.

We usually only (ab)use the name field for description strings
for private plugin enums, not for public API visible to bindings.

This lets glib-mkenum generate the _get_type() function for the
enum again, which in turn will generate the expected value names
to match the enums.

We might be able to add this back later once we can upgrade the
g-i version requirement (and the documentation job image).

This reverts most of commit b0aab48cdcf0a454d14aeb4d907209d8ee3f1add
2022-02-03 19:53:12 +00:00
Jeremy Cline
3ddb4c6f0e tagdemux: Fix crash when presented with malformed files
There's a race condition in gsttagdemux.c between typefinding and the
end-of-stream event. If TYPE_FIND_MAX_SIZE is exceeded,
demux->priv->collect is set to NULL and an error is returned. However,
the end-of-stream event causes one last attempt at typefinding to occur.

This leads to gst_tag_demux_trim_buffer() being called with the NULL
demux->priv->collect buffer which it attempts to dereference, resulting
in a segfault.

The malicious MP3 can be created by:

printf "\x49\x44\x33\x04\x00\x00\x00\x00\x00\x00%s", \
    "$(dd if=/dev/urandom bs=1K count=200)" > malicious.mp3

This creates a valid ID3 header which gets us as far as typefinding. The
crash can then be reproduced with the following pipeline:

gst-launch-1.0 -e filesrc location=malicious.mp3 ! queue ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location=malicious.ogg

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/967

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1620>
2022-02-01 19:04:40 +00:00
Nirbheek Chauhan
67656c5eeb docs: Add objc and objcpp files to hotdoc gst_c_sources
Hotdoc should be able to extract and parse comments out of these. Just
need to be careful to only add the glob in directories that actually
contain *.m (objc) and *.mm (objcpp) files.

Also fix some doc comments and remove redundant ones.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1614>
2022-02-01 05:25:42 +05:30
Tim-Philipp Müller
31b5243e1d Release 1.19.90 2022-01-28 14:28:42 +00:00
Tim-Philipp Müller
12fe353a31 Update ChangeLogs for 1.19.90 2022-01-28 14:28:28 +00:00
Sebastian Dröge
adf80ad1a7 rtphdrext: Return non-floating references from gst_rtp_header_extension_create_from_uri()
The header extension objects are never getting a parent object and using
floating references only complicates usage, especially via dynamic API
like signals.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1582>
2022-01-27 14:43:41 +00:00
Sebastian Dröge
2584cd90e3 rtphdrext: Use set_metadata() instead of set_static_metadata()
The latter needs a static string.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1583>
2022-01-27 14:27:16 +02:00
Mathieu Duponchelle
830d1595b9 VideoInfo, AudioInfo: fix usage with python bindings
* Expose an actual constructor from caps

* Error out in overrides for code that was using the "manual
  allocation" pattern which only worked by chance. Direct
  the script writer to the new_from_caps constructor instead.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/47

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1571>
2022-01-27 08:36:46 +00:00
Tim-Philipp Müller
f03d966421 gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1579>
2022-01-27 01:38:12 +00:00
Vivia Nikolaidou
88e1b9081e audioaggregator: Return NOT_NEGOTIATED when the configuration is invalid
Otherwise we just end up outputting garbage.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1558>
2022-01-26 10:24:21 +00:00
Nirbheek Chauhan
95aa04c78f videoaggregator: Remove extra semicolon in macro usage
This is usually necessary to allow gst-indent to treat it as
a statement, but we do not run gst-indent on headers and we do not
have extra semicolons in other places that this macro is used in the
header. Fixes warnings when using the header:

```
In file included from gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/video.h:185,
                 from XYZ:9001:
gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:206:78: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
  206 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoAggregatorConvertPad, gst_object_unref);
      |                                                                              ^
gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:214:181: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
  214 | G_DECLARE_DERIVABLE_TYPE (GstVideoAggregatorParallelConvertPad, gst_video_aggregator_parallel_convert_pad, GST, VIDEO_AGGREGATOR_PARALLEL_CONVERT_PAD, GstVideoAggregatorConvertPad);
      |                                                                                                                                                                                     ^
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1572>
2022-01-26 11:12:34 +05:30
Vivia Nikolaidou
64ac6a1d16 audiotestsrc: Produce a default channel mask if possible
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1560>
2022-01-24 14:05:50 +00:00
Seungha Yang
fe870b706d video-converter: Fix for broken gamma remap with high bitdepth YUV output
Scale down the matrix before calculating RGB -> YUV matrix
otherwise offset values will be wrong

Fixing pipeline
videotestsrc ! video/x-raw,format=ARGB ! videoconvert gamma-mode=remap ! \
  video/x-raw,format=P010_10LE,colorimetry="bt2020"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1432>
2022-01-24 10:59:38 +00:00
Sebastian Dröge
64085c20b4 videodecoder: Fix property description for new properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1556>
2022-01-23 13:38:37 +02:00
Mathieu Duponchelle
8983696e39 decodebin2: raise multiqueue max-size-bytes
The earlier size of 2 MB was set back in 2009, it doesn't
seem unreasonable to raise it to 8 MB these days. The use
case at hand is matroskademux containing both a video stream
with a very low amount of compression but no decoding latency,
and a H265 stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1538>
2022-01-21 00:09:03 +00:00
Seungha Yang
a1da81bee6 Revert "videodecoder: Forward hdr-format info downstream"
This reverts commit 9b852181d8.

It's leftover commit which should've been reverted as a part of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1148

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1475>
2022-01-20 15:51:13 +00:00
Seungha Yang
5bccbdc02f tools: gst-play: Enable Windows high-resolution clock
Apply https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/817
to gst-play as well, especially for better high-framerate
(60fps or higher) video support, because
15ms default clock precision (actual value is system dependent)
is not sufficient for such scenario.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1541>
2022-01-20 04:25:03 +09:00
Tomasz Andrzejak
5fb769e95d Add FEC SDP message test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1527>
2022-01-19 16:05:11 +00:00
Tomasz Andrzejak
95f5538fa4 sdpmessage: fix mapping single char fmtp params
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1527>
2022-01-19 16:05:11 +00:00
Sebastian Dröge
8dfe70d17f codec-utils: Mark various string return values as nullable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1539>
2022-01-19 11:05:26 +02:00
Tim-Philipp Müller
b53ea86ab0 rtphdrext: increase GstRTPHeaderExtensionClass padding to LARGE
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/748#note_1223253

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1537>
2022-01-19 05:41:40 +00:00
Philippe Normand
62b8caa6ab pbutils: Define one debug category per module
Follow-up of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1526>
2022-01-18 18:19:46 +00:00
Seungha Yang
e37bbc054e compositor: Always draw if all input buffers are GAP
Otherwise output buffers will contain random scene
(previously rendered or arbitrary initial values) since we don't
draw onto output buffer at all.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1498>
2022-01-13 21:29:15 +00:00
Seungha Yang
a13309be4a videoaggregator: Don't pass GAP buffer to prepare_frame_start()
Likewise we do check the same condition in prepare_frames_finish(),
ignore GAP buffer (zero size with GST_BUFFER_FLAG_GAP flag) without
any further processing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1498>
2022-01-13 21:29:15 +00:00
Seungha Yang
d5f5a1c25f uridecodebin: Fix critical warnings
Don't pass non-GstObject object to there.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1519>
2022-01-13 18:01:57 +00:00
Philippe Normand
6a3f2f0ba6 pbutils: Simplify h264_caps_structure_get_profile_flags_level a bit
Refactoring, removing one level of indentation from the function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505>
2022-01-13 17:15:36 +00:00
Philippe Normand
074c5d85cb pbutils: H.265 support for gst_codec_utils_caps_get_mime_codec()
The codec_data caps payload is parsed and a MIME codec string is generated
according to the ISO/IEC 14496-15 specification.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505>
2022-01-13 17:15:36 +00:00
Philippe Normand
1c8f7c32aa pbutils: Add a pbutils debug category
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505>
2022-01-13 17:15:36 +00:00
Jordan Petridis
86a62d94ed gstglutils: introspection annotations fixups
* gst_gl_ensure_element_data: specify the type for the element arg

* gst_gl_handle_set_context: correctly annotate the display and
gl_ctx as just (out) instead of (inout)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1501>
2022-01-12 12:11:47 +00:00
Sebastian Dröge
79ce12416f codec-utils: Use nullable annotation instead of allow-none for various Opus functions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1506>
2022-01-12 10:19:45 +00:00
Sebastian Dröge
e667c95674 codec-utils: Annotate out parameters for Opus functions as (optional)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1506>
2022-01-12 10:19:45 +00:00
Sebastian Dröge
6de587593a codec-utils: Add missing annotations to gst_codec_utils_h264_get_profile_flags_level()
And fix some minor typos.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1506>
2022-01-12 10:19:45 +00:00
Nirbheek Chauhan
1be6d6ccf5 meson: Add explicit check: kwarg to all run_command() calls
This is required since Meson 0.61.0, and causes a warning to be
emitted otherwise:

2c079d855e
https://github.com/mesonbuild/meson/issues/9300

This exposed a bunch of places where we had broken run_command()
calls, unnecessary run_command() calls, and places where check: true
should be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
2022-01-09 18:12:47 +05:30
Nirbheek Chauhan
945fd11907 audio: Add logging that was useful in figuring out the last commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1461>
2022-01-08 05:15:30 +00:00
Nirbheek Chauhan
554a2a5145 audio-converter: Fix resampling when there's nothing to output
Sometimes we can't output anything because we don't have enough
incoming frames. In that case, the resampler was trying to call
do_quantize() and do_resample() in a loop forever because there would
never be samples to output (so chain->samples would always be NULL).

Fix this by not calling chain->make_func() in a loop -- seems
completely unnecessary since calling it over and over won't change
anything if the make_func() can't output samples.

Also add some checks for the input and / or output being NULL when
doing conversion or quantization. This will happen when we have
nothing to output.

We can't bail early, because we need resampler->samples_avail to be
updated in gst_audio_resampler_resample(), so we must call that and
no-op everything along the way.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1461>
2022-01-08 05:15:30 +00:00
Mark Nauwelaerts
41fe17adda uridecodebin: use non-floating object as signal argument
... as was the case with source-setup signal until change of order
in commit 52bca104e4

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1457>
2021-12-19 18:27:50 +01:00
Seungha Yang
11791f7ce5 video-info: Don't assume colorimetry of UHD resolution as BT.2020
BT.2020 color primaries are designed to cover much wider range of
CIE chromaticity than BT.709, and also it's used for both SDR and HDR
contents. So, the incorrect assumption (i.e., BT.709 as a BT.2020)
is risky and resulting image color tends to be visually very wrong.
Unless there's obvious clue, don't consider color space of high resolution
video stream as BT.2020

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1445>
2021-12-16 12:22:27 +00:00
Thibault Saunier
9ac502c21d sdp: Handle level-asymmetry-allowed for H264 streams
The ["level-asymmetry-allowed"] field states that the peer wants the
profile specified in the "profile-level-id" fields but doesn't care
about the level. To express this in GStreamer caps term, we add a
"profile" field in the caps, which reuses the usual "profile" semantics
for H.264 streams and, and remove "profile-level-id" and
"level-asymmetry-allowed" fields.

["level-asymmetry-allowed"]: https://www.iana.org/assignments/media-types/video/H264

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1410>
2021-12-12 10:59:00 -03:00
Thomas Klausner
0b0bc5956d tcp: fix build on Solaris
Add missing header.

From Claes Nästén via http://gnats.netbsd.org/56509

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1364>
2021-11-19 00:07:42 +00:00
Víctor Manuel Jáquez Leal
6d7dc93a45 uridecodebin3: Nullify current item after all play items are freed.
There's a potential race condition with this sort of pipelines on
certain systems (depends on the processing load):

GST_DEBUG_DUMP_DOT_DIR=/tmp \
gst-launch-1.0 uridecodebin3 uri=file://stream.mp4 ! glupload ! \
glimagesink --gst-debug=*:4

Right after the pipeline passes from PAUSED to READY, bin_to_dot_file
dumps uridecodebin3 properties, but current uri and suburi might be
already freed, causing a potential use-after-freed.

This patch makes NULL the current item right after all the play items
are freed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1353>
2021-11-16 13:25:02 +01:00
Nirbheek Chauhan
5d3009b7f8 audio-resampler: Fix segfault when we can't output any frames
Sometimes the resampler has enough space to store all the incoming
samples without outputting anything. When this happens,
gst_audio_resampler_get_out_frames() returns 0.

In that case, the resampler should consume samples and just return.
Otherwise, we get a segfault when gst_audio_resampler_resample() tries
to resample into a NULL 'out' pointer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1343>
2021-11-12 16:12:27 +00:00
Tim-Philipp Müller
972615cf22 docs: fix unnecessary ampersand, < and > escaping in code blocks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>
2021-11-12 11:39:19 +00:00
Jiri Uncovsky
9abac91c96 glcontext/egl: add missing unref
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1328>
2021-11-10 15:27:45 +00:00
Guillaume Desmottes
9b809d4cc3 appsrc: log when segment changes
We were logging when it does not change but not when it does, which is
confusing when reading logs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1327>
2021-11-09 16:19:05 +00:00
Tim-Philipp Müller
a7b376011b Back to development 2021-11-03 19:31:23 +00:00
Tim-Philipp Müller
f513c289b0 Release 1.19.3 2021-11-03 15:43:43 +00:00
Tim-Philipp Müller
d51b091cd9 Update ChangeLogs for 1.19.3 2021-11-03 15:43:32 +00:00
Matthias Clasen
ffa363edf7 egl: handle configless contexts
With EGL_KHR_no_config_context, EGL contexts may just not
have an EGLConfig to give you. Deal with it.

Fixes: #858
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1289>
2021-11-02 18:00:41 +00:00
Seungha Yang
cf871f990a examples: win32-videooverlay-playbin: Add a repeat option
... in order to test pipeline/element reuse cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1275>
2021-11-02 16:55:50 +00:00
Sebastian Dröge
577cdcafe0 video: Fix order of new video formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1282>
2021-10-31 06:38:36 +00:00
Sebastian Dröge
ee18b8c0c0 base: Fix some annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1281>
2021-10-30 15:50:30 +03:00
Tim-Philipp Müller
d96e44922e Use g_pattern_spec_match() instead of g_pattern_match() which is deprecated since glib 2.70
Fixes compiler warnings with glib 2.70

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1279>
2021-10-30 00:34:35 +01:00
Piotrek Brzeziński
428b4104b0 video-format: Add support for ARGB64 LE/BE and similar variants
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1247>
2021-10-29 14:57:58 +00:00
Tim-Philipp Müller
f034ec3e14 meson: require matching GStreamer dep versions for unstable development releases
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1244>
2021-10-28 23:29:27 +00:00
Jan Schmidt
78df7ae771 decodebin3: Only unblock for GAP events and buffers.
An alternate fix for
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1239
and https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1236
that makes it clear the intent is to only unblock on a GAP event, and
not any others.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1260>
2021-10-27 22:53:49 +11:00
Guillaume Desmottes
1d833eba60 parsebin: fix critical when sorting pads
If the pad does not have a current caps, get_pad() returns the query
caps which can be ANY. In such case the caps does not have any structure
resulting in a critical warning when calling gst_caps_get_structure().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1254>
2021-10-26 16:25:32 +00:00
Sebastian Dröge
23a06f7a31 typefindfunctions: Use memcmp() instead of a strange macro around strncmp()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1234>
2021-10-25 09:17:43 +00:00
Sebastian Dröge
37a744889c typefindfunctions: Add various CMAF brands to the MP4 typefinder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1234>
2021-10-25 09:17:42 +00:00
Sebastian Dröge
041bc2652b typefindfunctions: Refactor ftyp brands checking
Store known brands in arrays and add a helper function to check them.

Also add all the `iso3` to `isob` ISO brands and the `hlsf` ISO
fragmented brand.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1234>
2021-10-25 09:17:42 +00:00
Sebastian Dröge
66aef5ef46 typefindfunctions: Add various other boxes to the list of known top-level MP4 boxes
styp, udta, sidx, ssix, prft, mfra, pdin and meta are in the ISOBMFF
spec and emsg in the CMAF spec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1234>
2021-10-25 09:17:42 +00:00
Tim-Philipp Müller
4c665ce043 gst-plugins-base: update translations
Fixes #656

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1240>
2021-10-25 01:11:20 +01:00
Matthew Waters
d4c96bf923 gl/egl: install required egl.h header
Fixes build against using the gir.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1227>
2021-10-22 17:56:41 +11:00
Guillaume Desmottes
47445980a9 streamsynchronizer: set running time offset on events
It's cleaner and more generic than overriding the qos events.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1210>
2021-10-20 14:27:58 +00:00
Tim-Philipp Müller
8dfab0b08c meson: update for meson.build_root() and .build_source() deprecation
-> use meson.project_build_root() or .global_build_root() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
f1bb2c76c6 meson: update for dep.get_pkgconfig_variable() deprecation
... in favour of dep.get_variable('foo', ..) which in some
cases allows for further cleanups in future since we can
extract variables from pkg-config dependencies as well as
internal dependencies using this mechanism.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
531aa4064a meson: clean up conditional paths after version bump
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Thibault Saunier
95c1f67d69 discoverer: Set number to stream infos
The idea is that we can reference to streams using this unique number,
within the context of that discoverer info. That number should always
be usable to reference the streams for a specific stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/897>
2021-10-20 09:16:38 +00:00
Edward Hervey
879526b2e2 discoverer: Don't ref NULL taglist
Fixes warning introduced in 064f7bbbfa

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1200>
2021-10-20 09:47:29 +02:00
Xavier Claessens
eb072600a6 Revert "audio: Merge simd libs into the main one"
This reverts commit 4d3a200358.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1194>
2021-10-19 16:56:35 +00:00
Sebastian Dröge
7cb2dff830 video-overlay-composition: Fix constructor guard to actually allow NULL as parameter
And don't use a NULL rectangle later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1195>
2021-10-19 14:13:24 +00:00
Matthew Waters
d495154068 gl/eagl: fix eagl display creation
The GstGLDisplayType of the display was win32 instead of the required eagl.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1188>
2021-10-19 09:34:43 +00:00
Matthew Waters
49af6a831d tests/rtp/payload: add test for shrinking extension data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1146>
2021-10-19 03:26:57 +00:00
Matthew Waters
b7d4d371f9 rtp: also support shrinking the extension data
Currently the extension data length specified in the RTP header would
say it was shorter then the data serialised to a packet. When
combining the resulting buffer, the underlying memory would still
contain the extra (now 0-filled) padding data.

This would mean that parsing the resulting RTP packet would potentially
start with a number of 0-filled bytes which many RTP formats are not
expecting.

Such usage is found by e.g. RTP header extension when allocating the
maximum buffer (which may be larger than the written size) and shrinking
to the required size the data once all the rtp header extension data has
been written.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1146>
2021-10-19 03:26:57 +00:00
Tim-Philipp Müller
bb19b5aa96 vorbisdec: don't emit g_warning() on malformed input data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
2a2d6f7efe theoradec: don't emit g_warning() on malformed input stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
5660743bbf subparse: don't use g_warning() for malformed input
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
817cb23b9c tools: Define G_LOG_DOMAIN for various tools as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
cf9be70946 gst-plugins-base: define G_LOG_DOMAIN for all libraries
Fixes #634

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Mathieu Duponchelle
c3d878e990 audio/video aggregator: make use of new aggregator inactive pad API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/867>
2021-10-18 22:34:11 +00:00
Philippe Normand
064f7bbbfa discoverer: Advertise container-specific tags with a new API
Since commit a55dafe341, stream-scoped tags no
longer appeared as top-level tags, introducing a behaviour regression, specially
for MP3 files.

The `gst_discoverer_info_get_tags()` API now returns all tags detected for the
given media, as documented.

A new API is introduced to get container-specific tags,
`gst_discoverer_container_info_get_tags()`. The discoverer tool was adapted to
use it. `gst_discoverer_info_get_tags()` is now deprecated in favor of
`gst_discoverer_container_info_get_tags()` and
`gst_discoverer_stream_info_get_tags()`.

Fixes #759

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1107>
2021-10-18 20:08:35 +00:00
Tim-Philipp Müller
0a25f22f1b meson: bump meson requirement to >= 0.59
For monorepo build and ugly/bad, for advanced feature
option API like get_option('xyz').required(..) which
we use in combination with the 'gpl' option.

For rest of modules for consistency (people will likely
use newer features based on the top-level requirement).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
2021-10-18 18:03:19 +01:00
Thibault Saunier
156f2543ca smartencoder: Force reencoding of vp9 for profiles can't support
If the input file is in a profile we won't be able to output (1 or 3 in BGR
format), simply reencode everything for now.

Once we add support for that case we can remove that code

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
2021-10-18 10:11:08 -03:00
Thibault Saunier
fec6270205 encoding-profile: ignore more fields when creating for discover info
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
2021-10-18 10:11:08 -03:00
Thibault Saunier
e9fdfade61 smartencoder: Always plug a vp9parse when encoding vp9
This way we know that all relevant fields about video format are
added and we avoid renegotiation issues.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
2021-10-18 10:11:08 -03:00
Thibault Saunier
32d36d0e89 smartencoder: Fix renegotiating when reencoding parts of the stream with vpx
In the encoded streams we might not have all the information about the
raw video stream, but when reencoding they end up being specified, even
if those are default values.

As vp8 decoders always output frames in some YUV color space we can
ensure that when upstream doesn't specify any value in its caps we
use the default one which is what we end up doing when decoding/reencoding
anyway, so this way downstream (matroskamux in that case) doesn't need
to be able to renegotiate (which it doesn't).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
2021-10-18 10:10:24 -03:00
Thibault Saunier
a75382eaff meson: Mark newly fdkaac/ogg/vorbis as allow fallback
This way when the dep is `auto` we will fallback if the system
dependency is not available.

And use https to get libvorbis

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1171>
2021-10-16 09:52:23 -03:00
Thibault Saunier
08eac09c12 meson: Fix warning building GstGLEGL
We forgot to add the `GstGL` gir as a dependency which was properly
done for GstGLWayland and GstGLX11.

And document why we use a list for `all_libraries`

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1168>
2021-10-16 01:24:45 +00:00
Thibault Saunier
8b7b068d53 meson: Streamline the way we detect when to build documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00
Thibault Saunier
6e79932ad9 meson: List libraries and their corresponding gir definition
Introduces a `libraries` variable that contains all libraries in a
list with the following format:

``` meson
libraries = [
    [pkg_name, {
        'lib': library_object
        'gir': [ {full gir definition in a dict } ]
    ],
    ....
]
```

It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Thibault Saunier
e2dd28a753 meson: Mark files as files()
Making it more robust and future proof

And fix issues that it creates

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Piotrek Brzeziński
a102444c90 video-converter: Fix v210->I420 last line conversion
Last line would not be converted correctly if height was an odd number.
Fixed by accounting for data type (8bit vs. 16bit) differences between
respective packing and unpacking functions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/973>
2021-10-14 21:03:58 +00:00
Piotrek Brzeziński
33ccabd206 video-format: Clean up v210 packing code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/973>
2021-10-14 21:03:58 +00:00
Piotrek Brzeziński
35a7b19381 video-converter: Add fast paths from I420/YV12, UYVY, Y42B and YUY2 to v210
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/973>
2021-10-14 21:03:58 +00:00
Matthew Waters
ee1255079b gl/dmabuf: add some debug logging about why things may fail to be uploaded
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1145>
2021-10-14 07:41:44 +00:00
Matthew Waters
42597181e2 playbin2/3: autoplug/caps: don't expand caps to ANY
Retrieving the pad template caps from a ghost pad returns ANY which when
merged with any other caps will return ANY.  ANY is not very specific
and may cause suboptimal code paths in e.g. decoders that assume the
lowest common denominator when presented with ANY caps.

Fixes negotiating dma-buf with vaapidecodebin between glupload in the
video sink element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1144>
2021-10-14 17:04:26 +11:00
Seungha Yang
0a94da9611 examples: playback-test: Fix for UI resize scenario on Windows
Application needs to notify videosink element of video widget resize
via gst_video_overlay_set_render_rectangle() since WM_SIZE event
wouldn't be notified.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1115>
2021-10-13 07:04:08 +00:00
Olivier Crête
4d3a200358 audio: Merge simd libs into the main one
Actually extract the .o objects from the convience libraries and put
them into the main one. Without this, they will just be referenced by
the .pc file, but it will be unusable because they are not installed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1122>
2021-10-13 01:28:16 +00:00