gst-plugins-good issueshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues2021-09-24T13:30:16Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/86deinterlace: flickering with some DVDs2021-09-24T13:30:16ZBugzilla Migration Userdeinterlace: flickering with some DVDs## Submitted by Frank Ansari
**[Link to original bug (#703739)](https://bugzilla.gnome.org/show_bug.cgi?id=703739)**
## Description
Playing DVDs gives a flickering video.
I have tested now "Zeitakademmie: Psychologie" and "The ...## Submitted by Frank Ansari
**[Link to original bug (#703739)](https://bugzilla.gnome.org/show_bug.cgi?id=703739)**
## Description
Playing DVDs gives a flickering video.
I have tested now "Zeitakademmie: Psychologie" and "The good wife season 3".
Test were done in Fedora 18 and 19.
The quality was ok in Fedora 17.
Especially a line from the upper left corner until the middle of the screen is always flickering.
There is a lot of output like this:
/GstPlayBin:playbin0/GstInputSelector:inputselector2.GstSelectorPad:sink_0: tags = "taglist\,\ title\=\(string\)THE_GOOD_WIFE_S3_D4\,\ video-codec\=\(string\)\"MPEG\\\ 2\\\ Video\"\,\ minimum-bitrate\=\(uint\)91200\,\ bitrate\=\(uint\)6363409\,\ maximum-bitrate\=\(uint\)15404000\;"
Version: 1.xhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/87deinterlace: Outputs wrong timestamps when framerate is missing2021-09-24T13:30:16ZBugzilla Migration Userdeinterlace: Outputs wrong timestamps when framerate is missing## Submitted by Matej `@Knopp`
**[Link to original bug (#704191)](https://bugzilla.gnome.org/show_bug.cgi?id=704191)**
## Description
When there is no framerate in caps gstdeinterlace seems to be outputting same timestamps on duplic...## Submitted by Matej `@Knopp`
**[Link to original bug (#704191)](https://bugzilla.gnome.org/show_bug.cgi?id=704191)**
## Description
When there is no framerate in caps gstdeinterlace seems to be outputting same timestamps on duplicate frames, i.e.
Input:
frame with PTS 10
frame with PTS 20
frame with PTS 30
Output:
frame with PTS 10
frame with PTS 10
frame with PTS 20
frame with PTS 20
frame with PTS 30
frame with PTS 30https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/89qtdemux: seeks to large offset/EOS when attempting to start playback from htt...2021-09-24T13:30:17ZBugzilla Migration Userqtdemux: seeks to large offset/EOS when attempting to start playback from http source## Submitted by Lori Anderson
**[Link to original bug (#705703)](https://bugzilla.gnome.org/show_bug.cgi?id=705703)**
## Description
The attached MP4 video stream does not play. It appears to get an invalid seek position upon start...## Submitted by Lori Anderson
**[Link to original bug (#705703)](https://bugzilla.gnome.org/show_bug.cgi?id=705703)**
## Description
The attached MP4 video stream does not play. It appears to get an invalid seek position upon start up (see attached log). It works fine when played as a local file. It fails when served from Apache WebServer using souphttpsrc.
To reproduce:
gst-launch-1.0 playbin uri=http://192.168.0.106:818/B-04.MP4
Version: 1.xhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/90rtspsrc: server closes the connection but pipelines got stuck2023-07-18T16:33:00ZBugzilla Migration Userrtspsrc: server closes the connection but pipelines got stuck## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#705912)](https://bugzilla.gnome.org/show_bug.cgi?id=705912)**
## Description
I have the following pipeline reading from a RTSP server:
gst-launch-1.0 rts...## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#705912)](https://bugzilla.gnome.org/show_bug.cgi?id=705912)**
## Description
I have the following pipeline reading from a RTSP server:
gst-launch-1.0 rtspsrc location="..." protocols=0x00000004 ! decodebin name=demux ! queue ! videoconvert ! vp8enc ! webmmux name=mux ! filesink location=videos/webm/20121123-1_bb_pl.webm demux. ! queue ! audioconvert ! audioresample ! vorbisenc ! mux.
Most of the time it works fine and keep transcoding until the video is done. But sometimes for some reason (the server stopping to send?) the pipeline got stuck blocking my whole script.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
Redistribute latency...
WARNING: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Could not read from resource.
Additional debug info:
gstrtspsrc.c(3776): gst_rtspsrc_loop_interleaved (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
The server closed the connection.
Shouldn't the element raise an error and so the pipeline can be terminated?
gstreamer1.0-plugins-good:amd64 1.0.7-1~bpo70+1
Version: 1.xhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/91mp4mux: add ftyp and extra atoms to the streamheaders2021-09-24T13:30:18ZBugzilla Migration Usermp4mux: add ftyp and extra atoms to the streamheaders## Submitted by Andoni Alastruey `@ylatuya`
**[Link to original bug (#706509)](https://bugzilla.gnome.org/show_bug.cgi?id=706509)**
## Description
These atoms are missing to reconstruct the headers from the
streamheaders caps field.## Submitted by Andoni Alastruey `@ylatuya`
**[Link to original bug (#706509)](https://bugzilla.gnome.org/show_bug.cgi?id=706509)**
## Description
These atoms are missing to reconstruct the headers from the
streamheaders caps field.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/93matroskademux: expose stream name as tag2021-09-24T13:30:19ZBugzilla Migration Usermatroskademux: expose stream name as tag## Submitted by Matej `@Knopp`
**[Link to original bug (#708918)](https://bugzilla.gnome.org/show_bug.cgi?id=708918)**
## Description
Created attachment 255922
Patch to expose track name
There is probably issue for exposing m...## Submitted by Matej `@Knopp`
**[Link to original bug (#708918)](https://bugzilla.gnome.org/show_bug.cgi?id=708918)**
## Description
Created attachment 255922
Patch to expose track name
There is probably issue for exposing more tags already but I couldn't find it.
Patch exposes track name, which is often set while the languages are missing.
**Patch 255922**, "Patch to expose track name":
[0002-matroskademux-expose-track-name-as-tag.patch](/uploads/7b8fe2dba2d7f37a170386e276cb6f74/0002-matroskademux-expose-track-name-as-tag.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/94interleave: Does not handle request pad names correctly2021-09-24T13:30:20ZBugzilla Migration Userinterleave: Does not handle request pad names correctly## Submitted by Yasushi SHOJI
**[Link to original bug (#708988)](https://bugzilla.gnome.org/show_bug.cgi?id=708988)**
## Description
Created attachment 255977
GST_DEBUG=4 GST_DEBUG_NO_COLOR=1 gst-launch-1.0 interleave name=i ! pul...## Submitted by Yasushi SHOJI
**[Link to original bug (#708988)](https://bugzilla.gnome.org/show_bug.cgi?id=708988)**
## Description
Created attachment 255977
GST_DEBUG=4 GST_DEBUG_NO_COLOR=1 gst-launch-1.0 interleave name=i ! pulsesink audiotestsrc ! i.sink_0 audiotestsrc wave=red-noise ! i.sink_1
It seems to me that the interleave module example on the current documentation[1] does not work. The command line example is this:
gst-launch-1.0 interleave name=i ! audioconvert ! wavenc ! filesink location=file.wav filesrc location=file1.wav ! decodebin ! audioconvert ! "audio/x-raw,channels=1" ! queue ! i.sink_0 filesrc location=file2.wav ! decodebin ! audioconvert ! "audio/x-raw,channels=1" ! queue ! i.sink_1
It is very long so I've modified to shorten it to this:
gst-launch-1.0 interleave name=i ! pulsesink \
audiotestsrc ! audio/x-raw,channels=1 ! i.sink_0 \
audiotestsrc wave=red-noise ! audio/x-raw,channels=1 ! i.sink_1
Both example failed to run with an error message:
WARNING: erroneous pipeline: could not link audiotestsrc0 to i
slomo on the GStreamer IRC channel told me that the "problem is that interleave does not take the requested pad name into account... so the second chain requests "sink_1" but gets "sink_0", and the other way around".
To back up his comment, I've taken a debug message to see what it says (Full log attached). Here is the excerpt that I think relevant:
The second chain (sink_1) request:
GST_ELEMENT_PADS gstutils.c:1543:gst_element_link_pads_full: trying to link element capsfilter0:src to element i:sink_1
GST_ELEMENT_PADS gstelement.c:897:gst_element_get_static_pad: found pad capsfilter0:src
GST_ELEMENT_PADS gstelement.c:894:gst_element_get_static_pad: no such pad 'sink_1' in element "i"
GST_ELEMENT_PADS gstelement.c:894:gst_element_get_static_pad: no such pad 'sink_1' in element "i"
GST_ELEMENT_PADS gstelement.c:646:gst_element_add_pad:`<i>` adding pad 'sink_0'
GST_PADS gstutils.c:1443:prepare_link_maybe_ghosting: capsfilter0 and i in same bin, no need for ghost pads
GST_PADS gstpad.c:2083:gst_pad_link_prepare: trying to link capsfilter0gst_pad_link_prepare: trying to link capsfilter0:src and i:sink_0
GST_PADS gstpad.c:2285:gst_pad_link_full: linked capsfilter0:src and i:sink_0, successful
As you can see that the sink_1 reqest ended up linking to sink_0. Pipleline creation continue to the first chain (sink_0) request:
GST_ELEMENT_PADS gstutils.c:1543:gst_element_link_pads_full: trying to link element capsfilter1:src to element i:sink_0
GST_ELEMENT_PADS gstelement.c:897:gst_element_get_static_pad: found pad capsfilter1:src
GST_ELEMENT_PADS gstelement.c:897:gst_element_get_static_pad: found pad i:sink_0
default gstutils.c:1877:gst_element_link_pads_filtered: Could not link pads: capsfilter:src - i:sink_0
and failed.
[1] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-interleave.html
**Attachment 255977**, "GST_DEBUG=4 GST_DEBUG_NO_COLOR=1 gst-launch-1.0 interleave name=i ! pulsesink audiotestsrc ! i.sink_0 audiotestsrc wave=red-noise ! i.sink_1":
[log.txt](/uploads/52c09522949b9c474fc188240c50967b/log.txt)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/96tag com.apple.iTunes:cdec type:1 is not mapped2021-09-24T13:30:20ZBugzilla Migration Usertag com.apple.iTunes:cdec type:1 is not mapped## Submitted by Mohammed Sameer
**[Link to original bug (#711249)](https://bugzilla.gnome.org/show_bug.cgi?id=711249)**
## Description
Trying to play back the attached file produces this warning (file still works):
0:00:00.0372957...## Submitted by Mohammed Sameer
**[Link to original bug (#711249)](https://bugzilla.gnome.org/show_bug.cgi?id=711249)**
## Description
Trying to play back the attached file produces this warning (file still works):
0:00:00.037295790 4609 0x7fe5780a1540 WARN qtdemux qtdemux.c:8576:qtdemux_tag_add_revdns:`<qtdemux0>` This tag com.apple.iTunes:cdec type:1 is not mapped, file a bug at bugzilla.gnome.org
This is the pipeline I use:
GST_DEBUG='*:2' gst-launch-1.0 playbin uri=file:///tmp/HE-AAC_Stereo_46kbps.m4a audio-sink=alsasink
Plugin Details:
Name: isomp4
Description: ISO base media file format support (mp4, 3gpp, qt, mj2)
Filename: /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstisomp4.so
Version: 1.0.10
License: LGPL
Source module: gst-plugins-good
I also tried with 0.10 and I see the same warning.
Version: 1.xhttps://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)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/98rtpgstpay: delay events until first buffer so they can be timestamped2021-09-24T13:30:22ZBugzilla Migration Userrtpgstpay: delay events until first buffer so they can be timestamped## Submitted by Sebastian Rasmussen
**[Link to original bug (#719587)](https://bugzilla.gnome.org/show_bug.cgi?id=719587)**
## Description
While developing a patch (concerning RTP-Info header) for gst-rtsp-server I stumbled upon an ...## Submitted by Sebastian Rasmussen
**[Link to original bug (#719587)](https://bugzilla.gnome.org/show_bug.cgi?id=719587)**
## Description
While developing a patch (concerning RTP-Info header) for gst-rtsp-server I stumbled upon an rtspserver test using rtpgstpay where my newly introduced code expected the first payloaded buffer in each media stream to have a timestamp. Unfortunately rtpgstpay sent an non-timestamped event as its first RTP packet so my code failed.
Now, there is no reason to _not_ timestamp the events packaged into RTP packets so therefore I opted to delay the events until the first buffer arrives and give both events and buffer the same timestamp.
Finally there was no unit test for rtpgstpay so I created a silly one that at least exercise the rtpgstpay a little bit.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/99matroskamux: mkvalidate errors in transcoded webm file2021-09-24T13:30:22ZBugzilla Migration Usermatroskamux: mkvalidate errors in transcoded webm file## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#720216)](https://bugzilla.gnome.org/show_bug.cgi?id=720216)**
## Description
Looks like there are things very wrong with this file:
http://agot.be/~lachambr...## Submitted by Guillaume Desmottes `@gdesmott`
**[Link to original bug (#720216)](https://bugzilla.gnome.org/show_bug.cgi?id=720216)**
## Description
Looks like there are things very wrong with this file:
http://agot.be/~lachambre/bug/20131205-1_bb_pl.webm
It has been created using:
gst-launch-1.0 rtspsrc location="rtsp://193.191.129.52/Archive/20131205-1_bb_pl.wmv" protocols=0x00000004 ! decodebin name=demux ! queue ! videoconvert ! vp8enc ! webmmux name=mux ! filesink location=20131205-1_bb_pl.webm demux. ! queue ! audioconvert ! audioresample ! vorbisenc ! mux.
This has been done on a Debian stable system using wheezy-backports packages:
libgstreamer1.0-0:amd64 1.0.8-1~bpo70+1
libgstreamer-plugins-base1.0-0:amd64 1.0.8-1~bpo70+1
gstreamer1.0-plugins-good:amd64 1.0.8-1~bpo70+1
gstreamer1.0-plugins-ugly:amd64 1.0.8-1~bpo70+1
gstreamer1.0-plugins-bad:amd64 1.0.8-1~bpo70+1
gstreamer1.0-libav:amd64 1.0.8-1~bpo70+1
I tried to transcode it to MP4 on my own system (F19 with GStreamer master) and hit a lot of those errors:
qtmux gstqtmux.c:2232:gst_qt_mux_add_buffer: decreasing DTS value 0:00:00.023158730 < 0:00:00.070158730
I used "gst-launch-1.0 filesrc location=20131205-1_bb_pl.webm ! decodebin name=demux ! queue ! videoconvert ! videoparse ! x264enc ! mp4mux name=mux ! filesink location=out.mp4 demux. ! queue ! audioconvert ! audioresample ! audioparse ! faac ! mux."
After some debugging on #gstreamer it seems that there are issues in the source webm file.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/101aacparse: cannot parse some ADTS AAC streams2021-09-24T13:30:23ZBugzilla Migration Useraacparse: cannot parse some ADTS AAC streams## Submitted by Akihiro Tsukada
**[Link to original bug (#721697)](https://bugzilla.gnome.org/show_bug.cgi?id=721697)**
## Description
aacparse element cannot parse AAC streams that set 0 to channel_config field in ADTS header.## Submitted by Akihiro Tsukada
**[Link to original bug (#721697)](https://bugzilla.gnome.org/show_bug.cgi?id=721697)**
## Description
aacparse element cannot parse AAC streams that set 0 to channel_config field in ADTS header.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/102qtdemux: Memory usage is proportional to the time duration of m4a files.2021-09-24T13:30:24ZBugzilla Migration Userqtdemux: Memory usage is proportional to the time duration of m4a files.## Submitted by lei..@..il.com
**[Link to original bug (#722639)](https://bugzilla.gnome.org/show_bug.cgi?id=722639)**
## Description
QuickTime stores media data in samples. The number of a samples in m4a
files are huge. For exam...## Submitted by lei..@..il.com
**[Link to original bug (#722639)](https://bugzilla.gnome.org/show_bug.cgi?id=722639)**
## Description
QuickTime stores media data in samples. The number of a samples in m4a
files are huge. For example, a 6hr m4a file has about 950,000 samples.
Because qtdemux.c creates a sample table whose size is proportional to
the number of samples, the sample table could be very big. For an m4a file
6:11:46 long, I got:
"qtdemux qtdemux.c:6306:qtdemux_stbl_init:`<qtdemux0>` allocating
n_samples 960669 * 32 (29.32 MB)"
Indeed, qtdemux has a cap of 50MB for this table:
/* if the sample index is larger than this, something is likely wrong */
#define QTDEMUX_MAX_SAMPLE_INDEX_SIZE (50*1024*1024)
The current design has two problems for m4a files:
1. m4a files with duration greater than 12hrs won't play:
qtdemux qtdemux.c:6306:qtdemux_stbl_init:`<qtdemux0>` allocating
n_samples 1921335 * 32 (58.63 MB)
qtdemux qtdemux.c:6312:qtdemux_stbl_init:`<qtdemux0>` not allocating
index of 1921335 samples, would be larger than 50MB (broken file?)
Such a file can be downloaded at: https://dl.dropboxusercontent.com/u/54923483/White_Noise_320kbps_14Hour.m4a
2. It may impose a memory burden for embedded systems.
Could somebody take a look at this issue and improve qtdemux?
Discussions of this issue can be found at : http://lists.freedesktop.org/archives/gstreamer-devel/2014-January/045660.htmlhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/103Failed to seek some frames in a matroska video file2021-09-24T13:30:24ZBugzilla Migration UserFailed to seek some frames in a matroska video file## Submitted by Adrien SCH.
**[Link to original bug (#723076)](https://bugzilla.gnome.org/show_bug.cgi?id=723076)**
## Description
Created attachment 267277
Test case
Issue : Some frame aren't seekable in a matroska video fil...## Submitted by Adrien SCH.
**[Link to original bug (#723076)](https://bugzilla.gnome.org/show_bug.cgi?id=723076)**
## Description
Created attachment 267277
Test case
Issue : Some frame aren't seekable in a matroska video file
Real case :
1. Reverse playback multiple video file.
2. Snapshot of a video file
How to reproduce :
Create a video sample :
gst-launch-1.0 videotestsrc num-buffers=3000 ! timeoverlay ! x264enc ! matroskamux ! filesink location=~/test.mkv
This previous command will create a mkv file, with a duration of 100s and with a last frame at 99.967. These information can be validate with the mkvinfo tool (don't forget to activate Show all elements in the UI).
Gstreamer test case :
Goal, try to seek the last frame of the video file.
Pipeline : filesrc ! matroskademux ! h264parse ! avdec_h264 ! videoconvert ! xvimagesink
Code : http://pastebin.com/yf47niDL
Observations :
When we try to seek to the last frame, the last full gop is sent to the decoder, including the last frame. The decoder doesn't output the last frame, and the demux forward an EOS event (in my case, dropped). The result is that the last frame, isn't seekable, and will not be displayed.
Note : This behavior can be validated with other frames in the video file (a bit before the last frame), but I can't say how many frames aren't seekable.
Hypothesis :
Could be a segment problem ?
External : Mailing list discussion : http://gstreamer-devel.966125.n4.nabble.com/How-to-get-the-last-frame-of-a-video-file-td4664849.html
**Attachment 267277**, "Test case":
[main.c](/uploads/bcf81ba2e524d826b74f0688d14ec69d/main.c)
Version: 1.2.4https://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/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/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/107Elements in rtpbin don't set PROXY_ALLOCATION flag2021-09-24T13:30:30ZBugzilla Migration UserElements in rtpbin don't set PROXY_ALLOCATION flag## Submitted by Jason Litzinger
**[Link to original bug (#723850)](https://bugzilla.gnome.org/show_bug.cgi?id=723850)**
## Description
The PROXY_ALLOCATION flag is not currently set in any of the elements in the rtpbin (e.g. rtpsess...## Submitted by Jason Litzinger
**[Link to original bug (#723850)](https://bugzilla.gnome.org/show_bug.cgi?id=723850)**
## Description
The PROXY_ALLOCATION flag is not currently set in any of the elements in the rtpbin (e.g. rtpsession, jitterbuffer, etc.). The effect is that allocation queries sent by the source during 'reconfigure' (i.e. after linking) never make it to the downstream sink.
Version: 1.2.2https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/108matroska-demux can't jump by gap in case of backward playback2021-09-24T13:30:36ZBugzilla Migration Usermatroska-demux can't jump by gap in case of backward playback## Submitted by Farkas Levente `@lfarkas`
**[Link to original bug (#724640)](https://bugzilla.gnome.org/show_bug.cgi?id=724640)**
## Description
if we try to step forward in a matroska file then it's working even if the gap time is ...## Submitted by Farkas Levente `@lfarkas`
**[Link to original bug (#724640)](https://bugzilla.gnome.org/show_bug.cgi?id=724640)**
## Description
if we try to step forward in a matroska file then it's working even if the gap time is set. but when it's also set but i'd like to step backward then it's no longer working. the reason for this is in this line:
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/matroska/matroska-demux.c#n3485
where you explicitly test only for positive rate while it'd have to implement for negative rate too.
Version: 1.2.4