GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2021-04-20T10:04:58Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/864videocrop: it should support ANY caps feature2021-04-20T10:04:58ZVíctor Manuel Jáquez Lealvideocrop: it should support ANY caps featureRight now videocrop only support system memory caps feature.
In the case of any other caps feature it should work in-place only setting the crop meta *iif* downstream support cropping.Right now videocrop only support system memory caps feature.
In the case of any other caps feature it should work in-place only setting the crop meta *iif* downstream support cropping.https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/317gstreamer-webrtc + FEC question: How to enable enum WebRTCFECType?2021-03-13T10:43:42ZM. Ian Grahamgstreamer-webrtc + FEC question: How to enable enum WebRTCFECType?I'm currently running `gstreamer-webrtc = { version = "0.16.5", features = ["v1_18"] }`. I'm relatively new to feature juggling so sorry in advance if I'm missing something elementary.
I was experimenting with nack and FEC support and w...I'm currently running `gstreamer-webrtc = { version = "0.16.5", features = ["v1_18"] }`. I'm relatively new to feature juggling so sorry in advance if I'm missing something elementary.
I was experimenting with nack and FEC support and while trying to enable FEC I ended up having to copy/modify gstreamer-webrtc/src/auto/enums.rs because front-end enum WebRTCFECType [requires old feature v1_14_1](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/4804da1273745000a163c1448af134e494cd2cd5/gstreamer-webrtc/src/auto/enums.rs#L326) which isn't an entry in [gstreamer-webrtc's Cargo.toml](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/4804da1273745000a163c1448af134e494cd2cd5/gstreamer-webrtc/Cargo.toml#L26).
Obviously this is generated code as well so if there's a not-me problem I imagine it's either upstream in the webrtc plugin itself or some config in the generation process.
Am I missing something easy, does some config line need its version rolled forward, or is FEC getting the axe? Glad to send a merge request if I can identify an easy fix. Pointers appreciated.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/668Custom GSocket property for udpsrc element won't work on windows 102021-09-24T11:08:27ZEmad AlblueshiCustom GSocket property for udpsrc element won't work on windows 10Hi,
My use case is to utilize custom shared **GSocket** property for both **udpsink** and **udpsrc** elements to send/receive from/to **udp server** the example code works in **Linux** but in **windows 10** I got below message in the c...Hi,
My use case is to utilize custom shared **GSocket** property for both **udpsink** and **udpsrc** elements to send/receive from/to **udp server** the example code works in **Linux** but in **windows 10** I got below message in the console when I run the program
```
(test.exe:1628): GLib-GObject-CRITICAL **: 15:55:26.202: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Unable to set the pipeline to the playing state.
```
The whole windows 10 issue is in this line
```c
g_object_set ((GObject*) udp_m_audio_src, "socket", socket, NULL);
```
The example code
```c
#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <gst/gst.h>
int main (int argc, char *argv[])
{
GError *error = NULL;
GSocket *socket;
GstElement *pipeline;
GstElement *udp_m_audio_sink;
GstElement *udp_m_audio_src;
GstBus *bus;
GstMessage *msg;
GstStateChangeReturn ret;
/* Initialize GStreamer */
gst_init (&argc, &argv);
/* Initialize shared GSocket for sending and receiving */
socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_DEFAULT, &error);
/* Build the pipeline */
pipeline = gst_parse_launch_full ("autoaudiosrc ! queue ! audioconvert ! opusenc audio-type=voice bitrate=48000 ! rtpopuspay ! udpsink name=udp_m_audio_sink udpsrc name=udp_m_audio_src ! queue ! application/x-rtp, media=audio, payload=96, clock-rate=48000, encoding-name=OPUS ! rtpjitterbuffer ! rtpopusdepay ! opusdec ! audioconvert ! audioresample ! autoaudiosink", NULL, GST_PARSE_FLAG_FATAL_ERRORS, &error);
udp_m_audio_sink = gst_bin_get_by_name ((GstBin*) pipeline, "udp_m_audio_sink");
g_object_set ((GObject*) udp_m_audio_sink, "socket", socket, NULL);
g_object_set ((GObject*) udp_m_audio_sink, "host", "127.0.0.1", NULL);
g_object_set ((GObject*) udp_m_audio_sink, "port", 5001, NULL);
g_object_set ((GObject*) udp_m_audio_sink, "async", FALSE, NULL);
g_object_set ((GObject*) udp_m_audio_sink, "sync", FALSE, NULL);
g_object_set ((GObject*) udp_m_audio_sink, "auto-multicast", FALSE, NULL);
udp_m_audio_src = gst_bin_get_by_name ((GstBin*) pipeline, "udp_m_audio_src");
// Below line works on linux but in windows you will get "g_object_unref: assertion 'G_IS_OBJECT (object)' failed"
g_object_set ((GObject*) udp_m_audio_src, "socket", socket, NULL);
g_object_set ((GObject*) udp_m_audio_src, "auto-multicast", FALSE, NULL);
/* Start playing */
ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
if (ret == GST_STATE_CHANGE_FAILURE) {
g_printerr ("Unable to set the pipeline to the playing state.\n");
gst_object_unref (pipeline);
return -1;
}
/* Wait until error or EOS */
bus = gst_element_get_bus (pipeline);
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
/* Free resources */
if (msg != NULL)
gst_message_unref (msg);
if (error != NULL)
gst_object_unref (error);
gst_object_unref (bus);
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (pipeline);
gst_object_unref (socket);
return 0;
}
```
I'm using **Windows Pro 10** with **MSYS2** and **mingw-w64-gstreamer 1.18.3** and other plugins.
Any further details required I'm ready to provide. I really need this to work as soon as possible.
I really appreciate your time
Thanks!https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/879oggdemux strips any GstCustomMeta you pass in2021-09-24T13:26:16ZPranav Panditoggdemux strips any GstCustomMeta you pass inCurrently if you use an appsrc for example and attach some GstCustomMeta to the GstBuffer (using gst_buffer_add_meta) before passing it in to a pipeline containing the oggdemux element, the oggdemux element strips it out even if it conta...Currently if you use an appsrc for example and attach some GstCustomMeta to the GstBuffer (using gst_buffer_add_meta) before passing it in to a pipeline containing the oggdemux element, the oggdemux element strips it out even if it contains the right tags like "audio" while it adds some custom metadata itself which it needs to interface properly with opusdec (and maybe some other) element. Other demuxers like qtdemux do the right thing by making sure they preserve any incoming custom metadata in the buffers before adding their own metadata or just passing the metadata as is using: gst_buffer_copy_into (new_buffer, buffer, GST_BUFFER_COPY_METADATA, 0, -1)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/863shapewipe: broken URL in documentation2021-03-21T09:13:51ZSid Sethupathishapewipe: broken URL in documentationThe [`shapewipe`](https://gstreamer.freedesktop.org/documentation/shapewipe/index.html?gi-language=c) documentation links to http://cinelerra.org/transitions.php to download bitmap images but the page displays **Not found**.The [`shapewipe`](https://gstreamer.freedesktop.org/documentation/shapewipe/index.html?gi-language=c) documentation links to http://cinelerra.org/transitions.php to download bitmap images but the page displays **Not found**.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/667gst_device_monitor_start fails when no pulseaudio server is running2021-10-25T10:49:38ZMichele Guerini Roccogst_device_monitor_start fails when no pulseaudio server is running### Summary
`gst_device_monitor_start` is failing to start the device monitor, with no
obvious error being reported, if gst-plugins-good is compiled with pulseaudio
support but the sound server is not running. This is an issue on a syst...### Summary
`gst_device_monitor_start` is failing to start the device monitor, with no
obvious error being reported, if gst-plugins-good is compiled with pulseaudio
support but the sound server is not running. This is an issue on a system that
has libpulseaudio installed (pretty common) but only using ALSA.
### Steps to reproduce
1. Compile gst-plugins-good with alsa and pulseaudio support
2. Stop the pulseaudio server (delete the socket in $XDG_RUNIME_DIR if necesssary)
3. Run `gst-device-monitor-1.0`
4. Observer the `Failed to start device monitor!` error
### Detailed description
I have a GStreamer-based VoIP application that can't detect any microphone on
my system. The code is something like this:
```c
monitor = gst_device_monitor_new();
GstCaps *caps = gst_caps_new_empty_simple("audio/x-raw");
gst_device_monitor_add_filter(monitor, "Audio/Source", caps);
gst_caps_unref(caps);
# and similar code for video
GstBus *bus = gst_device_monitor_get_bus(monitor);
gst_bus_add_watch(bus, newBusMessage, nullptr);
gst_object_unref(bus);
gst_device_monitor_start(monitor)
```
and the last call, `gst_device_monitor_start`, is returning false.
Similarly, by running `gst-device-monitor-1.0` (which uses the same function) I get:
Probing devices...
Failed to start device monitor!
By cranking up the logging using `GST_DEBUG`, I can only see two warnings in between
the two messages printed by gst-device-monitor:
0x1ca5c00 WARN default gstdevicemonitor.c:458:gst_device_monitor_start:<devicemonitor0> No filters have been set, will expose all devices found
0x1ca5c00 WARN default gstdevicemonitor.c:466:gst_device_monitor_start:<devicemonitor0> No providers match the current filters
While device detection is not working, the ALSA plugins are being loaded:
$ gst-inspect-1.0 | grep alsa
alsa: alsasrc: Audio source (ALSA)
alsa: alsasink: Audio sink (ALSA)
alsa: alsamidisrc: AlsaMidi Source
and I can use the microphone just fine using this example command:
gst-launch-1.0 -v alsasrc ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=alsasrc.ogg
I had an intuition so I run an strace and figured that gstreamer must be trying
to connect to a pulseaudio server, but that fails because there simply isn't one:
```strace
openat(AT_FDCWD, "/home/rnhmjoj/.pulse/client.conf", O_RDONLY|O_CLOEXEC <unfinished ...>
openat(AT_FDCWD, "/home/rnhmjoj/.config/pulse/client.conf", O_RDONLY|O_CLOEXEC <unfinished ...>
openat(AT_FDCWD, "/etc/pulse/client.conf", O_RDONLY|O_CLOEXEC) = 14
openat(AT_FDCWD, "/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory)
memfd_create("pulseaudio", MFD_ALLOW_SEALING) = 14
mkdir("/run/user/1000/pulse", 0700) = -1 EEXIST (File exists)
openat(AT_FDCWD, "/run/user/1000/pulse", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = 15
lstat("/run/user/1000/pulse", {st_mode=S_IFDIR|0700, st_size=40, ...}) = 0
connect(15, {sa_family=AF_UNIX, sun_path="/run/user/1000/pulse/native"}, 110) = -1 ENOENT (No such file or directory)
connect(15, {sa_family=AF_UNIX, sun_path="/var/run/pulse/native"}, 110) = -1 ENOENT (No such file or directory)
```
To confirm this is the cause of the failure, I compiled gst-plugins-good with
`-Dpulse=disabled` and indeed `gst-device-monitor-1.0` now starts and happily
reports my source devices.
As a final note, I tried to apply the patch from !679, which appeared closely related,
but it didn't solve the problem.
### Version information
- OS: Linux 5.10.18
- Sound system: ALSA + alsa-lib 1.2.4
- gstreamer: 1.18.2
- gst-plugins-base: 1.18.2https://gitlab.freedesktop.org/gstreamer/www/-/issues/33NrnrIssue with page "GStreamer: features"2021-03-10T19:26:41ZNR NRNrnrIssue with page "GStreamer: features"https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1550play: Rework the API to create/get SignalAdapter2021-09-24T14:39:12ZPhilippe Normandplay: Rework the API to create/get SignalAdapterWe might need a change similar to this, but for GstPlay: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/8c2fd4fff7ea08f750f8139fc0616c476077d0baWe might need a change similar to this, but for GstPlay: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/8c2fd4fff7ea08f750f8139fc0616c476077d0bahttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1549GST_ELEMENT_FACTORY gstelementfactory.c:467:gst_element_factory_make: no such...2022-01-25T07:03:42ZPrototypeGST_ELEMENT_FACTORY gstelementfactory.c:467:gst_element_factory_make: no such element factory “voaacenc”When trying to execture a gstreamer project, I have said error preventing me to do so.
![image](/uploads/d6b954237d3bee3e912ee7ce3077232c/image.png)
- **Operating System**: MacOS BigSur 11.3 ( Apple M1 Silicon )
- **Python Version**: 3...When trying to execture a gstreamer project, I have said error preventing me to do so.
![image](/uploads/d6b954237d3bee3e912ee7ce3077232c/image.png)
- **Operating System**: MacOS BigSur 11.3 ( Apple M1 Silicon )
- **Python Version**: 3.6.7
- **Installed packages**: `gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-plugins-base gst-python gst-libav`
- **Is the Project running on another system ?**: Yes, on Nvidia Jetson Nanos, with said packages installed
- **`gst-inspect-1.0 voaacenc` result**: ![image](/uploads/271e1a4d4afcef557cfdd4378545518a/image.png)
I have already tried to uninstall and reinstall everything, tried with Homebrew M1 & Intel, manually installed gstreamer packages, I've even manually added `voaacenc.h` to the gst-plugins-bad package folder, no luck.
I've ran out of options, and the existing answers on Stack do not resolve my issue. Any idea ?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1548Dashsink mpd for dvbsrc is invalid as per https://conformance.dashif.org/2021-10-05T12:03:46ZvandanaDashsink mpd for dvbsrc is invalid as per https://conformance.dashif.org/The generated mpd file is not valid as per
https://conformance.dashif.org/
@dabrain34 Pls see
gstreamer pipeline:
`gst-launch-1.0 -v --gst-debug-no-color=1 dashsink name=dashsink mpd-baseurl=http://localhost/media/kls2iesj/ mpd-root-pat...The generated mpd file is not valid as per
https://conformance.dashif.org/
@dabrain34 Pls see
gstreamer pipeline:
`gst-launch-1.0 -v --gst-debug-no-color=1 dashsink name=dashsink mpd-baseurl=http://localhost/media/kls2iesj/ mpd-root-path=/var/www/localhost/media/kls2iesj mpd-filename=live.mpd target-duration=10 min-buffer-time=2 minimum-update-period=5 dynamic=true muxer=ts dvbsrc modulation=5 adapter=0 frequency=147000000 delsys=dvb-c-b ! queue ! tsdemux ! mpegvideoparse ! decodebin ! x264enc bitrate=1200 key-int-max=60 ! video/x-h264,stream-format=byte-stream,profile=main ! dashsink.video_0`
Generated mpd file is attached[live_fixed_high.mpd](/uploads/e8d516d6660e5b02415c60e85ff56376/live_fixed_high.mpd)
Validated it here with dvb option checked
https://conformance.dashif.org/
The error logs is as follows:
```
Legend: Errors, Warnings, Information ***
Log No MPD Validation Report
1 0XLink resolving successful
2 MPD validation successful - DASH is valid!
3 Schematron validation successful - DASH is valid!
4 Warning for HbbTV-DVB DASH Validation Requirements check for DVB: Section 'MPD' - 'MPD@minimumUpdatePeriod has a lower value than 1 second.
5 ###'DVB check violated: Section E.2.1- The MPD SHALL indicate either or both of the following profiles: "urn:dvb:dash:profile:dvb-dash:2014" and "urn:hbbtv:dash:profile:isoff-live:2012"', specified profile could not be found.
6 Warning for DVB check: Section 11.1- 'All Representations that are intended to be decoded and presented by a DVB conformant Player SHOULD be such that they will be inferred to have an @profiles attribute that includes the profile name defined in clause 4.1 as well as either the one defined in 4.2.5 or the one defined in 4.2.8', found profiles: urn:mpeg:dash:profile:isoff-main:2011.
7 Warning for DVB check: Section 4.7.2- 'If the MPD is dynamic or if the MPD@availabilityStartTime is present then the MPD SHOULD countain at least one UTCTiming element with the @schemeIdUri attribute set to one of the following: urn:mpeg:dash:utc:ntp:2014, urn:mpeg:dash:utc:http-head:2014, urn:mpeg:dash:utc:http-xsdate:2014, urn:mpeg:dash:utc:http-iso:2014, urn:mpeg:dash:utc:http-ntp:2014 ', UTCTiming element could not be found in the provided MPD.
8 ###'DVB check violated: Section 4.4- For any Representation within an Adaptation Set with @contentType="video" @frameRate attribute SHALL be present if not in the AdaptationSet element', could not be found in neither Period 1 Adaptation Set 1 nor Period 1 Adaptation Set 1 Representation 1.
9 Warning for DVB check: Section 4.4- 'For any Representation within an Adaptation Set with @contentType="video" @sar attribute SHOULD be present or inherited from the Adaptation Set', could not be found in neither Period 1 Adaptation Set 1 nor Period 1 Adaptation Set 1 Representation 1.
10 ###'DVB check violated: Section 5.1.3- If (AVC video codec is) present the value of @codecs attribute SHALL be set in accordance with RFC 6381, clause 3.3', not found or not complete within Period 1 Adaptation Set 1.
11 Warning for DVB check: Section 4.4- 'For any Adaptation Sets with @contentType="video" @maxWidth attribute (or @width if all Representations have the same width) SHOULD be present', could not be found in Period 1 Adaptation Set 1.
12 Warning for DVB check: Section 4.4- 'For any Adaptation Sets with @contentType="video" @maxHeight attribute (or @height if all Representations have the same height) SHOULD be present', could not be found in Period 1 Adaptation Set 1.
13 Warning for DVB check: Section 4.4- 'For any Adaptation Sets with @contentType="video" @maxFrameRate attribute (or @frameRate if all Representations have the same frameRate) SHOULD be present', could not be found in Period 1 Adaptation Set 1.
14 Warning for DVB check: Section 4.4- 'For any Adaptation Sets with @contentType="video" @par attribute SHOULD be present', could not be found in Period 1 Adaptation Set 1.
```https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/32fails to build on arch (undefined reference to `gst_webrtc_rtp_sender_set_pri...2021-03-09T12:18:58Zbill augerfails to build on arch (undefined reference to `gst_webrtc_rtp_sender_set_priority')```
$ git clone --depth=1 https://gitlab.freedesktop.org/gstreamer/gst-examples.git
$ cd gst-examples/
$ git log --oneline
f8cbae9 (grafted, HEAD -> master, origin/master, origin/HEAD) sendrecv: Implement remote-offerer option for JS exa...```
$ git clone --depth=1 https://gitlab.freedesktop.org/gstreamer/gst-examples.git
$ cd gst-examples/
$ git log --oneline
f8cbae9 (grafted, HEAD -> master, origin/master, origin/HEAD) sendrecv: Implement remote-offerer option for JS example
$ meson _builddir
The Meson build system
Version: 0.57.1
Source dir: /code/gst-examples
Build dir: /code/gst-examples/_builddir
Build type: native build
Project name: gst-examples
Project version: 1.19.0.1
C compiler for the host machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.36.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Library m found: YES
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency glib-2.0 found: YES 2.66.7
Run-time dependency gio-2.0 found: YES 2.66.7
Run-time dependency gobject-2.0 found: YES 2.66.7
Run-time dependency gmodule-2.0 found: YES 2.66.7
Run-time dependency gstreamer-1.0 found: YES 1.18.3
Run-time dependency gstreamer-player-1.0 found: YES 1.18.3
Run-time dependency gstreamer-tag-1.0 found: YES 1.18.3
Run-time dependency gstreamer-webrtc-1.0 found: YES 1.18.3
Dependency gstreamer-webrtc-1.0 found: YES 1.18.3 (cached)
Run-time dependency gtk+-3.0 found: YES 3.24.26
Run-time dependency x11 found: YES 1.7.0
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Run-time dependency gstreamer-sdp-1.0 found: YES 1.18.3
Run-time dependency libsoup-2.4 found: YES 2.72.0
Run-time dependency json-glib-1.0 found: YES 1.6.2
Program openssl found: YES (/usr/bin/openssl)
Program generate_cert.sh found: YES (/code/gst-examples/webrtc/signalling/generate_cert.sh)
Program configure_test_check.py found: YES (/usr/bin/python /code/gst-examples/webrtc/check/configure_test_check.py)
Build targets in project: 10
Found ninja-1.10.2 at /usr/bin/ninja
$ ninja -C _builddir
ninja: Entering directory `_builddir'
[12/19] Compiling C object webrtc/sendonly/webrtc-unidirectional-h264.p/webrtc-unidirectional-h264.c.o
../webrtc/sendonly/webrtc-unidirectional-h264.c: In function ‘create_receiver_entry’:
../webrtc/sendonly/webrtc-unidirectional-h264.c:268:7: warning: implicit declaration of function ‘gst_webrtc_rtp_sender_set_priority’; did you mean ‘gst_webrtc_rtp_sender_set_transport’? [-Wimplicit-function-declaration]
268 | gst_webrtc_rtp_sender_set_priority (trans->sender, priority);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| gst_webrtc_rtp_sender_set_transport
[15/19] Linking target webrtc/sendonly/webrtc-unidirectional-h264
FAILED: webrtc/sendonly/webrtc-unidirectional-h264
cc -o webrtc/sendonly/webrtc-unidirectional-h264 webrtc/sendonly/webrtc-unidirectional-h264.p/webrtc-unidirectional-h264.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/libgstreamer-1.0.so /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libgstsdp-1.0.so /usr/lib/libgstrtp-1.0.so /usr/lib/libgstbase-1.0.so /usr/lib/libgstwebrtc-1.0.so /usr/lib/libsoup-2.4.so /usr/lib/libgio-2.0.so /usr/lib/libjson-glib-1.0.so -Wl,--end-group
/usr/bin/ld: webrtc/sendonly/webrtc-unidirectional-h264.p/webrtc-unidirectional-h264.c.o: in function `create_receiver_entry':
/code/gst-examples/_builddir/../webrtc/sendonly/webrtc-unidirectional-h264.c:268: undefined reference to `gst_webrtc_rtp_sender_set_priority'
/usr/bin/ld: /code/gst-examples/_builddir/../webrtc/sendonly/webrtc-unidirectional-h264.c:277: undefined reference to `gst_webrtc_rtp_sender_set_priority'
collect2: error: ld returned 1 exit status
[18/19] Compiling C object playback/player/gtk/gtk-play.p/gtk-play.c.o
ninja: build stopped: subcommand failed.
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/862videoflip: caps are not properly renegotiated when changing the method to GST...2021-09-24T13:34:24ZMichael Olbrichvideoflip: caps are not properly renegotiated when changing the method to GST_VIDEO_ORIENTATION_IDENTITYI have an application that changes the flip method at runtime with a tag event.
When the method is changed to `GST_VIDEO_ORIENTATION_IDENTITY` then the caps are not correctly renegotiated.
I think, this is caused by !836. The problem i...I have an application that changes the flip method at runtime with a tag event.
When the method is changed to `GST_VIDEO_ORIENTATION_IDENTITY` then the caps are not correctly renegotiated.
I think, this is caused by !836. The problem is, that in this case, the element is set into passthrough mode. As a result, `gst_video_flip_transform_frame` is no longer called and ``change_configuring_method`` is never set to `TRUE`. So `gst_video_flip_transform_caps()` continues to use the old method.
The result is, that I see a 2160x3840 resolution in the caps but a buffer with 3840x2160 at the sink.
I'm not sure how this should be fixed. From what I understand, we can set `change_configuring_method` in `gst_video_flip_set_method()`. I think that would work when it is called from a tag event, but not from the property. Or am I missing something here?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1547dashsink mpd segment-list 404 error2021-10-05T12:03:14Zvandanadashsink mpd segment-list 404 errorMy pipeline for dashsink is given below, but the mpd file it generates appends the baseurl and the absoluted path provided in the mpd-root-path property, into the segment list. Any suggestions?
`gst-launch-1.0 -v --gst-debug-no-color=1 ...My pipeline for dashsink is given below, but the mpd file it generates appends the baseurl and the absoluted path provided in the mpd-root-path property, into the segment list. Any suggestions?
`gst-launch-1.0 -v --gst-debug-no-color=1 dashsink name=dashsink mpd-baseurl=http://localhost mpd-root-path=/var/www/localhost/media/kls2iesj mpd-filename=live.mpd target-duration=10 min-buffer-time=2 minimum-update-period=5 dynamic=false use-segment-list=true muxer=ts dvbsrc modulation=5 adapter=0 frequency=147000000 delsys=dvb-c-b ! queue ! tsdemux ! mpegvideoparse ! decodebin ! x264enc bitrate=1200 key-int-max=60 ! video/x-h264,stream-format=byte-stream,profile=main ! dashsink.video_0`
The generated mpd file:
```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-main:2011" type="dynamic" availabilityStartTime="2021-03-09T06:57:33Z" publishTime="2021-03-09T06:57:33Z" mediaPresentationDuration="P0Y0M0DT0H0M0.10S" minimumUpdatePeriod="P0Y0M0DT0H0M0.5S" minBufferTime="P0Y0M0DT0H0M0.2S"><BaseURL>http://localhost</BaseURL><Period id="period_00" bitstreamSwitching="false"><AdaptationSet id="1" contentType="video" subsegmentStartsWithSAP="0" bitstreamSwitching="false"><Representation id="video_0" bandwidth="972977" width="720" height="480" mimeType="video/mp2t" codecs="avc1"><SegmentList duration="10"><SegmentURL media="/var/www/localhost/media/kls2iesj/video_0_00000.ts"/></SegmentList></Representation></AdaptationSet></Period></MPD>
```
When Play this file with mplayer, it gives 404 for the segment file since it appends the full absolute path baseurl.:
`mplayer file:///var/www/localhost/media/kls2iesj/live.mpd `
OR even
`mplayer http://localhost/media/kls2iesj/live.mpd.`
> [dash @ 0x7ff3e9f832a0]Opening 'http://localhost/var/www/localhost/media/kls2iesj/video_0_00000.ts' for readinghttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1546webrtcbin: intermittent video on Chrome when sending video from videotestsrc2021-06-21T07:38:30ZAlba Mendezme@alba.shwebrtcbin: intermittent video on Chrome when sending video from videotestsrcHi! I didn't find an already open issue, sorry if there's one.
The [webrtc-unidirectional-h264](https://gitlab.freedesktop.org/gstreamer/gst-examples/-/blob/f8cbae9d6eb85381c4428998880dfcd863e205d3/webrtc/sendonly/webrtc-unidirectional...Hi! I didn't find an already open issue, sorry if there's one.
The [webrtc-unidirectional-h264](https://gitlab.freedesktop.org/gstreamer/gst-examples/-/blob/f8cbae9d6eb85381c4428998880dfcd863e205d3/webrtc/sendonly/webrtc-unidirectional-h264.c) example works okay. (with [a little fix](https://gitlab.freedesktop.org/mildsunrise/gst-examples/-/commit/d347a1c5e8d21451d7649c019c4b1384b12a91e8))
But if I change `VIDEO_SRC` from `v4l2src` to `videotestsrc pattern=ball`, the video works intermittently in Chrome: it plays for about 4 seconds, then stops for another 4 seconds, plays again, and so on.
It does work in Firefox, though. The pipeline keeps running even when the video is not playing, I see data flowing into GstNiceSink. Those 4 seconds depend on the framerate.
Do you know what could be causing it? I'm using 1.18.3 and Chrome 88.0.4324.96, tomorrow I'll investigate more and try with master.https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/84I cannot build the basic tutorial 5 with GTK.2021-09-24T16:20:07ZHoman HuangI cannot build the basic tutorial 5 with GTK.I load vcpkg with the VS2019. I input its include and libraries into a property. Then I load GStreamer include and libraries into another property.
![image](/uploads/d04174106722a27fcf0c15e748630b9b/image.png)
In this order, I got this e...I load vcpkg with the VS2019. I input its include and libraries into a property. Then I load GStreamer include and libraries into another property.
![image](/uploads/d04174106722a27fcf0c15e748630b9b/image.png)
In this order, I got this error:
```
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.191: ../gobject/gsignal.c:2614: signal 'delete-event' is invalid for instance '0000025A08C442A0' of type 'geo-location-movement-speed'
Icons theme: C:\Users\Homan\AppData\Local\icons, element#: 12
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.192: ../gobject/gsignal.c:2614: signal 'realize' is invalid for instance '0000025A06BE1210' of type 'mulaw'
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.193: ../gobject/gsignal.c:2614: signal 'draw' is invalid for instance '0000025A06BE1210' of type 'mulaw'
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.199: ../gobject/gsignal.c:2614: signal 'clicked' is invalid for instance '0000025A092C1180' of type 'vanc_sink_%u'
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.200: ../gobject/gsignal.c:2614: signal 'clicked' is invalid for instance '0000025A092C1340' of type 'vanc_sink_%u'
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.201: ../gobject/gsignal.c:2614: signal 'clicked' is invalid for instance '0000025A092C1500' of type 'vanc_sink_%u'
(gtk helloworld.exe:62408): GLib-GObject-WARNING **: 10:42:58.206: ../gobject/gsignal.c:2614: signal 'value-changed' is invalid for instance '0000025A09124850' of type 'application/x-ogm-text'
```
The first error is about GTK library missing.
Next, I swap the order and rebuild solution.
![image](/uploads/bcd61ebe6b214cd4ee954019cbb2c06b/image.png)
Another error will present:
```
(gtk helloworld.exe:259784): GLib-GObject-WARNING **: g_object_set_valist: object class '(NULL)' has no property named 'uri'
(gtk helloworld.exe:259784): GLib-GObject-WARNING **: D:\vcpkg\buildtrees\glib\src\2.52.3-9cb1890713.clean\gobject\gsignal.c:2523: signal 'video-tags-changed' is invalid for instance '0000021F32D58A30' of type '(NULL)'
(gtk helloworld.exe:259784): GLib-GObject-WARNING **: D:\vcpkg\buildtrees\glib\src\2.52.3-9cb1890713.clean\gobject\gsignal.c:2523: signal 'audio-tags-changed' is invalid for instance '0000021F32D58A30' of type '(NULL)'
(gtk helloworld.exe:259784): GLib-GObject-WARNING **: D:\vcpkg\buildtrees\glib\src\2.52.3-9cb1890713.clean\gobject\gsignal.c:2523: signal 'text-tags-changed' is invalid for instance '0000021F32D58A30' of type '(NULL)'
```
The GStreamer has trouble.
How do I fix it?https://gitlab.freedesktop.org/gstreamer/meson-ports/libffi/-/issues/7Can't build with clang-cl after recent (16.9.0) MSVC 2019 update2022-05-17T12:45:42ZAleksandr MezinCan't build with clang-cl after recent (16.9.0) MSVC 2019 updateFails to build with clang-cl again:
```
[9/9] Linking target src/ffi-7.dll
FAILED: src/ffi-7.dll src/ffi-7.pdb
"lld-link" /MACHINE:x64 /OUT:src/ffi-7.dll src/x86_win64_intel_S.obj src/ffi-7.dll.p/prep_cif.c.obj src/ffi-7.dll.p/types.c....Fails to build with clang-cl again:
```
[9/9] Linking target src/ffi-7.dll
FAILED: src/ffi-7.dll src/ffi-7.pdb
"lld-link" /MACHINE:x64 /OUT:src/ffi-7.dll src/x86_win64_intel_S.obj src/ffi-7.dll.p/prep_cif.c.obj src/ffi-7.dll.p/types.c.obj src/ffi-7.dll.p/raw_api.c.obj src/ffi-7.dll.p/java_raw_api.c.obj src/ffi-7.dll.p/closures.c.obj src/ffi-7.dll.p/x86_ffiw64.c.obj "/nologo" "/DEBUG" "/PDB:src\ffi-7.pdb" "/DLL" "/IMPLIB:src\ffi.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
lld-link: error: duplicate symbol: ffi_type_void
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_uint8
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_sint8
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_uint16
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_sint16
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_uint32
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_sint32
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_uint64
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_sint64
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_pointer
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_float
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_double
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/types.c.obj
lld-link: error: duplicate symbol: ffi_type_void
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_uint8
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_sint8
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_uint16
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_sint16
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_uint32
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_sint32
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: duplicate symbol: ffi_type_uint64
>>> defined at src/ffi-7.dll.p/prep_cif.c.obj
>>> defined at src/ffi-7.dll.p/raw_api.c.obj
lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
ninja: build stopped: subcommand failed.
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1545avtp: Various memory and socket handling issues2021-09-24T14:39:10ZSebastian Drögeavtp: Various memory and socket handling issuesThe following discussions from !361 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/361#note_830134):
> This is suboptimal as it blocks until a pac...The following discussions from !361 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/361#note_830134):
> This is suboptimal as it blocks until a packet is received, which makes pipeline shutdown a bit exciting :) This should probably make use of `GstPoll` or directly use the gio `GSocket` API. Unblocking this function here should happen as part of `GstBaseSrc::unlock`.
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/361#note_830137):
> Casting raw data like this is inviting `SIGBUS` and endianess issues and all kinds of undefined behaviour. It would be better to use a `GstByteReader` or similar here.
>
> The same probably applies to other code too, but this one caught my eye.
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/361#note_830139):
> Raw audio data needs to be properly aligned according to the basic sample type (e.g. 2-byte aligned for S16). This is not ensuring that the alignment is correct.
That's what I found while looking for 5 minutes. The whole plugin should probably get another review.https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/316Tee at the end of a link chain makes it impossible to link an element to the ...2021-03-08T11:19:05ZJensNeumannZALTee at the end of a link chain makes it impossible to link an element to the front of itHey,
I apologize in advance for possibly posting this in the wrong place, but I can't find a forum to post problems here. I assume this isn't strictly speaking a bug, but I have tried quite a lot and stuck closely to the tutorials and s...Hey,
I apologize in advance for possibly posting this in the wrong place, but I can't find a forum to post problems here. I assume this isn't strictly speaking a bug, but I have tried quite a lot and stuck closely to the tutorials and still it's not working. My problem is this:
```
gst::Element::link_many(&[&depayloader, &decodebin]).expect("Depayloader/Decodebin elements could not be linked.");
gst::Element::link_many(&[&convert, &flipper, &queue, &clock, &rate, &rate_filter, &textoverlay, &tee]).expect("Source elements could not be linked.");
gst::Element::link_many(&[&tee_queue2, &convert2, &filter, &convert3, &sink]).expect("HLS branch elements could not be linked.");
gst::Element::link_many(&[&tee_queue, &png_enc, &filesink]).expect("Image capture elements could not be linked.");
```
I have a rather long pipeline starting with an rtspsrc, which is dynamically linked to an rtph264depay (due to the sometimes pad that needs to be created first), which is then statically linked (with link_many) to a decodebin. This is the first part.
The second part consists of a videoconvert element, a videoflip, a queue, a clock, a videorate with a filter element behind it (set to 5FPS), and a textoverlay, all statically linked (with link_many).
The third part is another videoconvert, another capsfilter to enforce h264, an h264parse and an hlssink2, also statically linked.
Now I used to have the second part linked to the third part directly as well (all in one link_many) and it worked perfectly, but I now put a tee at the end of the second part to duplicate the stream to a (again statically linked behind each other) queue, pngenc, and filesink to make snapshots.
But this last part isn't really relevant, because what happens now is this:
I put the first part of the pipeline together, it links statically, then dynamically. I put the second part together, again with link_many. Now I have another dynamic add function to get the sometimes pad from the decodebin and link it to the videoconvert at the beginning of the second part:
```
decodebin.connect_pad_added(move |src, src_pad| {
println!(
"Received new pad {} from {}",
src_pad.get_name(),
src.get_name()
);
let sink_pad = convert
.get_static_pad("sink")
.expect("Failed to get static sink pad from convert");
if sink_pad.is_linked() {
println!("We are already linked. Ignoring.");
return;
}
let new_pad_caps = src_pad
.get_current_caps()
.expect("Failed to get caps of new pad.");
let new_pad_struct = new_pad_caps
.get_structure(0)
.expect("Failed to get first structure of caps.");
let new_pad_type = new_pad_struct.get_name();
let is_video = new_pad_type.starts_with("video/x-raw");
if !is_video {
println!(
"It has type {} which is not video. Ignoring.",
new_pad_type
);
return;
}
let res = src_pad.link(&sink_pad);
if res.is_err() {
println!("Type is {} but link failed.", new_pad_type);
} else {
println!("Link succeeded (type {}).", new_pad_type);
}
});
```
It receives the new pad, sees that it is video/x-raw, but then fails to add it with a NoFormat error. This only happens when the tee is at the end of the second pipeline part; when I remove it, it links perfectly fine. Now I would assume that it shouldn't matter at all, because the videoconvert should accept a raw video stream. But it only does that if the tee is not at the end of the pipeline - although it should not have any impact at all. I even tried setting the "allow-not-linked" property of the tee to true, but it didn't help. The only factor that changes anything is removing the tee.
My gstreamer version is now 1.16. Any ideas?https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/315GitLab pages do not have HTTP compression enabled2021-05-26T12:24:43ZNirbheek Chauhannirbheek.chauhan@gmail.comGitLab pages do not have HTTP compression enabledGitLab pages, such as for [gstreamer's rust documentation](https://gstreamer.pages.freedesktop.org/gstreamer-rs/gstreamer/enum.StateChangeSuccess.html) have no HTTP compression enabled, so megabytes of javascript and fonts are transferre...GitLab pages, such as for [gstreamer's rust documentation](https://gstreamer.pages.freedesktop.org/gstreamer-rs/gstreamer/enum.StateChangeSuccess.html) have no HTTP compression enabled, so megabytes of javascript and fonts are transferred. Loading a page on a fairly fast connection takes 13-15 seconds.
![Screenshot_from_2021-03-08_04-08-05](/uploads/74ff9d0507544af980236bb73f2ac423/Screenshot_from_2021-03-08_04-08-05.png)
![Screenshot_from_2021-03-08_04-08-23](/uploads/9fcaa7316e6213a66eef283345bd5e50/Screenshot_from_2021-03-08_04-08-23.png)
The reduction in size transferred would be >90% if gzip or deflate were enabled. Not sure where this needs to be done, whether in GitLab or nginx or somewhere else.
The cache also expires every 10 minutes and all this will be re-downloaded. At least in theory. In practice, due to some reason `search-index.js` (6MB) is re-downloaded on every page load (this is probably not an infrastructure problem), so this is very bad for performance. Is there a way to selectively set cache control in pages for static assets like fonts that will basically never change?
Google pagespeed insights gives us a score of 53, which affects page rank, and likely causes pages to show up lower in search results: https://developers.google.com/speed/pagespeed/insights/?url=https://gstreamer.pages.freedesktop.org/gstreamer-rs/gstreamer/enum.StateChangeSuccess.html
The two biggest in that are enabling text compression (reduces load time from 37s to 9s) and improving the initial server response time (reduces load time by one second), which are infrastructure issues.
CC: @slomohttps://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/133create an onvif server2021-03-08T09:44:01Zhi byecreate an onvif serverI found RtspOnvifMediaServer in the codes. May I know how to start an onvif server? Is there any examples on the setting? Thank you very much.I found RtspOnvifMediaServer in the codes. May I know how to start an onvif server? Is there any examples on the setting? Thank you very much.