gstreamer merge requestshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests2023-09-21T10:29:06Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5374Draft: aacparse: Let upstream caps inform expected header2023-09-21T10:29:06ZJan Alexander SteffensDraft: aacparse: Let upstream caps inform expected headerIs there a reason we're not doing this?Is there a reason we're not doing this?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4563plugin: Add support for re-inspecting runtime library dependent plugins2023-05-06T18:29:05ZSeungha Yangseungha@centricular.complugin: Add support for re-inspecting runtime library dependent plugins```
amfcodec: Enable plugin re-inspect upon runtime library deps change
Use newly added dependency check method
```
```
nvcodec: Enable plugin re-inspect upon runtime library deps change
Use newly added dependency chec...```
amfcodec: Enable plugin re-inspect upon runtime library deps change
Use newly added dependency check method
```
```
nvcodec: Enable plugin re-inspect upon runtime library deps change
Use newly added dependency check method
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2551
```
```
plugin: Add support for re-inspecting runtime library dependent plugins
Add a new method for each plugin to be able to detect runtime
library dependencies where the library path is non-deterministic
(e.g., depends on LD_LIBRARY_PATH)
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4365x264enc: Let libx264 choose the keyframe type on force-key-unit2023-09-19T12:37:34ZArun Raghavanx264enc: Let libx264 choose the keyframe type on force-key-unitWithout this, when forcing a keyframe with closed GOPs, we see warnings like:
```
WARN x264enc gstx264enc.c:1274:gst_x264_enc_log_callback:<x264enc0> forced frame type (1) at 60 was changed to frame type (2)
```
This ...Without this, when forcing a keyframe with closed GOPs, we see warnings like:
```
WARN x264enc gstx264enc.c:1274:gst_x264_enc_log_callback:<x264enc0> forced frame type (1) at 60 was changed to frame type (2)
```
This may or may not be a problem in actual, depending on the configured key
frame interval, but it seems more reasonable to let the library make the right
choice of keyframe type than to force it.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3283overlaycomposition: Add support for blending upstream composition2023-12-19T10:24:39ZSeungha Yangseungha@centricular.comoverlaycomposition: Add support for blending upstream composition```
By this commit, overlaycomposition will be able to blend
upstream overlay-compositions with video frames if downstream
does not support the meta.
Summary of changes
* Port to basetransform
* Notify upstream that overlay-composition ...```
By this commit, overlaycomposition will be able to blend
upstream overlay-compositions with video frames if downstream
does not support the meta.
Summary of changes
* Port to basetransform
* Notify upstream that overlay-composition meta is always supported
by this element during negotiation. Then decision whether
blending is needed or not will be made by this element
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2952mpegvideoparse: Update pixel-aspect-ratio if resolution is updated2022-08-30T14:24:34ZSeungha Yangseungha@centricular.commpegvideoparse: Update pixel-aspect-ratio if resolution is updatedThis parse element updates resolution with parsed value which can
be different from upstream one but pixel-aspect-ratio is not updated.
Updates pixel-aspect-ratio as well if resolution is updated
since the upstream information is likely ...This parse element updates resolution with parsed value which can
be different from upstream one but pixel-aspect-ratio is not updated.
Updates pixel-aspect-ratio as well if resolution is updated
since the upstream information is likely incorrect.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2941WIP: audio-channels: Add rear-left/right-of-center channels2022-09-20T17:22:18ZArun RaghavanWIP: audio-channels: Add rear-left/right-of-center channels**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/55**
These channels are defined as part of the CTA-861-F spec, and can
reasonably be expected on HDMI inputs/outputs, for example.**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/55**
These channels are defined as part of the CTA-861-F spec, and can
reasonably be expected on HDMI inputs/outputs, for example.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2830mpegtsmux: Allow setting PCR offset2022-08-03T16:29:51ZJan Alexander Steffensmpegtsmux: Allow setting PCR offsetWe need to be able to increase the offset in order to satisfy commercial
validation tools like Tektronix Sentry.We need to be able to increase the offset in order to satisfy commercial
validation tools like Tektronix Sentry.Jan Alexander SteffensJan Alexander Steffenshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2805d3d11compositor: Avoid download if downstream supports video meta2022-07-27T20:57:17ZSeungha Yangseungha@centricular.comd3d11compositor: Avoid download if downstream supports video metaGstD3D11Memory supports CPU access, but it requires video meta
since layout of the CPU accessible memory likely has padding
and it would be different from the default one.GstD3D11Memory supports CPU access, but it requires video meta
since layout of the CPU accessible memory likely has padding
and it would be different from the default one.Seungha Yangseungha@centricular.comSeungha Yangseungha@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2680Draft: videocrop: Add more semi-planar YUV and RGB formats support2022-07-11T11:33:30ZSeungha Yangseungha@centricular.comDraft: videocrop: Add more semi-planar YUV and RGB formats support* Remove unnecessary semi-planar specific cropping code.
Planar path can be directly used for semi-planar formats as well
* Add P010/P012/P016 formats. Those formats are major formats
used for various hardware accelerated video proce...* Remove unnecessary semi-planar specific cropping code.
Planar path can be directly used for semi-planar formats as well
* Add P010/P012/P016 formats. Those formats are major formats
used for various hardware accelerated video processing
* Add RGBA64 and RGB10A2 formats. It's also major display formats
on Windows used for high bitdepth swapchainSeungha Yangseungha@centricular.comSeungha Yangseungha@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2213qtdemux,qtmux: Add support for HDR10 static metadata2024-01-15T09:19:58ZSeungha Yangseungha@centricular.comqtdemux,qtmux: Add support for HDR10 static metadataAdd HDR10 static metadata support for demuxer and muxer
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/599Add HDR10 static metadata support for demuxer and muxer
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/599https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2201nvcodec: Reorganize rank of encoder elements2022-04-15T19:17:07ZSeungha Yangseungha@centricular.comnvcodec: Reorganize rank of encoder elements```
* nvd3d11{h264,h265}enc should have the highest rank on Windows
since d3d11 elements (decoder and videosink) are primary on Windows already.
Note that d3d11/cuda interop is heavy operation and we should
avoid API interop whenev...```
* nvd3d11{h264,h265}enc should have the highest rank on Windows
since d3d11 elements (decoder and videosink) are primary on Windows already.
Note that d3d11/cuda interop is heavy operation and we should
avoid API interop whenever possible
* Assign higher rank to nvcuda{h264,h265}enc than old elements
because newly written elements are expected to be more performant
and optimized
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1927vah264enc: Fix max bitrate calculation.2023-01-30T06:04:24ZVíctor Manuel Jáquez Lealvah264enc: Fix max bitrate calculation.The percentage was inverted increasing the max bitrate rather than
reducing it.
Fixes: #1080The percentage was inverted increasing the max bitrate rather than
reducing it.
Fixes: #1080https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1778Draft: asfdemux: scan last packet to determine duration for files saved from ...2024-02-14T12:05:07ZTim-Philipp Müllertim@centricular.comDraft: asfdemux: scan last packet to determine duration for files saved from broadcastsASF files that were saved from broadcast may not have a duration, and
most certainly not a seek table, so try to scan the last packet and
determine an approximate duration based on the send time of the first
and last packet. Seeking stil...ASF files that were saved from broadcast may not have a duration, and
most certainly not a seek table, so try to scan the last packet and
determine an approximate duration based on the send time of the first
and last packet. Seeking still needs fixing though.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/issues/41.26-dev-cyclehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1653filesink: Use _fseeki64 and _ftelli64 on Windows if possible2022-02-07T17:00:28ZSeungha Yangseungha@centricular.comfilesink: Use _fseeki64 and _ftelli64 on Windows if possiblefseeko and ftello functions are not available with Windows SDK.
Use equivalent Windows CRT functions.fseeko and ftello functions are not available with Windows SDK.
Use equivalent Windows CRT functions.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1553h264parse: Allow parse to update framerate from parsed value2023-03-29T13:57:47ZSeungha Yangseungha@centricular.comh264parse: Allow parse to update framerate from parsed valueDepending on stream, upstream framerate (e.g., set by demuxer)
might be incorrect but it can be corrected by h264parse using
parsed value. And in case of framerate sensitive scenario such as
timecode or closed caption handling, parsed fr...Depending on stream, upstream framerate (e.g., set by demuxer)
might be incorrect but it can be corrected by h264parse using
parsed value. And in case of framerate sensitive scenario such as
timecode or closed caption handling, parsed framerate can be preferred
over upstream one. Adding new property "framerate-override-mode"
for user to be able to select upstream-framerate preference behavior.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1264WIP: VA: Add Sub device selection support.2023-05-31T13:35:01ZHe JunyanWIP: VA: Add Sub device selection support.There are more than one sub devices within one GPU device. We can choose which one we want to work on by specifying the sub-device property in init time.There are more than one sub devices within one GPU device. We can choose which one we want to work on by specifying the sub-device property in init time.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1128Draft: rtpulpfecenc: Create a FEC packet for the last N packets in non-mp mode2021-10-12T21:41:35ZOlivier Crêteolivier.crete@ocrete.caDraft: rtpulpfecenc: Create a FEC packet for the last N packets in non-mp mode**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-good/-/merge_requests/160**
One still needs to accumulate packets when not in multi-packet mode, the
FEC packet will still protect the last "x" packets even if they are...**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-good/-/merge_requests/160**
One still needs to accumulate packets when not in multi-packet mode, the
FEC packet will still protect the last "x" packets even if they are unrelated.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1126rtpsession: emit a signal when received RTCP XR2023-10-27T23:27:49ZOlivier Crêteolivier.crete@ocrete.cartpsession: emit a signal when received RTCP XR**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-good/-/merge_requests/94**
According to RFC3611, XR packet has multiple extended report blocks.
The "on-receiving-rtcp-xr" signal will send `GstValueList` which
contain...**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-good/-/merge_requests/94**
According to RFC3611, XR packet has multiple extended report blocks.
The "on-receiving-rtcp-xr" signal will send `GstValueList` which
contains GstStructure that has all parsed the information of XR blocks.
Closes #422https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1123audio aggregator: Remove never triggered condition2022-12-11T19:11:38ZOlivier Crêteolivier.crete@ocrete.caaudio aggregator: Remove never triggered condition**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/1178**
At this point, there is a buffer, which means that there is
some data left in it. But we've read all that is in there. So
we're certain tha...**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/1178**
At this point, there is a buffer, which means that there is
some data left in it. But we've read all that is in there. So
we're certain that the next byte written from that buffer will
be after the current output offset.
Add a g_assert() just to be safe
This came from my attempt to write a unit test to trigger this code. But I don't think it's possible.
Please review this MR very very very carefully because I may have missed something.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1037audioaggregator: Use an ad-hoc converter when changing srcpad caps2021-10-04T12:55:19ZJan Alexander Steffensaudioaggregator: Use an ad-hoc converter when changing srcpad caps**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/1117**
The sinkpad converters created by
`gst_audio_aggregator_convert_pad_update_converter` cannot be used:
- The converter-config could be inv...**Copied from https://gitlab.freedesktop.org//gstreamer/gst-plugins-base/-/merge_requests/1117**
The sinkpad converters created by
`gst_audio_aggregator_convert_pad_update_converter` cannot be used:
- The converter-config could be invalid for this conversion. For
example, applying the mix-matrix to this internal conversion makes
no sense.
- The function resets `converter_config_changed`, assuming that
the the provided infos are for the sinkpad → srcpad conversion. This
can leave the pad in a bad state, set up with the wrong resampler,
causing a buffer overflow when it next attempts this conversion.
FIXME: This still feels really brittle and could cause glitches when the
conversion doesn't match what the sinkpad converters would have created
for the new caps. I think the audioaggregator should probably keep the
pre-conversion sinkpad buffers around and re-convert to the new caps
instead of attempting to convert between internal formats.