GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2021-09-24T13:31:00Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/163v4l2: expose memory:DMABuf capsfeature2021-09-24T13:31:00ZBugzilla Migration Userv4l2: expose memory:DMABuf capsfeature## Submitted by Gwenole Beauchesne `@gb`
**[Link to original bug (#745459)](https://bugzilla.gnome.org/show_bug.cgi?id=745459)**
## Description
This is a follow-up to [bug 743345](https://bugzilla.gnome.org/show_bug.cgi?id=743345) w...## Submitted by Gwenole Beauchesne `@gb`
**[Link to original bug (#745459)](https://bugzilla.gnome.org/show_bug.cgi?id=745459)**
## Description
This is a follow-up to [bug 743345](https://bugzilla.gnome.org/show_bug.cgi?id=743345) where it became apparent that some memory:dmabuf capsfeature could be useful for both negotiation purposes, but also probable optimization wins.
Though, the initial intent here is only to help negotiation of elements.
### Depends on
* [Bug 759358](https://bugzilla.gnome.org/show_bug.cgi?id=759358)
### Blocking
* [Bug 755072](https://bugzilla.gnome.org/show_bug.cgi?id=755072)
### See also
* [Bug 743345](https://bugzilla.gnome.org/show_bug.cgi?id=743345)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/158scaletempo: add mode for speech speed algorithm from libsonic2021-09-24T13:30:58ZBugzilla Migration Userscaletempo: add mode for speech speed algorithm from libsonic## Submitted by Frédéric Wang
**[Link to original bug (#744062)](https://bugzilla.gnome.org/show_bug.cgi?id=744062)**
## Description
I'm opening this bug as I plan to create a plugin for libsonic:
https://raw.githubusercontent....## Submitted by Frédéric Wang
**[Link to original bug (#744062)](https://bugzilla.gnome.org/show_bug.cgi?id=744062)**
## Description
I'm opening this bug as I plan to create a plugin for libsonic:
https://raw.githubusercontent.com/waywardgeek/sonic/master/README
For now, the closest I found is the "scaletempo" element (WSOLA/SoundTouch). Here is how Sonic's author compares his algorithm with WSOLA/SoundTouch:
https://github.com/waywardgeek/sonic/blob/master/doc/index.md#comparison-to-other-solutionshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/156rtpjitterbuffer: add "do-deadline" property2021-09-24T13:30:58ZBugzilla Migration Userrtpjitterbuffer: add "do-deadline" property## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#743945)](https://bugzilla.gnome.org/show_bug.cgi?id=743945)**
## Description
Created attachment 296048
Patch v1
I have noticed that gstjitterbuffer add...## Submitted by Miguel París Díaz `@mparisdiaz`
**[Link to original bug (#743945)](https://bugzilla.gnome.org/show_bug.cgi?id=743945)**
## Description
Created attachment 296048
Patch v1
I have noticed that gstjitterbuffer adds an initial delay of "latency" in ms retaining the firsts packets.
This behaviour can be useful in some cases, but not in others cases where the time of the media establishment is too important.
To solve this, I have added a new property to configure the behaviour of the jitter buffer: "do-deadline".
By default it has the value of TRUE, so the element has the same behaviour that until now.
**Patch 296048**, "Patch v1":
[0001-gstrtpjitterbuffer-add-do-deadline-property.patch](/uploads/98adfb83a4986a1d1c41d56236324cde/0001-gstrtpjitterbuffer-add-do-deadline-property.patch)
Version: 1.4.5https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/152v4l2: support radio devices in device monitor2021-09-24T13:30:56ZBugzilla Migration Userv4l2: support radio devices in device monitor## Submitted by bud..@..il.com
**[Link to original bug (#743108)](https://bugzilla.gnome.org/show_bug.cgi?id=743108)**
## Description
I want to create a filter to monitored v4l2 radio device in my system using GstDeviceMonitor.
Wi...## Submitted by bud..@..il.com
**[Link to original bug (#743108)](https://bugzilla.gnome.org/show_bug.cgi?id=743108)**
## Description
I want to create a filter to monitored v4l2 radio device in my system using GstDeviceMonitor.
With actual API, can monitor a v4l2 device with tv tuner but do not know if it is possible to create a filter for radio tuner.
Version: 1.4.5https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/146qtmux: handle overlapping subtitle buffers properly2021-09-24T13:30:53ZBugzilla Migration Userqtmux: handle overlapping subtitle buffers properly## Submitted by Matej `@Knopp`
**[Link to original bug (#741306)](https://bugzilla.gnome.org/show_bug.cgi?id=741306)**
## Description
Overlapping subtitle buffers (buffers that start before previous buffer ends) are legal in many co...## Submitted by Matej `@Knopp`
**[Link to original bug (#741306)](https://bugzilla.gnome.org/show_bug.cgi?id=741306)**
## Description
Overlapping subtitle buffers (buffers that start before previous buffer ends) are legal in many containers (i.e. MKV), but can not be represented in MP4. Trying to remux such file currently results in invalid file, because timestamp delta between buffer end time and next buffer start time is negative
In order to handle this well, the muxer should split and combine buffers in a way so that no information is lost. I.e. Two overlapping input buffers should be muxed as three separate buffers, with second buffer combining content from both input buffers.
[=======Buffer In 1========]
[=======Buffer In 2========]
[Buffer Out 1][Buffer Out 2][Buffer Out 3]
Sample MKV file with overlapped subtitles
https://s3.amazonaws.com/MatejK/Samples/OverlappedSubtitles.mkv
Remuxed file without the patch
https://s3.amazonaws.com/MatejK/Samples/OverlappedSubtitlesWithoutPatch.mp4
Remuxed file with the patch
https://s3.amazonaws.com/MatejK/Samples/OverlappedSubtitlesWithPatch.mp4https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/133souphttpsrc: add 'pause-mode' property2021-09-24T13:30:47ZBugzilla Migration Usersouphttpsrc: add 'pause-mode' property## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#738298)](https://bugzilla.gnome.org/show_bug.cgi?id=738298)**
## Description
The DLNA CVP-2 spec defines different 'pause' modes regarding the way client shou...## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#738298)](https://bugzilla.gnome.org/show_bug.cgi?id=738298)**
## Description
The DLNA CVP-2 spec defines different 'pause' modes regarding the way client should handle the HTTP connection when being paused:
- stalling pause: keep the connection open and just stop reading from it. When resuming just resume reading from the connection. This is the current behavior in souphttpsrc.
- time/range pause: close the HTTP connection when pausing. When resuming re-establish a new HTTP connection and perform a time or range seek request to the server.
In order to support this new mode, we need some API controlling the behaviour of souphttpsrc when pausing.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/132wavparse should read the Broadcast Wave Format (BWF)2021-09-24T13:30:46ZBugzilla Migration Userwavparse should read the Broadcast Wave Format (BWF)## Submitted by Peter G. Baum
**[Link to original bug (#738248)](https://bugzilla.gnome.org/show_bug.cgi?id=738248)**
## Description
Created attachment 288150
Patch to read the meta data in bext and convert it to tags
That me...## Submitted by Peter G. Baum
**[Link to original bug (#738248)](https://bugzilla.gnome.org/show_bug.cgi?id=738248)**
## Description
Created attachment 288150
Patch to read the meta data in bext and convert it to tags
That means in should not skip, but read the bext chunk.
This is necessary to use gstreamer in professional environments, where the data in the bext chunk is used.
~~**Patch 288150**~~, "Patch to read the meta data in bext and convert it to tags":
[0001-gstwavparse-read-broadcast-wave-bext-chunk.patch](/uploads/f038ee872b42453835afc5046d497609/0001-gstwavparse-read-broadcast-wave-bext-chunk.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/129videobox: Use videoconvert APIs for format conversions2021-09-24T13:30:45ZBugzilla Migration Uservideobox: Use videoconvert APIs for format conversions## Submitted by RaviKiran
**[Link to original bug (#737401)](https://bugzilla.gnome.org/show_bug.cgi?id=737401)**
## Description
(Following conversation in bug https://bugzilla.gnome.org/show_bug.cgi?id=733588)
Instead of converti...## Submitted by RaviKiran
**[Link to original bug (#737401)](https://bugzilla.gnome.org/show_bug.cgi?id=737401)**
## Description
(Following conversation in bug https://bugzilla.gnome.org/show_bug.cgi?id=733588)
Instead of converting image formats in videobox, use APIs provided by the videoconvert.
### Depends on
* [Bug 745207](https://bugzilla.gnome.org/show_bug.cgi?id=745207)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/125mp4mux: interleave audio and video in fragments, and reduce interleave2021-09-24T13:30:44ZBugzilla Migration Usermp4mux: interleave audio and video in fragments, and reduce interleave## Submitted by Richard Mitic
**[Link to original bug (#734413)](https://bugzilla.gnome.org/show_bug.cgi?id=734413)**
## Description
The following pipeline will produce a multiplexed video/audio mp4 file with 1-second fragments.
...## Submitted by Richard Mitic
**[Link to original bug (#734413)](https://bugzilla.gnome.org/show_bug.cgi?id=734413)**
## Description
The following pipeline will produce a multiplexed video/audio mp4 file with 1-second fragments.
gst-launch-1.0 mp4mux name=mux fragment-duration=1000 ! filesink location=out.mp4 videotestsrc num-buffers=1500 ! "video/x-raw,framerate=25/1" ! x264enc tune=zerolatency ! mux. audiotestsrc num-buffers=2812 ! "audio/x-raw,rate=48000" ! voaacenc ! mux.
Currently, each media stream is muxed as a separate movie fragment, i.e. for two stream A and V, mp4mux produces A1 V1 A2 V2 A3 V3 etc. However, there is a discrepancy in the length of each associated audio and video fragment, due to the fact that only an integer number of audio or video frames can be packed into a fragment.
In this example, the video fragments contain 25 frames equaling exactly 1 second, but the audio fragments contain 46 frames, equaling 0.9813333 seconds. This error is corrected for by adding two audio fragments in a row when there is enough data buffered. The result is that AN and VN will not necessarily contain media that starts at the same time, with the maximum error being the length of a fragment.
To fix this, the muxer could vary the number of audio frames in each fragment so that the fragment boundary is as close as possible in time to the video fragment boundary. Ideally, the audio and video media data would also be placed in the same ‘mdat’ box, with the associated 'moof' box containing one track fragment for each stream. Just aligning the movie fragment boundaries at the frame level is acceptable though.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/124videomedian: add "iteration" property for higher resolution video where exist...2021-09-24T13:30:44ZBugzilla Migration Uservideomedian: add "iteration" property for higher resolution video where existing filter sizes are not enough## Submitted by hub..@..il.com
**[Link to original bug (#733808)](https://bugzilla.gnome.org/show_bug.cgi?id=733808)**
## Description
Created attachment 281802
add an iteration property to the videomedian element
The videomed...## Submitted by hub..@..il.com
**[Link to original bug (#733808)](https://bugzilla.gnome.org/show_bug.cgi?id=733808)**
## Description
Created attachment 281802
add an iteration property to the videomedian element
The videomedian element just supports two filter sizes: 5 and 9, but it is not enough for high-resolution videos. Therefore, I added an iteration property to the videomedian element for handling high-resolution videos.
**Patch 281802**, "add an iteration property to the videomedian element":
[iter.diff](/uploads/d097c02e1960a012eb03d85978036123/iter.diff)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/119matroskamux: add support for writing CRC32 checksums2021-09-24T13:30:42ZBugzilla Migration Usermatroskamux: add support for writing CRC32 checksums## Submitted by surendra
**[Link to original bug (#731821)](https://bugzilla.gnome.org/show_bug.cgi?id=731821)**
## Description
I am able to record the IP camera H264 stream in to MKV file by using the below
pipe line.
gst-la...## Submitted by surendra
**[Link to original bug (#731821)](https://bugzilla.gnome.org/show_bug.cgi?id=731821)**
## Description
I am able to record the IP camera H264 stream in to MKV file by using the below
pipe line.
gst-launch-1.0 -e rtspsrc
location="rtsp://10.33.15.1:554/udpstream_ch1_stream1" ! rtph264depay !
h264parse ! matroskamux ! filesink location=test1.mkv
I am able to play the recorded file with any MKV (h264)compatible player.
I am checking the recorded MKV file EBML tree using AVI MUX GUI
application(Picture attached).
recorded.png
As per the specification of EMBL MKV file also should contain the CRC32 for the
parent filed(see the spec piture attached).
Recorded MKV file is missing CRC32 elements.
Reference discussion :
http://gstreamer-devel.966125.n4.nabble.com/MKV-file-in-EMBL-Tree-View-CRC32-is-missing-td4667472.htmlhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/113matroskademux: add support for reverse playback in files without index2021-09-24T13:30:40ZBugzilla Migration Usermatroskademux: add support for reverse playback in files without index## Submitted by Farkas Levente `@lfarkas`
**[Link to original bug (#727966)](https://bugzilla.gnome.org/show_bug.cgi?id=727966)**
## Description
Created attachment 273989
proposed patch
here is our proposed patch to matroska...## Submitted by Farkas Levente `@lfarkas`
**[Link to original bug (#727966)](https://bugzilla.gnome.org/show_bug.cgi?id=727966)**
## Description
Created attachment 273989
proposed patch
here is our proposed patch to matroska-demux.c to be able to play backwards in a not indexed (not closed) file.
this is for 0.10.36 but probably the same patch can be applied to the trunk too.
any comments are welcome.
**Patch 273989**, "proposed patch ":
[matroska-demux-seek_backwards.patch](/uploads/0dc035431bfd5d3433c55511dbc9c509/matroska-demux-seek_backwards.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/112v4l2sink: Keep aspect ratio when device scale2021-09-24T13:30:39ZBugzilla Migration Userv4l2sink: Keep aspect ratio when device scale## Submitted by Aurélien Zanelli
**[Link to original bug (#727483)](https://bugzilla.gnome.org/show_bug.cgi?id=727483)**
## Description
Created attachment 273456
v4l2sink: Keep aspect ratio when device scale
It seems to be th...## Submitted by Aurélien Zanelli
**[Link to original bug (#727483)](https://bugzilla.gnome.org/show_bug.cgi?id=727483)**
## Description
Created attachment 273456
v4l2sink: Keep aspect ratio when device scale
It seems to be the responsibility of the application to ensure that aspect ratio is preserved. The device aspect ratio is constant within a standard. I attached a preliminary work which preserve display aspect ratio of the video. It has been written on 1.2 branch but it should apply on master with a little conflict in v4l2_calls.c
Here is the main idea of the solution:
First we determine if device can scale using VIDIOC_CROPCAP ioctl by checking if cropcap.bounds and cropcaps.defrect differs. If so we doesn't want to force PAR in caps.
Then, when we know video information and if scaling is supported, we determine the target rectangle and we set it with CROP ioctl.
This work is not complete since is conflicting with cropping property (crop_*) of v4l2sink element and it scale into output device bounds instead of user-defined display windows.
However before working further on this topic, I think it's better to have comments and remarks.
Regards
~~**Patch 273456**~~, "v4l2sink: Keep aspect ratio when device scale":
[0001-v4l2sink-Keep-aspect-ratio-when-device-scale.patch](/uploads/a614517dc6984ceacdbffbd7fef48dd9/0001-v4l2sink-Keep-aspect-ratio-when-device-scale.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/111vp8enc: generating streamheader is now obsolete2021-09-24T13:30:39ZBugzilla Migration Uservp8enc: generating streamheader is now obsolete## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#726118)](https://bugzilla.gnome.org/show_bug.cgi?id=726118)**
## Description
This is a followup for https://bugzilla.gnome.org/show_bug.cgi?id=722682
...## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#726118)](https://bugzilla.gnome.org/show_bug.cgi?id=726118)**
## Description
This is a followup for https://bugzilla.gnome.org/show_bug.cgi?id=722682
Now that oggmux can generate the streamheaders by itself this code can be removed from vp8enc.
The issue here is that vp8enc implements the tagsetter interface and those tags were being put on the streamheaders. What can be done? Push the tags that are set downstream? Oggmux should be modified to receive those tags and generate these tag headers so they are not lost.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/110v4l2sink: Use GstVideoCropMeta to set overlay window if available2021-09-24T13:30:37ZBugzilla Migration Userv4l2sink: Use GstVideoCropMeta to set overlay window if available## Submitted by Aurélien Zanelli
**[Link to original bug (#725835)](https://bugzilla.gnome.org/show_bug.cgi?id=725835)**
## Description
Created attachment 271119
v4l2sink: Use GstVideoCropMeta to set overlay window if available
...## Submitted by Aurélien Zanelli
**[Link to original bug (#725835)](https://bugzilla.gnome.org/show_bug.cgi?id=725835)**
## Description
Created attachment 271119
v4l2sink: Use GstVideoCropMeta to set overlay window if available
An upstream element could provide buffers with GstVideoCropMeta to v4l2sink.
The main idea of the attached patch is to update the V4L2 overlay window according to incoming GstVideoCropMeta (if available) when rendering frames.
However, current implementation of this will override any overlay rectangle set by set_property() method. Maybe it should be property first then GstVideoCropMeta.
More background:
Our H264 decoder output non-cropped frames with a definition multiple of 16, which is the h264 macroblock size.
When input video definition is not a multiple of 16, encoding/decoding process add padding and provide crop information.
Since our gst pipeline is decoder --> v4l2sink, we want to let the cropping job to the v4l2 device. So decoder send cropping info through GstVideoCropMeta and v4l2sink set overlay window accordingly.
Current patch apply on master and 1.2.3, however i only tested it on 1.2.3
**Patch 271119**, "v4l2sink: Use GstVideoCropMeta to set overlay window if available":
[0001-v4l2sink-Use-GstVideoCropMeta-to-set-overlay-window-.patch](/uploads/0e4371dc448154cd6e3c8ce3eb172c3b/0001-v4l2sink-Use-GstVideoCropMeta-to-set-overlay-window-.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/679new fakevideodec element2021-09-24T13:30:28ZBugzilla Migration Usernew fakevideodec element## Submitted by Julien Isorce `@cap`
**[Link to original bug (#723778)](https://bugzilla.gnome.org/show_bug.cgi?id=723778)**
## Description
I have started a fakevideodec element here http://cgit.collabora.com/git/user/julien/gst-plu...## Submitted by Julien Isorce `@cap`
**[Link to original bug (#723778)](https://bugzilla.gnome.org/show_bug.cgi?id=723778)**
## Description
I have started a fakevideodec element here http://cgit.collabora.com/git/user/julien/gst-plugins-good.git/commit/?h=fakevideodec&id=7a4c1ce6e3ecaa35ffbd74b7e37968e3adc70485
It's useful when you have a new embedded platform and you want to know what would be the performance if you had a decoder that use 0% CPU. (hardware decoder except the zero-copy part)
videotestsrc is not really usable on embedded like RPI, I mean it uses so much CPU so not really useful to identify what would be the best FPS.
Also fpsdisplaysink uses textoverlay for the visual fps information. When you want a visual information only (and not a console info)
Also fakevideodec is compatible with playbin as long as you increase its rank.
For now fakevideodec just draw a kind of snake on 1 line (to make it use the CPU the less possible)
And the snake moves from left to right in 1 sec if no drop. So that when there are frame dropping the snake freez and you see it jumps to other positions. At every new frame it clears the line and draw the next position base on the framerate and the resolution.
I made it quite quickly so it may not being exactly correct right now.
Also even if it currently visually gives an idea of the FPS, it still does not allow to determine visually what is the precise FPS (can't say 24 or 25 FPS)
It could be improved to draw a kind of minimal meter and then draw a spot to indicate what is the current framerate. There are several ideas.
Do no hesitate to put a comment :)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/106aacparse: convert mpeg-2 adts to mpeg-4 raw stream-format2021-09-24T13:30:27ZBugzilla Migration Useraacparse: convert mpeg-2 adts to mpeg-4 raw stream-format## Submitted by Andrey Utkin
**[Link to original bug (#723551)](https://bugzilla.gnome.org/show_bug.cgi?id=723551)**
## Description
This is needed to stream AAC RTP stream demuxed from MPEG TS.
I don't insist that exactly aacparse...## Submitted by Andrey Utkin
**[Link to original bug (#723551)](https://bugzilla.gnome.org/show_bug.cgi?id=723551)**
## Description
This is needed to stream AAC RTP stream demuxed from MPEG TS.
I don't insist that exactly aacparse is guilty, just Sebastian Droege has said that aacparse is best place to perform that conversion.
To reproduce:
ffmpeg -f lavfi -i aevalsrc=0 -acodec aac -strict -2 -f mpegts - | GST_DEBUG=3,GST_CAPS:5,aacparse:8 gst-launch-1.0 -v fdsrc fd=0 ! tsdemux name=demux demux.audio_0100 ! aacparse ! rtpmp4apay ! fakesink
The output:
ffmpeg version N-60251-g7c756b6 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 30 2014 21:37:23 with gcc 4.6.3 (Gentoo 4.6.3 p1.13, pie-0.5.2)
configuration: --enable-gpl --enable-libx264 --enable-encoder=libx264 --disable-stripping --enable-debug --extra-cflags='-O0 -g -ggdb' --enable-libopus --enable-libvpx --enable-x11grab --enable-libfreetype --enable-filter=drawtext
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.101 / 55. 49.101
libavformat 55. 28.101 / 55. 28.101
libavdevice 55. 7.100 / 55. 7.100
libavfilter 4. 1.101 / 4. 1.101
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input` #0`, lavfi, from 'aevalsrc=0':
Duration: N/A, start: 0.000000, bitrate: 2822 kb/s
Stream` #0`:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
Output` #0`, mpegts, to 'pipe:':
Metadata:
encoder : Lavf55.28.101
Stream` #0`:0: Audio: aac, 44100 Hz, mono, fltp, 128 kb/s
Stream mapping:
Stream` #0`:0 ->` #0`:0 (pcm_f64le -> aac)
Press [q] to stop, [?] for help
[adts @ 0x20c6c00] Encoder did not produce proper pts, making some up.
0:00:00.023883839 26488 0x18e7d20 DEBUG aacparse gstaacparse.c:145:gst_aac_parse_init: initialized
0:00:00.024920422 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<fdsrc0:src> get pad caps with filter (NULL)
0:00:00.024963129 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<fdsrc0:src> query returned ANY
0:00:00.024977456 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<demux:sink> get pad caps with filter (NULL)
0:00:00.024991009 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<demux:sink> query caps caps query: 0x193af70, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025011698 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<demux:sink> trying pad template caps
0:00:00.025020716 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<demux:sink> using caps 0x193ab70 video/mpegts, systemstream=(boolean)true
0:00:00.025035098 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<demux:sink> query returned video/mpegts, systemstream=(boolean)true
0:00:00.025067199 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<fdsrc0:src> get pad caps with filter (NULL)
0:00:00.025082638 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<fdsrc0:src> query returned ANY
0:00:00.025093574 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<demux:sink> get pad caps with filter (NULL)
0:00:00.025104619 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<demux:sink> query caps caps query: 0x1a3b850, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025118772 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<demux:sink> trying pad template caps
0:00:00.025127279 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<demux:sink> using caps 0x193ab70 video/mpegts, systemstream=(boolean)true
0:00:00.025140440 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<demux:sink> query returned video/mpegts, systemstream=(boolean)true
0:00:00.025152627 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2023:gst_pad_link_check_compatible_unlocked:<fdsrc0:src> src caps ANY
0:00:00.025162099 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2025:gst_pad_link_check_compatible_unlocked:<demux:sink> sink caps video/mpegts, systemstream=(boolean)true
0:00:00.025172781 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2043:gst_pad_link_check_compatible_unlocked: caps are compatible
0:00:00.025223257 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<aacparse0:src> get pad caps with filter (NULL)
0:00:00.025241226 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<aacparse0:src> query caps caps query: 0x1a3b8a0, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025256290 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2917:gst_pad_query_caps_default:<aacparse0:src> fixed pad caps: trying pad caps
0:00:00.025264975 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<aacparse0:src> trying pad template caps
0:00:00.025273118 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<aacparse0:src> using caps 0x193ad90 audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas }
0:00:00.025298779 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<aacparse0:src> query returned audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas }
0:00:00.025317412 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<rtpmp4apay0:sink> get pad caps with filter (NULL)
0:00:00.025330932 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<rtpmp4apay0:sink> query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.025362286 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<aacparse0:src> get pad caps with filter (NULL)
0:00:00.025375300 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<aacparse0:src> query caps caps query: 0x1a3b940, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025389718 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2917:gst_pad_query_caps_default:<aacparse0:src> fixed pad caps: trying pad caps
0:00:00.025398297 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<aacparse0:src> trying pad template caps
0:00:00.025406384 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<aacparse0:src> using caps 0x193ad90 audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas }
0:00:00.025426149 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<aacparse0:src> query returned audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas }
0:00:00.025443905 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<rtpmp4apay0:sink> get pad caps with filter (NULL)
0:00:00.025456608 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<rtpmp4apay0:sink> query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.025470522 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2023:gst_pad_link_check_compatible_unlocked:<aacparse0:src> src caps audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas }
0:00:00.025486704 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2025:gst_pad_link_check_compatible_unlocked:<rtpmp4apay0:sink> sink caps audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.025502435 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2043:gst_pad_link_check_compatible_unlocked: caps are compatible
0:00:00.025526475 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<rtpmp4apay0:src> get pad caps with filter (NULL)
0:00:00.025539135 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<rtpmp4apay0:src> query caps caps query: 0x1a3b9e0, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025554047 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<rtpmp4apay0:src> trying pad template caps
0:00:00.025562525 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<rtpmp4apay0:src> using caps 0x193ade0 application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM
0:00:00.025582085 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<rtpmp4apay0:src> query returned application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM
0:00:00.025598014 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<fakesink0:sink> get pad caps with filter (NULL)
0:00:00.025613916 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<fakesink0:sink> query returned ANY
0:00:00.025630942 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<rtpmp4apay0:src> get pad caps with filter (NULL)
0:00:00.025642635 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<rtpmp4apay0:src> query caps caps query: 0x1a3ba80, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.025656969 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2923:gst_pad_query_caps_default:<rtpmp4apay0:src> trying pad template caps
0:00:00.025665226 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<rtpmp4apay0:src> using caps 0x193ade0 application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM
0:00:00.025681779 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<rtpmp4apay0:src> query returned application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM
0:00:00.025696995 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<fakesink0:sink> get pad caps with filter (NULL)
0:00:00.025709570 26488 0x18e7d20 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<fakesink0:sink> query returned ANY
0:00:00.025719561 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2023:gst_pad_link_check_compatible_unlocked:<rtpmp4apay0:src> src caps application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM
0:00:00.025733639 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2025:gst_pad_link_check_compatible_unlocked:<fakesink0:sink> sink caps ANY
0:00:00.025739742 26488 0x18e7d20 DEBUG GST_CAPS gstpad.c:2043:gst_pad_link_check_compatible_unlocked: caps are compatible
Setting pipeline to PAUSED ...
0:00:00.026041013 26488 0x18e7d20 DEBUG aacparse gstaacparse.c:1355:gst_aac_parse_start: start
0:00:00.026126318 26488 0x18e7d20 WARN GST_POLL gstpoll.c:829:gst_poll_remove_fd: 0x1a3bc00: couldn't find fd !
Pipeline is PREROLLING ...
0:00:00.026356373 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<fdsrc0:src> get pad caps with filter (NULL)
0:00:00.026378526 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<fdsrc0:src> query returned ANY
0:00:00.026389310 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2468:gst_pad_get_current_caps:<fdsrc0:src> get current pad caps (NULL)
0:00:00.026624899 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<demux:audio_0100> get pad caps with filter (NULL)
0:00:00.026640084 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<demux:audio_0100> query caps caps query: 0x1a3bf20, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.026654106 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2917:gst_pad_query_caps_default:<demux:audio_0100> fixed pad caps: trying pad caps
0:00:00.026660142 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<demux:audio_0100> using caps 0x1a3be80 audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026674043 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<demux:audio_0100> query returned audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026684842 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<aacparse0:sink> get pad caps with filter (NULL)
0:00:00.026695386 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2807:gst_pad_peer_query_caps:<aacparse0:src> get pad peer caps with filter (NULL)
0:00:00.026706451 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2814:gst_pad_peer_query_caps:<aacparse0:src> peer query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.026729054 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<aacparse0:sink> query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.026742871 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<demux:audio_0100> get pad caps with filter (NULL)
0:00:00.026751266 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<demux:audio_0100> query caps caps query: 0x7f85cc0020f0, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.026762628 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2917:gst_pad_query_caps_default:<demux:audio_0100> fixed pad caps: trying pad caps
0:00:00.026768346 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<demux:audio_0100> using caps 0x1a3be80 audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026779774 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<demux:audio_0100> query returned audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026806139 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:814:gst_element_get_compatible_pad_template: compatible direction: found sink pad template "sink"
0:00:00.026814104 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:817:gst_element_get_compatible_pad_template: intersecting audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026823596 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:819:gst_element_get_compatible_pad_template: ..and audio/mpeg, mpegversion=(int){ 2, 4 }
0:00:00.026843487 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:825:gst_element_get_compatible_pad_template: caps are compatible
0:00:00.026864247 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<demux:audio_0100> get pad caps with filter (NULL)
0:00:00.026873578 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2900:gst_pad_query_caps_default:<demux:audio_0100> query caps caps query: 0x7f85cc002140, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.026884894 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2917:gst_pad_query_caps_default:<demux:audio_0100> fixed pad caps: trying pad caps
0:00:00.026890709 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2953:gst_pad_query_caps_default:<demux:audio_0100> using caps 0x1a3be80 audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026902820 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<demux:audio_0100> query returned audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026912928 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2761:gst_pad_query_caps:<aacparse0:sink> get pad caps with filter (NULL)
0:00:00.026921683 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2807:gst_pad_peer_query_caps:<aacparse0:src> get pad peer caps with filter (NULL)
0:00:00.026931830 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2814:gst_pad_peer_query_caps:<aacparse0:src> peer query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.026950488 26488 0x1a3bc50 DEBUG GST_CAPS gstutils.c:2768:gst_pad_query_caps:<aacparse0:sink> query returned audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.026960666 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2023:gst_pad_link_check_compatible_unlocked:<demux:audio_0100> src caps audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
0:00:00.026976874 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2025:gst_pad_link_check_compatible_unlocked:<aacparse0:sink> sink caps audio/mpeg, mpegversion=(int)4, stream-format=(string)raw
0:00:00.026987617 26488 0x1a3bc50 DEBUG GST_CAPS gstpad.c:2043:gst_pad_link_check_compatible_unlocked: caps are notcompatible
0:00:00.027058371 26488 0x1a3bc50 WARN basesrc gstbasesrc.c:2910:gst_base_src_loop:`<fdsrc0>` error: Internal data flow error.
0:00:00.027065477 26488 0x1a3bc50 WARN basesrc gstbasesrc.c:2910:gst_base_src_loop:`<fdsrc0>` error: streaming task paused, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstFdSrc:fdsrc0: Internal data flow error.
/GstPipeline:pipeline0/GstTSDemux:demux.GstPad:audio_0100: caps = "NULL"
Additional debug info:
gstbasesrc.c(2910): gst_base_src_loop (): /GstPipeline:pipeline0/GstFdSrc:fdsrc0:
streaming task paused, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.028146832 26488 0x18e7d20 DEBUG aacparse gstaacparse.c:1374:gst_aac_parse_stop: stop
Freeing pipeline ...https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/104matroskademux: Set buffer offsets for output2021-09-24T13:30:27ZBugzilla Migration Usermatroskademux: Set buffer offsets for output## Submitted by Brendan Long
**[Link to original bug (#723327)](https://bugzilla.gnome.org/show_bug.cgi?id=723327)**
## Description
I'm looking at using the buffer offset as a unique identifier for caption/subtitle cues. This HTML m...## Submitted by Brendan Long
**[Link to original bug (#723327)](https://bugzilla.gnome.org/show_bug.cgi?id=723327)**
## Description
I'm looking at using the buffer offset as a unique identifier for caption/subtitle cues. This HTML mailing list thread is relevant:
http://lists.w3.org/Archives/Public/public-html/2014Jan/0083.html
Specifically:
> Is the UA expected to keep a unique internal id for each in-band
> TextTrackCue it creates so that it doesn't reinsert a cue that
> was inserted previously, but was modified?
To which the answer appears to be, "yes".
The worst-case scenario for this seems to be WebVTT, where the *only* way to uniquely identify cues is by where they appear in a file:
00:00:00 --> 00:00:05
Lorem ipsum
00:00:00 --> 00:00:05
Lorem ipsum
So, I'd like to use GST_BUFFER_OFFSET, but it looks like it never sets set for any caption or subtitle formats. As a proof-of-concept, I'd like to implement this for Matroska/SSA, since it seems to be the best-supported cue format right now. Does that make sense?https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/100videobalance: handle unsupported caps features in passthrough mode2021-09-24T13:30:23ZBugzilla Migration Uservideobalance: handle unsupported caps features in passthrough mode## Submitted by Matthieu Bouron
**[Link to original bug (#720345)](https://bugzilla.gnome.org/show_bug.cgi?id=720345)**
## Description
This patch allows videobalance to work with unsupported caps features in passthrough mode.
This...## Submitted by Matthieu Bouron
**[Link to original bug (#720345)](https://bugzilla.gnome.org/show_bug.cgi?id=720345)**
## Description
This patch allows videobalance to work with unsupported caps features in passthrough mode.
This is especially usefull when an hardware decoder is plugged by playbin.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/97soup: Add a SoupServer sink2021-09-24T13:30:21ZBugzilla Migration Usersoup: Add a SoupServer sink## Submitted by Brendan Long
**[Link to original bug (#711271)](https://bugzilla.gnome.org/show_bug.cgi?id=711271)**
## Description
Created attachment 258778
Patch to add gstsouphttpserversrc
I'm trying to test some things in...## Submitted by Brendan Long
**[Link to original bug (#711271)](https://bugzilla.gnome.org/show_bug.cgi?id=711271)**
## Description
Created attachment 258778
Patch to add gstsouphttpserversrc
I'm trying to test some things in WebKit with live sources, and there doesn't seem to be any simple way to create a stream, so I made this.
It's currently *very* basic. I can think of plenty of new properties that would be useful (passing a SoupServer, GMainLoop, GMainContext, mime type, etc.), and useful features (detecting mime types), but I figured the basic version was a good first step, and then new features can be built on top of that.
I wasn't able to get this working with Ogg or WebM, but MPEG-TS works:
gst-launch-1.0 videotestsrc ! x264enc ! mpegtsmux ! souphttpserversink port=8080
gst-launch-1.0 playbin uri=http://localhost:8080
~~**Patch 258778**~~, "Patch to add gstsouphttpserversrc":
[0001-soup-add-gstsouphttpserversrc-which-serves-streams-o.patch](/uploads/5d9d4cdb393c1697271826125d0133d8/0001-soup-add-gstsouphttpserversrc-which-serves-streams-o.patch)