Commit graph

8748 commits

Author SHA1 Message Date
Carlos Bentzen
7faa031e0e pbutils: add profile-tier-level functions for VVC/H.266
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5088>
2025-02-10 09:20:22 +00:00
Tim-Philipp Müller
bf5f642841 Back to development after 1.25.50 2025-02-09 17:47:32 +00:00
Tim-Philipp Müller
3e8f88d756 Release 1.25.50 2025-02-09 17:35:17 +00:00
Nirbheek Chauhan
50680fe32f opencv: Fix pkgconfig dependency name and gstopencv_dep
Broke in bbdf8f5996

Also print the prefix inside which we try to detect opencv's data dir.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:32 +00:00
Nirbheek Chauhan
73da2edbba opencv: Fix hand detect profile paths
This is the same mechanism used by facedetect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:32 +00:00
Nirbheek Chauhan
ce73ab5245 docs: Fix opencv pkgconfig file name
Most distros ship OpenCV 4.x, and the pkgconfig file for that is
`opencv4`. OpenCV 3.x uses `opencv`, and Fedora ships both files with
OpenCV 4.x for backwards compat.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:31 +00:00
Nirbheek Chauhan
c2db03a323 soup: Ensure that libsoup RPATHs are added with Homebrew too
With the old method of adding build RPATHs, only the libsoup as
a subproject was supported. However, it's possible to use Homebrew for
libsoup too by adding libsoup as a dependency to the target (even
though we don't link to it).

Apple ld will not add a LC_LOAD_DYLIB entry for a library unless there
are symbols that need it because meson passes `-dead_strip_dylibs`, so
we can do this without issue.

As a bonus, this ensures the correct build RPATHs in all cases.

Additionally, we still need to explicitly add an LC_RPATH for the
installed case.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4027

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:31 +00:00
Cheung Yik Pang
5e086ea3f5 va: Add VP8 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
59104fb3a3 va: Add VP9 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
fd22a9c090 va: Add codec alpha decode bin base class
A VA-API decoder bin base class for codecs with alpha channel support.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
dukesook
54830e7c0a qtdemux: Demux Uncompressed MP4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7985>
2025-02-08 10:15:06 +00:00
wbartel
8135a6689b webrtc: fix pkg-config missing sdp dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8433>
2025-02-08 02:48:28 +00:00
Guillaume Desmottes
b5fdb5aec5 codecs: include gsth266decoder.h when building gir
Will hopefully fix cerbero ci job.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8430>
2025-02-07 23:04:16 +00:00
Nicolas Dufresne
8d1060f205 v4l2codecs: Add NV12_10LE40 / NV15 support
NV15 is common format on RK platform and is that only uncompressed 10bit
format the display controller on RK3588 supports.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8426>
2025-02-07 22:17:17 +00:00
Nicolas Dufresne
5b1fb0e581 video: Add DRM for NV12_10LE40 to DRM_FORMAT_NV15
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8426>
2025-02-07 22:17:17 +00:00
Kévin Commaille
9aeaea29f5 zbar: allow to get symbol as bytes
It would be possible to get some binary symbols with a string, but if
they contain NUL bytes, the string will be cut off. To fix this,
provide the decoded symbol as a GBytes too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>
2025-02-07 20:53:50 +00:00
Kévin Commaille
fcd2e61330 zbar: allow to enable binary mode
Added in zbar 0.23.1, it is a mode that prevents zbar from trying to
convert the binary data of QR codes to text by guessing the encoding.

Add a property that changes the configuration of the zbar image scanner
accordingly.

<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>
2025-02-07 20:53:50 +00:00
Alicia Boya García
2f8b1f2865 log tracer: Use strings instead of integer codes
In many places in the log tracer %d was used for data types we have
string format functions. This is especially problematic when the data
type is not immediately obvious to the reader (e.g. gboolean vs
GstFlowRet, where TRUE==1 but GST_FLOW_OK==0) or the values are not easy
to memorize (GST_STATE_CHANGE_PLAYING_TO_PAUSED==35).

This patch replaces all the integer codes with string representations so
that the logs are easier to understand by humans.

The formatting of GstBufferList by the log tracer is also updated to use
GST_PTR_FORMAT instead of a raw pointer, so the user can see the
timestamps, size and number of buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8414>
2025-02-07 18:48:52 +00:00
He Junyan
f63a70966e av1parse: Handle the padding OBU correctly
The current av1parse can not find the edge of frame correctly if there
is padding OBUs inside the stream. We now use a flag seen_non_padding to
check whether we see some valid data after a data push. Then the padding
OBUs will be the part of the new frame.
We also refine the code logic to make the code more readable.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4044
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8269>
2025-02-07 16:56:53 +00:00
Philippe Normand
a39f465692 rtpsession: Fix heap-use-after-free of twcc_packets structure
This is a regression introduced by 90d99c7b52.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8427>
2025-02-07 12:52:06 +00:00
Carlos Bentzen
bb74aceb5d h266parse: clean up unused APS fields
Since APS is always carried in-band, we don't need to keep the APS
NALs around in the parser anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
be98ba00d7 h266parser: do not fail when extension flags are set
For VPS, PPS, APS, OPI and DCI, the extension flags are the last syntax
in the structures, and according to the spec, should be ignored if set to 1.

Therefore, we can just ignore them rather than failing.

This fixes a few failures in fluster, like in the PSEXT_A_Nokia_2 stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
3a12b0beaa h266parse: add tests for vvc1 and vvi1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
5fad23d26b h266parse: enable vvc1 and vvi1 stream formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
05d4a2022e h266parse: handle packetized frames
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
551782b32b h266parse: don't prepend APS NALs on IDR frames
Instead, APS NALs can just be pushed an in-band NALs like PH and SEI.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
c7e9aba025 h266parse: negotiate before handling codec_data NALs
If we find VPS/SPS/PPS in codec_data and call gst_h266_parse_process_nal
with them, we need to have negotiated before in order to correctly
process them with flags like h266parse->transform set or not depending
on the negotiation. This is important because in certain vvc1/vvi1 streams we
may have correct codec_data but faulty parameter sets in the stream and
we would want to push the parameter sets from codec_data first.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
f4f7e99e05 h266parse: parse codec_data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
8607ccdf2c h266parse: update IDR position in more cases
The IDR position should be updated if we're processing an
IDR frame or pushing codec NALs. Not only when picture_header_in_slice_header_flag
is set.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
7c29249ca5 h266parse: fix typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
fe61b43814 h266parse: implement make_codec_data
implement serialization of codec_data containing VvcDecoderConfigurationRecord
as defined in ISO/IEC 14996-15.

The VPS/SPS/PPS NALs are added to the codec_data. APS NALs could be
optionally included as well but will be pushed in-band instead, because:
1. Logic is easier that way. We'd have to filter out for PREFIX_APS only
   (SUFFIX_APS aren't allowed in codec_data).
2. APS NALs can also be sent for every non-keyframe slice, and often are, so just pushing
   them in-band makes more sense to have less to keep track and avoid possible
   duplicates.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
4545d199c3 h266parser: add API to parse VVCDecoderConfigurationRecord
VVCDecoderConfigurationRecord is present in ISOBMFF files carrying
VVC/H.266 streams via the vvcC box, as defined in ISO/IEC 14496-15.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:16 +00:00
Nirbheek Chauhan
0aacc1a6a9 opencv: imgcodecs.hpp is also needed to build the plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8418>
2025-02-07 02:32:03 +00:00
Nirbheek Chauhan
bbdf8f5996 meson: Modernize opencv build definitions
Use the fs module instead of using `run_command('test')`, simplify
some indentation, fix dependency management

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8418>
2025-02-07 02:32:03 +00:00
Sebastian Dröge
7346764b8e play: Distinguish missing plugin errors and include more details in error/warning messages
Include the URI (and if possible) stream-id in the messages. These are provided
by uridecodebin3 / decodebin3 in most cases but there is fallback code to guess
them otherwise.

For missing plugin errors also the installer details are included.

The URI is included in all message types.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3547

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8236>
2025-02-07 01:02:01 +00:00
Seungha Yang
5dd695f81f docs: Add nvdswrapper docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8425>
2025-02-06 17:48:47 +00:00
Philippe Normand
1baa10ed07 wpe: Reduce gpointer usage in ThreadedView
Those gpointers were introduced when we had to support some old WPE API, no need
for them anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8413>
2025-02-06 17:00:39 +00:00
Jan Schmidt
9adc7bd9f0 test-onvif example: Add support for AAC backchannel
Detect upstream backchannel codec and support AAC in MPEG4-GENERIC
encapsulation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
d2dcfea052 rtsp-server: fix for creating backchannel stream dynamically
If collecting the backchannel stream after the stream has begun
preparing, make sure to join it to the RTSP media bin, as is
done for dynamic payloaders in the pad-added handler. Add a
new internal stream creation method for it, that could be
publically exposed later if it proves useful.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
6921405f40 onvif-media-factory: Fix pad ref leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
37f1077284 rtsp-media: Only wait for sender streams to block
When prerolling / blocking an RTSP media, don't consider receiver
streams like onvif backchannel in the 'is everything blocked' check,
as those streams won't receive data until after the RTSP stream
is running.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
1a4b683225 onvif-media: Error for streams that have EMPTY/ANY caps
Don't silently fail to put a stream in the SDP if the caps are
empty or ANY

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
c83c7f9a92 rtsp-onvif-media: Add some debugging
Add a debug category and some debug to the ONVIF media

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
84f8fcedc6 rtsp-onvif-media-factory: Add create_backchannel_stream() vfunc
Move the functionality that collects the backchannel bin and turns
it into an RTSP stream object into a vfunc so that implementations
can override the behaviour or timing of the call

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
a18b8c3f16 rtsp-media: Make sure to add appsink and appsrc to the pipeline
When decoupling send/receive loops in rtsp-media using appsink/appsrc,
put the appsink in the bin before linking it, as this code path
had that wrong.

For both sender and receiver paths, if the pipeline already started
also add the other appsrc/appsink of the pair to the pipeline
immediately instead of putting it in the pending elements list,
as they won't get added later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
11aed62ea8 rtsp-server: Make onvif sample support different codecs
Add some autoplugging to the onvif example to make it handle
different video codecs automatically, and add support for
outputting the audio stream too, if any.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
4fee71907a rtsp-server: Fix test-onvif-client position calculations
The example was switched to use autovideosink, which broke
current position calculation based on the last video frame.

Add code to retrieve the actual video sink from within autovideosink
to make it work again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Alicia Boya García
cf2dc2f94c gstreamer: parse: Fix log in gst_parse_perform_link
Suppose you're trying to debug why this pipeline doesn't work:

```
$ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch-1.0 \
    videotestsrc num-buffers=10 ! x264enc name=enc ! mux.sink_0  \
    mpegtsmux name=mux ! fakesink
```

You will encounter this line in the logs:

> gst_parse_perform_link: linking some pad of GstX264Enc named enc to
> pad  mux of GstMpegTsMux named mux (0/1) with caps "(NULL)"

It would seem that the element name is being read as a pad name as well,
and that made me wonder if the parsing was not working. However, it was
just a bug in the code printing that log. This patch fixes that bug.

Note that it is possible to specify more than one pad name for each side
of the link. For instance, the following is a valid pipeline that will
remux the video and audio of an MP4 file into MKV:

```
$ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch \
    filesrc location=input.mp4 ! qtdemux name=demux  \
    multiqueue name=mq  \
    matroskamux name=mux ! filesink location=output.mkv  \
    demux.video_0,audio_0 ! mq.sink_0,sink_1  \
    mq.src_0,src_1 ! mux.video_0,audio_0
```

The new logging accomodates this by using a new utility function to join
strings of pad name lists instead of `PRETTY_PAD_NAME_FMT` (which only
supports one pad name). For example:

> linking pads {video_0, audio_0} of GstQTDemux named demux to pads
> {sink_0, sink_1} of GstMultiQueue named mq with caps "(NULL)"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8415>
2025-02-06 11:20:39 +00:00
Patricia Muscalu
6b547ffc4b tracers: Fix build problem when tracer hooks are disabled
"undefined reference to `GST_TRACER_PAD_SEND_EVENT_PRE'
undefined reference to `GST_TRACER_PAD_SEND_EVENT_POST'"
errors are generated when trying to build GStreamer with
the following build configuration:
meson setup -Dgstreamer:tracer_hooks=false build

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8419>
2025-02-06 10:24:12 +00:00
Nicolas Dufresne
6fe6811eb7 docs: v4l2codecs: Add plugin index documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
ec8e2d6a31 doc: Push v4l2codecs documentation cache
These are normally autogenerated for the platform GStreamer runs on,
though it is convenient to have everything listed in the doc. This
was created with the new GST_V4L2_CODEC_GEN_DOC=1 environment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
bb37ea168d doc: v4l2codecs: Document all decoders
Add the documentation blob and since marker for all decoders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3645f050af v4l2codecs: Remove uneeded per-codec abstract class
That subclass was not needed and was causing issues wit doc generation.
The only down side of removing it is that the decoder cast macro is no
longer type safe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
2197627336 v4l2codecs: Add Hardware class to alpha decoders
This was accidently omitted, this is needed wen filterting hardware
codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3b9fc2a29e v4l2codecs: Cleanup alpha decodebin class header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
d13a414ddc v4l2codecs: Don't needlessly expose decoder types
We have explicit register functions and have no use for these types in
other components.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
76b36f1493 v4l2codecs: Use pragma once
This is a nice cleanup and removes comment referring to D3D notably.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
5e6411e2f6 v4l2codecs: Enable AV1 kernel version check
The uAPI finally got merged into 6.5.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
18f3ea41c0 v4l2codecs: Add a doc generation mode
This is enabled through an env, it allow exposing all elements without
the needed driver supports. This is useful to fill the documentation cache.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
7edb6a5634 waylandsink: Prefer DMABuf over system memory
Swap the template and caps query around to that the sink can describe a
preference for DMAbuf over system memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:57:29 -05:00
Nicolas Dufresne
e953693aff v4l2: object: Use libgstvideo DMA DRM mapping
Complete the mapping by pulling GST/DRM mapping from libgstvideo. This removes
the duplication.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:57:29 -05:00
Nicolas Dufresne
388f86131f video: dma-drm: Extend the format mapping
These formats were mapped in video4linux2 plugin, but not here. Add them
so te video4linux2 plugin can use the global mapping.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:56:15 -05:00
Nicolas Dufresne
9eec7ddf19 video: Add support for big endian DRM formats
When a format is big endian, the 8bith of the fourcc is set. Handle this by
using a "_BE" suffix in serialization. The patch also update the design document
and introduce a unit test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:56:15 -05:00
Stéphane Cerveau
a960985d18 vkvideoencodeh265: fix PicOrderCntVal usage
remove `pic_order_cnt` member variable of GstVulkanH265EncodeFrame and
use always `pic_num` instead.

Intialize first `pic_num` value in test_encoder_h265_i_p.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8408>
2025-02-05 18:33:36 +00:00
Andoni Morales Alastruey
bc5e1eeb16 build: remove gst-indent as a subproject
gst-indent is now installable with pip. Remove it as
a subproject and update the documentation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8402>
2025-02-05 17:43:57 +00:00
Stéphane Cerveau
bd62300d22 vkvideoencodeh26x: tests: set constant qp
Set constant qp to 26 in between 0 and 51, the qp range
for h264 and h265.

minQp in case of ANV is 10 for h265

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8407>
2025-02-05 16:48:56 +00:00
Seungha Yang
fbf698cc0b mediafoundation: Enable MinGW build
Update MinGW toolchain in cerbero can support MediaFoundation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
7108147d78 mediafoundation: Use DEFINE_GUID instead of DECLSPEC_UUID
MinGW will not define IID for custom COM object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
f57162deeb mediafoundation: Fix GUID_NULL related MinGW build error
Include cguid.h for GUID_NULL

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
66b92465cd mediafoundation: Fix various GCC warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Corentin Damman
0268ee9c52 pluginloader-win32: create no window
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8387>
2025-02-05 14:18:22 +00:00
Robert Mader
12d2a4e2a1 matroskademux: Implement rotation tag support
Similar to qtdemux.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.
In particular the Yaw value seems to get ignored by many clients.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 13:26:08 +01:00
Robert Mader
a7c2899990 matroskamux: Implement rotation tag support
Similar to qtmux, but for mkv and webm containers.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.
In particular the Yaw value seems to get ignored by many clients.

Can be tested with:

```
gst-launch-1.0 \
videotestsrc num-buffers=90 ! \
taginject tags="image-orientation=rotate-270" ! \
capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
videoconvert ! \
queue ! \
vp8enc ! \
queue ! \
webmmux ! \
filesink location=./test.webm
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 12:03:26 +00:00
Robert Mader
b2702b6f10 matroska: Add projection IDs
These will allow us to support rotate methods with matroska v4 and
the corresponding webm.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 12:03:26 +00:00
He Junyan
e25ca874e1 va: Implement the VA h266 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5865>
2025-02-05 18:57:06 +08:00
He Junyan
0ce5fe3cc9 codecs: Add the H266/VVC decoder base class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5865>
2025-02-05 18:57:06 +08:00
Philippe Normand
5de3cfca31 oggdemux: Fix racy decode error
Sometimes the seek to the end of file to determine the duration would trigger a
reset of the source pads, that would confuse the decoder downstream and trigger
an error. So the proposed fix is to not reset pads when the segment event being
processed is the consequence of a seek performed to determine the duration.

Fixes #4212

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/937>
2025-02-04 18:56:25 +00:00
Seungha Yang
bf98e200b2 mfdevice: Unregister device notification callback on stop
... as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
972da9cab9 mfvideoenc: Fix profile string check
profile_str is not std::string. Use strcmp instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
73f8de3305 mfdevice: Fix memory leak
Release resources on dispose() as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
91def8d4ad meson: Check d3d12video header for MinGW build
Old MinGW toolchain does not ship the header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8400>
2025-02-03 21:24:47 +00:00
Michael Tretter
1a8143f721 videotestsrc: fix build if adder is disabled
The videotestsrc is not build if the adder plugin is disabled. This is a
copy/paste error introduced in Commit 3de86b2b97 ("docs: port plugins to
explicit sources").

Fix the check to actually test the 'videotestsrc' option.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8399>
2025-02-03 18:57:34 +00:00
Sebastian Dröge
97a6a8213c avcodecmap: Use gst_value_list_append_and_take_value() in two places
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8379>
2025-02-03 16:07:37 +00:00
Sebastian Dröge
6d772f6ba3 avcodecmap: Use actually supported channel counts for S302M
Only 2/4/6/8 channels are supported. Also this makes sure that the correct
sample rate is enforced (48kHz) in the template caps instead of allow any sample
rate and failing at runtime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8379>
2025-02-03 16:07:31 +00:00
Sebastian Dröge
a1c123d342 cc708overlay: Deprecate element in favour of cea708overlay
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3459

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8397>
2025-02-03 09:51:53 +00:00
Tomas Granath
fa9b630fc8 matroskademux: Mark streams as EOS when outside the requested segment
Ensure that streams with no (more) data are marked as EOS when
advancing past the requested segment. Without this change the
EOS would be postponed to the end of the file in that case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8395>
2025-02-03 09:06:28 +00:00
Seungha Yang
353d963c77 d3d12mipgen: Respect requested mip levels
Don't waste GPU power by generating more levels than requested

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8394>
2025-02-02 21:01:42 +09:00
Seungha Yang
1dc09d67fe d3d12mipgen: Serialize root signature only once
... and reuse serialized blob

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8394>
2025-02-02 20:51:43 +09:00
Carlos Bentzen
4b0d555056 libav: add support for VVC/H.266 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7637>
2025-02-02 08:53:33 +00:00
Ruben Gonzalez
df7a8c8c40 meson: use nls option to ENABLE_NLS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7017>
2025-02-01 12:27:01 +00:00
Andoni Morales Alastruey
44720cd2f4 pre-commit: add documentation on how to use it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:15:26 -03:00
L. E. Segovia
2e11649264 docs: Move all references to gst-indent-1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:15:26 -03:00
Andoni Morales Alastruey
4ad6d4f99d csharp: do not format autogenerated code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
eaec7d9acb bad: tools: update gst-{app,element,project}-maker for new gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
bc83c07727 scripts: update update-orc-dist-files.py scripts for new gst-indent
And fix python indentation with autopep8

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
41c097ed6c docs: update contributing + FAQ docs for gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
L. E. Segovia
fab3da528e gst-indent: build our own indent tool and make it available in the devenv
No more formatting mismatches owing to different GNU indent
versions shipped by different distro versions.

See #340

Co-authored-by: L. E. Segovia <amy@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:41 -03:00
Carlos Bentzen
8b464cd282 libav: map GST_VIDEO_FORMAT_GRAY10_LE16 to AV_PIX_FMT_GRAY10LE
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8388>
2025-01-31 14:17:05 +00:00
Seungha Yang
cc6941ed9a d3d12converter: Fix SRV descriptor heap size
Converter was allocating smaller size of descriptor heap
than required size when auto-mipgen is enabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8391>
2025-01-31 13:16:50 +00:00
Seungha Yang
a91275a71e examples: Add h264parser example
An example to show how to detect frame type using h264parser

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8338>
2025-01-31 10:53:19 +00:00
Jan Schmidt
31a3172bfe v4l2vidoedec: Fix caps negotiation in non-DRM case
Append acquired_caps to the filter_caps being built,
instead of a 2nd copy of acquired_drm_caps.

Fix a regression introduced in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633
when downstream doesn't support DRM output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8385>
2025-01-30 12:33:07 +00:00
Piotr Brzeziński
a88eda66d2 osxaudio: Always expose max amount of channels with no positions
For outputs with a high number of channels, macOS has a bug where
initially CoreAudio will report incorrect positions for all channels,
but after you run Audio MIDI Setup and configure the speaker layout
there, macOS will always report those few as positioned, with no option
to revert that (other than deleting some internal files).

In such scenario our code would just ignore all the unpositioned
channels. Since you can only position max. 16 channels in macOS, if you
had more on your output device, those would be unusable.

This commit makes sure that in addition to the usual positioned layout
(if there is one), we will expose caps for a no-positions layout that
always has the maximum amount of channels available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>
2025-01-30 09:53:15 +00:00
Piotr Brzeziński
c5c5327df6 osxaudio: Work around invalid channel positions from CoreAudio
By default, for devices with larger amounts of outputs, CoreAudio can
provide invalid channel labels/positions, simply by starting at 0 and
incrementing forward. For example, values 19 through 32 are not valid
according to the CoreAudioBaseTypes.h header, but if your device has >19
output channels, you will find CoreAudio using those values.

This is most likely a bug in CoreAudio, since in that case it should use
unpositioned labels (e.g. _Discrete_X) instead.

This commit aims to work around this by overriding all channels to be
unpositioned if the case above is detected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>
2025-01-30 09:53:15 +00:00
Sebastian Dröge
83e95af6e3 mpegtsdescriptor: Add (transfer none) annotation to out parameter of parse_registration()
Out parameters are (transfer full) by default.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8380>
2025-01-30 01:06:55 +00:00
Colin Kinloch
e0e7a11089 wayland: De-dupe filling caps format fields
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8268>
2025-01-29 21:04:16 +00:00
Nicolas Dufresne
d327b576fd v4l2codecs: format: Fix tiled stride with modifiers
After a bit of back and forth, we figure-out that for backward
compatibility we need to set the tile stride the way GStreamer
defines it. Sinks such as glimagesink/waylandsink translate it
back to the number of bytes representation used by Linux.

The change in !7355 when the other way around, breaking tiled
playback through waylandsink and glimagesink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Nicolas Dufresne
902f0eb9ea video: Add DMA_DRM mapping for NV12_16L32S / MT2110T / MT2110R
This is used on Meditek SoC and Mesa Panfrost [0] has enabled the 8bit variant
with a faster GL shader implementation then ours.

[0] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31899

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Nicolas Dufresne
2be6b66349 video: Import a verbatim copy of drm_fourcc.h
Imported from drm-tip [0] at commit 3ab334814dc7dff39075e055e12847d51878916e.
As the copied definition became bigger an bigger, it was quite apparent this
was more work then needed. Simply replace manual copies with a verbatim
official copy of it.

[0] https://gitlab.freedesktop.org/drm/tip/-/blob/drm-tip

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Robert Mader
1fc6f0d349 qtmux: Implement rotation tag support
Mirroring the demux element and isomp4mux from gst-plugins-rs.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.

Can be tested with:
```
gst-launch-1.0 \
videotestsrc num-buffers=90 ! \
taginject tags="image-orientation=rotate-90" ! \
capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
videoconvert ! \
queue ! \
openh264enc ! \
queue ! \
h264parse ! \
mp4mux ! \
filesink location=./test.mp4
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8371>
2025-01-29 16:24:21 +00:00
Colin Kinloch
edf157beb5 wayland: Don't filter out unrecognised DRM formats
There is no requirement for a base DRM format to be supported by libgstvideo
in order to be uploaded to.

The linux-dmabuf-v1 format events are DRM_FORMAT codes and don't need to
be converted before use with `gst_video_dma_drm_fourcc_to_string`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8279>
2025-01-29 15:23:57 +00:00
Zhao, Gang
705b142134 fdsrc: Add property is-live
Fixed #4184

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8372>
2025-01-29 12:46:56 +00:00
Alexander Slobodeniuk
6376849396 qtmux: fix critical warnings on negotiation error
This pipeline fails to negotiate on my PC:

gst-launch-1.0 v4l2src ! h264parse ! qtmux ! filesink location=t.mp4

When it happens some critical glib warnings are emitted:
-------------------------------
GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_copy: assertion 'mini_object != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_structure_set_value: assertion 'structure != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed
--------------------------------

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8374>
2025-01-29 10:46:25 +00:00
L. E. Segovia
41b779e57c meson: Add python-exe option to override target Python installation
Fixes #4185

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8337>
2025-01-28 17:31:12 +00:00
Jan Alexander Steffens (heftig)
7abece4416 cccombiner: Restore QoS messaging
Reimplement the QoS message generation that was lost together with the
caption frame counting.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7996>
2025-01-28 14:51:19 +00:00
Jan Alexander Steffens (heftig)
3c5f03dce1 cccombiner: Clean up property mutability
Most settings are copied from properties on the READY → PAUSED state
change. The recently added properties violate this scheme, and are
probably unsafe to change.

Make these properties consistently MUTABLE_READY. Also remove the unused
`output_padding` field.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7996>
2025-01-28 14:51:19 +00:00
Jan Alexander Steffens (heftig)
26c598dd1b tests: cccombiner: Test rescheduling 50fps to 25fps w/o overflow
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7996>
2025-01-28 14:51:19 +00:00
Jan Alexander Steffens (heftig)
b29262e662 cccombiner: Replace caption frame counting with max_buffer_time
The counting is defective when we are combining with a stream that has a
higher max_cea608_count (such as 60p to 30i), as we produce less caption
frames than we consume, leading to periodic queue drops.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7996>
2025-01-28 14:51:19 +00:00
Jordan Yelloz
2619a59f82 gstiterator: Added error handling to filtered iterators
Otherwise, if the underlying iterator returns GST_ITERATOR_ERROR, the filtered
iterator will crash.

With this change, the filtered iterator propagates the error back to the caller.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8367>
2025-01-28 06:31:09 +00:00
Tomas Granath
49e4c0b451 oggdemux: Do not change total duration until new duration is found
After calculating a correct duration the oggdemux in some cases sets the duration to GST_CLOCK_TIME_NONE.
After that any seek will fail due to the oggdemux calculating a target time after the actual duration.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8296>
2025-01-27 17:13:38 +00:00
Alicia Boya García
794ad2841a docs: Fix log category names in the log tracer
The documentation was incorrectly referring to `GST_QUERY` and `GST_BIN`
as GstDebug category names.  These two don't follow the pattern of the
rest, and instead are named `query` and `bin` respectively.

This can be verified from the source code of the _do_init macro in the
same gstlog.c file, and from gstbin.c and gstquery.c calls to
GST_DEBUG_CATEGORY_INIT().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8365>
2025-01-27 15:24:29 +00:00
Alicia Boya García
a6dcbf9446 tracers: log: Fix wrong argument in do_chain_buffer_pre()
The third argument of the pad-chain-pre and pad-chain-post hooks are of type GstBuffer* and GstBufferList* respectively.

However, when I added do_chain_buffer_pre() and do_chain_buffer_post()
to gstlog.c I accidentally make them take GstFlowReturn -- almost
certainly as an artifact from duplicating the code of the _post()
variants, leading to erroneous log lines like this:

```
do_chain_buffer_pre:<vp9parse0:sink> 0:00:01.615378540, pad=<vp9parse0:sink>, res=-1073639680
```

This patch fixes that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8366>
2025-01-27 14:44:02 +01:00
Alicia Boya García
6d9552295f tracing: add hooks for gst_pad_send_event_unchecked()
Similar to de30de865c, this allows to follow the flow of events as they
arrive to a pad rather than only when they are pushed to a peer.

The hook is installed in gst_pad_send_event_unchecked() instead of
gst_pad_send_event() because the latter is often omitted: that is the
case especifically in gst_pad_push_event_unchecked(), where most event
propagation occurs.

This patch also makes use of the new hooks in the log tracer to log the
begining and end of the send_event processing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8330>
2025-01-27 11:08:52 +00:00
Alicia Boya García
a35bf1e384 tracers: signal pad-push-event when pushing sticky events
Previously, the tracer pad-push-event was only signalled on
gst_pad_push_event().  However, the sticky event handling code in
GStreamer uses gst_pad_push_event_unchecked() instead, which meant those
events were not logged.

This patch extends the definition of the pad-push-event tracer to cover
both calls to gst_pad_push_event() and any direct calls to
gst_pad_push_event_unchecked() that skip the former inside GstPad
private code.

gst_pad_push_event_unchecked() returns GstFlowReturn instead of
gboolean like gst_pad_push_event(). To maintain API compatibility, the
GstFlowReturn is converted to gboolean.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4182

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8342>
2025-01-27 08:56:03 +00:00
Sebastian Dröge
fb2337ea82 netclientclock: Don't stop searching the clock cache when the first corrupted clock is found
The clock we're looking for might be working fine and be available afterwards.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334>
2025-01-27 07:47:05 +00:00
Sebastian Dröge
dd58ae8cc8 netclientclock: Don't ever store failed internal clocks in the cache
If starting the internal clock fails we would still store a broken clock in the
cache despite it being unusable and never recovering.

Not storing it allows the application to simply create a new one at a later time
and have starting it retried.

Also signal to the application that such a clock is not synced.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334>
2025-01-27 07:47:05 +00:00
Brad Hards
154ea45111 taginject: typo fix in usage example
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8362>
2025-01-26 20:21:58 +00:00
Arun Raghavan
4cd63e09d9 webrtcdsp: Use C++20 with MSVC if needed
The subproject fails on vs2022 builds with:

[...]agc2/input_volume_stats_reporter.cc(89): error C7555: use of designated initializers requires at least '/std:c++20'

So let's force C++20 in this case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8270>
2025-01-26 12:30:01 -05:00
Arun Raghavan
9b647a0bbd webrtcdsp: Bump to WebRTC AudioProcessing 2.1
Keep 1.0 support around so distros can manage this bump more easily.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8270>
2025-01-24 15:53:36 -05:00
Andoni Morales Alastruey
432ada66f2 vtdec: fix seeks hangs due to a race condition draining
If the drain function of the decoder triggered by FLUSH_START
is run while the output loop is running, once the output loop
finished vtdec->downstream_ret will be GST_FLOW_FLUSHING instead
of GST_FLOW_OK, which must not be treated as an error since
the queue is cleaned correctly as well.

Fix #4179

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8328>
2025-01-24 17:36:17 +00:00
Thibault Saunier
26e6109b44 matroskademux: Add support to seek with stop in push mode
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8340>
2025-01-24 15:30:53 +00:00
Brad Hards
7f14c08918 x264enc: switch to GstByteWriter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8346>
2025-01-24 11:38:43 +00:00
Jochen Henneberg
73c61784d4 audiorate: Account for in buffer samples if fill samples are added
If fill buffers are added to compensate for missing samples the input
buffer is pushed as well and has to be added to output samples count.

This ensure that add - drop == out - in.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8358>
2025-01-24 09:12:50 +01:00
Rares Branici
345eae97d4 pluginloader-win32: create no window
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8354>
2025-01-23 19:48:28 +00:00
Silvio Lazzeretti
a6eb1de87d gstpluginloader-win32: fix use after free in find_helper_bin_location
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8352>
2025-01-23 19:28:54 +00:00
Matthew Waters
0b92e04142 cudacompositor: pass correct variable to debug log functions
Fixes spew of:

gst_debug_log_full_valist: assertion 'id != NULL ||
    object == NULL || G_IS_OBJECT (object)' failed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8345>
2025-01-23 17:18:46 +00:00
Guillaume Desmottes
0e3d6f0606 wpe: remove glFlush() when filling buffer
According to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4162#note_2739338
it was introduced as workaround for tearing issues.
I do not experience any tearing without flushing on both nvidia and AMD
GPU, so I suppose it's no longer needed.

Slightly improve CPU usage according to my tests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8348>
2025-01-23 14:45:57 +00:00
Thibault Saunier
d7274f574c docs: rust: Fix link to rust documentation when in a rustdoc page
Current behavior is too weird as it points to the `libs.html` page
which is empty (as ?language=rust), instead we should stay on the
same page.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8350>
2025-01-23 10:29:32 -03:00
Thibault Saunier
58939e10ee docs: Embed the gstreamer-rs documentation into our documentation in CI
Downloading the latest build of GStreamer-rs from its CI job and running a
script to embed the rustoc generated documentation into hotdoc based one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8317>
2025-01-23 10:52:50 +00:00
Sebastian Dröge
55fa0a54a2 video-overlay-composition: Handle the SCALE meta transformation
Simply update the render rectangle according to the scale factor. As only the
render rectangle is changed, the seqnum of the rectangle stays intact and no
additional GPU uploads are necessary.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8288>
2025-01-22 15:17:27 +00:00
Sebastian Dröge
8991140c5a video-overlay-composition: Declare the video/size/orientation tags for the meta
If any of these change then the meta needs to be updated one way or another.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8288>
2025-01-22 15:17:27 +00:00
Seungha Yang
dc81abe9ee cudacompositor: Fix memory leak
gst_cuda_compositor_upload_frame() returns buffers with increased
refcount already

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8335>
2025-01-22 11:42:00 +00:00
Brad Hards
9b578abe15 h264parse: add conditional values to AVCConfigurationRecord
This adds the data required in AVCDecoderConfigurationRecord for
higher profile (High variants) configurations - everything in the if(...) {...} part
of ISO/IEC 14496-15:2024 Section 5.3.2.1.2. (or 5.3.3.1.2 in the 2019 version).

Resolves an error flagged by ComplianceWarden when muxing this into ISOBMFF.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8308>
2025-01-22 15:58:21 +11:00
Brad Hards
105c3c7242 x264enc: add missing data to AvcDecoderConfigurationRecord
This adds the data required in AVCDecoderConfigurationRecord for
higher profile (High variants) configurations - everything in the if(...) {...} part
of ISO/IEC 14496-15:2024 Section 5.3.2.1.2. (or 5.3.3.1.2 in the 2019 version).

Resolves an error flagged by ComplianceWarden when muxing this into ISOBMFF.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8308>
2025-01-22 14:03:55 +11:00
Alicia Boya García
e8ef562d01 tracers: log: Log buffer-chain
Commit de30de865c added a hook for pad-chain-{pre,post} and
pad-chain-list-{pre,post}. As explained in that commit, hooking the
chain is helpful because it allows you to hook to buffer propagation in
both srcpads (pad-push) and sinkpads (pad-chain).

This patch uses the new hooks to log pad-chain in the log tracer.
Before, only pad-push was logged, so you could only follow the flow of
buffers through the srcpads.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8329>
2025-01-21 08:45:25 +00:00
Tim-Philipp Müller
4bd7e194f6 gst-libav: tests: fix build with older glib versions
g_newa0() is only available since 2.72.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8333>
2025-01-21 01:38:54 +00:00
Olivier Crête
86bac82c8e python: Add __eq__ to Mtd classes
Also programatically iterate all of the base classes to register them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Daniel Morin
ad4fa052e5 gst-python: Test for GstAnalyticsRelationMeta iterator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Daniel Morin
e294b1b773 analytics: Adding iterator for AnalyticsRelationMeta
Allow to create an iterator for Mtd's inside an AnalyticsRelationMeta

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Seungha Yang
d9510be7b1 docs: Update nvcodec plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
c01ef564d9 cudaipc: Use empty string for address property docs
Since Windows and Linux have different default values,
use empty string when generating plugin docs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
1f481fe1d5 nvcodec: Specify documentation caps
... since produced caps will be different depending on OS and GPU model.
Also adding Y444_16LE format to decoder's GL template caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
06afe8aa8f docs: Add nvcomp plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Sebastian Dröge
03942ff5b4 tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8326>
2025-01-20 17:57:31 +00:00
Thibault Saunier
2ff6a3ecb6 docs: doc-cache-generator: Pass the full os.environ so pkg-config can be found
We want to pass the `PATH` from the current environment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8327>
2025-01-20 13:52:43 -03:00
Thibault Saunier
ed7b210ae7 docs: Make autopep8 happy for gst-plugins-doc-cache-generator.py
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8327>
2025-01-20 13:52:38 -03:00
Guillaume Desmottes
5b4eb339a3 sparsefile: ensure error is set when read_buffer() returns 0
gst_sparse_file_read() is supposed to set @error when returning 0 but
in some cases was not.

Hopefully fix a crash in gst_download_buffer_read_buffer() which is
checking error->code when 0 is returned.
I'm not totally sure when this happens as I debugged this from a post
mortem crash but returning a generic error here seems the safe thing to
do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8321>
2025-01-20 13:33:10 +00:00
Guillaume Desmottes
60f4cd77d5 sparsefile: fix typo in doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8321>
2025-01-20 13:33:10 +00:00
Mathieu Duponchelle
b26a5ee088 docs: explicitly list gir files as depends for generating configs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8324>
2025-01-20 13:24:44 +01:00
Mathieu Duponchelle
45c4c6d7ed docs: only add configuration files to sitemap once generated
The generation script can fail to generate a configuration for the four
libraries where the documentation is not generated from gir, as it needs
to run pkg-config.

Only add the path to the configuration file to the sitemap once it has
successfully been dumped.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8324>
2025-01-20 13:24:44 +01:00
Nirbheek Chauhan
29098aeba8 gstdevice: Fetch device provider from message source
The GstDevice removed may not have a parent anymore when we check
whether the provider is hidden. Let's fetch the provider from the
message source, which is more reliable.

Fixes a racy nullptr deref on macOS when a device is unplugged:

```
libgstreamer-1.0.0.dylib!is_provider_hidden (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:240)
libgstreamer-1.0.0.dylib!bus_sync_message (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:286)
libgstreamer-1.0.0.dylib!gst_bus_post (gstreamer/subprojects/gstreamer/gst/gstbus.c:358)
libgstreamer-1.0.0.dylib!gst_device_provider_device_remove (gstreamer/subprojects/gstreamer/gst/gstdeviceprovider.c:685)
libgstosxaudio.dylib!gst_osx_audio_device_provider_update_devices ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:539)
libgstosxaudio.dylib!_audio_devices_changed_cb ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:313)
CoreAudio!HALObject::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
CoreAudio!HALSystem::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
CoreAudio!HALSystem::ObjectsPublishedAndDied(...) (Unknown Source:0)
CoreAudio!HALSystem::AudioObjectsPublishedAndDied(...) (Unknown Source:0)
CoreAudio!HALC_ShellPlugIn::ReconcileDeviceList(bool, bool) (Unknown Source:0)
CoreAudio!HALC_ShellPlugIn::CreateAggregateDevice(__CFDictionary const*, unsigned int&) (Unknown Source:0)
CoreAudio!AudioHardwareCreateAggregateDevice_mac_imp (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol15046 (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol15038 (Unknown Source:0)
AudioDSP!___lldb_unnamed_symbol33307 (Unknown Source:0)
AudioToolboxCore!APComponent::newInstance(...) (Unknown Source:0)
AudioToolboxCore!instantiate(...) (Unknown Source:0)
AudioToolboxCore!__AudioComponentInstanceNew_block_invoke (Unknown Source:0)
AudioToolboxCore!Synchronously (Unknown Source:0)
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8320>
2025-01-20 15:44:20 +05:30
Tim-Philipp Müller
f70e2f046c avaudenc: add test for misaligned audio input buffers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8318>
2025-01-20 08:58:01 +00:00
Tim-Philipp Müller
9b536630f1 avaudenc: fix crash in avenc_ac3 if input buffers are insufficiently aligned
Memcpy if needed to ensure sufficient alignment, as some
SIMD instructions might require more alignment than we provide
by default (e.g. vmovaps requires 32 bytes, but gstreamer uses
malloc alignment by default which is 16 bytes here on x86_64).
And in any case buffers might be trimmed, so the only alignment
we can expect is sample frame alignment which might be even
smaller than 16 bytes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8318>
2025-01-20 08:58:01 +00:00
Seungha Yang
289f63b6e7 nvcodec: Add cudacompositor element
Adding CUDA based compositor element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
875e137f4f cudaconverter: Add support for alpha blending
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
d761196bb7 cudaconverter: Add support for configuration update
Allow updating various configuration values via property

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
1fa51046d1 cudaconverter: Pass constant values as kernel argument
Make conversion kernel more flexible and reusable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:20 +09:00
Seungha Yang
1b6f66a840 cuda: Load 2D memset function symbols
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:20 +09:00
Mathieu Duponchelle
7983ecff1c docs: generate hotdoc configs for libraries with our helper script
With this patch, configure time is identical no matter whether doc is
enabled or not.

The configuration files also now contain explicitly-listed sources with
no wildcards.

For the four libraries where hotdoc needs to use clang to generate the
documentation (as opposed to the rest of the libraries where hotdoc uses
the gir), the script will call pkg-config to determine the appropriate
C flags.

This means a side effect of this patch is that pkg-config files are now
generated for the gstadaptivedemux and gstopencv libraries.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
2025-01-17 20:36:06 +01:00
Mathieu Duponchelle
17e53f8c95 meson: bump minimum version to 1.4 in every subprojects
36c01d0579 bumped to 1.4 for gst-devtools
and the root project, but we usually keep those in sync everywhere.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
2025-01-17 20:22:34 +01:00
Mathieu Duponchelle
eeb3b7e683 docs: remove useless index.md in libs/ subdirectory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
2025-01-17 20:22:34 +01:00
Mathieu Duponchelle
dce50d3320 docs: remove unused index.md file
It is a bit hard to track its origin as `git log --follow` leads all the
way to a 2001 Wim commit of a TODO file, but it was not used in the
documentation and the contained information appears in other places.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
2025-01-17 20:22:33 +01:00
Thibault Saunier
aa78649635 videoconvertscale: Handle large pixel aspect ratios
Some pixel aspect ratios found in dash streams have very large numerators and
denominators (while being close to 1:1). These values can cause integer overflow
during multiplication, leading to negotiation failures.

Add fallback path using gdouble when integer multiplication would overflow,
trading some precision for reliability instead of failing outright.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8262>
2025-01-17 15:13:14 +00:00
Thibault Saunier
e77a16b2e6 gst: utils: Add a multiply_int64 variant
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8262>
2025-01-17 15:13:14 +00:00
Sam James
c7a7eb1eb3 lc3: tweak meson style
While this might seem a bit silly, it aids some of our infra in
packaging. Tweak for consistency with other use.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8239>
2025-01-16 20:09:06 +00:00
Stéphane Cerveau
ee7d41f76b vkh264dec: enhance interlaced content support
- Use frame_num instead of pic_num to set the long_term_pic_num
fixing 10 interlaced tests in fluster test suite: JVT-AVC_V1

- Send the slice offset only once in case of interlaced content.
Fixing 5 interlaced tests in fluster test suite: JVT-AVC_V1.

- The default value for top and bottom field flag should be 0 in the
case of a progressive content.

- Use short and long term refs helper getter method to retrieve the
reference frames according its none existing and interlaced state

- Reorganize the find_next_slot_idx code to be easier to read.

Co-authored-by: Daniel Almeida <daniel.almeida@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:22 +00:00
Víctor Manuel Jáquez Leal
3090cefbc5 vkh264dec: enable h264 interlaced decoding
First the slot_index shall have the same value for the first and second
fields.

Also, the reference frames are only those with both fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:22 +00:00
Víctor Manuel Jáquez Leal
f5f20ce85e vkh264dec: make GstVulkanH264Picture a reference count
Thus we could re-use the same structure for interlaced fields: a single bistream,
single output buffer and single vulkan structures.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Stéphane Cerveau
c38a847fe1 vkh264dec: non existing picture are not refs
The non existing picture or gap picture should not be
considered as refs for vulkan decoder.

Fix fluster tests:

MR3_TANDBERG_B
MR4_TANDBERG_C
MR5_TANDBERG_C

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Stéphane Cerveau
538747907d vkh264dec: support h264 extended profile
Extended is identical to main but allows FMO/ASO features to be used,
and prevent using CABAC.
Using similar logic to "baseline", assume that if we support main,
we can also do extended.

This fixes the following fluster vectors, which otherwise would fail when trying to link the parsebin pad.

BA3_SVA_C
MR6_BT_B
MR7_BT_B
MR8_BT_B

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Stéphane Cerveau
36c01d0579 meson: set minimum version to 1.4
Since !8273 which introduces the use file.full_path(),
the meson minimum version should be 1.4

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8309>
2025-01-16 13:39:40 +00:00
Mathieu Duponchelle
3ac589d308 scaletempo: expose alternative mode, fit-down
In fit-down mode only 1.0 rates are supported, and the element will fit
audio data in buffers to their advertised duration.

This is useful in speech synthesis cases, where elements such as
awspolly will generate audio data from text, and assign the duration of the
input text buffers to their output buffers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8149>
2025-01-16 12:35:13 +00:00
Daniel Morin
5919b20e8b gst-analytics: add missing mtd segmentation API
- add gst_analytics_segmentation_mtd_get_mtd_type() which is required to
  retrieve the concrete type of a generic mtd (GstAnalyticsMtd).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8307>
2025-01-15 17:27:15 -05:00
Sebastian Dröge
0476b9cd2c decklinkvideosink: Fix handling of caps framerate in auto mode
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8280>
2025-01-15 14:24:34 +00:00
Carlos Bentzen
7405866c84 tsdemux: add support for VVC/H.266
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4940>
2025-01-15 13:55:25 +01:00
Tim-Philipp Müller
5c2c688c4c webrtc-nice: fix compiler warning with older versions if libnice
warning: "HAVE_LIBNICE_CONSENT_FIX" is not defined, evaluates to 0 [-Wundef]

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8305>
2025-01-15 02:18:31 +00:00
Seungha Yang
ee0afa29d1 d3d12: Update docs for max-mip-levels property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:52 +09:00
Seungha Yang
561714a454 d3d12convert: Add max-mip-levels property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:47 +09:00
Seungha Yang
caf6f36276 d3d12swapchainsink: Add max-mip-level property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:42 +09:00
Seungha Yang
11d4b59b73 d3d12videosink: Add max-mip-level property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
826da1c960 d3d12converter: Add support for mipmap generation
Adding max-mip-levels property so that converter can generate
mipmap textures if render target size is smaller than
input texture resolution.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
2fc11cce84 d3d12converter: Refactor to support mipmap handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
b14448dd37 d3d12mipmapping: Add support for GRAY output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
65c23885d4 d3d12mipmapping: Skip alpha sampling if possible
If input format has no alpha and output format has no alpha,
skip alpha sampling which can reduce the number of instruction slots

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
1e243d0960 d3d12: Move mipgen to libs
converter object will use mipgen object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Tim-Philipp Müller
a059536b58 Back to development after 1.25.1 2025-01-14 15:00:43 +00:00
Tim-Philipp Müller
ca9d85c3b7 Release 1.25.1 2025-01-14 14:57:58 +00:00
Sebastian Dröge
96a0c185dd avcodecmap: Only use new channel positions when compiling against new enough ffmpeg
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4163

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8300>
2025-01-14 08:04:01 +00:00
Jordan Yelloz
806bdc7c4b decklink: Fixed caps-building for output devices
When iterating through output devices, video_input_caps was being
updated instead of video_output_caps.

As a result, video output devices were being created with an empty caps object
and `gst-device-monitor-1.0 Video/Sink` would produce no decklink devices.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8298>
2025-01-14 06:19:54 +00:00
Ruben Gonzalez
c6ed0c33a0 h264parse: drop duplicated call
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8299>
2025-01-13 22:09:10 +01:00
Tim-Philipp Müller
22bb73b796 docs: update vampeg2dec docs with new rank
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8295>
2025-01-13 19:26:26 +00:00