Sebastian Dröge
396ef0cbcf
video: Don't overshoot QoS earliest time by a factor of 2
...
By setting the earliest time to timestamp + 2 * diff there would be a difference
of 1 * diff between the current clock time and the earliest time the element
would let through in the future. If e.g. a frame is arriving 30s late at the
sink, then not just all frames up to that point would be dropped but also 30s of
frames after the current clock time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7459 >
2024-09-13 19:52:52 +00:00
Víctor Manuel Jáquez Leal
c27d0842ce
pbutils: descriptions: use subsampling factor to get YUV subsampling
...
The algorithm used to determine the YUV subsampling string uses width and height
subsampling factor, not the raw subsampling. Otherwise all 4:2:0 YUV frames will
be detected as 4:4:4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7353 >
2024-08-14 19:02:20 +00:00
Jan Schmidt
9dc1d68e2f
codec-utils: Recognise mjpg mime type
...
Add mjpg to gst_codec_utils_caps_from_mime_codec_single()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Edward Hervey
2c1c1ec575
encoding-target: Chain up to parent class
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7115 >
2024-07-01 23:19:39 +00:00
Edward Hervey
651568d543
encoding-profile: Chain up to parent class finalize
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7115 >
2024-07-01 23:19:39 +00:00
Edward Hervey
c987eaa427
pbutils: Missing plugin messages can contain the stream-id
...
In order to help users and applications, allow setting the stream-id for which
there is a missing plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6886 >
2024-05-29 11:44:05 +00:00
Thibault Saunier
5be3f255b0
encoding-profile: Add a way to specify a factory-name when specifying caps
...
In some cases you want to ensure that a specific element factory is used
while requiring some specific caps but this was not possible. You can
now do `qtmux:video/x-prores,variant=standard|factory-name=avenc_prores_ks`
to ensure that the `avenc_prores_ks` factory is used to produce the
'standard' variant of prores video stream.
This also enhances a bit the documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6875 >
2024-05-17 22:46:52 +00:00
Bill Nottingham
5d7d3c6c0f
pbutils: fix visualization plugins
...
inbuf is persistent, GST_BUFFER_COPY_MEMORY's append behavior is
not what we want.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6800 >
2024-05-07 14:48:47 +00:00
6fd1900d54
pbutils: AV1 mime codec
...
Add basic AV1 mime codec param generation based on the spec at https://aomediacodec.github.io/av1-isobmff/#codecsparam
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6696 >
2024-05-06 12:43:27 +00:00
Sebastian Dröge
ec42cedf63
encoding-profile: Fix nullability of (de)serialization functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6775 >
2024-05-01 09:51:35 +00:00
Edward Hervey
ad8c42ba06
encoding-profile: Make (de)serialization functions public
...
This is more convenient and cheaper than going through the `g_value_convert()`
hoops
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6712 >
2024-04-23 14:27:00 +00:00
Sebastian Dröge
4b5a265571
pbutils: descriptions: Don't warn on MPEG-1 audio caps without layer field
...
While this is not ideal and won't give too accurate codec descriptions,
it is what tsdemux produces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6511 >
2024-04-04 09:39:49 +00:00
Piotr Brzeziński
3243c5fe94
audiovisualizer: Don't wrap temporary memory in buffers
...
Avoids potentially ending up with the buffermemory pointing to already-freed or reused addresses.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6320 >
2024-03-11 18:18:01 +00:00
Edward Hervey
a1cbe351ec
musepack: Prefer using FFmpeg musepack decoder/demuxer
...
* Bump the rank of the musepack v7/v8 FFmpeg demuxers to SECONDARY
* Bump the rank of the musepack v7/v8 FFmpeg audio decoders to SECONDARY
* Demote the rank of the musepackdec element to MARGINAL
This is for two reasons:
* The musepack library is no longer maintained, whereas the FFmpeg
implementation can/will receive fixes
* The `musepackdec` implementation was a all-in-one "parsing and decoding" blob
which doesn't play nicely with decodebin3 and others
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3033
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6074 >
2024-02-09 12:15:14 +00:00
Jimmy Ohn
2c19c92041
encoding-target: Properly free when missing type field in parse_encoding_profile
...
pname and description in parse_encoding_profile function causes
memory leakages when missing the 'type' field for streamprofile.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5744 >
2023-12-01 09:39:47 +00:00
Philippe Normand
986a36273f
pbutils: Don't include default vp9 parameters in resulting codec mime string
...
According to the document defining the vp9 codec string, the optional fields
should all be present only if at least one of them has a non-default value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5716 >
2023-11-27 10:36:01 +00:00
Thibault Saunier
a2bb04c899
discoverer: Fix accumulating discoverer info when loading from cache
...
With the previous accumualator loading stopped after the first handler,
even if it return NULL which is unexpected, instead we want to use the
first non-value returned by handlers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5665 >
2023-11-14 22:01:04 +00:00
Jonas Kvinge
fa46905aea
discoverer: Only call handle_current_async if still processing
...
When gst_element_set_state is called in _setup_locked and errors, the
callback is already processed before we reach handle_current_async, and
the timer is started even though it's finished processing, which results
in a NULL pointer crash later in async_timeout_cb.
To fix this, we check that it's still processing before calling
handle_current_async.
Fixes #1683
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4936 >
2023-06-30 08:52:38 +03:00
Sebastian Dröge
4cbd8d6fc6
pbutils: discoverer: Mark gst_discoverer_stream_info_get_stream_id() as nullable
...
It can return NULL in certain situations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4572 >
2023-05-08 15:26:58 +03:00
Thibault Saunier
40a6f2dc91
discover: Avoid double freee when creating info from cache file
...
Passing ownership to the function as the created info is made owner.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
0f229aa62a
discoverer: Add serializing unknown stream type support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
9e994ea616
discoverer: Add a signal to retrieve serialized GstDiscovererInfo
...
This allows user to serialize the GstDiscovererInfo in other places
than the default folder, like a database when running web services for
examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:47:55 -04:00
Stéphane Cerveau
61416bc532
pbutils: add video/x-ivf to descriptions
...
Add missing description for video/x-ivf spotted
with gst-discoverer-1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248 >
2023-04-27 06:45:27 +00:00
Thibault Saunier
b14e675a27
gir: Checkout all .gir files and check that they are updated on the CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010 >
2023-04-22 09:32:32 -04:00
Tobias Rapp
c467ac0869
gst-plugins-base: Add FourCC and type description for FFVHuff video
...
The FFVHuff video codec is a FFmpeg-specific variant of the lossless
HuffYUV codec with increased coverage of supported pixel formats and bit
depths.
Fixes #2389 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4250 >
2023-03-23 14:30:59 +00:00
Tim-Philipp Müller
8759b77a50
gst-plugins-base: re-indent with GNU indent 2.2.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182 >
2023-03-17 03:18:53 +00:00
Tim-Philipp Müller
8bf59703a1
libs: pbutils: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Víctor Manuel Jáquez Leal
f74fb5142d
pbutils: Fix vp9 mime mapping when caps when no chroma-site.
...
It's possible to have 4:2:0 chroma format without chroma-site in caps, but it
isn't validated by the current code. This patch fixes it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3405 >
2022-11-16 01:29:50 +00:00
Edward Hervey
7988144048
pbutils/encoding-profile: Streamline cleanup
...
Cleanup all local variables in one place, and ensure failure cases go through there.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:11 +01:00
Edward Hervey
872b0a65cb
pbutils/encoding-profile: Don't leak string array
...
It was never freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-12 10:33:51 +01:00
Sebastian Dröge
40800fa117
discoverer: Annotate DiscovererInfo::get_audio_streams()
and others with the concrete stream info type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3353 >
2022-11-07 19:04:49 +00:00
Matthew Waters
1c835695a3
pbutils: add correct mime mapping for vp9
...
Based on https://www.webmproject.org/vp9/mp4/#codecs-parameter-string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260 >
2022-10-28 00:06:07 +00:00
Sebastian Dröge
366893e9ac
Fix various warnings from gobject-introspection
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261 >
2022-10-25 09:45:25 +03:00
Sebastian Dröge
533ea9bd7c
pbutils: Add/fix various annotations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194 >
2022-10-18 08:56:58 +00:00
Tim-Philipp Müller
4c8a621809
pbutils: descriptions: add meta/x-klv
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094 >
2022-09-30 11:08:45 +03:00
Tim-Philipp Müller
2d53f9f97c
pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()
...
And add a little unit test.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094 >
2022-09-30 11:08:45 +03:00
Thibault Saunier
1c4950718f
discoverer: Fix discovering source that expose raw audio/video
...
Exposes a "uridecodebin:post-stream-topology" property as the discoverer
needs to have topology information about all streams so we need
`uridecodebin` to always plug decodebins for that case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009 >
2022-09-15 19:25:01 +00:00
Thibault Saunier
bc9c1e3956
meson: Namespace the plugins_doc_dep/libraries variables
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
8648f5f7d2
audiovisualizer: fix buffer mapping to not increase refcount
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2953 >
2022-08-30 15:22:42 +00:00
Mathieu Duponchelle
62c303c2e0
encoding-profile: don't order profiles by stream ID ..
...
when creating a profile from a discoverer info.
There is no justification for the existing code, and talking with
Thibault he cannot remember why the sort was in place.
On the other hand, this allows GES users to not have to implement
a callback for the select-tracks-for-object callback when using
it to trim a single clip, which the output profile was built from:
track elements will be placed in the appropriate track by default,
that is the one that will be connected to the matching profile.
For multi-clip timelines, the situation doesn't change, users will
still have to implement a callback and do the leg work of placing
track elements (if any) in a matching track (if any).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549 >
2022-08-02 15:48:12 +00:00
Mathieu Duponchelle
0f85a46148
encoding-profile: ignore more output caps fields
...
chroma-format, bit-depth-chroma, bit-depth-luma are all informative
fields set by the H265 and H265 parser upon receiving an SPS.
They shouldn't be constrained downstream of the parser, instead
if a user wants those to ultimately match certain values they
should do so by constraining a profile.
In this case however, we also always remove the profile constraint
in order to let encoders pick a suitable one as a function of the
raw input video format and their own capabilities.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549 >
2022-08-02 15:48:12 +00:00
Sebastian Dröge
39568918de
pbutils: Add GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA and ONVIF XML Timed MetaData
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453 >
2022-05-20 13:01:44 +00:00
Xavier Claessens
b99ecc78ca
Replace gst-i18n-*.h with gi18n-lib.h
...
GLib guarantees libintl is always present, using proxy-libintl as
last resort. There is no need to mock gettex API any more.
This fix static build on Windows because G_INTL_STATIC_COMPILATION must
be defined before including libintl.h, and glib does it for us as part
as including glib.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028 >
2022-04-19 18:01:06 +00:00
Edward Hervey
00187ddb0c
pbutils: Fix wmv screen detection
...
strncmp vs !strncmp :)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2050 >
2022-03-29 17:31:44 +00:00
Matthew Waters
203e34fb75
discoverer: chain up to parent finalize methods in all our types
...
Fixes a memory leak:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
#0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
#1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13
#2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8
#3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3
#4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7
#5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16
#6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5
#7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
#8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
#9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
#10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
#11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
#12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
#13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1984 >
2022-03-18 17:49:08 +00:00
Edward Hervey
bce779e66d
pbutils: Add function to parse RFC 6381 codecs field
...
This is the opposite of `gst_codec_utils_caps_get_mime_codec()`, which allows
elements to get the `GstCaps`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1894 >
2022-03-11 07:14:33 +00:00
Sebastian Groß
6372aaa608
audiovisualizer: shader: Fix dframe out of bound write
...
shader_fade_and_move_horiz_out writes a complete stride at the end of its
dframe data
This led to SIGSEGV since the stride reached into sframe->map[0]->memory
which could not be umpapped later on.
This is due to `d` is increased twice. Once at the end of the upper loop
and at the start of the lower loop.
The corresponding dframe stride is therefore skipped.
Rewind `d` and start at the correct position.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1702
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1751 >
2022-02-21 08:20:44 +01:00
Seungha Yang
04f3a2bd22
gstinfo,ptpclock,libcheck: Use GetCurrentProcessId() instead of getpid() on Windows
...
getpid() shouldn't be used in case of UWP. Use GetCurrentProcessId()
instead which provides exactly the same functionality and can be
used with UWP as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006 >
2022-02-16 17:03:29 +00:00
David Svensson Fors
b3d300bc26
codec-utils: Avoid out-of-bounds error
...
For artificial input (in unit tests), all six bytes of
constraint_indicator_flags in hevc_caps_get_mime_codec() can be
zero. Add a guard against an out-of-bounds error that occurred in that
case. Change variables to signed int so comparison with -1 works.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1677 >
2022-02-10 07:58:36 +00:00
Sebastian Dröge
8dfe70d17f
codec-utils: Mark various string return values as nullable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1539 >
2022-01-19 11:05:26 +02:00