GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2020-10-26T09:10:39Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/287GStreamer log handler can get objects passed that are not fully constructed y...2020-10-26T09:10:39ZSirius WuGStreamer log handler can get objects passed that are not fully constructed yet (e.g. instance_init) and have no nameI'm trying to port libgstreamer_android.so's initialization code to rust. See my project [androidsink](https://github.com/chengchangwu/androidsink/blob/master/src/lib.rs) at github.
The initialization crashes at the `get_name` in the fo...I'm trying to port libgstreamer_android.so's initialization code to rust. See my project [androidsink](https://github.com/chengchangwu/androidsink/blob/master/src/lib.rs) at github.
The initialization crashes at the `get_name` in the following place while creating an element of `audiotestsrc`:
```
let ob = obj.downcast_ref::<gst::Object>().unwrap();
let name = ob.get_name().to_string();
```
I printed the `ob` with `{:?}`, found it to be an `Object { inner: ObjectRef { inner: 0x9ea53898, type: GstBaseSrc } }`.
Any hint for me to fix it?https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/21https://webrtc.nirbheek.in/ Too many connection attempts2020-10-21T06:47:06ZRaj123456788https://webrtc.nirbheek.in/ Too many connection attempts![Screen_Shot_2020-10-20_at_9.31.22_AM](/uploads/65a2ba659c0f613695fc696beb67c1cc/Screen_Shot_2020-10-20_at_9.31.22_AM.png)
@nirbheek Please fix this. Thanks!![Screen_Shot_2020-10-20_at_9.31.22_AM](/uploads/65a2ba659c0f613695fc696beb67c1cc/Screen_Shot_2020-10-20_at_9.31.22_AM.png)
@nirbheek Please fix this. Thanks!https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/118How do I set ulpfec to be turned on in an outgoing RTSP stream?2020-10-21T07:13:37ZleokHow do I set ulpfec to be turned on in an outgoing RTSP stream?./build/examples/test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
FEC packets were not found when using the command above.
Turning on the ulpfec option in the "gst_rtsp_stream_init" initialization interface is also i..../build/examples/test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
FEC packets were not found when using the command above.
Turning on the ulpfec option in the "gst_rtsp_stream_init" initialization interface is also invalid.
Is there any developer brother who can bring ULpFEC package in RTSP Server? Please share with me. Thank you.
![image](/uploads/e1a3527a23551d16bc46ed2f1581d7cb/image.png)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1432https://webrtc.nirbheek.in/ Too many connection attempts2020-10-21T15:55:38ZRaj123456788https://webrtc.nirbheek.in/ Too many connection attempts![Screen_Shot_2020-10-20_at_9.31.22_AM](/uploads/95eff8930cae25af364ba78c41463e08/Screen_Shot_2020-10-20_at_9.31.22_AM.png)
@nirbheek Please fix this. Thanks!![Screen_Shot_2020-10-20_at_9.31.22_AM](/uploads/95eff8930cae25af364ba78c41463e08/Screen_Shot_2020-10-20_at_9.31.22_AM.png)
@nirbheek Please fix this. Thanks!https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/280vaapih264enc stuttering issues2021-08-18T17:45:30Zwest jonesvaapih264enc stuttering issuesI previously was using gstreamer 1.14 and i965 with a patch that was created using va264enc. Which does not work with gstreamer 1.18 and iHD. Now I am currently trying to use vaapih264enc but it seems to cause stuttering with videos and ...I previously was using gstreamer 1.14 and i965 with a patch that was created using va264enc. Which does not work with gstreamer 1.18 and iHD. Now I am currently trying to use vaapih264enc but it seems to cause stuttering with videos and live cameras I have not been able to remove the stuttering, it seems to be every second and it is very noticeable when play anything. I have not seen any error at all in debug so I am not for sure what could be causing this.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/619[Question][Android] How to compile GStreamer in debug mode?2022-11-10T09:21:05ZLudovic ROLAND[Question][Android] How to compile GStreamer in debug mode?Hello,
In an Android project, in order to display a RTSP video stream, I am using GStreamer.
From the precompiled package available [here][1], I produce shared object files using the following Android.mk file :
```
LOCAL_PATH := $...Hello,
In an Android project, in order to display a RTSP video stream, I am using GStreamer.
From the precompiled package available [here][1], I produce shared object files using the following Android.mk file :
```
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := gstreamernative
LOCAL_SRC_FILES := gstreamernative.c
LOCAL_SHARED_LIBRARIES := gstreamer_android
LOCAL_LDLIBS := -llog -landroid
include $(BUILD_SHARED_LIBRARY)
ifndef GSTREAMER_ROOT_ANDROID
$(error GSTREAMER_ROOT_ANDROID is not defined!)
endif
ifeq ($(TARGET_ARCH_ABI),armeabi)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm
else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7
else ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64
else ifeq ($(TARGET_ARCH_ABI),x86)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86
else ifeq ($(TARGET_ARCH_ABI),x86_64)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64
else
$(error Target arch ABI not supported: $(TARGET_ARCH_ABI))
endif
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_PLAYBACK) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_SYS)
G_IO_MODULES := openssl
GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk
```
and the following Application.mk file :
```
APP_ABI = armeabi-v7a arm64-v8a
APP_STL = c++_shared
```
RSTP streams work correctly on all Android versions. But when I want to read a specific HTTP video stream, it works on Android < 10 and crashes and Android 10+.
The stacktrace is not very explicit:
>Fatal signal 11 (SIGSEV), code 1 (SEGV_MAPPER), fault addr 0xaaaaaaaaaaaaaaa in tid 2458 (souphttpsrc0:sr), pid 2334 (application.id)
>
> #05 pc 00000000000e24a4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: ceedf0f98da575de138b0c631aceca44)
>
> #06 pc 0000000000083d98 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: ceedf0f98da575de138b0c631aceca44)
It is possible to modify the Android.mk or the Application.mk file in order to produce "debug" binaries of GStreamer and display more logs when the app stops working?
Thank you in advance for your help!
[1]: https://gstreamer.freedesktop.org/data/pkg/android/https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/20https://webrtc.nirbheek.in/ Too many connection attempts, aborting. Refresh...2020-10-21T06:47:57Z1happyboyhttps://webrtc.nirbheek.in/ Too many connection attempts, aborting. Refresh page to try again![QQ图片20201020113956](/uploads/5dd9e5a14fc1bae3f03e1293dd69d5bf/QQ图片20201020113956.png)![QQ图片20201020113956](/uploads/5dd9e5a14fc1bae3f03e1293dd69d5bf/QQ图片20201020113956.png)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/618MacOS 1.18 pkg installation fails2022-11-10T09:21:05ZRaleigh Littles IIIMacOS 1.18 pkg installation failsStarting from the instructions [here](https://gstreamer.freedesktop.org/documentation/installing/for-ios-development.html?gi-language=c), I tried to install the latest version of GStreamer **1.18**: https://gstreamer.freedesktop.org/data...Starting from the instructions [here](https://gstreamer.freedesktop.org/documentation/installing/for-ios-development.html?gi-language=c), I tried to install the latest version of GStreamer **1.18**: https://gstreamer.freedesktop.org/data/pkg/ios/1.18.0/
and the installer fails.
![image](/uploads/a3665d3351deaf823631505670cf459d/image.png)
The only information given is:
> The installation failed.
> The installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.
Here's my system information:
![image](/uploads/6e25ca1f96e8fdfa5d5a7e0f8bbdb081/image.png)https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/286Allow removing the pad probe from inside the callback via the ProbeInfo::prob...2021-02-28T17:53:44ZNazar MokrynskyiAllow removing the pad probe from inside the callback via the ProbeInfo::probe_idThese seem to be just new types for u64, so it must be possible to derive `Clone, Copy` on them.
Otherwise something like `pad.remove_probe(info.id)` from within probe handler doesn't work and requires something like `pad.remove_probe(P...These seem to be just new types for u64, so it must be possible to derive `Clone, Copy` on them.
Otherwise something like `pad.remove_probe(info.id)` from within probe handler doesn't work and requires something like `pad.remove_probe(PadProbeId::from_glib(info.id.to_glib()))`.https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/19Audio and video UDP streaming2020-10-19T09:39:11ZAndresAudio and video UDP streamingI am trying to send video and audio via UDP from windows to myself for example, but my pipeline does not work.
My only purpose is to mux video and audio, to send it via UDP, and being able to receive it.
Any help, please?
Server:
gs...I am trying to send video and audio via UDP from windows to myself for example, but my pipeline does not work.
My only purpose is to mux video and audio, to send it via UDP, and being able to receive it.
Any help, please?
Server:
gst-launch-1.0 -v ksvideosrc ! "video/x-raw, height=480" ^
! videoconvert ^
! x264enc tune=zerolatency bitrate=3096 byte-stream=true threads=4 key-int-max=15 intra-refresh=true ^
! queue ! mpegtsmux name=mux ! queue ! udpsink host=127.0.0.1 port=10003 autoaudiosrc ^
! audioconvert ! "audio/x-raw,channels=1,rate=48000" ! queue ! opusenc bitrate=128000 ! queue ^
! mux. -e
Client:
gst-launch-1.0 -v udpsrc port=10003 ! tsdemux name=demux demux. ^
! h264parse ! avdec_h264 ! videoconvert ^
! autovideosink demux. ! queue ! opusdec ^
audioconvert ! autoaudiosinkhttps://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/83License question: LGPL-2.1+ or LGPL-2.0+ ?2020-10-17T13:22:46ZFabrice FontaineLicense question: LGPL-2.1+ or LGPL-2.0+ ?Commit c437e175ad9c82732ac46e36ccc398ad041bf13b mentions LGPL-2.1+, but the license text is
LGPL-2.0, and the source files mention LGPL-2.0+, e.g.:
https://gitlab.freedesktop.org/gstreamer/gst-libav/-/blob/master/ext/libav/gstav.c
...Commit c437e175ad9c82732ac46e36ccc398ad041bf13b mentions LGPL-2.1+, but the license text is
LGPL-2.0, and the source files mention LGPL-2.0+, e.g.:
https://gitlab.freedesktop.org/gstreamer/gst-libav/-/blob/master/ext/libav/gstav.c
https://gitlab.freedesktop.org/gstreamer/gst-libav/-/blob/master/ext/libav/gstavcfg.c
https://gitlab.freedesktop.org/gstreamer/gst-libav/-/blob/master/ext/libav/gstavvidenc.c
https://gitlab.freedesktop.org/gstreamer/gst-libav/-/blob/master/tests/check/elements/avaudenc.c
which all have:
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
So, could you clarify the license: is it LGPL-2.0+ or LGPL-2.1+?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1429cuda: Add to documentation2021-11-05T13:24:45ZNicolas Dufresnecuda: Add to documentationAs noted in comment https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633#note_655985 the new cuda work got merged without a documentation complaint, a clear sign it's not hooked into it. Would be nice to get tha...As noted in comment https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633#note_655985 the new cuda work got merged without a documentation complaint, a clear sign it's not hooked into it. Would be nice to get that done by 1.20.
cc @julianhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/829playbin3 fails to start playback on network filesystem files2021-03-20T07:07:44ZIvan Molodetskikhplaybin3 fails to start playback on network filesystem filesFedora 33, gstreamer1-1.18.0-1.fc33.x86_64
`playbin` works fine ([`GST_DEBUG 4`](/uploads/ef2a302647d30e23e81e470b9f92a6b0/playbin-log)):
```
└─ gst-play-1.0 sftp://spw/home/webserver/www/bg.jpg
Press 'k' to see a list of keyboard shor...Fedora 33, gstreamer1-1.18.0-1.fc33.x86_64
`playbin` works fine ([`GST_DEBUG 4`](/uploads/ef2a302647d30e23e81e470b9f92a6b0/playbin-log)):
```
└─ gst-play-1.0 sftp://spw/home/webserver/www/bg.jpg
Press 'k' to see a list of keyboard shortcuts.
Now playing sftp://spw/home/webserver/www/bg.jpg
Prerolling...
Buffering... 100%
Reached end of play list.
```
`playbin3` freezes ([`GST_DEBUG 4`](/uploads/cb9693fe8f6bdc711ea255cd7576db8c/playbin3-log)):
```
└─ gst-play-1.0 --use-playbin3 sftp://spw/home/webserver/www/bg.jpg
Press 'k' to see a list of keyboard shortcuts.
Now playing sftp://spw/home/webserver/www/bg.jpg
Prerolling...
```
I'm hitting the same from my app using `playbin3`. It never finishes pre-rolling after setting it to Paused.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/798qmlglsink: crashes when created and destroyed in quick succession2020-10-20T18:58:29ZBastien Rebouletqmlglsink: crashes when created and destroyed in quick successionqmlglsink crashes when created and destroyed in quick succession.
Crash is very easy to reproduce, see snippet below:
```qml
import QtQuick 2.11
import org.freedesktop.gstreamer.GLVideoItem 1.0
Item {
Loader {
id: sinkLoade...qmlglsink crashes when created and destroyed in quick succession.
Crash is very easy to reproduce, see snippet below:
```qml
import QtQuick 2.11
import org.freedesktop.gstreamer.GLVideoItem 1.0
Item {
Loader {
id: sinkLoader
sourceComponent: Component { GstGLVideoItem {} }
}
Timer {
interval: 1
running: true
repeat: true
onTriggered: sinkLoader.active = !sinkLoader.active;
}
}
```
Reproduced on:
- Ubuntu 18.04 (X11) with gst-plugins-good-1.14.5 and Qt 5.11.2
- Embedded Linux (Wayland) with gst-plugins-good-1.16.2 and Qt 5.11.2
- Embedded Linux (Wayland) with gst-plugins-good-master (5fb5abc8a8f1c021238562e013a171f3c9959625) and Qt 5.11.2
Analysis:
It seems to be caused by a race condition where the render thread calls a method on the QtGLVideoItem instance that was previously destroyed in the main thread, here: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/ext/qt/qtitem.cc#L100
Also, less frequently, QtGLVideoItem::onSceneGraphInitialized is called when QQuickItem::window is null, also causing a crash.https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/279h264 encode not working with comet lake with iHD2020-10-16T16:12:50Zwest jonesh264 encode not working with comet lake with iHDI have updated to gstreamer 1.18 and I am still having the same issue with the iHD not working with Comet lake.
Error: Internal data stream error. gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:receiver_pipeline/GstAppSrc:decode...I have updated to gstreamer 1.18 and I am still having the same issue with the iHD not working with Comet lake.
Error: Internal data stream error. gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:receiver_pipeline/GstAppSrc:decoded_buf_appsrc: streaming stopped, reason error (-5)
Error: Internal data stream error. ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline/GstBin:bin0/GstAppSrc:appsrc: streaming stopped, reason error (-5)
gst-inspect-1.0 vaapi Plugin Details: Name vaapi Description VA-API based elements Filename /opt/sp/lib/gstreamer-1.0/libgstvaapi.so Version 1.18.0 License LGPL Source module gstreamer-vaapi Source release date 2020-09-08 Binary package gstreamer-vaapi Origin URL https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues
0 features:
sudo vainfo error: XDG_RUNTIME_DIR not set in the environment. error: can't connect to X server! libva info: VA-API version 1.8.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_7 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.8 (libva 2.8.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 () vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLDhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/617Crash when processing some matroska files2022-11-10T09:21:05ZGerman SalvadorCrash when processing some matroska filesCrash when processing some matroska files
We are having crashes when processing some matroska files. The pipeline we are trying to run is:
```
gst-launch-1.0 filesrc location=[RTzzzzzzzzzzzzzzzzzzzzzz.tgz](/uploads/490af73ac8b7a7063776...Crash when processing some matroska files
We are having crashes when processing some matroska files. The pipeline we are trying to run is:
```
gst-launch-1.0 filesrc location=[RTzzzzzzzzzzzzzzzzzzzzzz.tgz](/uploads/490af73ac8b7a7063776757fcd0a1909/RTzzzzzzzzzzzzzzzzzzzzzz.tgz).mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ! deinterlace ! videoconvert ! video/x-raw,format=I420,width=320,height=180,framerate=28/1 ! filesink location=/dev/null
```
Running the same pipeline without the caps works.
```
#0 _int_malloc (av=av@entry=0x7ffff0000020, bytes=bytes@entry=97) at malloc.c:3856
#1 0x00007ffff7b60fdf in _int_realloc (av=av@entry=0x7ffff0000020, oldp=oldp@entry=0x7ffff001e880, oldsize=oldsize@entry=64, nb=112) at malloc.c:4600
#2 0x00007ffff7b632d6 in __GI___libc_realloc (oldmem=0x7ffff001e890, bytes=96) at malloc.c:3235
#3 0x00007ffff7d93d80 in g_realloc () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff7f5ce89 in __gst_vasnprintf (resultbuf=resultbuf@entry=0x0, lengthp=lengthp@entry=0x7ffff529ced0, format=<optimized out>, args=args@entry=0x7ffff529d030) at ../subprojects/gstreamer/gst/printf/vasnprintf.c:346
#5 0x00007ffff7f5e4fb in __gst_vasprintf (result=result@entry=0x7ffff529d020, format=<optimized out>, args=args@entry=0x7ffff529d030) at ../subprojects/gstreamer/gst/printf/printf.c:154
#6 0x00007ffff7ef4860 in gst_debug_message_get (message=0x7ffff529d020) at ../subprojects/gstreamer/gst/gstinfo.c:602
#7 0x00007ffff7ef48a2 in _gst_debug_log_preamble (message=<optimized out>, object=object@entry=0x0, file=file@entry=0x7ffff529cf88, message_str=message_str@entry=0x7ffff529cfa0, obj_str=obj_str@entry=0x7ffff529cf98, elapsed=elapsed@entry=0x7ffff529cf90) at ../subprojects/gstreamer/gst/gstinfo.c:1151
#8 0x00007ffff7ef5d73 in gst_debug_log_default (category=0x55555556d4c0, level=GST_LEVEL_TRACE, file=<optimized out>, function=0x7ffff7f78b30 <__func__.22420> "gst_mini_object_lock", line=221, object=0x0, message=0x7ffff529d020, user_data=0x7ffff7cb15c0 <_IO_2_1_stderr_>) at ../subprojects/gstreamer/gst/gstinfo.c:1293
#9 0x00007ffff7ef4f66 in gst_debug_log_valist (category=0x55555556d4c0, level=GST_LEVEL_TRACE, file=0x7ffff7f78490 "../subprojects/gstreamer/gst/gstminiobject.c", function=0x7ffff7f78b30 <__func__.22420> "gst_mini_object_lock", line=221, object=0x0, format=0x7ffff7f78520 "lock %p: state %08x, access_mode %d", args=0x7ffff529d0a0) at ../subprojects/gstreamer/gst/gstinfo.c:580
#10 0x00007ffff7ef50bb in gst_debug_log (category=<optimized out>, level=level@entry=GST_LEVEL_TRACE, file=file@entry=0x7ffff7f78490 "../subprojects/gstreamer/gst/gstminiobject.c", function=function@entry=0x7ffff7f78b30 <__func__.22420> "gst_mini_object_lock", line=line@entry=221, object=object@entry=0x0, format=0x7ffff7f78520 "lock %p: state %08x, access_mode %d") at ../subprojects/gstreamer/gst/gstinfo.c:512
#11 0x00007ffff7efe9af in gst_mini_object_lock (object=object@entry=0x7ffff03ae490, flags=flags@entry=GST_LOCK_FLAG_EXCLUSIVE) at ../subprojects/gstreamer/gst/gstminiobject.c:220
#12 0x00007ffff7ec82cc in _memory_get_exclusive_reference (mem=0x7ffff03ae490) at ../subprojects/gstreamer/gst/gstbuffer.c:430
#13 gst_buffer_copy_into (dest=0x5555557ac6c0, src=0x7ffff03fe360, flags=(GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_META | GST_BUFFER_COPY_MEMORY), offset=0, size=<optimized out>) at ../subprojects/gstreamer/gst/gstbuffer.c:638
#14 0x00007ffff7ec868f in gst_buffer_copy_with_flags (buffer=0x7ffff03fe360, flags=(GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_META | GST_BUFFER_COPY_MEMORY)) at ../subprojects/gstreamer/gst/gstbuffer.c:713
#15 0x00007ffff7000f9a in gst_buffer_copy (buf=0x7ffff03fe360) at ../subprojects/gstreamer/gst/gstbuffer.h:485
#16 default_prepare_output_buffer (trans=0x555555806250, inbuf=0x7ffff03fe360, outbuf=0x7ffff529d380) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1678
#17 0x00007ffff6fff344 in default_generate_output (trans=0x555555806250, outbuf=0x7ffff529d380) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2159
#18 0x00007ffff6ffecd6 in gst_base_transform_chain (pad=<optimized out>, parent=0x555555806250, buffer=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2341
#19 0x00007ffff7f04602 in gst_pad_chain_data_unchecked (data=0x7ffff03fe360, type=4112, pad=0x5555557a4a50) at ../subprojects/gstreamer/gst/gstpad.c:4399
#20 gst_pad_push_data (pad=pad@entry=0x5555557a4800, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff03fe360) at ../subprojects/gstreamer/gst/gstpad.c:4655
#21 0x00007ffff7f0d032 in gst_pad_push (pad=0x5555557a4800, buffer=buffer@entry=0x7ffff03fe360) at ../subprojects/gstreamer/gst/gstpad.c:4774
#22 0x00007ffff6e9e66e in gst_video_decoder_clip_and_push_buf (decoder=decoder@entry=0x5555557f2c10, buf=buf@entry=0x7ffff03fe360) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3465
#23 0x00007ffff6ea4041 in gst_video_decoder_finish_frame (decoder=0x5555557f2c10, frame=0x0, frame@entry=0x7ffff0352a60) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3316
#24 0x00007ffff6cd5763 in gst_ffmpegviddec_video_frame (ret=<optimized out>, frame=0x7ffff04055c0, ffmpegdec=<optimized out>) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1755
#25 gst_ffmpegviddec_frame (ffmpegdec=<optimized out>, frame=0x7ffff04055c0, ret=<optimized out>) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1796
#26 0x00007ffff6cd64e2 in gst_ffmpegviddec_handle_frame (decoder=0x5555557f2c10, frame=0x7ffff04055c0) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1927
#27 0x00007ffff6ea16f2 in gst_video_decoder_decode_frame (decoder=decoder@entry=0x5555557f2c10, frame=0x7ffff04055c0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3705
#28 0x00007ffff6ea1c28 in gst_video_decoder_chain_forward (decoder=decoder@entry=0x5555557f2c10, buf=buf@entry=0x7ffff04065a0, at_eos=at_eos@entry=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2340
#29 0x00007ffff6ea3311 in gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>, buf=0x7ffff04065a0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2655
#30 0x00007ffff7f04602 in gst_pad_chain_data_unchecked (data=0x7ffff04065a0, type=4112, pad=0x5555557a45b0) at ../subprojects/gstreamer/gst/gstpad.c:4399
#31 gst_pad_push_data (pad=pad@entry=0x55555582a770, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff04065a0) at ../subprojects/gstreamer/gst/gstpad.c:4655
#32 0x00007ffff7f0d032 in gst_pad_push (pad=0x55555582a770, buffer=buffer@entry=0x7ffff04065a0) at ../subprojects/gstreamer/gst/gstpad.c:4774
#33 0x00007ffff6f716bb in gst_matroska_demux_parse_blockgroup_or_simpleblock (demux=demux@entry=0x5555557aa000, ebml=ebml@entry=0x7ffff529dd00, cluster_time=<optimized out>, is_simpleblock=is_simpleblock@entry=1, cluster_offset=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:4843
#34 0x00007ffff6f78cea in gst_matroska_demux_parse_id (demux=demux@entry=0x5555557aa000, id=<optimized out>, length=<optimized out>, needed=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5572
#35 0x00007ffff6f7f7c6 in gst_matroska_demux_loop (pad=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5761
#36 0x00007ffff7f3aed1 in gst_task_func (task=0x5555557ac3b0) at ../subprojects/gstreamer/gst/gsttask.c:328
#37 0x00007ffff7db81d4 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff7db7931 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ffff7cc0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#40 0x00007ffff7be7293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
Full log is attached.
[RTzzzzzzzzzzzzzzzzzzzzzz.tgz](/uploads/0dad074b28a7fc613b5603cf26242c2c/RTzzzzzzzzzzzzzzzzzzzzzz.tgz)https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/82Crash when processing matroska files: "corrupted double-linked list"2020-10-16T13:41:33ZGerman SalvadorCrash when processing matroska files: "corrupted double-linked list"We are having crashes when processing some matroska files. The pipeline we are trying to run is:
`gst-launch-1.0 filesrc location=RTxxxxxxxxxxxxxxxxxxx.mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ! deinterlace ! videoconve...We are having crashes when processing some matroska files. The pipeline we are trying to run is:
`gst-launch-1.0 filesrc location=RTxxxxxxxxxxxxxxxxxxx.mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ! deinterlace ! videoconvert ! video/x-raw,format=I420,width=320,height=180,framerate=28/1 ! filesink location=/dev/null`
Maybe this is related to #80, although the crash dump is different.
```
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff7aea859 in __GI_abort () at abort.c:79
#2 0x00007ffff7b553ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff7c7f285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007ffff7b5d47c in malloc_printerr (str=str@entry=0x7ffff7c7d457 "corrupted double-linked list") at malloc.c:5347
#4 0x00007ffff7b5dacc in unlink_chunk (p=p@entry=0x7ffff03acbf0, av=0x7ffff0000020) at malloc.c:1460
#5 0x00007ffff7b60773 in _int_malloc (av=av@entry=0x7ffff0000020, bytes=bytes@entry=2560) at malloc.c:4041
#6 0x00007ffff7b62419 in __GI___libc_malloc (bytes=2560) at malloc.c:3066
#7 0x00007ffff7d93d80 in g_realloc () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007ffff6ede478 in realloc_tmplines (scale=scale@entry=0x7ffff03326e0, n_elems=<optimized out>, width=320) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-scaler.c:157
#9 0x00007ffff6ee0796 in gst_video_scaler_2d (hscale=0x7ffff03326e0, vscale=0x7ffff0412c60, format=<optimized out>, src=0x7ffff02f74a0, src_stride=320, dest=0x7ffff03e4090, dest_stride=320, x=0, y=0, width=<optimized out>, height=180) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-scaler.c:1532
#10 0x00007ffff6ec1f23 in convert_plane_hv_task (task=<optimized out>) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-converter.c:6305
#11 0x00007ffff6ebf149 in gst_parallelized_task_runner_run (self=self@entry=0x7ffff0023110, func=func@entry=0x7ffff6ec1ef0 <convert_plane_hv_task>, task_data=task_data@entry=0x7ffff529ca60) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-converter.c:297
#12 0x00007ffff6ec0abb in convert_plane_hv (convert=<optimized out>, src=<optimized out>, dest=<optimized out>, plane=<optimized out>) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-converter.c:6368
#13 0x00007ffff6ec91a9 in convert_scale_planes (convert=0x7ffff0014fc0, src=0x7ffff529cba0, dest=0x7ffff529ce40) at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-converter.c:6381
#14 0x00007ffff52d28c3 in gst_video_scale_transform_frame (filter=0x555555808a10, in_frame=0x7ffff529cba0, out_frame=0x7ffff529ce40) at ../subprojects/gst-plugins-base/gst/videoscale/gstvideoscale.c:1177
#15 0x00007ffff6eafe5f in gst_video_filter_transform (trans=0x555555808a10, inbuf=<optimized out>, outbuf=0x7ffff040bb40) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideofilter.c:276
#16 0x00007ffff6fff435 in default_generate_output (trans=0x555555808a10, outbuf=0x7ffff529d150) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2188
#17 0x00007ffff6ffecd6 in gst_base_transform_chain (pad=<optimized out>, parent=0x555555808a10, buffer=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2341
#18 0x00007ffff7f04602 in gst_pad_chain_data_unchecked (data=0x7ffff01fcb40, type=4112, pad=0x5555557a4ef0) at ../subprojects/gstreamer/gst/gstpad.c:4399
#19 gst_pad_push_data (pad=pad@entry=0x5555557a4ca0, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff01fcb40) at ../subprojects/gstreamer/gst/gstpad.c:4655
#20 0x00007ffff7f0d032 in gst_pad_push (pad=0x5555557a4ca0, buffer=0x7ffff01fcb40) at ../subprojects/gstreamer/gst/gstpad.c:4774
#21 0x00007ffff52e27bd in gst_video_rate_transform_ip (trans=<optimized out>, buffer=0x7ffff01fab40) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1710
#22 0x00007ffff6fff4f6 in default_generate_output (trans=0x555555806250, outbuf=0x7ffff529d380) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2183
#23 0x00007ffff6ffecd6 in gst_base_transform_chain (pad=<optimized out>, parent=0x555555806250, buffer=<optimized out>) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2341
#24 0x00007ffff7f04602 in gst_pad_chain_data_unchecked (data=0x7ffff03af6c0, type=4112, pad=0x5555557a4a50) at ../subprojects/gstreamer/gst/gstpad.c:4399
#25 gst_pad_push_data (pad=pad@entry=0x5555557a4800, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff03af6c0) at ../subprojects/gstreamer/gst/gstpad.c:4655
#26 0x00007ffff7f0d032 in gst_pad_push (pad=0x5555557a4800, buffer=buffer@entry=0x7ffff03af6c0) at ../subprojects/gstreamer/gst/gstpad.c:4774
#27 0x00007ffff6e9e66e in gst_video_decoder_clip_and_push_buf (decoder=decoder@entry=0x5555557f2c10, buf=buf@entry=0x7ffff03af6c0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3465
#28 0x00007ffff6ea4041 in gst_video_decoder_finish_frame (decoder=0x5555557f2c10, frame=0x0, frame@entry=0x7ffff0352b80) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3316
#29 0x00007ffff6cd5763 in gst_ffmpegviddec_video_frame (ret=<optimized out>, frame=0x7ffff01fb3e0, ffmpegdec=<optimized out>) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1755
#30 gst_ffmpegviddec_frame (ffmpegdec=<optimized out>, frame=0x7ffff01fb3e0, ret=<optimized out>) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1796
#31 0x00007ffff6cd64e2 in gst_ffmpegviddec_handle_frame (decoder=0x5555557f2c10, frame=0x7ffff01fb3e0) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1927
#32 0x00007ffff6ea16f2 in gst_video_decoder_decode_frame (decoder=decoder@entry=0x5555557f2c10, frame=0x7ffff01fb3e0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3705
#33 0x00007ffff6ea1c28 in gst_video_decoder_chain_forward (decoder=decoder@entry=0x5555557f2c10, buf=buf@entry=0x7ffff0410360, at_eos=at_eos@entry=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2340
#34 0x00007ffff6ea3311 in gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>, buf=0x7ffff0410360) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2655
#35 0x00007ffff7f04602 in gst_pad_chain_data_unchecked (data=0x7ffff0410360, type=4112, pad=0x5555557a45b0) at ../subprojects/gstreamer/gst/gstpad.c:4399
#36 gst_pad_push_data (pad=pad@entry=0x55555582a770, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff0410360) at ../subprojects/gstreamer/gst/gstpad.c:4655
#37 0x00007ffff7f0d032 in gst_pad_push (pad=0x55555582a770, buffer=buffer@entry=0x7ffff0410360) at ../subprojects/gstreamer/gst/gstpad.c:4774
#38 0x00007ffff6f716bb in gst_matroska_demux_parse_blockgroup_or_simpleblock (demux=demux@entry=0x5555557aa000, ebml=ebml@entry=0x7ffff529dd00, cluster_time=<optimized out>, is_simpleblock=is_simpleblock@entry=1, cluster_offset=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:4843
#39 0x00007ffff6f78cea in gst_matroska_demux_parse_id (demux=demux@entry=0x5555557aa000, id=<optimized out>, length=<optimized out>, needed=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5572
#40 0x00007ffff6f7f7c6 in gst_matroska_demux_loop (pad=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5761
#41 0x00007ffff7f3aed1 in gst_task_func (task=0x5555557ac3b0) at ../subprojects/gstreamer/gst/gsttask.c:328
#42 0x00007ffff7db81d4 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007ffff7db7931 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007ffff7cc0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#45 0x00007ffff7be7293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
As in #80, removing the caps from the pipeline makes this work without crashes
Full log is attached.
[RTxxxxxxxxxxxxxxxxxxx.tgz](/uploads/0552aa05d735f8e9b36a5db3820c025c/RTxxxxxxxxxxxxxxxxxxx.tgz)https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/81gst-libav memory leak2020-10-16T13:38:03ZRichardgst-libav memory leakHello
I have a closed application developed using Qt5.12 that runs on a Wayland kiosk on a basic ubuntu 18.04 (x64) based installation.
Part of the closed application is to play videos (MP4).
the installation is currently 18.04.4 based, ...Hello
I have a closed application developed using Qt5.12 that runs on a Wayland kiosk on a basic ubuntu 18.04 (x64) based installation.
Part of the closed application is to play videos (MP4).
the installation is currently 18.04.4 based, with gstreamer 1.14.5 installed
Unfortunately, our application gradually eats memory until after roughly 20 hours is killed and restarted as the memory is exhausted.
If I remove gstreamer1.0-libav from the system - the application runs lovely, no memory leak - however we only have audio and no visuals from the video playback.
Is there a patch that I can use to update the gstreamer installation on top of ubuntu 18.04 that hopefully addresses what I believe to be a fault within libav?
Interestingly, we have a side development of a similar system running on a Raspberry Pi - and here, we also don't see any memory leaks for the exact same build / videos - however, i believe it is utilising gstreamer1.0-omx :)
The issue is seriously hampering our ability to release this as a finished product.
Regards
Richardhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/616Plain text file causes CRITICAL error in playbin on macos.2020-10-17T18:00:43ZDavid MandelbergPlain text file causes CRITICAL error in playbin on macos.On macos with gstreamer 1.18.0:
```
$ printf '%s' 'This is probably not a valid wav file.' > error.wav
$ G_DEBUG=fatal-criticals gst-launch-1.0 --gst-debug='*:3,GST_EVENT:4' playbin uri=file://$PWD/error.wav
Setting pipeline to PAUSED ....On macos with gstreamer 1.18.0:
```
$ printf '%s' 'This is probably not a valid wav file.' > error.wav
$ G_DEBUG=fatal-criticals gst-launch-1.0 --gst-debug='*:3,GST_EVENT:4' playbin uri=file://$PWD/error.wav
Setting pipeline to PAUSED ...
0:00:09.494153000 1919 0x7f8dce025180 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
0:00:09.494432000 1919 0x7f8dce025180 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:09.494540000 1919 0x7f8dce025180 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:09.494568000 1919 0x7f8dce025180 INFO GST_EVENT gstpad.c:5891:gst_pad_send_event_unchecked:<source:src> Received event on flushing pad. Discarding
0:00:09.494649000 1919 0x7f8dce025180 WARN basesrc gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not activated yet
Pipeline is PREROLLING ...
0:00:09.506749000 1919 0x7f8dcd033180 WARN structure gststructure.c:330:gst_structure_validate_name: Invalid character '*' at offset 5 in structure name: text/*
(gst-launch-1.0:1919): GStreamer-CRITICAL **: 01:44:13.679: gst_structure_new_valist: assertion 'gst_structure_validate_name (name)' failed
```
That didn't seem to happen with previous versions of gstreamer, and it doesn't happen on linux. It looks like the file is detected as `text/plain` on linux, but `text/*` on macos. I wasn't sure whether to file this as a bug against `gstreamer` for the `gst_structure_validate_name` function, or against `gst-plugins-base` (or somewhere else?) for the result from typefind. Feel free to move this bug if I got it wrong.
P.S. I know trying to play a text file is a bit strange, but I use it to test how my application handles errors from gstreamer.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/796v4l2h264enc element stalls if pipeline is reconfigured2023-06-08T15:51:45ZJames Cowgillv4l2h264enc element stalls if pipeline is reconfiguredWith GStreamer 1.18 this pipeline stalls after processing one frame:
```
gst-launch-1.0 -v videotestsrc ! v4l2h264enc ! decodebin ! fakesink
```
(I know the pipeline is a bit contrived. What matters is the `decodebin` element causes a ...With GStreamer 1.18 this pipeline stalls after processing one frame:
```
gst-launch-1.0 -v videotestsrc ! v4l2h264enc ! decodebin ! fakesink
```
(I know the pipeline is a bit contrived. What matters is the `decodebin` element causes a reconfigure after `v4l2h264enc` has been setup).
The same pipeline works with GStreamer 1.16.
In both versions I tested this with the Hantro encoder, but I don't think the actual encoder implementation matters in this bug.
---
I think this is caused by https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/85b9893e963ea5d342289e318daeefba35ff4a07 and this is what is happening:
* `videotestsrc` and `v4l2h264enc` are negotiated normally. The V4L2 pool is used between these two elements and gets activated.
* When `decodebin` is negotiated it links some new elements together causing a pipeline reconfigure.
* `videotestsrc` gets to the point where it performs the allocation query with the old V4L2 pool still activated. The `v4l2h264enc` element replies with no pools due to the above commit.
* `videotestsrc` deactivates the V4L2 pool and creates its own pool.
* When `v4l2h264enc` gets a new buffer it gets a bit confused and returns flushing because the V4L2 pool is not activated and the encoder task is already running (which would activate the pool if needed). The pipeline then stalls.
I'm not sure what the right fix for this would be (if the above commit is wrong, or maybe the V4L2 pool should get "reactivated" in this case).