GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2020-01-19T11:13:52Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1126`ice-gathering-state` logic is broken in `webrtcbin`2020-01-19T11:13:52ZSergey Radionovrsatom@gmail.com`ice-gathering-state` logic is broken in `webrtcbin`As mentioned in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/676#note_318038 it just skips `GATHERING` and became `COMPLETE` even before first ice candidate come to `on-ice-candidate` event handler.
Checked on Ubuntu 1...As mentioned in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/676#note_318038 it just skips `GATHERING` and became `COMPLETE` even before first ice candidate come to `on-ice-candidate` event handler.
Checked on Ubuntu 19.04 + GStreamer 1.15.90 and Ubuntu 19.10 + GStreamer 1.16.1.
If it required, I can prepare demo for this issue, but you can easily see it in logs with [webrtcbidirectional.c](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/blob/master/tests/examples/webrtc/webrtcbidirectional.c) if just set `GST_DEBUG=webrtcbin:5`Sebastian DrögeSebastian Drögehttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1146webrtcbin: connection is not established without remote candidates (even when...2020-01-19T11:15:13ZNazar Mokrynskyiwebrtcbin: connection is not established without remote candidates (even when they are not needed)If `add-ice-candidate` is not called, connection will not be established.
However, if running with public IP address (on a server) it is not needed.
As a proof, this nonsense is sufficient to trick GStreamer into not requiring real prop...If `add-ice-candidate` is not called, connection will not be established.
However, if running with public IP address (on a server) it is not needed.
As a proof, this nonsense is sufficient to trick GStreamer into not requiring real proper candidates and establish connection successfully:
```rust
webrtcbin
.emit(
"add-ice-candidate",
&[&0u32, &"candidate:0 1 udp 0 0.0.0.0 0 typ host".to_string()]
)
.unwrap();
```
Would be nice to remove the need for such a hack entirely.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/71Implement a FLAC decoder around claxon2020-01-19T16:18:22ZSebastian DrögeImplement a FLAC decoder around claxonSee https://github.com/ruuda/claxon
The `frame::FrameReader` and `metadata::MetadataReader` types should be sufficient for everything we need here, assuming correctly parsed input from `flacparse`.
For using them, there are some `ogg` ...See https://github.com/ruuda/claxon
The `frame::FrameReader` and `metadata::MetadataReader` types should be sufficient for everything we need here, assuming correctly parsed input from `flacparse`.
For using them, there are some `ogg` and `mp4` examples in https://github.com/ruuda/claxon/tree/master/examples
Seems relatively straightforward.https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/172master: some dlls not loading with mingw 32-bit cross compile for windows2020-01-20T15:34:01ZAaron Boxermaster: some dlls not loading with mingw 32-bit cross compile for windows(I don't see these warnings with the 1.16 cross-compile)
Error popup: `Bad Image: libgmp-10.dll is either not designed to run on WIndows or it contains an error ......`
and ...
```
0:00:00.039979300 7212 05CF1720 WARN ...(I don't see these warnings with the 1.16 cross-compile)
Error popup: `Bad Image: libgmp-10.dll is either not designed to run on WIndows or it contains an error ......`
and ...
```
0:00:00.039979300 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstdecklink.dll': The specified module could not be found.
GStreamer-WARNING **: 12:13:30.626: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstdecklink.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstdecklink.dll': The specified module could not be found.
0:02:06.615574300 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstnice.dll': %1 is not a valid Win32 application.
GStreamer-WARNING **: 12:15:37.215: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstnice.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstnice.dll': %1 is not a valid Win32 application.
0:02:06.619956800 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstopenh264.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:37.220: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstopenh264.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstopenh264.dll': The specified module could not be found.
0:02:07.670836700 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstrtmp.dll': %1 is not a valid Win32 application.
(EatonRTSPTestHarness.exe:7212): GStreamer-WARNING **: 12:15:38.272: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstrtmp.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstrtmp.dll': %1 is not a valid Win32 application.
0:02:07.692571200 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsoundtouch.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:38.293: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsoundtouch.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsoundtouch.dll': The specified module could not be found.
0:02:07.707742600 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsrt.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:38.307: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsrt.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstsrt.dll': The specified module could not be found.
0:02:07.713073300 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgsttaglib.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:38.313: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgsttaglib.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgsttaglib.dll': The specified module could not be found.
0:02:08.744093400 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtc.dll': %1 is not a valid Win32 application.
GStreamer-WARNING **: 12:15:39.344: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtc.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtc.dll': %1 is not a valid Win32 application.
0:02:08.747653900 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:39.346: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': The specified module could not be found.
0:02:08.751831800 7212 05CF1720 WARN GST_PLUGIN_LOADING gstplugin.c:806:_priv_gst_plugin_load_file_for_registry: module_open failed: 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstzbar.dll': The specified module could not be found.
GStreamer-WARNING **: 12:15:39.352: Failed to load plugin 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstzbar.dll': 'C:\gstreamer\1.0\loki_x86\lib\gstreamer-1.0\libgstzbar.dll': The specified module could not be found.
```https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/221vaapih264enc AVC failure on AMD RAVEN2020-01-20T21:22:01ZPhilipp Zabelphilipp.zabel@gmail.comvaapih264enc AVC failure on AMD RAVENRunning vaapih264enc in `stream-format=avc` mode fails on AMD RAVEN with the Mesa Gallium VA driver:
`vainfo: Driver version: Mesa Gallium driver 19.3.1 for AMD Ryzen Embedded V1605B with Radeon Vega Gfx (RAVEN, DRM 3.35.0, 5.4.8, LLVM ...Running vaapih264enc in `stream-format=avc` mode fails on AMD RAVEN with the Mesa Gallium VA driver:
`vainfo: Driver version: Mesa Gallium driver 19.3.1 for AMD Ryzen Embedded V1605B with Radeon Vega Gfx (RAVEN, DRM 3.35.0, 5.4.8, LLVM 9.0.0)`
Example pipeline:
`gst-launch-1.0 videotestsrc ! vaapih264enc ! video/x-h264,stream-format=avc ! fakesink`
The VA-API driver returns VA_ENC_PACKED_HEADER_NONE to a query of
VAConfigAttribEncPackedHeaders:
`INFO vaapi gstvaapiencoder.c:791:get_packed_headers: supported packed headers: 0x00000000`
But gst_vaapiencode_h264_set_config sets base_encode->need_codec_data for avc.
As a result, gst_vaapi_encoder_h264_get_codec_data fails because ensure_sequence
and ensure_picture never submit SPS/PPS headers into the bitstream, and
ensure_output_state then fails to get the codec data:
`ERROR vaapiencode gstvaapiencode.c:353:gst_vaapiencode_push_frame: failed to negotiate output state (status 0)`
This error triggers for every input frame, and vaapih264enc does not produce any
output.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1179nvenc: Crash when input resolution is smaller than supported one by driver2020-01-21T08:35:08ZSeungha Yangseungha@centricular.comnvenc: Crash when input resolution is smaller than supported one by driverTry `gst-launch-1.0 videotestsrc ! video/x-raw,width=16,height=16 ! nvh265enc ! fakesink`Try `gst-launch-1.0 videotestsrc ! video/x-raw,width=16,height=16 ! nvh265enc ! fakesink`https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/232Memory leak when using callbacks?2020-01-21T22:35:34ZNazar MokrynskyiMemory leak when using callbacks?This can be just my misunderstanding, but there is something weird going on that causes GStreamer to free its memory correctly (confirmed by tracing subsystem), but leave some of Rust objects in memory forever.
I have a struct that look...This can be just my misunderstanding, but there is something weird going on that causes GStreamer to free its memory correctly (confirmed by tracing subsystem), but leave some of Rust objects in memory forever.
I have a struct that looks like this:
```rust
pub struct Stream {
pipeline: Pipeline,
webrtcbin: Element,
}
impl Drop for Stream {
fn drop(&mut self) {
println!("Destroyed!");
}
}
```
With weak references I stop the pipeline, remove last reference and this struct is dropped. Good so far.
Now consider this struct:
```rust
struct Test(u32);
impl Drop for Test {
fn drop(&mut self) {
println!("Drop");
}
}
```
And its usage:
```rust
let test = Test(1);
stream.webrtcbin.connect_notify(Some("connection-state"), {
move |_webrtcbin, _spec| {
println!("{}", test.0);
}
});
```
Intuitively the only thing holding `test` is the callback and when pipeline is stopped and last reference to `Stream` struct is removed from Rust point of view (`Stream::drop` is called), `test` should also be dropped.
Confusingly, it is still kept in memory without any way to remove it. Even more confusing is the fact that `Arc` is not involved here.
What is the recommended approach in this case and shouldn't bindings handle this in some way?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1183webrtcbin: Peer closing connection cause libnice to report FAILED as ICE conn...2020-01-22T06:23:04ZSebastian Drögewebrtcbin: Peer closing connection cause libnice to report FAILED as ICE connection stateIf the peer closes the connection, we get the close_notify via the DTLS connection just fine and mark that one as properly closed. However shortly afterwards libnice reports `FAILED` as the ICE connection state because the selected candi...If the peer closes the connection, we get the close_notify via the DTLS connection just fine and mark that one as properly closed. However shortly afterwards libnice reports `FAILED` as the ICE connection state because the selected candidate pair times out or its connection is closed.
This should probably not happen and we should somehow get information from libnice that it's actually just closed and there's nothing fundamentally wrong at this point.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/94threadshare: Operating on a Context without a valid PadContext2020-01-22T06:42:42ZMathieu Duponchellethreadshare: Operating on a Context without a valid PadContextThis one requires a sender and a receiver pipeline, and exhibits both the error in the title, and while tearing down the issue reported in #93 .
Sender:
```
gst-launch-1.0 audiotestsrc do-timestamp=true samplesperbuffer=400 ! alawenc !...This one requires a sender and a receiver pipeline, and exhibits both the error in the title, and while tearing down the issue reported in #93 .
Sender:
```
gst-launch-1.0 audiotestsrc do-timestamp=true samplesperbuffer=400 ! alawenc ! rtppcmapay max-ptime=50000000 min-ptime=50000000 ! udpsink host=127.0.0.1 port=50000
```
Receiver:
```
gst-launch-1.0 ts-udpsrc port=50000 address=127.0.0.1 context="1" caps="application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA, payload=(int)8" ! rtppcmadepay ! alawdec ! ts-proxysink proxy-context="11" ts-proxysrc proxy-context="11" ! fakesink
```
[stack.txt](/uploads/9a8edda1b648bbc91a73e79c1648f83e/stack.txt)
Let's keep the discussion about `block_on` in #93 , regarding this new panic what I've observed is that it occurs because audiodecoder forwards its stream start immediately, keeping the custom downstream pad context event in a list of pending events (audioencoder also does that btw).
If I patch audiodecoder to forward all pending sticky events prior to forwarding stream_start, the issue disappears, I don't think we want to require this behaviour however? The issue also disappears if I replace ts-udpsrc with a regular udpsrc, it's not entirely clear to me why but worth reporting :)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/93threadshare: block_on panics because it is running in a Context2020-01-22T17:03:04ZMathieu Duponchellethreadshare: block_on panics because it is running in a ContextI have been trying to fix this on my end but my brain isn't working anymore :(
Consider the following pipeline:
`gst-launch-1.0 audiotestsrc ! alawenc ! rtppcmapay ! ts-jitterbuffer ! rtppcmadepay ! alawdec ! fakesink`
This is a simpl...I have been trying to fix this on my end but my brain isn't working anymore :(
Consider the following pipeline:
`gst-launch-1.0 audiotestsrc ! alawenc ! rtppcmapay ! ts-jitterbuffer ! rtppcmadepay ! alawdec ! fakesink`
This is a simplified scenario, my actual use case has a sender and receiver pipeline, but it can be reproduced with this single pipeline too.
[stack.txt](/uploads/deb6f67ff6561ad5040b538b31358ffe/stack.txt)
Here, audiodecoder (from its streaming thread) constructs and sends a latency query upstream (frame 30). The jitterbuffer receives it and attempts to `block_on` in its `src_query` handler, which panics as it is indeed running in its own context (see the pop_and_push at frame 55).
I don't know how to fix this :)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/83ts: add tests for JitterBuffer2020-01-22T17:40:25ZFrançois Laignelts: add tests for JitterBufferThe `TsJitterBuffer`, while being quite feature-full, is the only `ts-element` with no tests. Each iteration on the ts model makes it very likely to break it. Switching to `async` `Mutex`es as part of this [MR](https://gitlab.freedesktop...The `TsJitterBuffer`, while being quite feature-full, is the only `ts-element` with no tests. Each iteration on the ts model makes it very likely to break it. Switching to `async` `Mutex`es as part of this [MR](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/204) induced many changes that have most probably broken whole or part of the features.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/500aggregator: Start-time selection FIRST/SET does not work by default2020-01-23T18:14:39ZSebastian Drögeaggregator: Start-time selection FIRST/SET does not work by defaultIn that mode the start time is set when the first buffer arrives. It would be set as the position of the segment, but only if the position of the segment is -1 or if it is further in the future.
Unfortunately the position of the segment...In that mode the start time is set when the first buffer arrives. It would be set as the position of the segment, but only if the position of the segment is -1 or if it is further in the future.
Unfortunately the position of the segment is 0 by default (`gst_segment_init()`), so it would not be set at all and 0 would be kept.
With compositor and audiomixer this does not seem to be a problem as those are explicitly setting the position in various places to -1 it seems.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/946msdkh264enc: memory leak in case used with dynamic pipelines (Windows)2020-01-23T21:22:38ZPeter Seiderermsdkh264enc: memory leak in case used with dynamic pipelines (Windows)Using the msdkh264enc element with dynamic pipelines eats my system memory when run on Windows.
Running the following test program, add/remove 'queue ! msdkh264enc ! fakesink' dynamically to/from a running
pipeline (derived from dyanami...Using the msdkh264enc element with dynamic pipelines eats my system memory when run on Windows.
Running the following test program, add/remove 'queue ! msdkh264enc ! fakesink' dynamically to/from a running
pipeline (derived from dyanamic-tee-vsink example, see [1], [2]), on every loop ca. 20 MB of Memory are
leaked (happens only when running on Windows, not on Linux):
````
#include <gst/gst.h>
#include <stdlib.h>
#define VIDEO_RECORDING_ENCODER "msdkh264enc"
//#define VIDEO_RECORDING_ENCODER "x264enc"
//#define VIDEO_RECORDING_ENCODER "openh264enc"
static GMainLoop* loop;
static GstElement* pipeline;
static GstPad* videoTeeSrcPad;
static GstElement* recordingQueue;
static GstElement* recordingEncoder;
static GstElement* recordingSink;
static volatile int timeoutCbCounter;
static gboolean unlinkCbCalled;
static GstPadProbeReturn unlink_cb(GstPad* pad, GstPadProbeInfo* info, gpointer user_data) {
g_print("Debug: unlink_cb()\n");
if (!g_atomic_int_compare_and_exchange(&unlinkCbCalled, false, true)) {
g_print("Debug: unlink_cb() - removing already set\n");
return GST_PAD_PROBE_OK;
}
GstElement* tee = gst_bin_get_by_name(GST_BIN(pipeline), "VideoTee");
if (tee == nullptr) {
g_print("Error: gst_bin_get_by_name(VideoTee) failed\n");
return GST_PAD_PROBE_OK;
}
GstPad* sinkpad = gst_element_get_static_pad(recordingQueue, "sink");
gst_pad_unlink(videoTeeSrcPad, sinkpad);
gst_object_unref(sinkpad);
gst_bin_remove(GST_BIN(pipeline), recordingQueue);
gst_bin_remove(GST_BIN(pipeline), recordingEncoder);
gst_bin_remove(GST_BIN(pipeline), recordingSink);
gst_element_set_state(recordingSink, GST_STATE_NULL);
gst_element_set_state(recordingEncoder, GST_STATE_NULL);
gst_element_set_state(recordingQueue, GST_STATE_NULL);
#if 0
gst_object_unref(recordingQueue);
recordingQueue = nullptr;
gst_object_unref(recordingEncoder);
recordingEncoder = nullptr;
gst_object_unref(recordingSink);
recordingSink = nullptr;
#endif
gst_element_release_request_pad(tee, videoTeeSrcPad);
gst_object_unref(videoTeeSrcPad);
videoTeeSrcPad = nullptr;
gst_object_unref(tee);
timeoutCbCounter++;
g_print("Debug: unlink done\n");
return GST_PAD_PROBE_REMOVE;
}
static gboolean timeout_cb(gpointer user_data) {
g_print("Debug: timeout_cb() - timeoutCbCounter = %d\n", timeoutCbCounter);
#if 0
// abort after 3 times encoder start/stop
if (timeoutCbCounter >= 6) {
g_print("Debug: timeout_cb() - g_main_loop_quit()\n");
g_main_loop_quit(loop);
return false;
}
#endif
if ((timeoutCbCounter % 2) == 1) {
// unlink the recording branch
unlinkCbCalled = false;
gst_pad_add_probe(videoTeeSrcPad, GST_PAD_PROBE_TYPE_IDLE, unlink_cb, nullptr, nullptr);
return true;
} else {
// add the recoding branch
GstElement* tee = gst_bin_get_by_name(GST_BIN(pipeline), "VideoTee");
if (tee == nullptr) {
g_print("Error: gst_bin_get_by_name(VideoTee) failed\n");
return false;
}
if (recordingQueue == nullptr) {
recordingQueue = gst_element_factory_make("queue", "RecordingQueue");
if (recordingQueue == nullptr) {
g_print("Error: gst_element_factory_make(queue) failed\n");
return false;
}
gst_object_ref_sink(recordingQueue);
}
if (recordingEncoder == nullptr) {
recordingEncoder = gst_element_factory_make(VIDEO_RECORDING_ENCODER, "RecordingEncoder");
if (recordingEncoder == nullptr) {
g_print("Error: gst_element_factory_make(" VIDEO_RECORDING_ENCODER ") failed\n");
return false;
}
gst_object_ref_sink(recordingEncoder);
}
if (recordingSink == nullptr) {
recordingSink = gst_element_factory_make("fakesink", "RecordingSink");
if (recordingSink == nullptr) {
g_print("Error: gst_element_factory_make(fakesink) failed\n");
return false;
}
gst_object_ref_sink(recordingSink);
}
gst_bin_add_many(GST_BIN(pipeline), recordingQueue, recordingEncoder, recordingSink, nullptr);
gst_element_link_many(recordingQueue, recordingEncoder, recordingSink, nullptr);
gst_element_sync_state_with_parent(recordingQueue);
gst_element_sync_state_with_parent(recordingEncoder);
gst_element_sync_state_with_parent(recordingSink);
GstPadTemplate* srcPadTemplate = gst_element_class_get_pad_template(GST_ELEMENT_GET_CLASS(tee), "src_%u");
videoTeeSrcPad = gst_element_request_pad(tee, srcPadTemplate, NULL, NULL);
GstPad* sinkPad = gst_element_get_static_pad(recordingQueue, "sink");
if (gst_pad_link(videoTeeSrcPad, sinkPad) != GST_PAD_LINK_OK) {
g_print("Error: gst_pad_link() failed\n");
gst_object_unref(sinkPad);
gst_element_release_request_pad(tee, videoTeeSrcPad);
gst_object_unref(videoTeeSrcPad);
return false;
}
g_print("Debug: gst_pad_link() queue --> " VIDEO_RECORDING_ENCODER " --> fakesink done\n");
gst_object_unref(sinkPad);
gst_object_unref(tee);
timeoutCbCounter++;
return true;
}
}
int main(int argc, char *argv[]) {
gst_init(&argc, &argv);
loop = g_main_loop_new(nullptr, false);
pipeline = gst_parse_launch("videotestsrc name=VideoSrc ! tee name=VideoTee ! queue name=VideoQueue ! fakesink name=VideoSink", nullptr);
g_return_val_if_fail(pipeline, -1);
g_timeout_add_seconds(3, timeout_cb, loop);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
g_main_loop_run(loop);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);
if (recordingQueue != nullptr) {
gst_object_unref(recordingQueue);
}
if (recordingEncoder != nullptr) {
gst_object_unref(recordingEncoder);
}
if (recordingSink != nullptr) {
gst_object_unref(recordingSink);
}
gst_deinit();
exit(0);
}
````
* OS: Windows 10
* GStreamer: 1.15.2
* Hardware: Intel i7-6920
[1] https://coaxion.net/blog/2014/01/gstreamer-dynamic-pipelines/
[2] https://github.com/sdroege/gst-snippets/blob/217ae015aaddfe3f7aa66ffc936ce93401fca04e/dynamic-tee-vsink.cNirbheek Chauhannirbheek.chauhan@gmail.comNirbheek Chauhannirbheek.chauhan@gmail.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/187Add adapter for the `log` trait around the GStreamer debug system2020-01-24T08:16:37ZSebastian DrögeAdd adapter for the `log` trait around the GStreamer debug systemSee https://docs.rs/log/0.4.6/log/trait.Log.html
This would allow the normal macros from `log` to be used, and if other crates are using the `log` crate they would also automatically go to the GStreamer debug logs then.See https://docs.rs/log/0.4.6/log/trait.Log.html
This would allow the normal macros from `log` to be used, and if other crates are using the `log` crate they would also automatically go to the GStreamer debug logs then.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/95ts-jitterbuffer: add `prepare`, `unprepare` and `stop` fn for state transitions2020-01-24T13:29:12ZFrançois Laignelts-jitterbuffer: add `prepare`, `unprepare` and `stop` fn for state transitionshttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/209Make gst::Seqnum, gst::MetaSeqnum similar to Gst::ClockTime and represent inv...2020-01-24T22:34:49ZMathieu DuponchelleMake gst::Seqnum, gst::MetaSeqnum similar to Gst::ClockTime and represent invalid values in the typesThe following discussion from gstreamer/gst-plugins-rs!90 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/90#note_126579): (+2 comments)
> I wonder if...The following discussion from gstreamer/gst-plugins-rs!90 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/90#note_126579): (+2 comments)
> I wonder if we should change the type definition of that so that seqnums (and group ids, etc) are never `0 == INVALID`, and instead use `Option`s in the code. Unrelated to your changes here of course, but seems worth doing.
>
> Basically changing `gst::Seqnum` from `u32` to a `NonZeroU32`, and changing the API that can take invalid seqnum (is there any at all?) to an `Option<gst::Seqnum>`.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1191msdkenc: iHD - No vp9 with msdk plugins2020-01-25T00:09:49ZJulien Isorcemsdkenc: iHD - No vp9 with msdk pluginsHi, I wonder how I can get vp9 working as currently it does not appear in vainfo with iHD ?
`gst-launch-1.0 videotestsrc ! msdkvp9enc ! fakesink`
-> `ERROR msdkenc gstmsdkenc.c:487:gst_msdkenc_init_encoder:<msdkvp9enc0> Video Encod...Hi, I wonder how I can get vp9 working as currently it does not appear in vainfo with iHD ?
`gst-launch-1.0 videotestsrc ! msdkvp9enc ! fakesink`
-> `ERROR msdkenc gstmsdkenc.c:487:gst_msdkenc_init_encoder:<msdkvp9enc0> Video Encode Query failed (undeveloped feature)`
`intel-gmmlib-19.3.2`
`intel-media-19.3.1`
`intel-mediasdk-19.3.1`
```
libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri//iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.1.0)
vainfo: Driver version: Intel iHD driver - 1.0.0
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI
```
cpu: `Intel(R) Core(TM) i7-6770HQ CPU @ 2.60GHz`
gpu: `Intel Corporation Iris Pro Graphics 580 (rev 09)`
Thx!https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1184webrtcdsp: Failed to load plugin: The specified procedure was not found.(Wind...2020-01-26T23:01:28ZDerevyanko Romanwebrtcdsp: Failed to load plugin: The specified procedure was not found.(Windows 7x64 , gstreamer 1.16.2 MinGWx86)Problem with adding to .pro files in
```
LIBS += $$PWD/../gstreamer/bin/libwebrtc_audio_processing-0.dll
LIBS += $$PWD/../gstreamer/bin/libgstwebrtc-1.0-0.dll
```
in source file is simple test code:
```
QString pipeStr = "audiotests...Problem with adding to .pro files in
```
LIBS += $$PWD/../gstreamer/bin/libwebrtc_audio_processing-0.dll
LIBS += $$PWD/../gstreamer/bin/libgstwebrtc-1.0-0.dll
```
in source file is simple test code:
```
QString pipeStr = "audiotestsrc ! webrtcdsp ! webrtcechoprobe ! directsoundsink";
pipelineSender = gst_parse_launch(qPrintable(pipeStr), nullptr);
gst_element_set_state(pipelineSender, GST_STATE_PLAYING);
```
In debug log:
```
(test_webrtc.exe:3632): GStreamer-WARNING **: 17:58:31.172: Failed to load plugin 'E:\gstreamer\1.0\x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': 'E:\gstreamer\1.0\x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': The specified procedure was not found..
(test_webrtc.exe:3632): GStreamer-WARNING **: 17:58:31.220: Failed to load plugin 'E:\gstreamer\1.0\x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': 'E:\gstreamer\1.0\x86\lib\gstreamer-1.0\libgstwebrtcdsp.dll': The specified procedure was not found..
```
This error is repeated even if:
```
LIBS += $$PWD/../gstreamer/lib/gstreamer-1.0/libgstwebrtcdsp.dll
LIBS += $$PWD/../gstreamer/lib/gstreamer-1.0/libgstwebrtc.dll
```
are added to the project
And pipiline cannot run with this webrtc entities
If i run pipe from my code in gst utility: "gst-launch-1.0.exe audiotestsrc ! webrtcdsp ! webrtcechoprobe ! directsoundsink" then pipe will start correctly!
What else should I add to the dependencies of my project?https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/233possibly memory leakage in an endless looping video playback2020-01-27T10:09:49ZNicolas Brüggemannpossibly memory leakage in an endless looping video playbackGot some strange growing memory usage using a simple pipeline with glupload.
I wrote a simple program based on the glupload example:
There is a simple pipeline: filesrc > qtdemux > queue > h264parse > avdec_h264 > glsinkbin.
If the ...Got some strange growing memory usage using a simple pipeline with glupload.
I wrote a simple program based on the glupload example:
There is a simple pipeline: filesrc > qtdemux > queue > h264parse > avdec_h264 > glsinkbin.
If the bus got message EOS, I simple set state to ready and then to play so that the video plays endless.
On each new start of the video the memory usage of the program rises.
I already tried different gstreamer-rs and gstreamer version.
---
Created a short example to see the problem is: [https://github.com/mcbernie/glupload-rs-test](glupload-test) (Only runs on Linux)
> The example is a simple copy & paste from glupload example with the pipeline for play mp4 videos
Start the program with:
```bash
cargo run --features="gl-x11"
```
In a second console I simple run:
```bash
while :; do echo $(ps aux | grep '[t]arget/debug/glupload'); sleep 2; done
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/502ladpsa: criticals with Linux Studio Plugins and `error: failed to expand CURI...2020-01-27T17:14:41Zgentoo_eshoesladpsa: criticals with Linux Studio Plugins and `error: failed to expand CURIE `xsd:float'`I'm getting the following only the first time I run `pulseeffects` after a reboot:
```
$ pulseeffects
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.309: g_param_spec_int: assertion 'default_value >= minimum && default_v...I'm getting the following only the first time I run `pulseeffects` after a reboot:
```
$ pulseeffects
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.309: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.310: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.311: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.312: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.312: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.312: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.312: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.313: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.313: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.313: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.313: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.314: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.314: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.315: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.315: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.317: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.317: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.320: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.320: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.321: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.321: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.324: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.325: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.329: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.329: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.336: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.336: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.339: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.339: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.346: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.346: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.347: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.347: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.348: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.348: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.350: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.350: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.352: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.352: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.354: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.354: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.356: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.356: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.360: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.360: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.364: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.364: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.365: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.365: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.365: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.365: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.366: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.366: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.367: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.367: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.368: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.368: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.369: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.369: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.370: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.370: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.371: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.371: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.372: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.372: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.374: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.374: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.376: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.376: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.378: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.378: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.379: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.379: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.380: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.380: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.382: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.382: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.383: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.383: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.384: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.384: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.384: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.384: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.385: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.385: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.386: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.386: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.387: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.387: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.388: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.388: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.388: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.389: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.389: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.389: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.390: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.390: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.391: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.391: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.392: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.392: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.393: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.393: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.393: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.393: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.394: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.394: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.395: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.395: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.396: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.396: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.396: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.396: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.397: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.397: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.398: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.398: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.398: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.398: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.403: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.403: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.406: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.406: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.407: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.407: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.408: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.408: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.410: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.410: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.412: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.412: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.418: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.418: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.423: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.423: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.426: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.426: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.429: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.429: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.434: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.434: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.440: g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed
(gst-plugin-scanner:4487): GLib-GObject-CRITICAL **: 16:34:13.440: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
error: failed to expand CURIE `xsd:float'
(pulseeffects:4451): pulseeffects-WARNING **: 16:34:17.130: pitch plugin was not found!
(pulseeffects:4451): pulseeffects-WARNING **: 16:34:17.273: pitch plugin was not found!
```
and subsequent times(unless I reboot first) when I re-run `pulseeffects` I get only these:
```
$ pulseeffects
(pulseeffects:92180): pulseeffects-WARNING **: 16:59:36.148: pitch plugin was not found!
(pulseeffects:92180): pulseeffects-WARNING **: 16:59:36.295: pitch plugin was not found!
```
Ignore the `pitch plugin was not found`, I don't have some archlinux package(s) installed for that plugin.
The only issues are those assertions and that
```
error: failed to expand CURIE `xsd:float'
```
plus the fact that they only show up the first time after reboot. Restarting X has no effect. It has to be a full reboot, for some reason.
I'm running xfce4 with xfwm4 in ArchLinux on a laptop, linux kernel 5.4.15-g111e415c94f5
```
$ pacman -Qs gstreamer
local/gst-plugins-bad 1.16.2-2
GStreamer open-source multimedia framework bad plugins
local/gst-plugins-base 1.16.2-1
GStreamer open-source multimedia framework base plugins
local/gst-plugins-base-libs 1.16.2-1
GStreamer open-source multimedia framework base libraries
local/gst-plugins-good 1.16.2-2
GStreamer open-source multimedia framework good plugins
local/gstreamer 1.16.0+229+g47765e164b-1
GStreamer open-source multimedia framework core library
$ pacman -Qs pulseef
local/pulseeffects 4.7.1-1
Audio Effects for Pulseaudio Applications
$ pacman -Qo /usr/lib/gstreamer-1.0/gst-plugin-scanner
/usr/lib/gstreamer-1.0/gst-plugin-scanner is owned by gstreamer 1.16.0+229+g47765e164b-1
```
Any ideas what I could do next to find out what's causing this or something?