GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2023-11-08T11:23:42Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3084Unable to build on iOS Simulator on Apple Silicon2023-11-08T11:23:42ZArnaud SchildknechtUnable to build on iOS Simulator on Apple Silicon### Describe your issue
I'm trying to build a project using GStreamer 1.22.6 with the iOS simulator on Xcode 15. I keep getting the following error :
```
Building for 'iOS-simulator', but linking in object file (/Users/******/Library/Dev...### Describe your issue
I'm trying to build a project using GStreamer 1.22.6 with the iOS simulator on Xcode 15. I keep getting the following error :
```
Building for 'iOS-simulator', but linking in object file (/Users/******/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Versions/1.0/GStreamer[arm64][66](libgstadder_a-gstadder.c.o)) built for 'iOS'
```
I initially thought about a project configuration issue, but ... I tried the [example project](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main/subprojects/gst-docs/examples/tutorials/xcode%20iOS/) and I get the exact same error.
Is it supposed to work on an iOS simulator?
#### Expected Behavior
The project to build and run successfully.
#### Observed Behavior
The project fails to compile with the error mentioned in the description.
#### Setup
- **Operating System:** MacOS 14.0
- **Device:** Macbook Pro M2 Pro
- **GStreamer Version:** 1.22.6
- **Command line:** zsh
- **Xcode version:** 15.0
- **iOS Version:** 17.0
### Steps to reproduce the bug
1. Download the [example project](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main/subprojects/gst-docs/examples/tutorials/xcode%20iOS/)
2. Select the target "Tutorial 1"
3. Select an iOS Simulator e.g. iPhone 15 Pro
4. Run
### How reproducible is the bug?
Always (at least in my case)
### Related non-duplicate issues
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/378https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/457FileSink not receiving MetaData (VideoRegionOfInterestMeta)2023-11-08T11:21:40ZMartin AffolterFileSink not receiving MetaData (VideoRegionOfInterestMeta)I've implemented a plugin akin to the `filesink` example in this repository. It is used at the end of a video pipeline and is supposed to write videometadata to file. However, when receiving the gst::buffer in the render function, the me...I've implemented a plugin akin to the `filesink` example in this repository. It is used at the end of a video pipeline and is supposed to write videometadata to file. However, when receiving the gst::buffer in the render function, the metadata which was added in a plugin before is empty.
```
fn render(&self, buffer: &gst::Buffer) -> Result<gst::FlowSuccess, gst::FlowError> {
event!(Level::INFO, "Render");
let mut state = self.state.lock().unwrap();
match *state {
State::Stopped => {
event!(Level::ERROR, "State was not started");
return Err(gst::FlowError::Error);
},
State::Started(ref mut value) => {
let roi_metas = buffer.iter_meta::<VideoRegionOfInterestMeta>();
event!(Level::INFO, "Meta count {}", roi_metas.count()); //<- always 0
...
}
```
Could someone suggest a different approach or maybe explain why the metadata is lost? Thank you.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/456webrtcsink: Pipeline fails when "get_property" call is done2023-11-07T18:05:33ZRobert Ayrapetyanwebrtcsink: Pipeline fails when "get_property" call is doneThat's one of the weirdest issues I've seen.
See this POC example:
```python
import traceback
import sys
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GLib
def consumer_added_callback(wrs, peer_id, webrtcb...That's one of the weirdest issues I've seen.
See this POC example:
```python
import traceback
import sys
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GLib
def consumer_added_callback(wrs, peer_id, webrtcbin):
print('Consumer {} added'.format(webrtcbin))
print('before get_property')
iceagent = webrtcbin.get_property("ice-agent")
print(iceagent)
print('after get_property')
# Initializes Gstreamer, it's variables, paths
Gst.init(sys.argv)
# Create a new pipeline
pipeline = Gst.Pipeline()
# Creates element by name
# https://lazka.github.io/pgi-docs/Gst-1.0/classes/ElementFactory.html#Gst.ElementFactory.make
src_name = "my_video_test_src"
src = Gst.ElementFactory.make("videotestsrc", "my_video_test_src")
wrs = Gst.ElementFactory.make("webrtcsink", "wrs")
wrs.set_property("name", "wrs")
signaller = wrs.get_property("signaller")
signaller.set_property("uri", "ws://gst-webrtc-signalling-service:8443")
pipeline.add(src)
pipeline.add(wrs)
src.link(wrs)
wrs.connect('consumer-added', consumer_added_callback)
# Start pipeline
pipeline.set_state(Gst.State.PLAYING)
# Init GObject loop to handle Gstreamer Bus Events
loop = GLib.MainLoop()
try:
loop.run()
except Exception:
traceback.print_exc()
loop.quit()
# Stop Pipeline
pipeline.set_state(Gst.State.NULL)
del pipeline
```
It fails when `iceagent = webrtcbin.get_property("ice-agent")` is present with:
```plaintext
(test.py:360688): GStreamer-WebRTC-CRITICAL **: 02:17:17.677: gst_webrtc_ice_add_stream: assertion 'GST_IS_WEBRTC_ICE (ice)' failed
(test.py:360688): GStreamer-WebRTC-CRITICAL **: 02:17:17.677: gst_webrtc_ice_find_transport: assertion 'GST_IS_WEBRTC_ICE (ice)' failed
(test.py:360688): GStreamer-WebRTC-CRITICAL **: 02:17:17.677: gst_webrtc_dtls_transport_set_transport: assertion 'GST_IS_WEBRTC_ICE_TRANSPORT (ice)' failed
(test.py:360688): GStreamer-CRITICAL **: 02:17:17.677: gst_object_unref: assertion 'object != NULL' failed
```
Not directly on this line, because you can also see:
```plaintext
<__gi__.GstWebRTCNice object at 0x7f6879907bc0 (GstWebRTCNice at 0x7f6868058080)>
```
after get_property call.
It just makes a "magic touch" so the whole pipeline fails somewhere later.
Just comment `webrtcbin.get_property()` line - and pipeline works!
I can't understand how "get_property" (which is a pure read) can affect process execution in any way?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2665asfmux: crash due to memory alignment error on 32-bit ARM platforms2023-11-07T13:55:54ZZach van Rijnasfmux: crash due to memory alignment error on 32-bit ARM platformsFound in gst-plugins-bad `1.20.3` but appears to be present in the [latest code](
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/asfmux/gstasfobjects.c#L312):
```
$ CK_FORK=no meson test e...Found in gst-plugins-bad `1.20.3` but appears to be present in the [latest code](
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/asfmux/gstasfobjects.c#L312):
```
$ CK_FORK=no meson test elements_asfmux -v --gdb
ninja: Entering directory `/usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build'
ninja: no work to do.
1/1 elements_asfmux RUNNING
>>> GST_REGISTRY=/usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build/tests/check/elements_asfmux.registry GST_PLUGIN_SYSTEM_PATH_1_0='' GST_PLUGIN_PATH_1_0=/usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build:/usr/lib/gstreamer-1.0:/usr/lib/gstreamer-1.0 GST_STATE_IGNORE_ELEMENTS='' CK_DEFAULT_TIMEOUT=20 MALLOC_PERTURB_=147 GST_PLUGIN_SCANNER_1_0=/usr/libexec/gstreamer-1.0/gst-plugin-scanner GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugins-good:gst-plugins-ugly:gst-libav:libnice:gst-plugins-bad@/usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build gdb --quiet --args /usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build/tests/check/elements_asfmux
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Reading symbols from /usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build/tests/check/elements_asfmux...
(gdb) run
Starting program: /usr/src/packages/user/gst-plugins-bad/src/gst-plugins-bad-1.20.2/build/tests/check/elements_asfmux
[Detaching after fork from child process 749116]
Running suite(s): asfmux
Program received signal SIGBUS, Bus error.
0xf79cc36c in gst_asf_put_guid (buf=buf@entry=0xf7a6a096 "", guid=...) at ../gst/asfmux/gstasfobjects.c:318
318 *aux16 = GUINT16_TO_LE (guid.v2);
(gdb) bt
#0 0xf79cc36c in gst_asf_put_guid (buf=buf@entry=0xf7a6a096 "", guid=...) at ../gst/asfmux/gstasfobjects.c:318
#1 0xf79ca7c2 in gst_asf_mux_write_file_properties (buf=<synthetic pointer>, asfmux=0xf7c08018) at ../gst/asfmux/gstasfmux.c:656
#2 gst_asf_mux_start_file (asfmux=0xf7c08018) at ../gst/asfmux/gstasfmux.c:1347
#3 gst_asf_mux_collected (collect=0xf799c491, data=0xf7c08018) at ../gst/asfmux/gstasfmux.c:1966
#4 0xf799c7fe in ?? () from /usr/lib/libgstbase-1.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
...
(gdb) disas
Dump of assembler code for function gst_asf_put_guid:
0xf79cc354 <+0>: sub sp, #8
0xf79cc356 <+2>: push {r4, r7}
0xf79cc358 <+4>: add r7, sp, #0
0xf79cc35a <+6>: add.w r12, r7, #8
0xf79cc35e <+10>: ldrd r1, r4, [r7, #16]
0xf79cc362 <+14>: stmia.w r12, {r2, r3}
0xf79cc366 <+18>: ldr r3, [r7, #12]
0xf79cc368 <+20>: rev r4, r4
0xf79cc36a <+22>: rev r1, r1
=> 0xf79cc36c <+24>: strd r2, r3, [r0]
0xf79cc370 <+28>: strd r4, r1, [r0, #8]
0xf79cc374 <+32>: mov sp, r7
0xf79cc376 <+34>: pop {r4, r7}
0xf79cc378 <+36>: add sp, #8
0xf79cc37a <+38>: bx lr
```
There may be other places in this file (or in the project) where this issue occurs.
See also:
* https://git.adelielinux.org/adelie/packages/-/issues/1040
* gstreamer/gst-plugins-good#689
* gstreamer/gstreamer!4842https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2407rtpjpegdepay returning jpeg images that do not end in EOI (ff d9)2023-11-07T13:55:54ZJoey Trigortpjpegdepay returning jpeg images that do not end in EOI (ff d9)Hi!
I am running gstreamer on a number of rtsp streams each connected a different camera. For two specific cameras the output of gstreamer sometimes includes jpeg frames that are not valid jpegs - they do not end in an EOI marker (ff d9)...Hi!
I am running gstreamer on a number of rtsp streams each connected a different camera. For two specific cameras the output of gstreamer sometimes includes jpeg frames that are not valid jpegs - they do not end in an EOI marker (ff d9).
This is my command:
`gst-launch-1.0 -vv rtspsrc location=rtsp://USER:PASSWORD@IP:554/sub ! rtpjpegdepay ! multifilesink location="/tmp/frame%d.jpg"`
Here is an example of a 'bad' file from the first camera. Around 7% of the frames are invalid JPEGs:
```
$ file /tmp/frame24.jpg
/tmp/frame24.jpg: JPEG image data, baseline, precision 8, 640x360, components 3
$ hexdump -C /tmp/frame24.jpg | head -5
00000000 ff d8 ff db 00 43 00 10 0b 0c 0e 0c 0a 10 0e 0d |.....C..........|
00000010 0e 12 11 10 13 18 28 1a 18 16 16 18 31 23 25 1d |......(.....1#%.|
00000020 28 3a 33 3d 3c 39 33 38 37 40 48 5c 4e 40 44 57 |(:3=<9387@H\N@DW|
00000030 45 37 38 50 6d 51 57 5f 62 67 68 67 3e 4d 71 79 |E78PmQW_bghg>Mqy|
00000040 70 64 78 5c 65 67 63 ff db 00 43 01 11 12 12 18 |pdx\egc...C.....|
$ hexdump -C /tmp/frame24.jpg | tail -5
0000ab70 0f 9a 0e c7 a2 4f ab 4d 1c b7 16 96 16 c1 36 96 |.....O.M......6.|
0000ab80 55 2a 32 46 0e 09 0a 06 07 7a e4 6f 9a db cb 89 |U*2F.....z.o....|
0000ab90 60 20 b0 ce fc 2e 00 e7 8e 7b f1 59 34 51 6d 4d |` .......{.Y4QmM|
0000aba0 25 5a 3c 9c 91 8d bb bd d9 |%Z<......|
0000aba9
```
And some more:
```
$ hexdump -C /tmp/frame58.jpg | tail -5
0000ab70 a2 b0 6a ea cc e8 8d 59 41 de 0e c7 a2 4f ab 4b |..j....YA....O.K|
0000ab80 1c b7 16 96 16 c1 36 92 aa 54 67 18 24 12 14 70 |......6..Tg.$..p|
0000ab90 3b d7 23 7c d6 c5 22 10 10 58 67 7e 17 00 73 c7 |;.#|.."..Xg~..s.|
0000aba0 3d f8 ac 9a 28 b6 a6 92 ad 1e 4e 48 c6 dd d9 |=...(.....NH...|
0000abaf
$ hexdump -C /tmp/frame78.jpg | tail -5
0000ab70 8d 59 41 de 0e c7 a2 4f ab 4c 92 cf 69 61 6e 10 |.YA....O.L..ian.|
0000ab80 29 65 52 a3 38 c1 c1 21 47 03 bd 72 37 c6 db cb |)eR.8..!G..r7...|
0000ab90 89 60 20 b0 ce fc 2e 00 e7 8e 7b f1 59 34 51 6d |.` .......{.Y4Qm|
0000aba0 4d 25 5a 3c 9c 91 8d bb bd d9 |M%Z<......|
0000abaa
```
All of the files end in either `bd d9` or `dd d9`.
From the second camera things look a little different - I receive bad frames 15% of the time and the files all end in `15 9d 45 3b 12 d9`:
```
$ hexdump -C /tmp/frame85.jpg | tail -5
000056e0 e7 98 e6 59 15 47 a0 39 c5 61 51 45 82 e7 49 15 |...Y.G.9.aQE..I.|
000056f0 a4 50 8f ba 19 bd 5a a5 69 95 07 50 2b 96 a2 8e |.P....Z.i..P+...|
00005700 52 b9 8e 82 4d 46 24 fb a0 b9 aa 17 17 52 5c 36 |R...MF$......R\6|
00005710 4f 03 b0 15 9d 45 3b 12 d9 |O....E;..|
00005719
```
Now I assume that the camera is returning some kind of bad data (although I'm not sure why it's only happening for 2 cameras out of 100), but looking at the [code of rtpjpegdepay](https://github.com/GStreamer/gst-plugins-good/blob/master/gst/rtp/gstrtpjpegdepay.c#L708) I see that it is supposed to ensure that output jpeg's always end in EOI:
```
if (end[0] != 0xff && end[1] != 0xd9) {
GST_DEBUG_OBJECT (rtpjpegdepay, "no EOI marker, adding one");
/* no EOI marker, add one */
outbuf = gst_buffer_new_and_alloc (2);
gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
map.data[0] = 0xff;
map.data[1] = 0xd9;
gst_buffer_unmap (outbuf, &map);
gst_adapter_push (rtpjpegdepay->adapter, outbuf);
avail += 2;
}
```
So I'm pretty sure that this is also a bug of some kind in rtpjpegdepay.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1139glimagesink: (GStreamer-Video-CRITICAL gst_video_center_rect: assertion 'src-...2023-11-07T13:55:53ZStéphane Cerveauscerveau@igalia.comglimagesink: (GStreamer-Video-CRITICAL gst_video_center_rect: assertion 'src->h != 0' failed### Describe your issue
gst-play-1.0 on MacOS reports an error using glimagesink
(gst-launch-1.0:269): GStreamer-Video-CRITICAL **: 16:18:26.854: gst_video_center_rect: assertion 'src->h != 0' failed
#### Expected Behavior
To not hav...### Describe your issue
gst-play-1.0 on MacOS reports an error using glimagesink
(gst-launch-1.0:269): GStreamer-Video-CRITICAL **: 16:18:26.854: gst_video_center_rect: assertion 'src->h != 0' failed
#### Expected Behavior
To not have error
#### Observed Behavior
The playback is working fine, except that sometimes it does not start properly
#### Setup
- **Operating System:** macOS Monterey
- **Device:** Computer
- **GStreamer Version:** 1.21
- **Command line:** gst-play-1.0 http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
### Steps to reproduce the bug
### How reproducible is the bug?
Always with glimagesink
### Screenshots if relevant
### Solutions you have tried
### Related non-duplicate issues
### Additional Information
```
Properties:
Duration: 0:00:10.008000000
Seekable: yes
Live: no
container #0: Quicktime
audio #1: MPEG-4 AAC
Stream ID: a3832fe94d306fdb8c0724f80463f8ba2c69890d6ac46dda9790018076441d49/002
Language: <unknown>
Channels: 2 (front-left, front-right)
Sample rate: 44100
Depth: 32
Bitrate: 192064
Max bitrate: 192064
video #2: H.264 (High Profile)
Stream ID: a3832fe94d306fdb8c0724f80463f8ba2c69890d6ac46dda9790018076441d49/001
Width: 1280
Height: 720
Depth: 24
Frame rate: 25/1
Pixel aspect ratio: 1/1
Interlaced: false
Bitrate: 482406
Max bitrate: 0
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1548timeoverlay: produces no text on Mac OS X2023-11-07T08:07:36ZMarcin Lewandowskitimeoverlay: produces no text on Mac OS X### Describe your issue
I have installed a fresh install of Gstreamer on Mac OS X.
I've launched the following pipeline:
```
gst-launch-1.0 videotestsrc ! timeoverlay ! autovideosink
```
I see the test video pattern but no time over...### Describe your issue
I have installed a fresh install of Gstreamer on Mac OS X.
I've launched the following pipeline:
```
gst-launch-1.0 videotestsrc ! timeoverlay ! autovideosink
```
I see the test video pattern but no time overlay.
#### Expected Behavior
I should see the test video pattern with time overlay.
#### Observed Behavior
I see the test video pattern but no time overlay.
#### Setup
- **Operating System:** Mac OS X 12.6
- **Device:** MacBook Air M1/2020
- **GStreamer Version:** 1.20.4
- **Command line:** `gst-launch-1.0 videotestsrc ! timeoverlay ! autovideosink`
### Steps to reproduce the bug
1. open terminal
2. type `gst-launch-1.0 videotestsrc ! timeoverlay ! autovideosink`
### How reproducible is the bug?
Always
### Screenshots if relevant
![Zrzut_ekranu_2022-11-5_o_23.05.14](/uploads/1af9e8c489c17aaa710ba3852128fe08/Zrzut_ekranu_2022-11-5_o_23.05.14.png)
### Solutions you have tried
I tried to change position of the text overlay or font - no success.
### Additional Information
[debug.log.xz](/uploads/0dfcd637e37c2e1fd7bde834a54f67bd/debug.log.xz)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3098Artifacting in rtsp stream2023-11-06T16:38:43ZRoshan AvhadArtifacting in rtsp stream![Screenshot_from_2023-11-06_16-56-48](/uploads/7b80122cebc11690a75f3437d11850ac/Screenshot_from_2023-11-06_16-56-48.png)
```
rtspsrc location="rtsp://192.168.10.32" retry=100 latency=1000 user-id=admin user-pw=cameleon2015
! watchd...![Screenshot_from_2023-11-06_16-56-48](/uploads/7b80122cebc11690a75f3437d11850ac/Screenshot_from_2023-11-06_16-56-48.png)
```
rtspsrc location="rtsp://192.168.10.32" retry=100 latency=1000 user-id=admin user-pw=cameleon2015
! watchdog timeout=300000 ! valve name=valve drop=false ! rtph264depay ! h264parse ! tee name=emitter
! queue leaky=downstream max-size-time=000000000 ! out_video.
emitter. ! queue leaky=downstream max-size-time=2000000000 max-size-buffers=0 max-size-bytes=0
! h264parse ! vaapih264dec ! videoconvert ! video/x-raw,format=RGBA ! videorate
! video/x-raw(ANY),framerate=15/1 ! videoflip method=none ! identity name=ZMQ_EMITTING_POINT
! queue ! fakesink sync=true async=false
splitmuxsink name=mp4mux max-size-time=600000000000 max-size-bytes=0 location=/tmp/record_repo/stream_ sync=false
tee name=out_video ! queue ! mp4mux.video
rtpbin name=local_rtp rtp-profile=avp latency=500 drop-on-latency=true do-retransmission=false
out_video. ! queue leaky=downstream max-size-time=2000000000 ! rtph264pay config-interval=1
! local_rtp.send_rtp_sink_0 local_rtp.send_rtp_src_0 ! udpsink clients=172.134.0.2:9000 sync=false async=false
local_rtp.send_rtcp_src_0 ! udpsink clients=172.134.0.2:9001 sync=false async=false
```
we got artifacts in the video as well as the images @thaytan can you please look and suggest what may be the issuehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3090wasapi2: device provider stops enumerating devices early2023-11-06T13:25:08ZDario Saccavinowasapi2: device provider stops enumerating devices early### Describe your issue
When enumerating devices with `gst-device-monitor-1.0.exe Audio`, wasapi2 may list fewer devices than are actually available.
The issue was observed while there was an RDP connection to the host (gst-device-monit...### Describe your issue
When enumerating devices with `gst-device-monitor-1.0.exe Audio`, wasapi2 may list fewer devices than are actually available.
The issue was observed while there was an RDP connection to the host (gst-device-monitor was running on the physical console), so it's possible that the device causing the error is the virtual "Remote Audio" device.
#### Observed Behavior
See `gst-device-monitor-output.txt` attachment:
- wasapi2 lists one Audio/Sink device (in addition to the default device)
- wasapi lists 3 Audio/Sink devices
Running the command with GST_DEBUG, the following is logged:
```
0:00:02.319693000 5812 000002274179CD50 WARN wasapi2client gstwasapi2client.cpp:160:GstWasapiDeviceActivator::ActivateCompleted: WASAPI call failed: 0x80070490, Element not found.
```
#### Setup
- Operating System: Windows 10 22H2
- Device: Computer
- GStreamer Version: 1.22.6
- Command line: gst-device-monitor-1.0.exe Audio
### How reproducible is the bug?
The bug appears only after connecting to the computer via RDP, but it doesn't happen every time (it seems to depend on the ordering of the list returned by `DeviceInformation.FindAllAsyncDeviceClass`).
### Additional Information
See attached `gst_debug.log`. The log contains message "gst_wasapi2_client_activate_async:<wasapi2client1> Available device count: 5", but then it stops at the third item because GstWasapiDeviceActivator fails.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3089Need a sample code for IP Camera scenario2023-11-06T09:07:15Z蒙金Need a sample code for IP Camera scenarioI'm going to build a WebRTC IP Camera with `GStreamer` `WebRTCBin`. I investigated all of the WebRTC samples, none of them could meet the requirements. I need help and the following are some key points:
1. `WebRTCBin` should receive off...I'm going to build a WebRTC IP Camera with `GStreamer` `WebRTCBin`. I investigated all of the WebRTC samples, none of them could meet the requirements. I need help and the following are some key points:
1. `WebRTCBin` should receive offer and send answer. In all of the GStreamer WebRTC samples, `WebRTCBin` sends offers. An IP Camera never connects to others actively, it always waits to be connected.
1. There should be multiple WebRTC connections between IP Camera and the browsers. And the number of the connections (viewers) is undetermined. In the samples, there is only one static connection. We have to deal with multiple, dynamic WebRTC connections.
1. We need change the resolution of the video or add/remove audio tracks during the video transmission. And these operations would be processed seamlessly, which means the video stream would not be interrupted during the operations.
1. We have to handle exceptional disconnection. If there is a network issue, our program should close the problematic WebRTC connections gracefully. All the samples ignore it.
I hope `GStreamer` team could provide the samples which cover the scenarios above. If the native counterpart samples of <https://webrtc.github.io/samples/> could be provided, I think it'll dominate the native WebRTC scenario.
At last, good wishes to the greatest framework. It's our honor to use it.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3020Memory leak when parsing WAV files that includes "JUNK"2023-11-04T18:48:44ZjohanadamnilssonMemory leak when parsing WAV files that includes "JUNK"### Memory leak when parsing WAV files that includes "JUNK"
So I have found that running the included WAV file I am finding a memory leak ([chime_initiated_call](/uploads/0342eb7a28f96eb7c7ea6595540fc59a/chime_initiated_call.wav)). I ha...### Memory leak when parsing WAV files that includes "JUNK"
So I have found that running the included WAV file I am finding a memory leak ([chime_initiated_call](/uploads/0342eb7a28f96eb7c7ea6595540fc59a/chime_initiated_call.wav)). I have tried narrowing it down as much as possible however I have problem following why the code is taking the path it is taking, also understanding the WAV format is not clear, but lets discuss what I have found.
First the stack trace of the memory leak:
```
Indirect leak of 10080 byte(s) in 36 object(s) allocated from:
#0 0x7f88747dbc in \__interceptor_malloc r0/libsanitizer/asan/asan_malloc_linux.cpp:69 (discriminator 2)
#1 0x7f8859b3b4 in g_malloc r0/glib/gmem.c:130
#2 0x7f885b4874 in g_slice_alloc r0/glib/gslice.c:1074
#3 0x7f8811af84 in gst_buffer_new r0/gst/gstbuffer.c:863
#4 0x7f8811ce70 in gst_buffer_new_allocate r0/gst/gstbuffer.c:908
#5 0x7f875617dc in gst_base_src_default_alloc r0/libs/gst/base/gstbasesrc.c:1546
#6 0x7f8755f954 in gst_base_src_default_create r0/libs/gst/base/gstbasesrc.c:1592
#7 0x7f8755cc60 in gst_base_src_get_range r0/libs/gst/base/gstbasesrc.c:2592 (discriminator 7)
#8 0x7f8755f738 in gst_base_src_getrange r0/libs/gst/base/gstbasesrc.c:2793
#9 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#10 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#11 0x7f8816976c in gst_proxy_pad_getrange_default r0/gst/gstghostpad.c:185 (discriminator 2)
#12 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#13 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#14 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#15 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#16 0x7f85b1756c in gst_wavparse_stream_headers r0/gst/wavparse/gstwavparse.c:1555
#17 0x7f85b1a61c in gst_wavparse_loop r0/gst/wavparse/gstwavparse.c:2252 (discriminator 7)
#18 0x7f88201678 in gst_task_func r0/gst/gsttask.c:384
#19 0x7f885c1b44 in g_thread_pool_thread_proxy r0/glib/gthreadpool.c:352
#20 0x7f885c0eb4 in g_thread_proxy r0/glib/gthread.c:831
#21 0x7f87d7eea0 in start_thread r1/nptl/pthread_create.c:444
#22 0x7f87de59d8 in thread_start r1/misc/../sysdeps/unix/sysv/linux/aarch64/clone.S:79
Indirect leak of 7308 byte(s) in 36 object(s) allocated from:
#0 0x7f88747dbc in \__interceptor_malloc r0/libsanitizer/asan/asan_malloc_linux.cpp:69 (discriminator 2)
#1 0x7f8859b3b4 in g_malloc r0/glib/gmem.c:130
#2 0x7f885b4874 in g_slice_alloc r0/glib/gslice.c:1074
#3 0x7f88107f5c in \_sysmem_new_block r0/gst/gstallocator.c:437
#4 0x7f8811ce64 in gst_buffer_new_allocate r0/gst/gstbuffer.c:901
#5 0x7f875617dc in gst_base_src_default_alloc r0/libs/gst/base/gstbasesrc.c:1546
#6 0x7f8755f954 in gst_base_src_default_create r0/libs/gst/base/gstbasesrc.c:1592
#7 0x7f8755cc60 in gst_base_src_get_range r0/libs/gst/base/gstbasesrc.c:2592 (discriminator 7)
#8 0x7f8755f738 in gst_base_src_getrange r0/libs/gst/base/gstbasesrc.c:2793
#9 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#10 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#11 0x7f8816976c in gst_proxy_pad_getrange_default r0/gst/gstghostpad.c:185 (discriminator 2)
#12 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#13 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#14 0x7f88197214 in gst_pad_get_range_unchecked r0/gst/gstpad.c:4948 (discriminator 7)
#15 0x7f881a5e0c in gst_pad_pull_range r0/gst/gstpad.c:5193
#16 0x7f85b1756c in gst_wavparse_stream_headers r0/gst/wavparse/gstwavparse.c:1555
#17 0x7f85b1a61c in gst_wavparse_loop r0/gst/wavparse/gstwavparse.c:2252 (discriminator 7)
#18 0x7f88201678 in gst_task_func r0/gst/gsttask.c:384
#19 0x7f885c1b44 in g_thread_pool_thread_proxy r0/glib/gthreadpool.c:352
#20 0x7f885c0eb4 in g_thread_proxy r0/glib/gthread.c:831
#21 0x7f87d7eea0 in start_thread r1/nptl/pthread_create.c:444
#22 0x7f87de59d8 in thread_start r1/misc/../sysdeps/unix/sysv/linux/aarch64/clone.S:79```
```
This should be possible to get when running `gst-launch-1.0 -v playbin uri=file://<file>`. I have tried with using valgrind, address sanitizer or GST_TRACERS, all are showing the memory leak.
Running `xxd <file> | less` command on a file that is not leaking looks like:
```
00000000: 5249 4646 a488 0300 5741 5645 666d 7420 RIFF....WAVEfmt
00000010: 1000 0000 0100 0200 401f 0000 007d 0000 ........@....}..
00000020: 0400 1000 6461 7461 8088 0300 0000 0000 ....data........
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
```
This makes sense for me when looking at the [WAV file format](https://docs.fileformat.com/audio/wav/)
Now looking on a file that causes a leak:
```
00000000: 5249 4646 e001 0c00 5741 5645 4a55 4e4b RIFF....WAVEJUNK
00000010: 4000 0000 e001 0c00 0000 0000 e8fc 0b00 @...............
00000020: 0000 0000 7cff 0100 0000 0000 0000 0000 ....|...........
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 666d 7420 1000 0000 0100 0200 ....fmt ........
00000060: 44ac 0000 9809 0400 0600 1800 6461 7461 D...........data
00000070: e8fc 0b00 0000 0000 0000 0000 0000 0000 ................
```
Now there is "JUNK" after WAVE field. To my understanding this is not wrong.... [according to Wikipedia](https://en.wikipedia.org/wiki/WAV#CITEREFIBMMicrosoft1991).
Knowing all this I am very confused as in the "gst_wavparse_stream_headers" function the memory leak is made in a switch statement that I don't believe it should be in. In the first case statement it matches on [GST_RIFF_TAG_LIST](https://github.com/GStreamer/gstreamer/blob/main/subprojects/gst-plugins-good/gst/wavparse/gstwavparse.c#L1470 "https://github.com/gstreamer/gstreamer/blob/main/subprojects/gst-plugins-good/gst/wavparse/gstwavparse.c#l1470") and inside it matches on the GST_RIFF_LIST_adtl, both I feel should not be a match as I don't see it in "xxd" commands output. Have not worked much with parsers so can be missing something, however I am grateful for any help and explanation that you can provide.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1790srtsink fails to listen on ipv6 address ::2023-11-04T16:40:20Zlilydjwgsrtsink fails to listen on ipv6 address ::```
$ gst-launch-1.0 --no-position pulsesrc device=alsa_output.pci-0000_00_1f.3.analog-stereo.monitor ! 'audio/x-raw,format=S16LE,rate=48000,channels=2' ! opusenc bitrate-type=2 bitrate=256000 ! oggmux ! queue ! srtsink uri='srt://[::]:1...```
$ gst-launch-1.0 --no-position pulsesrc device=alsa_output.pci-0000_00_1f.3.analog-stereo.monitor ! 'audio/x-raw,format=S16LE,rate=48000,channels=2' ! opusenc bitrate-type=2 bitrate=256000 ! oggmux ! queue ! srtsink uri='srt://[::]:1234/?mode=listener' wait-for-connection=false
Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstSRTSink:srtsink0: Could not open resource for writing.
Additional debug info:
../gstreamer/subprojects/gst-plugins-bad/ext/srt/gstsrtsink.c(160): gst_srt_sink_start (): /GstPipeline:pipeline0/GstSRTSink:srtsink0:
1234
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstSRTSink:srtsink0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../gstreamer/subprojects/gstreamer/libs/gst/base/gstbasesink.c(5881): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstSRTSink:srtsink0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
```
It'll work if the uri is `srt://[::1]:1234/?mode=listener` or `srt://0.0.0.0:1234/?mode=listener`, but not what I want.
Arch Linux with packages:
* gst-plugins-bad 1.22.6-1
* srt 1.5.3-1https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3094GPU API Memory Interoperability2023-11-04T12:48:52ZCole RichardsonGPU API Memory InteroperabilityThis is more of a theoretical question...
@ystreet Will probably be able to answer this very easily.
If I have a pipeline that looks something like:
```
gst-launch-1.0.exe <src_element> ! parsebin ! d3d11h264dec ! glupload ! qml6glsin...This is more of a theoretical question...
@ystreet Will probably be able to answer this very easily.
If I have a pipeline that looks something like:
```
gst-launch-1.0.exe <src_element> ! parsebin ! d3d11h264dec ! glupload ! qml6glsink
```
How is the GPU data output from d3d11h264dec handled when passed to glupload? Does this do a GPU -> CPU -> GPU copy? If so, is there any way to avoid this redundant copy?
Is there any high-level information (or reference to implementation code) that you can point me to on how this is handled in general for different graphics APIs? For example, if I replace `glupload ! qml6glsink` with `vulkanupload ! appsink` how can I check that it is "zero-copy"?
Thanks!https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3091whep has strange queuing errors when uploaded to qmlglsink2023-11-04T12:43:40ZChris Dawsonwhep has strange queuing errors when uploaded to qmlglsinkWhen I try to use a whep pipeline with qmlglsink it fails, but the same pipeline works with autovideosink.
This pipeline works:
```
gst-inspect-1.0 whepsrc name=whep auth-token=gst2 whep-endpoint=https://bb2.vivoh.com/api/whep video-ca...When I try to use a whep pipeline with qmlglsink it fails, but the same pipeline works with autovideosink.
This pipeline works:
```
gst-inspect-1.0 whepsrc name=whep auth-token=gst2 whep-endpoint=https://bb2.vivoh.com/api/whep video-caps="application/x-rtp,payload=127,encoding-name=H264,media=video,clock-rate=90000" audio-caps="application/x-rtp,payload=96,encoding-name=OPUS,media=audio,clock-rate=48000" ! rtpopusdepay ! fakesink whep. ! rtph264depay ! h264parse ! decodebin ! autovideosink
```
(I then start a broadcast (using the broadcast box project: https://github.com/Glimesh/broadcast-box/) using key gst2.)
`GST_DEBUG=2` shows this:
```
0:00:00.504323000 86328 0x7fc5e12548c0 WARN webrtcbin gstwebrtcbin.c:3533:sdp_media_from_transceiver:<webrtcbin0> Caps application/x-rtp, payload=(int)96, encoding-name=(string)OPUS, media=(string)audio, clock-rate=(int)48000, rtcp-fb-transport-cc=(boolean)true are missing ssrc
0:00:00.561346000 86328 0x7fc5e0982460 WARN GST_PADS gstpad.c:4361:gst_pad_peer_query:<nicesrc0:src> could not send sticky events
0:00:00.561898000 86328 0x7fc5e12548c0 WARN webrtcbin gstwebrtcbin.c:3533:sdp_media_from_transceiver:<webrtcbin0> Caps application/x-rtp, payload=(int)127, encoding-name=(string)H264, media=(string)video, clock-rate=(int)90000, rtcp-fb-nack-pli=(boolean)true, rtcp-fb-ccm-fir=(boolean)true, rtcp-fb-transport-cc=(boolean)true are missing ssrc
[86336:22275:1103/151709.982457:ERROR:command_buffer_proxy_impl.cc(141)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[86337:32259:1103/151709.982481:ERROR:command_buffer_proxy_impl.cc(141)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
0:00:09.639234000 86328 0x7fc5e09825e0 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver1> failed to match fec decoder with transceiver
0:00:09.640061000 86328 0x7fc5e09825e0 WARN webrtcbin gstwebrtcbin.c:7239:on_rtpbin_pad_added:<webrtcbin0> Could not find ssrc 2505424691
0:00:09.888213000 86328 0x7fc5e0982580 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver0> failed to match fec decoder with transceiver
0:00:09.888251000 86328 0x7fc5e0982580 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver1> failed to match fec decoder with transceiver
0:00:09.888492000 86328 0x7fc5e0982580 WARN webrtcbin gstwebrtcbin.c:7239:on_rtpbin_pad_added:<webrtcbin0> Could not find ssrc 4051497844
```
But, when I try to use a queue and qmlglsink, it does not display inside the QML renderer. I can play videotestsrc inside the QML renderer, so I know it works. But, with qmlglsink and queue I get `Internal data stream error`
For example this fails:
```
gst-launch-1.0 whepsrc name=whep auth-token=gst2 whep-endpoint=https://bb2.vivoh.com/api/whep video-caps="application/x-rtp,payload=127,encoding-name=H264,media=video,clock-rate=90000" audio-caps="application/x-rtp,payload=96,encoding-name=OPUS,media=audio,clock-rate=48000" ! rtpopusdepay ! fakesink whep. ! rtph264depay ! h264parse ! decodebin ! glupload ! qmlglsink name="glsink" sync=true
```
With `GST_DEBUG=2` I see this (note the warnings with nice and queue elements):
```
0:00:00.817171000 86489 0x7fbdf2f9fad0 ERROR qtglwidget qtitem.cc:751:initWinSys: 0x600002c8f800 failed to retrieve wrapped context (NULL)
0:00:00.817197000 86489 0x7fbdf2f9fad0 WARN qtsink gstqtsink.cc:366:gst_qt_sink_change_state:<glsink> error: Could not initialize window system
0:00:00.996240000 86489 0x7fbdf389caa0 WARN webrtcbin gstwebrtcbin.c:3533:sdp_media_from_transceiver:<webrtcbin0> Caps application/x-rtp, payload=(int)96, encoding-name=(string)OPUS, media=(string)audio, clock-rate=(int)48000, rtcp-fb-transport-cc=(boolean)true are missing ssrc
0:00:01.219713000 86489 0x7fbdf589a8c0 WARN GST_PADS gstpad.c:4361:gst_pad_peer_query:<nicesrc0:src> could not send sticky events
0:00:01.220930000 86489 0x7fbdf389caa0 WARN webrtcbin gstwebrtcbin.c:3533:sdp_media_from_transceiver:<webrtcbin0> Caps application/x-rtp, payload=(int)127, encoding-name=(string)H264, media=(string)video, clock-rate=(int)90000, rtcp-fb-nack-pli=(boolean)true, rtcp-fb-ccm-fir=(boolean)true, rtcp-fb-transport-cc=(boolean)true are missing ssrc
[86502:22275:1103/151848.797597:ERROR:command_buffer_proxy_impl.cc(141)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[86503:22019:1103/151848.797642:ERROR:command_buffer_proxy_impl.cc(141)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
0:00:09.760677000 86489 0x7fbdf589a9e0 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver1> failed to match fec decoder with transceiver
0:00:09.761652000 86489 0x7fbdf589a9e0 WARN webrtcbin gstwebrtcbin.c:7239:on_rtpbin_pad_added:<webrtcbin0> Could not find ssrc 802104147
0:00:09.818626000 86489 0x7fbdf589aa40 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver0> failed to match fec decoder with transceiver
0:00:09.818672000 86489 0x7fbdf589aa40 WARN webrtcbin gstwebrtcbin.c:5025:try_match_transceiver_with_fec_decoder:<webrtctransceiver1> failed to match fec decoder with transceiver
0:00:09.819042000 86489 0x7fbdf589aa40 WARN webrtcbin gstwebrtcbin.c:7239:on_rtpbin_pad_added:<webrtcbin0> Could not find ssrc 3618992685
0:00:22.704928000 86489 0x7fbdf589aa40 WARN default gst/parse/grammar.y:859:gst_parse_no_more_pads:<decodebin0> warning: Delayed linking failed.
0:00:22.704949000 86489 0x7fbdf589aa40 WARN default gst/parse/grammar.y:859:gst_parse_no_more_pads:<decodebin0> warning: failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstGLUploadElement named gluploadelement0
0:00:22.787826000 86489 0x7fbdf589a8c0 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop:<nicesrc0> error: Internal data stream error.
0:00:22.787852000 86489 0x7fbdf589a8c0 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop:<nicesrc0> error: streaming stopped, reason not-linked (-1)
0:00:22.889954000 86489 0x7fbdf589a8c0 WARN queue gstqueue.c:992:gst_queue_handle_sink_event:<queue0> error: Internal data stream error.
0:00:22.889975000 86489 0x7fbdf589a8c0 WARN queue gstqueue.c:992:gst_queue_handle_sink_event:<queue0> error: streaming stopped, reason not-linked (-1)
^C
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3083[regression][build][linux] on gst-plugins-good/sys/ximage/gstximagesrc.c2023-11-03T18:20:53ZBin-CI[regression][build][linux] on gst-plugins-good/sys/ximage/gstximagesrc.ccatch build regression cause by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5493
```
10:30:02,742 INFO - FAILED: subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so
10:30:02,742 INFO - cc -o subprojects/...catch build regression cause by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5493
```
10:30:02,742 INFO - FAILED: subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so
10:30:02,742 INFO - cc -o subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so.p/gstximagesrc.c.o subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so.p/ximageutil.c.o -L/opt/media/install/lib -I/opt/media/install/include -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libgstximagesrc.so -Wl,-Bsymbolic-functions -Wl,-z,nodelete -g3 '-Wl,-rpath,$ORIGIN/../../../gstreamer/libs/gst/base:$ORIGIN/../../../gstreamer/gst:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/video:$ORIGIN/../../../orc/orc' -Wl,-rpath-link,/opt/media/build/gstreamer/__meson_build/subprojects/gstreamer/libs/gst/base -Wl,-rpath-link,/opt/media/build/gstreamer/__meson_build/subprojects/gstreamer/gst -Wl,-rpath-link,/opt/media/build/gstreamer/__meson_build/subprojects/gst-plugins-base/gst-libs/gst/video -Wl,-rpath-link,/opt/media/build/gstreamer/__meson_build/subprojects/orc/orc subprojects/gstreamer/libs/gst/base/libgstbase-1.0.so.0.2300.0 subprojects/gstreame...
10:30:02,742 INFO - /usr/bin/ld: subprojects/gst-plugins-good/sys/ximage/libgstximagesrc.so.p/gstximagesrc.c.o: in function `gst_ximage_src_event':
10:30:02,742 INFO - /opt/media/build/gstreamer/__meson_build/../subprojects/gst-plugins-good/sys/ximage/gstximagesrc.c:1246: undefined reference to `gst_ximage_navigation_mouse_push_button'
10:30:02,742 INFO - /usr/bin/ld: /opt/media/build/gstreamer/__meson_build/../subprojects/gst-plugins-good/sys/ximage/gstximagesrc.c:1237: undefined reference to `gst_ximage_navigation_key'
10:30:02,743 INFO - /usr/bin/ld: /opt/media/build/gstreamer/__meson_build/../subprojects/gst-plugins-good/sys/ximage/gstximagesrc.c:1264: undefined reference to `gst_ximage_navigation_mouse_push_button'
10:30:02,743 INFO - /usr/bin/ld: /opt/media/build/gstreamer/__meson_build/../subprojects/gst-plugins-good/sys/ximage/gstximagesrc.c:1266: undefined reference to `gst_ximage_navigation_mouse_push_button'
10:30:02,743 INFO - /usr/bin/ld: /opt/media/build/gstreamer/__meson_build/../subprojects/gst-plugins-good/sys/ximage/gstximagesrc.c:1253: undefined reference to `gst_ximage_navigation_mouse_move_pointer'
10:30:02,743 INFO - collect2: error: ld returned 1 exit status
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3081gst-python build fails on Python 3.13 (patch included)2023-11-03T16:42:57ZGwyn Cieslagst-python build fails on Python 3.13 (patch included)https://bugzilla.redhat.com/show_bug.cgi?id=224725[py313.patch](/uploads/239a69609da6662674913acc23c0ca96/py313.patch)https://bugzilla.redhat.com/show_bug.cgi?id=224725[py313.patch](/uploads/239a69609da6662674913acc23c0ca96/py313.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1216amcvideodec: deadlock while flushing happen at same time with drain2023-11-03T14:17:33ZSoheyl Vafaamcvideodec: deadlock while flushing happen at same time with drainGstreamer version : 1.16.2
platform : android sdk:28 CPU:armv7
how it happens : when you seek accurate multiple time in the end section of video (of course that you must use H/W decoder) and when it happens ,player freezes without a...Gstreamer version : 1.16.2
platform : android sdk:28 CPU:armv7
how it happens : when you seek accurate multiple time in the end section of video (of course that you must use H/W decoder) and when it happens ,player freezes without any errors
log with amcvideodec:6 :
`gstamcvideodec.c:1178:_amc_gl_possibly_wait_for_gl_sync gl_sync 0xe4516030 unsuccessfully waited for frame 2309
gstamcvideodec.c:1126:_gl_sync_render_unlocked gl_sync 0xe4516030 successfully updated SurfaceTexture 0xc678f708 int
gstamcvideodec.c:938:_gl_sync_release_buffer gl_sync 0xe45167e0 possible 'on_frame_available' listener miss detected
gstamcvideodec.c:1178:_amc_gl_possibly_wait_for_gl_sync gl_sync 0xe45167e0 unsuccessfully waited for frame 2310
gstamcvideodec.c:1126:_gl_sync_render_unlocked gl_sync 0xe45167e0 successfully updated SurfaceTexture 0xc678f708 int
gstamcvideodec.c:1610:gst_amc_video_dec_loop:<amcvideodec-omxexynosavcdec0> Finished frame: flushing
gstamcvideodec.c:1688:gst_amc_video_dec_loop:<amcvideodec-omxexynosavcdec0> Flushing -- stopping task
gstamcvideodec.c:2461:gst_amc_video_dec_drain:<amcvideodec-omxexynosavcdec0> Waiting until codec is drained
`
The last three lines always happen And only one line is sometimes added for example:
`
gstamcvideodec.c:1610:gst_amc_video_dec_loop:<amcvideodec-omxexynosavcdec0> Finished frame: flushing
gstamcvideodec.c:1688:gst_amc_video_dec_loop:<amcvideodec-omxexynosavcdec0> Flushing -- stopping task
gstamcvideodec.c:2416:gst_amc_video_dec_drain:<amcvideodec-omxexynosavcdec0> Draining codec
gstamcvideodec.c:2461:gst_amc_video_dec_drain:<amcvideodec-omxexynosavcdec0> Waiting until codec is drained
`https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3086No video when gstreamer decoder started after udp stream2023-11-03T13:57:27ZKiril MalerNo video when gstreamer decoder started after udp streamDear all,
I am trying to decode udp multicast mpegts stream containing one program with h264 video + one audio ac3 track
Server start command line at linux PC-1:
multicat test.ts 239.232.10.1:5004
And stream decoding is started at PC...Dear all,
I am trying to decode udp multicast mpegts stream containing one program with h264 video + one audio ac3 track
Server start command line at linux PC-1:
multicat test.ts 239.232.10.1:5004
And stream decoding is started at PC-2. No audio is decoded for brevity:
```
gst-launch-1.0 -v --gst-debug='_videodec_:6,basevideosink:6,GST_QOS:6' \\\
--no-fault --no-position udpsrc port=5004 multicast-group=239.232.0.1 \\\
caps="application/x-rtp,media=video,clock-rate=90000" \\\
blocksize=8192 retrieve-sender-address=false do-timestamp=false loop=false \\\
\\\
! rtpmp2tdepay \
! tsparse ! tsdemux name=dmx dmx. \
\\\
! "video/x-h264" ! queue ! parsebin ! queue \
! avdec_h264 \\\
! xvimagesink qos=true render-rectangle='\<100,100,240,136\>'
```
When udp streaming is started @ PC-1 before gstreamer decoding at PC-2, the video appears after \~ 2 sec. Great.
But, when gstreamer decoder at PC-2 is started several seconds before the PC-1 udp server, then video never appears.
All decoded frames are dropped in gstvideodecoder.c with similar message:
```
GST_QOS gstbasesink.c:4040:gst_base_sink_chain_unlocked: qos: dropped buffer rt 0:00:00.780000000, st 0:00:00.780000000, ts 0:00:00.780000000, dur 0:00:00.040000000
```
If I set 'qos=false' in gtsreamer command, video appears.
How to reproduce quickly:
Create gstreamer command listening to a live udp stream, add suitable GST_DEBUG=...
Start udp stream \~ 5 sec later. No video will appear.
Stop udp stream, stop gstreamer decoder
Change to 'qos=false'
Start gstreamer decoder
Start udp stream \~ 5 sec later. The video will appear, probably jerky because of missing QoS
My gut feeling is that gstbasesink.c does not update its base time when stream events are sent from gstvideodecoder.c after first finished frame
Consequently, gstbasesink.c sends incorrect QoS messages to decoder, resulting in all video frames dropped
The same drop messages also observed with fakevideosink
```
gst-launch-1.0 --version
gst-launch-1.0 version 1.22.6
GStreamer 1.22.6
```
Thanks.
I do not attach logs because issue is easy to reproduce with basic commands, no problem to add :-)https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/114TLS/SSL support not available; install glib-networking2023-11-03T12:40:53ZTLS/SSL support not available; install glib-networkingI'm trying to make a secure WebRTC connection using [GStreamer 1.22 on macOS](https://gstreamer.freedesktop.org/download/#macos), based on [this example](https://github.com/GStreamer/gst-examples/blob/master/webrtc/multiparty-sendrecv/gs...I'm trying to make a secure WebRTC connection using [GStreamer 1.22 on macOS](https://gstreamer.freedesktop.org/download/#macos), based on [this example](https://github.com/GStreamer/gst-examples/blob/master/webrtc/multiparty-sendrecv/gst/mp-webrtc-sendrecv.c). When trying to connect to the signaling server via `wss://`, I get the following error:
> HTTP/1.1 6 TLS/SSL support not available; install glib-networking
Should the example work out-of-the-box? Is `glib-networking` somewhere in `GStreamer.framework`, and just isn't being found?
Or, if I have to add it manually: How can I do so without creating system-wide dependencies? Everything needs to be self-contained in one folder, which can be moved and sent to customers. So using a package manager to install `glib-networking` system-wide won't do.
In `GStreamer.framework/Libraries/gio/modules/` there's only `libgioopenssl.so`. I've tried loading that manually using `g_module_open_full`, before the call to `gst_init_check`. Loading succeeds, but I still get the above error.
Any help would be appreciated.https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/492no way to convert from Bytes to usize2023-11-03T09:09:42ZGuillaume Desmottesno way to convert from Bytes to usizeWe don't have any way to convert from `gst::format::Bytes` to `usize`.
This is annoying as I'd like to create a sized buffer with a size returned by `AudioInfo::convert::<Option<gst::format::Bytes>>(gst::ClockTime::from_mseconds(...))` ...We don't have any way to convert from `gst::format::Bytes` to `usize`.
This is annoying as I'd like to create a sized buffer with a size returned by `AudioInfo::convert::<Option<gst::format::Bytes>>(gst::ClockTime::from_mseconds(...))` but can't.
Should we implement `From` on it?