gstreamer issueshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues2021-09-24T11:10:42Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/130gstharness: add gst_harness_set_single_segment2021-09-24T11:10:42ZBugzilla Migration Usergstharness: add gst_harness_set_single_segment## Submitted by Håvard Graff (hgr)
**[Link to original bug (#755999)](https://bugzilla.gnome.org/show_bug.cgi?id=755999)**
## Description
Created attachment 312589
implementation with test
"borrowed" from gstidentity, single-...## Submitted by Håvard Graff (hgr)
**[Link to original bug (#755999)](https://bugzilla.gnome.org/show_bug.cgi?id=755999)**
## Description
Created attachment 312589
implementation with test
"borrowed" from gstidentity, single-segment allows testing continuous timestamping even when multiple segments are involved, without having to do the "segment-math" manually.
~~**Patch 312589**~~, "implementation with test":
[gstharness-singlesegment.patch](/uploads/b4ff429b26a8275facfd235b34f94fed/gstharness-singlesegment.patch)
### Depends on
* [Bug 761914](https://bugzilla.gnome.org/show_bug.cgi?id=761914)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/129implement GstStreamFlags bit to mark forced streams, e.g. forced subtitles2021-09-24T11:10:42ZBugzilla Migration Userimplement GstStreamFlags bit to mark forced streams, e.g. forced subtitles## Submitted by Andreas Frisch `@fraxinas`
**[Link to original bug (#755159)](https://bugzilla.gnome.org/show_bug.cgi?id=755159)**
## Description
there was no way how to pass down information about whether a stream is flagged as "fo...## Submitted by Andreas Frisch `@fraxinas`
**[Link to original bug (#755159)](https://bugzilla.gnome.org/show_bug.cgi?id=755159)**
## Description
there was no way how to pass down information about whether a stream is flagged as "forced". as slomo suggested on irc, i've implemented this to be included in the stream-start event, so a GstSteamFlags definition had to be added.
Version: 1.5.90https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/128memory: add remap operation2023-06-12T13:05:46ZBugzilla Migration Usermemory: add remap operation## Submitted by Matthew Waters `@ystreet`
**[Link to original bug (#754826)](https://bugzilla.gnome.org/show_bug.cgi?id=754826)**
## Description
See commit messages
### Blocking
* [Bug 740222](https://bugzilla.gnome.org/show_bug...## Submitted by Matthew Waters `@ystreet`
**[Link to original bug (#754826)](https://bugzilla.gnome.org/show_bug.cgi?id=754826)**
## Description
See commit messages
### Blocking
* [Bug 740222](https://bugzilla.gnome.org/show_bug.cgi?id=740222)
* [Bug 759050](https://bugzilla.gnome.org/show_bug.cgi?id=759050)
* [Bug 745372](https://bugzilla.gnome.org/show_bug.cgi?id=745372)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/125test: fdsrc: add tests for duration and uri2021-09-24T11:10:45ZBugzilla Migration Usertest: fdsrc: add tests for duration and uri## Submitted by Prashant Gotarne
**[Link to original bug (#752948)](https://bugzilla.gnome.org/show_bug.cgi?id=752948)**
## Description
Add tests for duration query and uri interface## Submitted by Prashant Gotarne
**[Link to original bug (#752948)](https://bugzilla.gnome.org/show_bug.cgi?id=752948)**
## Description
Add tests for duration query and uri interfacehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/830dashdemux: replace sscanf with strtoul2022-11-10T09:21:09ZBugzilla Migration Userdashdemux: replace sscanf with strtoul## Submitted by Florin Apostol
**[Link to original bug (#752428)](https://bugzilla.gnome.org/show_bug.cgi?id=752428)**
## Description
gstmpdparser.c file uses sscanf(..., "%u", ...) to read numbers from the xml file. sscanf is unabl...## Submitted by Florin Apostol
**[Link to original bug (#752428)](https://bugzilla.gnome.org/show_bug.cgi?id=752428)**
## Description
gstmpdparser.c file uses sscanf(..., "%u", ...) to read numbers from the xml file. sscanf is unable to indicate the fact that the input string was completely parsed or not. For example, for the input "123xyz" the sscanf function will return 1 (it successfully read an integer).
A better function is strtol (and strtoul, etc). This has the ability to provide a pointer to the next unparsed character in string. Using this, we can detect if the original string was valid or not.
The question is how restrictive the parser should be? Where a number is expected in an xml attribute and a "123xyz" is provided, should the parser read and use 123 or it should signal an error? Currently it reads just 123 and no error or warnings are issued (provided it does not need to parse the attribute further than the number).
So, should we make the parser more restrictive or not?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/123taglist: update merge logic when one of the input is empty2023-03-17T10:37:28ZBugzilla Migration Usertaglist: update merge logic when one of the input is empty## Submitted by Vineeth
**[Link to original bug (#752362)](https://bugzilla.gnome.org/show_bug.cgi?id=752362)**
## Description
When tag_list_merge is called with either of the input lists empty, right now, a new empty list is being ...## Submitted by Vineeth
**[Link to original bug (#752362)](https://bugzilla.gnome.org/show_bug.cgi?id=752362)**
## Description
When tag_list_merge is called with either of the input lists empty, right now, a new empty list is being created and on top of that the other list is being merged.
But if one of the input is empty, it is supposed to just create a copy of the other as the merged list.
This was added to handle GST_TAG_MERGE_KEEP_ALL and GST_TAG_MERGE_REPLACE_ALL mode during merging.
But these modes should be valid only when both the inputs are not NULL. It doesn't make sense to create a new empty list, just to handle these two modes,
even though NULL is being passed as input.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/121ptp: Get required privileges on OS X with a OS X specific mechanism2021-09-24T11:10:47ZBugzilla Migration Userptp: Get required privileges on OS X with a OS X specific mechanism## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#752105)](https://bugzilla.gnome.org/show_bug.cgi?id=752105)**
## Description
+++ This bug was initially created as a clone of [Bug 750367](https://bugzilla.gnome.org...## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#752105)](https://bugzilla.gnome.org/show_bug.cgi?id=752105)**
## Description
+++ This bug was initially created as a clone of [Bug 750367](https://bugzilla.gnome.org/show_bug.cgi?id=750367) +++
setuid root is not the state of the art on OS X either AFAIU, something else should be used. Maybe it should be done via launchd, someone needs to do some research :)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/120dataqueue: Make it understand buffers, segments, gaps2022-11-10T09:20:45ZBugzilla Migration Userdataqueue: Make it understand buffers, segments, gaps## Submitted by Olivier Crête `@ocrete`
**[Link to original bug (#751918)](https://bugzilla.gnome.org/show_bug.cgi?id=751918)**
## Description
In practice, every queue in GStreamer is buffers and synchronized events/queries, so it d...## Submitted by Olivier Crête `@ocrete`
**[Link to original bug (#751918)](https://bugzilla.gnome.org/show_bug.cgi?id=751918)**
## Description
In practice, every queue in GStreamer is buffers and synchronized events/queries, so it doesn't make sense to have a GstDataQueue that tries to abstract them, then re-implement the processing every it's used. As we integrate queues in more elements (like in demuxers), we can reduce duplication.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/116baseparse: drain on stream-start2021-09-24T11:10:50ZBugzilla Migration Userbaseparse: drain on stream-start## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#751105)](https://bugzilla.gnome.org/show_bug.cgi?id=751105)**
## Description
When handling stream-start events, baseparse should drain its current data a...## Submitted by Thiago Sousa Santos `@thiagossantos`
**[Link to original bug (#751105)](https://bugzilla.gnome.org/show_bug.cgi?id=751105)**
## Description
When handling stream-start events, baseparse should drain its current data and then reset itself as a new stream is about to start, no data from previous stream should be reused.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/115clock: Add gst_clock_abort_wait() function2021-09-24T11:10:50ZBugzilla Migration Userclock: Add gst_clock_abort_wait() function## Submitted by Carlos Rafael Giani
**[Link to original bug (#750633)](https://bugzilla.gnome.org/show_bug.cgi?id=750633)**
## Description
As mentioned in https://bugzilla.gnome.org/show_bug.cgi?id=749391#c10 , the newly introduced ...## Submitted by Carlos Rafael Giani
**[Link to original bug (#750633)](https://bugzilla.gnome.org/show_bug.cgi?id=750633)**
## Description
As mentioned in https://bugzilla.gnome.org/show_bug.cgi?id=749391#c10 , the newly introduced gst_clock_wait_for_sync() function issues a blocking wait. If this function is used inside elements for example, it is important to be able to abort the wait, for example during a PAUSED->READY state change. A gst_clock_abort_wait() function is needed that aborts the blocking wait.
To that end, also extend the description of gst_clock_wait_for_sync(). It shall return FALSE if either a timeout happened or the wait was aborted.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/114gstchildproxy: some improvements2021-09-24T11:10:51ZBugzilla Migration Usergstchildproxy: some improvements## Submitted by Mathieu Duponchelle `@meh`
**[Link to original bug (#750189)](https://bugzilla.gnome.org/show_bug.cgi?id=750189)**
## Description
The purpose of these patches is to remove redundant code in GESTrackElement,
I can i...## Submitted by Mathieu Duponchelle `@meh`
**[Link to original bug (#750189)](https://bugzilla.gnome.org/show_bug.cgi?id=750189)**
## Description
The purpose of these patches is to remove redundant code in GESTrackElement,
I can imagine a lot of use cases for fetching all the elements exposing a
property in a bin aside from that.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/113gstbuffer: _get_merged_memory: support memories that happen to be consecutive2021-09-24T11:10:51ZBugzilla Migration Usergstbuffer: _get_merged_memory: support memories that happen to be consecutive## Submitted by Ilya Konstantinov
**[Link to original bug (#750103)](https://bugzilla.gnome.org/show_bug.cgi?id=750103)**
## Description
Sometimes GstMemory objects might not be in a parent-child hierarchy which allows them to know ...## Submitted by Ilya Konstantinov
**[Link to original bug (#750103)](https://bugzilla.gnome.org/show_bug.cgi?id=750103)**
## Description
Sometimes GstMemory objects might not be in a parent-child hierarchy which allows them to know that they span a single consecutive memory area.
However, when mapped, they end up being perfectly consecutive. For example, this can happen with GstCoreVideoMemory on Apple platforms.
Wouldn't it be nice if _get_merged_memory will recognize such cases and avoid allocating and memcpy'ing a new buffer in such cases?
Does this make sense?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2693asfdemux: add support for trick play in push mode2023-06-20T17:14:05ZBugzilla Migration Userasfdemux: add support for trick play in push mode## Submitted by Rajesh Singh
**[Link to original bug (#749956)](https://bugzilla.gnome.org/show_bug.cgi?id=749956)**
## Description
Current implementation of ASFDemux, does not support the push mode Trick Play.
Trick Play means Fo...## Submitted by Rajesh Singh
**[Link to original bug (#749956)](https://bugzilla.gnome.org/show_bug.cgi?id=749956)**
## Description
Current implementation of ASFDemux, does not support the push mode Trick Play.
Trick Play means Forward(1/2X, 2X, 4X) and Rewind (-1/2X, -2X, -4X).
Version: 1.4.5https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/112gstevent: add new api for parse seek event2021-09-24T11:10:52ZBugzilla Migration Usergstevent: add new api for parse seek event## Submitted by Jimmy Ohn
**[Link to original bug (#748738)](https://bugzilla.gnome.org/show_bug.cgi?id=748738)**
## Description
generally, when we parse seek event using gst_event_parse_seek function, parameter is too many I think....## Submitted by Jimmy Ohn
**[Link to original bug (#748738)](https://bugzilla.gnome.org/show_bug.cgi?id=748738)**
## Description
generally, when we parse seek event using gst_event_parse_seek function, parameter is too many I think.
For example, If we just want to get the rate value from event, we should use like this gst_event_parse_seek(event, NULL, &rate, NULL, NULL, NULL...).
I agree this is minor problem but I think that If we use segment for parsing event, it would be better.
Version: 1.4.5https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/110registry: System registry cache file2021-09-24T11:10:52ZBugzilla Migration Userregistry: System registry cache file## Submitted by Dan Nicholson
**[Link to original bug (#748452)](https://bugzilla.gnome.org/show_bug.cgi?id=748452)**
## Description
Right now, the first time a user runs a gstreamer program, it's slowed down by generating the regis...## Submitted by Dan Nicholson
**[Link to original bug (#748452)](https://bugzilla.gnome.org/show_bug.cgi?id=748452)**
## Description
Right now, the first time a user runs a gstreamer program, it's slowed down by generating the registry cache file. Gstreamer should be able to try a system registry cache file if the user's cache file doesn't exist. See previous discussion here:
http://lists.freedesktop.org/archives/gstreamer-devel/2015-March/052181.htmlhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/108GstObject: add support for setting uniquely numbered names for simplicity, e....2021-09-24T11:10:54ZBugzilla Migration UserGstObject: add support for setting uniquely numbered names for simplicity, e.g. videoqueue-%u## Submitted by Nirbheek Chauhan `@nirbheek`
**[Link to original bug (#748233)](https://bugzilla.gnome.org/show_bug.cgi?id=748233)**
## Description
Created attachment 302051
gstobject: Add support for a format-specifier suffix
...## Submitted by Nirbheek Chauhan `@nirbheek`
**[Link to original bug (#748233)](https://bugzilla.gnome.org/show_bug.cgi?id=748233)**
## Description
Created attachment 302051
gstobject: Add support for a format-specifier suffix
Similar to how the default name for an element is automatically assigned to be unique, it would be useful to be able to pass a custom name that can be automatically made unique.
For instance, if I have a program with a complex pipeline with queues in several different contexts (after decoders, after tees, etc), I want to be able to specify a context-specific name such as "video-decoder-queue-%u", "tee-queue-%u", etc which will become "video-decoder-queue-0", "video-decoder-queue-1", and so on. This makes parsing debug logs much easier when you see "video-decoder-queue-12" instead of "queue34".
The attached patch implements this.
gst_element_factory_make (queue, "somequeue-%u");
will create "some-queue-0", "some-queue-1", etc using the same infrastructure as the code that does the default name generation.
~~**Patch 302051**~~, "gstobject: Add support for a format-specifier suffix":
[0001-gstobject-Add-support-for-a-format-specifier-suffix.patch](/uploads/4391d5cb14d70507f0d0d8de9a6ad0e2/0001-gstobject-Add-support-for-a-format-specifier-suffix.patch)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/107buffer: minimize memory copy in _memory_add()2022-11-10T09:20:45ZBugzilla Migration Userbuffer: minimize memory copy in _memory_add()## Submitted by Prashant Gotarne
**[Link to original bug (#747959)](https://bugzilla.gnome.org/show_bug.cgi?id=747959)**
## Description
If all the slots for the memory blocks are full, instead of merging all block to single memory b...## Submitted by Prashant Gotarne
**[Link to original bug (#747959)](https://bugzilla.gnome.org/show_bug.cgi?id=747959)**
## Description
If all the slots for the memory blocks are full, instead of merging all block to single memory block, merge only best consecutive blocks to make a room for new memory block.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/104test: filesink: add test to verify append mode2021-09-24T11:10:57ZBugzilla Migration Usertest: filesink: add test to verify append mode## Submitted by Prashant Gotarne
**[Link to original bug (#747435)](https://bugzilla.gnome.org/show_bug.cgi?id=747435)**
## Description
Add testcase to verify append mode property for filesink element## Submitted by Prashant Gotarne
**[Link to original bug (#747435)](https://bugzilla.gnome.org/show_bug.cgi?id=747435)**
## Description
Add testcase to verify append mode property for filesink elementhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/103basesrc: Enable pushing frames from OS thread2021-09-24T11:10:58ZBugzilla Migration Userbasesrc: Enable pushing frames from OS thread## Submitted by Ilya Konstantinov
**[Link to original bug (#747414)](https://bugzilla.gnome.org/show_bug.cgi?id=747414)**
## Description
Current GstBaseSrc in push-mode calls into element code whenever it expects element to yield da...## Submitted by Ilya Konstantinov
**[Link to original bug (#747414)](https://bugzilla.gnome.org/show_bug.cgi?id=747414)**
## Description
Current GstBaseSrc in push-mode calls into element code whenever it expects element to yield data. It's desired to have a mode of operation where GstBaseSrc is called-into when data is available (i.e. inversion of control in relation to our current mode).
There are OS frameworks that deliver data, as it becomes available, through a callback called on an OS thread. It would be desirable, therefore, to push data from this OS thread, rather than having to deliver it (e.g. via GAsyncQueue) back to the GstTask thread.
The rationale -- "solving" this with a GAsyncQueue has two problems:
- with a small queue, latency, perf will suffer due to blocking on kernel lock
- with a big queue, latency can grow too large
Both problems can cause frame-drops -- the first at the source (due to buffer overrun), the later at the sink (due to too-late frames)
Both problems can be avoided by simply not doing it in the first place.
Also, each element that's currently in this situation ends up rolling its own solution -- GAsyncQueue etc. -- complicating the code.
ELEMENTS THAT COULD BENEFIT
Basically, a lot of Apple elements:
* osxaudiosrc
* avfvideosrc
* vtenc_h264
* vtdec
ANSWERS TO POSSIBLE CONCERNS
Such OS frameworks typically implement their own buffering, and their callbacks shouldn't be treated as strictly as - say - interrupts in the kernel. In other words, one shouldn't rush to copy the data aside from the OS buffer and finish the operation in another thread. In fact, usually zero-copy is possible.
Elements don't expect each other to be on the same thread (e.g. due to GstQueue elements), so switching elements mid-pipeline is not expected to upset anybody.
Since things expect a GstTask to associate with, the original GstTask can be used. The original task's open and close (or lock / unlock?) will ensure that the OS framework callback is enabled/disabled.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/102basetransform: Add buffer list support2021-09-24T11:10:58ZBugzilla Migration Userbasetransform: Add buffer list support## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#746544)](https://bugzilla.gnome.org/show_bug.cgi?id=746544)**
## Description
Currently basetransform has no buffer list support at all. At least for elements that do...## Submitted by Sebastian Dröge `@slomo`
**[Link to original bug (#746544)](https://bugzilla.gnome.org/show_bug.cgi?id=746544)**
## Description
Currently basetransform has no buffer list support at all. At least for elements that don't do much, like capsfilter and identity, this would be really useful to have. OTOH for elements that do actual processing, it can reduce latency to split the buffer list into separate buffers and even can make the difference between buffers arriving in time or too late inside the sink.
I would propose to add a transform_list() and transform_list_ip() vfunc to basetransform for this, and let the default do what is happening right now already. And inside identity and capsfilter it just passes through the list.
Thoughts?