Bastien Nocera
e1271c0d9c
gtkglsink: Avoid assertion when applying "auto" rotation method
...
Guard against the orientation not coming from an inexistant tag, nor
from the application (rotation set to "auto") which caused an assertion.
When the application requests the auto rotation method, make sure it is
resolved to a rotation that's applicable.
ERROR:gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstglwidget.c:745:gtk_gst_gl_widget_set_rotate_method: code should not be reached
Fixes: 103ceb853a
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1134 >
2021-10-13 09:16:32 +00:00
Philippe Normand
c3455def2e
soup: Runtime compatibility support for libsoup2 and libsoup3
...
The src and sink elements no longer link against libsoup. It is now loaded at
runtime. If any version is resident already, it is used. Otherwise we first try
to load libsoup3 and if it's not found we fallback to libsoup2.
For the unit-tests, we now build one version of the test unit file per libsoup
version found. So if both libsoup2 and libsoup3 are available on the host, the
CI will cover them both.
Based on initial patch by Daniel Kolesa <dkolesa@igalia.com> and
Patrick Griffis <pgriffis@igalia.com>.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1044 >
2021-10-13 08:32:25 +00:00
Olivier Crête
c272d0bfcd
rtopuspay: Set marker bit inside RTP packet too
...
At the end of a talk spurt, not only set the marker flag on the
GstBuffer, but also set the bit inside the RTP header as recommended
by the RFC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124 >
2021-10-12 17:18:19 -04:00
Bastien Nocera
9e5b6830cd
gtksink: Fetch the default "widget" value in the docs
...
There's really no interesting "widget" value that could be shown in the
docs, so use the GST_PARAM_DOC_SHOW_DEFAULT flag to avoid showing
another value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088 >
2021-10-12 20:27:34 +00:00
Bastien Nocera
b0d4996380
gtksink: Avoid errors fetching widget property
...
Avoid errors when fetching the "widget" property and GTK initialisation
fails, such as when running in a non-graphical environment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088 >
2021-10-12 20:27:34 +00:00
Olivier Crête
941c0e81dd
gtksink: Return reference to GtkWidget in the acquire function
...
This should ensure thread safety.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088 >
2021-10-12 20:27:34 +00:00
Olivier Crête
103ceb853a
gtkglsink: Add rotate-method property
...
This mostly just takes code out of glimagesink and applies it here.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088 >
2021-10-12 20:27:34 +00:00
Sebastian Dröge
2d4491e195
splitmuxsink: Don't assert on the input side if no GOP is available when shutting down
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1119 >
2021-10-12 19:34:16 +00:00
Nirbheek Chauhan
e24e366952
libsoup: Bump to 2.74 to fix gssapi build failure on macOS
...
See: https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/255
We also need to disable sysprof by default because it only builds on
native Linux. If someone really wants it, they can enable the option
on the command-line by passing -Dlibsoup:sysprof=enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1114 >
2021-10-12 12:22:31 +05:30
Marek Vasut
e6d83d8f96
jpegdec: Support libjpeg-turbo colorspace conversion
...
The libjpeg-turbo has a built-in support for performing colorspace
conversion. The performance of this conversion is much better than
doing the same separately using videoconvert. Implement support for
this conversion to RGBx/xRGB/BGRx/xBGR formats. Other formats can
be easily added later.
- The decoding of various pixel formats can be tested and compared to
non-libjpeg-turbo decoding as follows:
for gfmt in {RGB,BGR}{,x} x{RGB,BGR} ; do
echo "$gfmt"
gst-launch-1.0 -q \
videotestsrc pattern=colors ! \
video/x-raw,format=${gfmt} ! \
fakesink dump=true | \
head -n 200 | tail -n 1
gst-launch-1.0 -q --gst-plugin-path=build/ext/jpeg/ \
videotestsrc pattern=colors ! \
video/x-raw,format=${gfmt} ! \
jpegenc ! \
jpegdec ! \
video/x-raw,format=${gfmt} ! \
fakesink dump=true | \
head -n 200 | tail -n 1
done
Result looks as follows, i.e. comparable:
RGB
00000c70 (0x7f7736fbdd10): 05 33 19 05 33 26 05 33 33 05 33 40 05 33 4c 05 .3..3&.33.3@.3L.
00000c70 (0x7f389e8f7d10): 05 32 17 04 32 22 04 32 31 04 32 3e 04 32 4a 04 .2..2".21.2>.2J.
RGBx
00000c70 (0x7f79efd0ad10): cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22 ff .."..."..."...".
00000c70 (0x7fb6989f3d10): cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22 00 .."..."..."...".
BGR
00000c70 (0x7fa0a6c42d10): 05 0c 33 05 19 33 05 26 33 05 33 33 05 40 33 05 ..3..3.&3.33.@3.
00000c70 (0x7fc74165fd10): 05 08 32 04 17 32 04 22 32 04 31 32 04 3e 32 04 ..2..2."2.12.>2.
BGRx
00000c70 (0x7fbf399f1d10): 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3 ff "..."..."..."...
00000c70 (0x7f50e3d1cd10): 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4 00 "..."..."..."...
xRGB
00000c70 (0x7f0b950a2d10): ff cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22 ..."..."..."..."
00000c70 (0x7f4416b8dd10): 00 cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22 ..."..."..."..."
xBGR
00000c70 (0x7f237d74dd10): ff 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3 ."..."..."..."..
00000c70 (0x7f095547dd10): 00 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4 ."..."..."..."..
^^ ^^ ^^ ^^
Notice how the alpha channel is set to arbitrary value in case of the
libjpeg-turbo decoding into RGBx/BGRx/xRGB/xBGR pixel formats. This is
documented in libjpeg-turbo README.md as follows:
"
When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
can set that byte to whatever value it wishes.
"
- The interlaced num_fields=2 mjpeg stream can be generated and
tested as follows (this does require mjpegtools):
$ gst-launch-1.0 videotestsrc num-buffers=10 ! jpegenc ! multifilesink location=in%04d.jpg
$ jpeg2yuv -f 25 -I t -L 0 -j in%04d.jpg | yuv2lav -f avi -o result.avi
...
$ gst-launch-1.0 --gst-plugin-path=build/ext/jpeg/ filesrc location=result.avi ! \
avidemux ! jpegdec ! video/x-raw,format=RGBx ! videoconvert ! autovideosink
Signed-off-by: Marek Vasut <marex@denx.de>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1091 >
2021-10-07 12:40:29 +00:00
Sebastian Dröge
4316be6571
splitmuxsink: Keep track of the pending input GOPs in a queue
...
This cleans up input GOP handling and makes it possible to handle more
than 2 pending GOPs, which could happen before if keyframes are arriving
with too short of a distance between them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
ae8ceb801c
splitmuxsink: Handle frame reordering due to B frames better
...
Instead of assuming that the PTS of a keyframe is the lowest PTS of a
GOP, wait until the DTS has passed this PTS and take the minimum PTS up
to that point. That way the minimum PTS of a GOP can be determined, at
least for closed GOP streams. Open GOP streams still can't be handled
properly.
By knowing the minimum PTS of each GOP, keyframes can be requested at
the correct time relative to the GOP (and thus fragment) start and
fragment overflow calculations can calculate the correct durations of
the GOPs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
f83ed50c20
splitmuxsink: Reset timecodes when resetting the sink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
ed6823ad67
splitmuxsink: Use GST_CLOCK_STIME_NONE instead of 0 to initialize max out running time
...
Otherwise streams with only DTS would misbehave while it is negative.
For outputting everything immediately at EOS, use G_MAXINT64 instead
which is bigger-or-equal to any other running time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
eed843eea0
splitmuxsink: Only update max in/out running time if it's actually bigger
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Sebastian Dröge
68683d15c4
splitmuxsink: Only count keyframes for the reference context, consistently
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005 >
2021-10-05 12:35:19 +00:00
Olivier Crête
5ec82c1c4e
rtphdrext: Pass just the attributes to the subclass
...
Since the base class now does the parsing, there is no need
to reproduce that code in all the subclasses, just pass the attributes
which are the only relevant bit anyway.
Also, only store the direction if the subclass accepted the caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
2db9f42b36
rtphdrext-rfc6464: Use helper function to set caps field
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
ba328fb98d
rtphdrext: Set caps without attributes as the default
...
Most subclasses just use the simple function, so just let the base class
do it. It makes less code in subclasses.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
498740fe57
rtphdrext: Put simple caps generation as the base class default
...
Instead of having a helper function that gets called by almost every
subclass, just let the base class set the caps fields automatically.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Brad Hards
ef05946837
doc: update IRC links to OFTC
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945 >
2021-09-28 10:11:15 +10:00
Tim-Philipp Müller
f1a169f39d
Back to development
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925 >
2021-09-26 01:07:02 +01:00
Nicolas Dufresne
3037fde5eb
Move commit gst-indent hook to the root
...
This renable at meson setup time the installation of the gst-indent
commit hook. The hooks were kept from gst-devtools as this set supports
both C checks and Python checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/904 >
2021-09-24 17:47:01 -03:00
Thibault Saunier
c6b9c81fdd
ci: Remove now useless .gitlab-ci.yml files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/891 >
2021-09-24 16:21:18 -03:00
Thibault Saunier
5ff769d731
Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir
2021-09-24 16:13:50 -03:00