GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-12-07T10:04:06Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1602plugins-bad: Usb web camera can not work well, and some critical debug infor ...2022-12-07T10:04:06Zkklion zplugins-bad: Usb web camera can not work well, and some critical debug infor is reported by GstreamerOS version: openEuler
gstreamer version:gstreamer1-1.16.2
gstreamer1-plugins-bad-free-1.16.2
gstreamer1-plugins-base-1.16.2
gstreamer1-plugins-good-1.16.2
critical debug info:
...OS version: openEuler
gstreamer version:gstreamer1-1.16.2
gstreamer1-plugins-bad-free-1.16.2
gstreamer1-plugins-base-1.16.2
gstreamer1-plugins-good-1.16.2
critical debug info:
------------------------------
GStreamer-CRITICAL **: 20:26:20.234: gst_sample_set_buffer_list: assertion 'GST_IS_SAMPLE (sample)' failed
GStreamer-CRITICAL **: 20:26:20.234: gst_sample_set_buffer: assertion 'GST_IS_SAMPLE (sample)' failed
GStreamer-CRITICAL **: 20:26:20.234: gst_sample_get_caps: assertion 'GST_IS_SAMPLE (sample)' failed
GStreamer-CRITICAL **: 20:26:20.234: gst_sample_get_buffer: assertion 'GST_IS_SAMPLE (sample)' failed
CRITICAL **: 20:26:20.234: gst_video_info_from_caps: assertion 'caps != NULL' failed
GStreamer-CRITICAL **: 20:26:20.235: gst_mini_object_unref: assertion 'GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) > 0' failed
CRITICAL **: 20:26:20.289: gst_video_frame_map_id: assertion 'GST_IS_BUFFER (buffer)' failed
GStreamer-CRITICAL **: 20:26:20.289: gst_pad_push: assertion 'GST_IS_BUFFER (buffer)' failed
GStreamer-CRITICAL **: 20:26:20.289: gst_element_message_full_with_details: assertion 'GST_IS_ELEMENT (element)' failed
GStreamer-CRITICAL **: 20:26:20.290: gst_mini_object_unref: assertion 'GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) > 0' failed
------------------------------
There is a usb web camera related application which is developped based on gstreamer.
When the application starts, only a static image can be showed in the video windows, and above critical information is reported.
I try to debug and attempt to modify gstreamer1-plugin-bad as attachment patch file, the issue is resolved and the camera works well.
Could U help to debug the issue and please to confirm if the above patch can be applied to gstreamer1-plugin-bad?
thankshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/706[gstreamer 1.16] Unable to play MKV content: Resource not found2021-06-10T11:50:41ZKarim[gstreamer 1.16] Unable to play MKV content: Resource not found [the_100_0s_15s.mkv](/uploads/fd786db2e9c5c6d9736e9f529e0de641/the_100_0s_15s.mkv)
I'm experiencing an issue with gstreamer while attempting to play an mkv content.
Using the following pipeline (file or http):
Windows:
`gst-launch-1.... [the_100_0s_15s.mkv](/uploads/fd786db2e9c5c6d9736e9f529e0de641/the_100_0s_15s.mkv)
I'm experiencing an issue with gstreamer while attempting to play an mkv content.
Using the following pipeline (file or http):
Windows:
`gst-launch-1.0 -vvv filesrc location=.\the_100_0s_15s.mkv ! matroskademux ! h265parse ! queue ! avdec_h265 ! queue ! autovideosink`
Linux imx:
`gst-launch-1.0 -vvv filesrc location=.\the_100_0s_15s.mkv ! matroskademux ! h265parse ! queue ! v4l2h265dec! queue ! autovideosink`
Both failed:
```
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Resource not found.
Additional debug info:
../subprojects/gstreamer/plugins/elements/gstfilesrc.c(533): gst_file_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
No such file ".the_100_0s_15s.mkv"
Setting pipeline to NULL ...
Freeing pipeline ...
```
Please note that the same pipeline works fine with gstreamer 1.18.
I have attached the related content.
Is there a problem with the content ? It also fails with many recent encoded mkv files.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/913default value of max-buffers in appsink not match documentation2021-06-09T15:16:32Zdecembersouldefault value of max-buffers in appsink not match documentationIn the Appsink (gst-libs/gst/app/gstappsink.c)
the following define sets the default value of the max_buffers
`#define DEFAULT_PROP_MAX_BUFFERS 0`
In the current doc the value is
`Default value : 10485760 `
https://gstreamer.freedes...In the Appsink (gst-libs/gst/app/gstappsink.c)
the following define sets the default value of the max_buffers
`#define DEFAULT_PROP_MAX_BUFFERS 0`
In the current doc the value is
`Default value : 10485760 `
https://gstreamer.freedesktop.org/documentation/coreelements/queue.html?gi-language=c#propertieshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/153Fallbackswitch: Impossible to configure latency2022-08-30T06:19:26ZReinis MuiznieksFallbackswitch: Impossible to configure latencyWhile running the pipeline I noticed to get a lot of these errors
```
0:11:30.485967162 2014994 0x7fd65c9645e0 ERROR GST_PADS gstpad.c:3424:gst_pad_query_latency_default:<fallback_switch:src> minimum latency bigger than ma...While running the pipeline I noticed to get a lot of these errors
```
0:11:30.485967162 2014994 0x7fd65c9645e0 ERROR GST_PADS gstpad.c:3424:gst_pad_query_latency_default:<fallback_switch:src> minimum latency bigger than maximum latency
0:11:30.485987700 2014994 0x7fd65c9645e0 WARN aggregator src/base/gstaggregator.c:1933:gst_aggregator_query_latency_unlocked:<fallback_switch> warning: Impossible to configure latency: max 0:00:04.999979334 < min 0:00:05.000000000. Add queues or other buffering elements.
```
The difference is 0.020666 milliseconds. The number is so low that to me seems some kind of weird race condition.
```
if (min > max && GST_CLOCK_TIME_IS_VALID (max)) {
GST_ELEMENT_WARNING (self, CORE, CLOCK, (NULL),
("Impossible to configure latency: max %" GST_TIME_FORMAT " < min %"
GST_TIME_FORMAT ". Add queues or other buffering elements.",
GST_TIME_ARGS (max), GST_TIME_ARGS (min)));
return FALSE;
}
```
Is there some settings I have misconfigured?https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/895equalizer plugin doesn't seem to be controllable2021-09-24T13:34:31ZMWWorksequalizer plugin doesn't seem to be controllableTrying to attach a control source to the equalizer plugin - the source code suggests the bands values are GST_PARAM_CONTROLLABLE. I'm using python, which hopefully isn't the issue! My code works with the volume plugin:
```
gst_adjust = ...Trying to attach a control source to the equalizer plugin - the source code suggests the bands values are GST_PARAM_CONTROLLABLE. I'm using python, which hopefully isn't the issue! My code works with the volume plugin:
```
gst_adjust = Gst.ElementFactory.make("volume", "adjust")
gst_pipeline.add(gst_adjust)
gst_cs0 = GstController.InterpolationControlSource()
gst_cs0.set_property('mode', GstController.InterpolationMode.LINEAR)
gst_adjust.add_control_binding(GstController.DirectControlBinding.new(gst_adjust,"volume",gst_cs0))
print(gst_cs0.set(0.1*Gst.SECOND,0.2))
```
But not when adjusted to the 3 or 10 band equalizer (I also get a True output, but no audible effect):
```
gst_adjust = Gst.ElementFactory.make("equalizer-3bands", "adjust")
gst_pipeline.add(gst_adjust)
gst_cs0 = GstController.InterpolationControlSource()
gst_cs0.set_property('mode', GstController.InterpolationMode.LINEAR)
gst_adjust.add_control_binding(GstController.DirectControlBinding.new(gst_adjust, "band0", gst_cs0))
print(gst_cs0.set(0.1*Gst.SECOND,0.99))
```
Presetting the property prior to running the pipline works as expected, but obviously not dynamic:
`print(gst_cs0.set(0.1*Gst.SECOND,12))`
I'm not an expert so could be missing something - but it seems that the equalizer should respond to controller changes?https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/347zsh: illegal hardware instruction trying the first tutorial on OSX Big Sur2021-06-23T09:41:03ZMikzsh: illegal hardware instruction trying the first tutorial on OSX Big SurHi !
I am trying to learn gstreamer with the Rust binding. I get a strange error I do&n't explain when I try to build this:
```rust
use gstreamer::prelude::*;
use std::ops::Deref;
fn main() {
println!("début");
gstreamer::init...Hi !
I am trying to learn gstreamer with the Rust binding. I get a strange error I do&n't explain when I try to build this:
```rust
use gstreamer::prelude::*;
use std::ops::Deref;
fn main() {
println!("début");
gstreamer::init().unwrap();
println!("init ok");
let uri =
"https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm";
let pipeline = gstreamer::parse_launch(&format!("playbin uri={}", uri)).unwrap();
println!("pipeline {:?}", pipeline);
pipeline.set_state(gstreamer::State::Playing);
println!("state playing");
let bus = pipeline.get_bus().unwrap();
println!("bus {:?}", bus);
println!("{:?}", bus.timed_pop_filtered(
gstreamer::CLOCK_TIME_NONE,
&[gstreamer::MessageType::Error, gstreamer::MessageType::Eos],
));
if let Some(_msg) = bus.timed_pop_filtered(
gstreamer::CLOCK_TIME_NONE,
&[gstreamer::MessageType::Error, gstreamer::MessageType::Eos],
) { println!("OK"); }
pipeline.set_state(gstreamer::State::Null);
println!("Fin");
}
```
I don't know where the problem come from. But with the output I guess the problem is in `timed_pop_filtered`method:
```
% cargo run
Compiling gstreamer_test v0.1.0 (/Users/mik/Dev/Rust/gstreamer_test)
warning: unused import: `std::ops::Deref`
--> src/main.rs:2:5
|
2 | use std::ops::Deref;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused `Result` that must be used
--> src/main.rs:12:5
|
12 | pipeline.set_state(gstreamer::State::Playing);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_must_use)]` on by default
= note: this `Result` may be an `Err` variant, which should be handled
warning: unused `Result` that must be used
--> src/main.rs:24:5
|
24 | pipeline.set_state(gstreamer::State::Null);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this `Result` may be an `Err` variant, which should be handled
warning: 3 warnings emitted
Finished dev [unoptimized + debuginfo] target(s) in 0.62s
Running `target/debug/gstreamer_test`
début
init ok
pipeline Element { inner: ObjectRef { inner: 0x7fba6b00ca60, type: GstPlayBin } }
state playing
bus Bus { inner: ObjectRef { inner: 0x7fba68815e80, type: GstBus } }
zsh: illegal hardware instruction cargo run
```
Regardshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/894matroskademux: Attachments undetected when their size exceeds 15MB2021-10-20T08:16:35ZRafał Dzięgielmatroskademux: Attachments undetected when their size exceeds 15MB`matroskademux` element has a defined [`MAX_BLOCK_SIZE` of 15MB](https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/aad9c8a2165b0bbee957c54262391006e81907af/gst/matroska/matroska-demux.c#L5311). Due to how it is handled, it...`matroskademux` element has a defined [`MAX_BLOCK_SIZE` of 15MB](https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/aad9c8a2165b0bbee957c54262391006e81907af/gst/matroska/matroska-demux.c#L5311). Due to how it is handled, it unfortunately breaks attachments detection if their combined size in video exceeds that limit.
Tested on both 1.18 and 1.19 git.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/705pipeline with pipewiresrc doesn't resume when paused2021-09-25T00:10:07ZDave Patrick Cabertopipeline with pipewiresrc doesn't resume when pausedI am not sure if this is a gstreamer of pipewire issue, but everytime I try to pause it, and resume it doesn't work.
It's weird though that it sometimes works when I remove the caps after pipewiresrc and directly connect it to videoconv...I am not sure if this is a gstreamer of pipewire issue, but everytime I try to pause it, and resume it doesn't work.
It's weird though that it sometimes works when I remove the caps after pipewiresrc and directly connect it to videoconvert.
Here's a minimum code to reproduce it:
"""
import gi
gi.require_version('Gst', '1.0')
gi.require_version('Gtk', '3.0')
from gi.repository import Gst, Gtk
Gst.init(None)
class Window(Gtk.ApplicationWindow):
def __init__(self):
Gtk.ApplicationWindow.__init__(self)
box = Gtk.Box()
self.add(box)
start_b = Gtk.Button(label='Start')
box.pack_start(start_b, True, True, 0)
start_b.connect('clicked', self.start)
pause_b = Gtk.Button(label='Pause')
box.pack_start(pause_b, True, True, 0)
pause_b.connect('clicked', self.pause)
resume_b = Gtk.Button(label='Resume')
box.pack_start(resume_b, True, True, 0)
resume_b.connect('clicked', self.resume)
stop_b = Gtk.Button(label='Stop')
box.pack_start(stop_b, True, True, 0)
stop_b.connect('clicked', self.stop)
def _on_message(self, bus, message):
t = message.type
if t == Gst.MessageType.ERROR:
self.player.set_state(Gst.State.NULL)
err, debug = message.parse_error()
print("Error: %s" % err, debug)
def start(self, _):
self.pipeline = Gst.parse_launch('pipewiresrc path=37 ! video/x-raw,max-framerate=30/1 ! videoconvert ! xvimagesink sync=0')
self.record_bus = self.pipeline.get_bus()
self.handler_id = self.record_bus.connect('message', self._on_message)
self.pipeline.set_state(Gst.State.PLAYING)
def pause(self, _):
self.pipeline.set_state(Gst.State.PAUSED)
def resume(self, _):
self.pipeline.set_state(Gst.State.PLAYING)
def stop(self, _):
self.pipeline.set_state(Gst.State.NULL)
self.record_bus.remove_watch()
self.record_bus.disconnect(self.handler_id)
window = Window()
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
"""https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/346AppSinkStream is difficult to use2021-06-08T04:55:31ZAustin BonanderAppSinkStream is difficult to useI'm using Gstreamer to add a watermark to a video and then upload it to a video streaming service using a pipeline that looks something like this:
`appsrc ! decodebin ! rsvgoverlay ! encodebin ! appsink`
where the `appsrc` is being pus...I'm using Gstreamer to add a watermark to a video and then upload it to a video streaming service using a pipeline that looks something like this:
`appsrc ! decodebin ! rsvgoverlay ! encodebin ! appsink`
where the `appsrc` is being pushed data from a stream using `AppSrcSink` and then `AppSinkStream` is pushing data to the streaming service via `reqwest`.
However, I found that `AppSinkStream` will immediately yield `None` unless the `appsink` is actively streaming data (by looking at `AppSink::is_eos()`), which makes it difficult to use because I have to build the Gstreamer pipeline and start pushing to it to get that to start, but I'm doing something like this:
```rust
// build pipeline
// ...
// rsvgoverlay and its following elements aren't linked until `decodebin` emits the `pad-added` signal
tokio::try_join! {
appsrc.sink().send_all(&mut source_stream),
reqwest_client.post("some-url").body(appsink.stream().map(/* convert `Sample` to `bytes::Bytes` */)).send()
}
```
So the result is that the `reqwest` call uploads 0 bytes while the `appsrc` element is still being fed data.
I found a partial solution, to use `tokio::sync::Notify` to make the upload task wait until triggered:
```rust
let data_available = Arc::new(tokio::sync::Notify::new());
tokio::try_join! {
appsrc.sink().send_all(&mut source_stream),
async {
data_available.notified().await;
reqwest_client.post("some-url").body(appsink.stream().map(/* convert `Sample` to `bytes::Bytes` */)).send()
}
}
```
However, I can't find a suitable signal or callback to watch to know when to call `data_available.notify()`.
Connecting to the `pad-linked` signal on `appsink`'s `sink` pad doesn't quite get me there as data hasn't started flowing yet.
I thought of connecting to the notify signal for the `eos` property since I'd expect that to have a true->false transition as data starts being queued, but the code of `appsink` doesn't emit that signal internally.
I can set the `new-sample` callback but that would override what's set by `AppSink::stream()`, although I could just implement my own stream using a channel which wouldn't be too hard and is probably what I'll end up doing.
I could also set `emit-signals: true` connect to the `new-sample` signal but I don't want to take the performance hit (although maybe I could set `emit-signals: false` in the handler so it's only called once? would that break things?).
Any advice here? I don't know what I would change about `AppSinkStream` to make this easier. I think to fix it for my case would require it to always return `Pending` until it actually gets an `eos` callback, but would that be a breaking change to its behavior?https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/98Playing ALAC files and generating MP4 thumbnails no longer working in version...2022-06-17T19:17:35ZMarc RanolfiPlaying ALAC files and generating MP4 thumbnails no longer working in versions newer than 1.18.3I have Arch Linux and Cinnamon with its default Nemo file manager.
Since upgrading from version 1.18.3 to the 1.18.4 series, I noticed that Gnome-videos (totem) and Rhythmbox would no longer play my ALAC files. In addition, Nemo is unab...I have Arch Linux and Cinnamon with its default Nemo file manager.
Since upgrading from version 1.18.3 to the 1.18.4 series, I noticed that Gnome-videos (totem) and Rhythmbox would no longer play my ALAC files. In addition, Nemo is unable to generate thumbnails for my MP4 video files.
I have isolated this issue by downgrading all gstreamer packages until it was finally resolved by downgrading gst-libav to version [1.18.3-1 from the Arch Linux archive](https://archive.archlinux.org/packages/g/gst-libav/gst-libav-1.18.3-1-x86_64.pkg.tar.zst).
What can possibly be going on and how can I help in debugging this?
Thanks.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/704gstreamer setting state to NULL hangs2022-08-05T01:13:28ZTerrygstreamer setting state to NULL hangsLooks like multiple people have similiar problems but in the gstreamer app when trying to shut down the app, I tried to set the pipeline to NULL and it hangs, never returns from the set_state call.
It looks like one of the elements in m...Looks like multiple people have similiar problems but in the gstreamer app when trying to shut down the app, I tried to set the pipeline to NULL and it hangs, never returns from the set_state call.
It looks like one of the elements in my pipeline is PAUSED, all other elements I looked at are in the PLAYING state.
As a work around I do a exit from the app without cleaning up the pipeline, I also found that sending EOS before the set_state would hang also. It would never return
I am doing my work on a nvidia tx2-4g R32.3.1.
Thanks,
Terryhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1601gsth264parser: use SEI messages with bigger size than 0xFF2021-10-13T18:00:24ZMauriciogsth264parser: use SEI messages with bigger size than 0xFF# Issue:
Using the function gst_h264_create_sei_memory_internal of the gsth264parser generates a overflow of 0xFF using a payload_size_data bigger than 0XFF.
# Cause:
gsth264parser has a while process to write 0xFF in the SEI message an...# Issue:
Using the function gst_h264_create_sei_memory_internal of the gsth264parser generates a overflow of 0xFF using a payload_size_data bigger than 0XFF.
# Cause:
gsth264parser has a while process to write 0xFF in the SEI message and subtract 0XFF from the payload_size_data, but right now the while is adding 0XFF to the payload_size_data and the while never ends.
# Proposed fix:
Change the subtraction in the while to subtract 0XFF correctly. To do this it's possible to apply the following changes, the following changes also fix the same issue for the payload_type_data.
<pre>
diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c
index 1c40b6517..22b1e4bca 100644
--- a/gst-libs/gst/codecparsers/gsth264parser.c
+++ b/gst-libs/gst/codecparsers/gsth264parser.c
@@ -3120,14 +3120,14 @@ gst_h264_create_sei_memory_internal (guint8 nal_prefix_size,
/* write payload type bytes */
while (payload_type_data >= 0xff) {
WRITE_UINT8 (&nw, 0xff, 8);
- payload_type_data -= -0xff;
+ payload_type_data -= 0xff;
}
WRITE_UINT8 (&nw, payload_type_data, 8);
/* write payload size bytes */
while (payload_size_data >= 0xff) {
WRITE_UINT8 (&nw, 0xff, 8);
- payload_size_data -= -0xff;
+ payload_size_data -= 0xff;
}
WRITE_UINT8 (&nw, payload_size_data, 8);
</pre>
Should I try to make a pull request?https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/45can't restream rtp(udpsink) to webrtc2021-09-24T22:43:58Zjavad jcan't restream rtp(udpsink) to webrtchi,
this is few days that i try to restream rts h264 stream to webrtc with gstreamer.
i try all of this commend for sent stream over udp <br>
`gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000`
or thi...hi,
this is few days that i try to restream rts h264 stream to webrtc with gstreamer.
i try all of this commend for sent stream over udp <br>
`gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000`
or this command
`gst-launch-1.0 -v ximagesrc ! video/x-raw,framerate=20/1 ! videoscale ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=5000
`
and try all of this PIPELINE_DESC for restream it over webrtc<br>
`webrtcbin name=sendrecv bundle-policy=max-compat stun-server=stun://stun.l.google.com:19302
udpsrc port=5000 ! application/x-rtp ! rtph264depay ! avdec_h264 ! queue ! videoconvert !
x264enc speed-preset=2 tune=zerolatency ! video/x-h264,framerate=58/1, profile=(string)baseline ! rtph264pay !
queue ! application/x-rtp,media=video,encoding-name=H264,payload=96,gop-size=180 ! sendrecv.`
<br>
or this<br>
<br>
`webrtcbin name=sendrecv bundle-policy=max-compat stun-server=stun://stun.l.google.com:19302
udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" !
parser ! payloader ! sendrecv.`
but in browser stream not played and just stay in Sending SDP answer.<br>
can u help me ?
i do all of this action in sendrecv code example.
thank u.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/152Fallbacksrc CustomSource Howto ! Example Needed2021-07-27T05:34:34ZMarkus ObermeierFallbacksrc CustomSource Howto ! Example NeededHi,
I try to get CustomSource of the Fallbacksrc plugin working. However, I am struggling to get everything connected.
Is there a simple RUST example available where I can learn from how to connect everything?
I tried to learn from h...Hi,
I try to get CustomSource of the Fallbacksrc plugin working. However, I am struggling to get everything connected.
Is there a simple RUST example available where I can learn from how to connect everything?
I tried to learn from https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/135, however, it feels like I am missing how to use the GhostPads correctly.
Maybe it's a good starting point for others and you can put it in the examples folder. The example for the fallbackswitch was a really good one.
Please help.
Thanks in advance,
Markushttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/893rtph264pay: aggregate-mode=zerolatency does not work with Chrome (2021-09-24T13:34:30ZSebastian Drögertph264pay: aggregate-mode=zerolatency does not work with Chrome (When enabling logs, Chrome prints the following over and over again and nothing else.
```
[406344:15:0604/080643.626376:WARNING:video_rtp_depacketizer_h264.cc(226)] Received packet containing more than 10 NAL units. Will not keep track ...When enabling logs, Chrome prints the following over and over again and nothing else.
```
[406344:15:0604/080643.626376:WARNING:video_rtp_depacketizer_h264.cc(226)] Received packet containing more than 10 NAL units. Will not keep track sps and pps ids for all of them.
[406344:15:0604/080643.950581:WARNING:video_receive_stream2.cc(788)] No decodable frame in 200 ms, requesting keyframe.
```
Sometimes it's displaying a few frames, most of the time it just hangs. `chrome://webrtc-internals` shows that it receives packets, can't decode them and sends PLIs all the time.
This can be reproduced with the webrtc-unidirectional-h264 example with some minor changes to get a very low complexity stream. Using a plain black videotestsrc makes it even worse. Note that you might have to right-click in Chrome, enable controls and then click on the "play" button due to restrictive autoplay rules.
```diff
diff --git a/webrtc/sendonly/webrtc-unidirectional-h264.c b/webrtc/sendonly/webrtc-unidirectional-h264.c
index 593d861..07abceb 100644
--- a/webrtc/sendonly/webrtc-unidirectional-h264.c
+++ b/webrtc/sendonly/webrtc-unidirectional-h264.c
@@ -22,7 +22,7 @@
#ifdef G_OS_WIN32
#define VIDEO_SRC "mfvideosrc"
#else
-#define VIDEO_SRC "v4l2src"
+#define VIDEO_SRC "videotestsrc pattern=ball"
#endif
gchar *video_priority = NULL;
```
Streams with more complexity don't show this problem so much.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/911Rtsp streaming freeze with vlc while using gstreamer 1.16.0 and 1.18.02021-09-24T13:26:23ZNamrata vaishnavRtsp streaming freeze with vlc while using gstreamer 1.16.0 and 1.18.0I am using gstreamer plugin base for rtsp streaming. When i tried streaming with vlc and captured network package i came to know that the previous frame timestamp delta as well as previous frame captured delta is setting zero which shoul...I am using gstreamer plugin base for rtsp streaming. When i tried streaming with vlc and captured network package i came to know that the previous frame timestamp delta as well as previous frame captured delta is setting zero which should be non zero. Is there any way to resolve?https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/910playbin(3): Disabling video flag has no effect when file has subtitles2021-09-24T13:26:23ZRafał Dzięgielplaybin(3): Disabling video flag has no effect when file has subtitlesDisabling `GST_PLAY_FLAG_VIDEO` does nothing when video has subtitle track enabled. Expected result would be to still see subtitles rendered and no video or nothing at all. Yet, video is still processed and rendered even with video flag ...Disabling `GST_PLAY_FLAG_VIDEO` does nothing when video has subtitle track enabled. Expected result would be to still see subtitles rendered and no video or nothing at all. Yet, video is still processed and rendered even with video flag removed. Same issue in `playbin`, `playbin3` and `gstplay(er)` libs that use playbins internally.
audio(2) + text(4) results with video too:
```sh
gst-launch-1.0 playbin uri=file://video_with_subs.mkv flags=6
```
audio only works correctly and gives no video:
```sh
gst-launch-1.0 playbin uri=file://video_with_subs.mkv flags=2
```https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/44webrtc-sendrecv: can't handle the streams and segfaults shortly after connect...2021-09-24T22:43:58ZSerhan Gülwebrtc-sendrecv: can't handle the streams and segfaults shortly after connection establishment (macOS)On macOS, the webrtc-sendrecv C demo fails to handle the audio and video streams on macOS and segfaults shortly after establishing the connection.
> Trying to handle stream with audioconvert ! autoaudiosinkTrying to handle stream with ...On macOS, the webrtc-sendrecv C demo fails to handle the audio and video streams on macOS and segfaults shortly after establishing the connection.
> Trying to handle stream with audioconvert ! autoaudiosinkTrying to handle stream with videoconvert ! autovideosink[1] 11394 segmentation fault ./build/webrtc/sendrecv/gst/webrtc-sendrecv --server=wss://localhost:8443`
The error happens both with Chrome (90.0) and Firefox (78.11esr) after playing the video shortly: about 1s with Chrome and 3s with Firefox.
I'm using the tag 1.18, also tried on Ubuntu 20.04 and there everything works fine with 1.18.
This error seems to be very similar to the issue [here](https://github.com/centricular/gstwebrtc-demos/issues/100) in the archived repo but the mentioned fix there is already integrated in the 1.18 version here and doesn't solve the issue.
Logs with GST_DEBUG log level 6:
[webrtc-sendrecv.log](/uploads/1a2d56471fbd47b9a8cb1cfc9f3228ea/webrtc-sendrecv.log)
Logs from the Chrome console:
[chrome.log](/uploads/a6b048cb16ae1d65812758053971cde0/chrome.log)
I'm using macOS Big Sur (11.2) with GStreamer 1.18.0 installed from the pkg file.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/892rtptwcc: Does not support buffer lists2023-07-04T16:41:14ZSebastian Drögertptwcc: Does not support buffer lists`rtp_session_send_rtp()` can be called for buffers or buffer lists. `rtp_twcc_manager_send_packet()` then assumes that it's always a buffer and this then causes assertions in case it's actually a buffer list.
CC @ystreet @hgr`rtp_session_send_rtp()` can be called for buffers or buffer lists. `rtp_twcc_manager_send_packet()` then assumes that it's always a buffer and this then causes assertions in case it's actually a buffer list.
CC @ystreet @hgrhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/891gstqmlgl plugin not found2021-07-14T14:11:02Znew-user-namegstqmlgl plugin not found1.18.4, Windows 10, QT Creator, QT 5.12.11, both MinGW and Msvc.
1) I cloned [gst-plugins-good](https://github.com/GStreamer/gst-plugins-good) reverting back to 1.18 ver. to keep on the same branch with dev. pack.
3) All steps from here...1.18.4, Windows 10, QT Creator, QT 5.12.11, both MinGW and Msvc.
1) I cloned [gst-plugins-good](https://github.com/GStreamer/gst-plugins-good) reverting back to 1.18 ver. to keep on the same branch with dev. pack.
3) All steps from here
[gst-plugins-good/qt](https://github.com/GStreamer/gst-plugins-good/tree/master/ext/qt), Windows part, no questions.
4) Build is OK, gstqmlgl.dll copied to C:\gstreamer\1.0\mingw_x86_64\lib\gstreamer-1.0\
And
```> gst-inspect-1.0 gstqmlgl.dll```
gives me
```
> (gst-inspect-1.0:3360): GStreamer-WARNING **: 23:25:49.199: Failed to load plugin 'gstqmlgl.dll': 'gstqmlgl.dll': The specified module could not be found.
> Could not load plugin file: Opening module failed: 'gstqmlgl.dll': The specified module could not be found.
```
Any other dll file from this folder is OK.
The same result is for Msvc compiler.