gst-plugins-bad issueshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues2021-09-24T14:39:29Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1622tsdemux: Improve keyframe seeking2021-09-24T14:39:29ZEdward Herveytsdemux: Improve keyframe seekingCurrently keyframe seeking is done by:
1. Seeking to 2.5s before requested position
2. Guess-timating where the offset would be (based on PCR observations)
3. Collecting PES data (including for streams on which we don't do keyframe check...Currently keyframe seeking is done by:
1. Seeking to 2.5s before requested position
2. Guess-timating where the offset would be (based on PCR observations)
3. Collecting PES data (including for streams on which we don't do keyframe checking)
4. Figure out if a fully collected PES is a keyframe
5. If not seek back a bit, and go back to step 3
6. If it does contain a keyframe, but not SPS/PPS/... collect keyframe and go back to step 3
This could be improved by:
1. No longer offseting back the position if there is a keyframe handler for the video stream, but instead using the requested position.
2. in SEEKING state, create a dedicated Packetizer mode which allows scanning rapidly for given PIDs (the video one and the PCR one if it's not the same as the video one).
3. Scan for position
* Start from a guesstimated offset (PTS/DTS => PCR => offset) and search for those PID if PUSI bit is set or adaptation field is present. Ignore all other packets.
* If the stream is AVCHD/BDMV, every single packet has the PCR as the first 4 bytes. This can speed up guessing the initial start position to look for those given PID.
4. If the resulting offset is too far astray (or because of PCR jump/discont/gap), recalculate a new offset and go back to 3
5. Every time a video PID with PUSI bit is set, start scanning the content of that packet PES for actual PTS/DTS and keyframe/sps/pps presence. If scanner needs more data from that packet to decide whether it contains or not a keyframe/sps/pps, it can say so and the next packet from that video PID is provided
6. If that packet contains all needed information to start playback (SPS/PPS/keyframe), mark that as the starting position and go back to regular playback mode
7. If that packet doesn't contain the needed information, scan backwards for video PID with PUSI bit set, i.e. go back to step 5.
This will:
* reduce i/o to a minimum and ensure we always hit the *target* keyframe (and not some several seconds earlier)
* avoid messing up with the state of tsdemux regular playback (positions going completely astray, random stray data being pushed out, ...)
* allow much faster seeking, especially for AVCHD/BDMV contenthttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1530va: investigate a way to dismiss unused memories after reverse playback2021-09-24T14:39:08ZVíctor Manuel Jáquez Lealva: investigate a way to dismiss unused memories after reverse playbackWhile reverse playback the number of buffer has to increase since the whole GOP has to be allocated before rendering. This might bring a lot of memory pressure, mainly in hardware accelerated decoding.
For example, in order to make more...While reverse playback the number of buffer has to increase since the whole GOP has to be allocated before rendering. This might bring a lot of memory pressure, mainly in hardware accelerated decoding.
For example, in order to make more efficient the dmabuf-based memory allocation, va has an allocator's pool that stores all the created and released memories. But, after reverse playback (returning to normal playback) a lot of memories aren't required any more. It should be nice to find a mechanism to invalidate that memory cache.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1440Capturing the screen on an extended dual/triple monitor2021-09-24T14:38:52ZDavide PeriniCapturing the screen on an extended dual/triple monitorHi all,
is it possible to capture the screen using gstreamer on a dual/triple extended monitor like if it is a single monitor?
I'm using this command:
> /gst-launch-1.0 dxgiscreencapsrc ! videoscale method=0 ! videoconvert ! autovideosi...Hi all,
is it possible to capture the screen using gstreamer on a dual/triple extended monitor like if it is a single monitor?
I'm using this command:
> /gst-launch-1.0 dxgiscreencapsrc ! videoscale method=0 ! videoconvert ! autovideosink sync=false
but it captures only one screen.
Any way to fix?
Thanks,
Davidehttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1438decklink: Add support for HDR capture/output2021-09-24T14:38:52ZSebastian Drögedecklink: Add support for HDR capture/outputCan be done now with the latest SDK that we updated to.
There can be static metadata that we can signal via caps, or dynamic which can be signalled via the `GstVideoMasteringDisplayInfo` and `GstVideoContentLightLevel`.Can be done now with the latest SDK that we updated to.
There can be static metadata that we can signal via caps, or dynamic which can be signalled via the `GstVideoMasteringDisplayInfo` and `GstVideoContentLightLevel`.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1420webrtcbin: Missing custom certificate support2021-09-24T14:38:46ZPhilippe Normandwebrtcbin: Missing custom certificate support`generateCertificate` is a static func in the PC interface. I am not sure it makes sense to expose an API mirroring this, but I think that at least we should have a `certificate` property on webrtcbin, that could be a GstStructure storin...`generateCertificate` is a static func in the PC interface. I am not sure it makes sense to expose an API mirroring this, but I think that at least we should have a `certificate` property on webrtcbin, that could be a GstStructure storing the PEM, private-key, fingerprints and expiration date. Any thoughts about this?
https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-generatecertificatehttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1384webrtcbin: Balanced SDP bundling support2021-09-24T14:38:40ZPhilippe Normandwebrtcbin: Balanced SDP bundling supportThis feature is used by ~~Jitsi and~~ Big Blue Button at least. Would be nice to support at some point :)
Update: Looks like Jitsi switched to max-bundle, yay.This feature is used by ~~Jitsi and~~ Big Blue Button at least. Would be nice to support at some point :)
Update: Looks like Jitsi switched to max-bundle, yay.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1359mediafoundation: Implement generic URI source2021-09-24T14:38:35ZSeungha Yangseungha@centricular.commediafoundation: Implement generic URI source`GstMFSourceReader` was introduced for an internal of `mfvideosrc` element to to read data from video capture device.
We can extend the usage of `GstMFSourceReader` to read data from any URI (http, file or so) if it's supported by Media...`GstMFSourceReader` was introduced for an internal of `mfvideosrc` element to to read data from video capture device.
We can extend the usage of `GstMFSourceReader` to read data from any URI (http, file or so) if it's supported by MediaFoundation.
Moreover, `GstMFSourceReader` can be enhanced to be able to read data from UWP file object which would be a more generic
approach than https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1001
See also https://docs.microsoft.com/en-us/windows/win32/api/mfreadwrite/nn-mfreadwrite-imfsourcereaderhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1337d3d11desktopdupsrc: Expose dirty-rect area via ROI video meta2021-09-24T14:38:32ZSeungha Yangseungha@centricular.comd3d11desktopdupsrc: Expose dirty-rect area via ROI video metaThe dirty-rect concept in dxgiscreencapsrc (Desktop Duplication API) can be shared with d3d11videosink (both are based on DXGI!!). Note that d3d11videosink is utilizing the direty-rect concept in a very limited way while swapchaining. Bu...The dirty-rect concept in dxgiscreencapsrc (Desktop Duplication API) can be shared with d3d11videosink (both are based on DXGI!!). Note that d3d11videosink is utilizing the direty-rect concept in a very limited way while swapchaining. But if the capture side dirty-rect information can be forwarded to d3d11videosink, we might be able to save more GPU resource while swapchaining.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1336mfvideoenc: Add support for ROI videometa2021-09-24T14:38:31ZSeungha Yangseungha@centricular.commfvideoenc: Add support for ROI videometaSimilar to ROI + delta-qp implementation in msdk and vaapi, `mediafoundation` video encoder can support delta-qp for ROI.
See https://docs.microsoft.com/en-us/windows/win32/medfound/codecapi-avencvideoroienabled and https://docs.microso...Similar to ROI + delta-qp implementation in msdk and vaapi, `mediafoundation` video encoder can support delta-qp for ROI.
See https://docs.microsoft.com/en-us/windows/win32/medfound/codecapi-avencvideoroienabled and https://docs.microsoft.com/en-us/windows/win32/medfound/mfsampleextension-roirectanglehttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1284Integrate KITE test engine for WebRTC implementation2021-09-24T14:38:20ZNazar MokrynskyiIntegrate KITE test engine for WebRTC implementationThere is a useful interoperability tool for WebRTC called KITE: https://github.com/webrtc/KITE
It would be nice if GStreamer WebRTC implementation could be integrated somehow to have some concrete information on what is supported, how w...There is a useful interoperability tool for WebRTC called KITE: https://github.com/webrtc/KITE
It would be nice if GStreamer WebRTC implementation could be integrated somehow to have some concrete information on what is supported, how well things interoperate and so on.
I have no experience with it yet, but I believe it is worth considering long-term.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1186Improve WebRTC stats output2021-09-24T14:38:03ZJan SchmidtImprove WebRTC stats outputA lot of the webrtcbin stats are FIXME, mostly because they need information that's hard to collect from the underlying implementation.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/blob/master/ext/webrtc/gstwebrtcstats.cA lot of the webrtcbin stats are FIXME, mostly because they need information that's hard to collect from the underlying implementation.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/blob/master/ext/webrtc/gstwebrtcstats.chttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1176transcodebin: need API to only transcode one stream type and let the rest pas...2021-09-24T14:38:02ZGuillaume Desmottestranscodebin: need API to only transcode one stream type and let the rest passthroughI have a container containing one audio and one video stream. I'd like to use `transcodebin` to produce a file using a specific container and audio formats but keep the existing video stream as it and just remux it (I don't want to re-en...I have a container containing one audio and one video stream. I'd like to use `transcodebin` to produce a file using a specific container and audio formats but keep the existing video stream as it and just remux it (I don't want to re-encode video to save CPU).
I didn't find any convenient way to do this using the current API. The only option is to configure the `profile` with the video format used in the input but I don't know it beforehand.
Maybe we could have a *wildcard* or *passthrough* special profile saying "I don't care what the format is, just re-use whatever we already have if supported by the container" ?
cc @thiblahutehttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1174WebRTC ICE API doesn't publish sdpMid2021-09-24T14:38:01ZJan SchmidtWebRTC ICE API doesn't publish sdpMidAccording to https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent, the ICE candidates API should provide the sdpMid as well as sdpMLineIndex. webrtcbin only publishes the latter, which seems to work but I think doesn't match the specAccording to https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent, the ICE candidates API should provide the sdpMid as well as sdpMLineIndex. webrtcbin only publishes the latter, which seems to work but I think doesn't match the spechttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1170webrtc: DTMF support unimplemented2021-09-24T14:37:58ZPhilippe Normandwebrtc: DTMF support unimplementedSpec link: https://www.w3.org/TR/webrtc/#peer-to-peer-dtmfSpec link: https://www.w3.org/TR/webrtc/#peer-to-peer-dtmfhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1079Windows DVB source2021-09-24T14:37:43ZkevintkoiWindows DVB sourceI am unable to find **'dvbsrc'** plugin after installation of gstreamer on my **Windows 10** .I tried installing gstreamer from various packages[https://gstreamer.freedesktop.org/data/pkg/windows/] **1.2.0,1.2.4,1.6.4,1.10.0,1.16.0,1.13....I am unable to find **'dvbsrc'** plugin after installation of gstreamer on my **Windows 10** .I tried installing gstreamer from various packages[https://gstreamer.freedesktop.org/data/pkg/windows/] **1.2.0,1.2.4,1.6.4,1.10.0,1.16.0,1.13.90**, but none of them had the 'dvbsrc' plugin.Is it because the plugin is *missing in the windows* installation packages ?
Can someone help me to get the plugin for windows?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1026dtls: Documentation needs to be improved2021-09-24T14:37:34ZFurkan Davulcudtls: Documentation needs to be improvedCurrent documentation of dtls plugin is very insufficient to understand how this plugin can be used in an application. A clearer example with a detailed explanation would make this plugin much more accessible and usable.Current documentation of dtls plugin is very insufficient to understand how this plugin can be used in an application. A clearer example with a detailed explanation would make this plugin much more accessible and usable.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/981Add vmaf plugin2021-09-24T14:37:25ZXu GuangxinAdd vmaf pluginNetflix provides [VMAF](https://github.com/Netflix/vmaf) for perceptual video quality assessment. It's a good tool for sw/hw encoder quality measurement.
@sree proposed this in https://01.org/zh/linuxmedia/gsoc/gsoc-2019-ideas. It's pic...Netflix provides [VMAF](https://github.com/Netflix/vmaf) for perceptual video quality assessment. It's a good tool for sw/hw encoder quality measurement.
@sree proposed this in https://01.org/zh/linuxmedia/gsoc/gsoc-2019-ideas. It's picked by MSU student Sergey Zvezdakov.
@haihao and me will help Sergey working on thishttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/886Add observers for macOS/iOS AV capture device connected/disconnected notifica...2021-09-24T14:36:57ZJosh MatthewsAdd observers for macOS/iOS AV capture device connected/disconnected notificationshttps://nadavrub.wordpress.com/2015/07/06/macos-media-capture-using-coremediaio/ describes how to use observers to receive notifications that we could use in the start/stop callbacks for the AVF device provider. https://gitlab.freedeskto...https://nadavrub.wordpress.com/2015/07/06/macos-media-capture-using-coremediaio/ describes how to use observers to receive notifications that we could use in the start/stop callbacks for the AVF device provider. https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/170#note_109642 describes some of the complications around doing this correctly.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/822CEA-608 renderer support2021-09-24T14:36:47ZAntonio LarrosaCEA-608 renderer supportRecently some CC support has been added to gstreamer for CEA-708 but it seems CEA-608 support is still missing.
I've built the latest git master and tried playing [a sample video](http://trac.webkit.org/export/53075/trunk/LayoutTests/me...Recently some CC support has been added to gstreamer for CEA-708 but it seems CEA-608 support is still missing.
I've built the latest git master and tried playing [a sample video](http://trac.webkit.org/export/53075/trunk/LayoutTests/media/content/counting-captioned.mov) which includes CEA-608 CCs. Using gst-play, video is shown fine, but CCs are not rendered and I'm getting the following error on the terminal output:
> 0:00:00.120853554 10567 0x7fd99400ae30 ERROR playbin gstplaybin2.c:3561:pad_added_cb:<playbin> unknown type closedcaption/x-cea-608 for pad uridecodebin0:src_1
It would be nice to have better support for CEA-608 in addition to CEA-708.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/813vulkan: Add a Vulkan library like libgstgl for creating/wrapping contexts, me...2021-09-24T14:36:47ZJoshua Battyvulkan: Add a Vulkan library like libgstgl for creating/wrapping contexts, memories, etc.Integration with other Vulkan-based libraries and the GStreamer `vulkan` plugin requires some public API in a library so that contexts can be wrapped/created/shared and textures/etc can be put/retrieved from `GstMemory`.
Most of this ex...Integration with other Vulkan-based libraries and the GStreamer `vulkan` plugin requires some public API in a library so that contexts can be wrapped/created/shared and textures/etc can be put/retrieved from `GstMemory`.
Most of this exists already inside the `vulkan` plugin but would have to be moved into a library for external consumers.