Sebastian Dröge
af5cce9968
qtdemux: Parse uncompressed video uncC / cmpd boxes from already parsed stsd entry
...
Also simplifies code and error checking considerably.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
a6e58f7331
qtdemux: Don't retrieve enca/encv boxes a second time, wrongly
...
They need to be retrieved by index and they were already correctly retrieved
just above so let's just use that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
bb50741b73
qtdemux: Use already parsed stsd entries instead of parsing them again
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
cf2b1909ec
qtdemux: Fix typo in debug message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929 >
2025-05-17 07:59:46 +00:00
Sebastian Dröge
faa912a31d
wavparse: Error out correctly if no data tag is found until EOS in pull mode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8956 >
2025-05-15 10:24:37 +00:00
Sebastian Dröge
ba8fd35e72
wavparse: Ignore EOS when parsing the headers
...
The file might be truncated or contain < 8 bytes of remaining data after the
last chunk.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4426
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8956 >
2025-05-15 10:24:37 +00:00
Doug Nazar
a8e11cec9a
spectrum: Switch to GST_AUDIO_NE()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984 >
2025-05-14 14:45:55 -04:00
Doug Nazar
ebaf87cd17
law: Switch to GST_AUDIO_NE()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984 >
2025-05-14 14:45:55 -04:00
Doug Nazar
0c0b4ad6d0
gstrtspsrc: Free various props before being set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978 >
2025-05-13 19:44:21 -04:00
Alexander Slobodeniuk
d437e92049
properties: add G_PARAM_STATIC_STRINGS where missing
...
"Hold on, I know you need to generate the registry, but let me just
create copies of all those strings first", Framework whispered
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915 >
2025-05-10 12:09:38 +00:00
Olivier Crête
14f833fdcf
rtph264pay: Reject stream-format=avc without codec_data
...
Without the codec_data, it's impossible to know the size of the field
for the number of NALu in a buffer. And since nal_length_size is unkown
the stream can't be parsed and payloaded and we risk an infinite loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8954 >
2025-05-10 10:23:30 +00:00
Sebastian Dröge
fff260f1aa
qtdemux: Don't configure any channel-mask in fallback case with 1 channel
...
For mono we don't set any channel mask. Setting 0 would mean an unpositioned
layout with a single channel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
7f8b27837c
qtdemux: Add channel layouts to three more raw audio fourccs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
737f653e7c
qtdemux: Parse chan box
...
This is another variant of providing channel positions.
Also if neither chan nor chnl boxes are found, configure a default channel
layout for raw audio tracks.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4403
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8928 >
2025-05-06 13:20:29 +00:00
Sebastian Dröge
5c16c8f0c1
qtdemux: Check length of JPEG2000 colr box before parsing it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8930 >
2025-05-06 11:09:55 +00:00
Sebastian Dröge
f18123ea15
qtdemux: Remove obsolete TODO comment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8930 >
2025-05-06 11:09:55 +00:00
Sebastian Dröge
b461115699
interleave: Don't hold object lock while querying caps downstream
...
This can easily lead to deadlocks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8933 >
2025-05-06 09:44:03 +00:00
Víctor Manuel Jáquez Leal
7a14b9020c
y4m: support more color formats
...
These are unofficial yuv4mpegpipe formats, but used for 10bit streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
1b023dee2e
y4m: add color mappings
...
Now the chroma subsampling tag will include the chroma site. Tests
where updated accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
7c8a5cd28d
y4mdec: descend from GstBaseParse
...
This is an overhaul/simplification of the element.
Now it supports seek, while the performance remains more or less the same.
Fixes : #4373
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
8d4a6a7d64
y4mdec: handle time segments
...
so chaining y4menc ! y4mdec is possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
82e6c1c640
y4mdec: instead of memcmp, use gst_video_info_is_equal()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
4cf598bcf3
y4m: share common code among encoder and decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:47 +00:00
Víctor Manuel Jáquez Leal
16d34468fb
y4m: move y4mdec to good to have a single y4m plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719 >
2025-05-05 11:53:46 +00:00
Alexander Slobodeniuk
14d4c249ad
qtmux: fix building with -DGST_REMOVE_DEPRECATED
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8901 >
2025-05-04 22:19:55 +00:00
Alexander Slobodeniuk
a03c4de48f
elements: use set_static_metadata when it's allowed
...
Those strings are nice but CPU doesn't want to copy them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905 >
2025-04-26 19:30:15 +02:00
Eli Mallon
068385e83f
qtdemux: unref simple caps after use
...
Otherwise we leak a GSTCaps object every time we
use qtdemux on a file with Opus audio
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8879 >
2025-04-23 12:06:48 -07:00
Stefan Andersson
1c8b01ccbc
matroska-demux: Prevent corrupt cluster duplication
...
Make sure to always update next_cluster_offset, if next cluster offset
isn't known set it to zero. If next_cluster_offfset isn't updated it will
be the same as current and if the cluster parsing fails the same cluster
will be parsed again leading to duplication of the data in the cluster.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8855 >
2025-04-16 20:37:08 +02:00
Gustav Fahlen
e649072584
gstrtspsrc: Do not emit signal 'no-more-pads' too early
...
Due to race condition it was previously possible that
gst_element_add_pad was not completed for each RTSP stream before
signal 'no-more-pads' was emitted.
Race condition explained:
Lets say two RTSP streams are created: Video and Audio.
1. Callback new_manager_pad is called for the Video stream =>
stream->added=TRUE.
all_added=FALSE because both streams are not yet added.
Call gst_element_add_pad and emit signal 'pad-added' for Video stream.
2. Callback new_manager_pad is called for Audio stream =>
stream->added=TRUE.
all_added=TRUE because both streams are added.
Call gst_element_add_pad and emit signal 'pad-added' for Audio stream.
3. Lets say gst_element_add_pad for the audio stream completes before
the video stream. Since the audio stream already has all_added==TRUE
this will result in the signal 'no-more-pads' to be emitted before
gst_element_add_pad for the video stream is completed.
Solution is to move the logic that sets added=True and checks if all
streams are added to after gst_element_add_pad. This will make sure
signal 'no-more-pads' is not emitted until all code in
gst_element_add_pad is completed for all streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8832 >
2025-04-14 12:35:06 +00:00
Jan Schmidt
7212848e41
rtspsrc: Don't error out on not-linked too early
...
Wait until all pads have been exposed before accepting a not-linked,
as pads are added one-by-one and downstream might not be interested
in the first ones to appear.
Follow up to
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8798 >
2025-04-10 11:50:33 +00:00
Víctor Manuel Jáquez Leal
4fc8773371
y4menc: fix Y41B format
...
This a regression of commit fb0bea8f where output info variable was swapped with
input info variable by mistake.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8786 >
2025-04-08 13:10:19 +00:00
Ognyan Tonchev
6db576f033
gstrtpsession: Do not push events while holding SESSION_LOCK
...
Doing so can trigger deadlocks
Fixes : #4328
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:06 +00:00
Ognyan Tonchev
ebb1d1a4ae
gstrtpsession: protect recv_rtcp_segment_seqnum with a lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:05 +00:00
Ognyan Tonchev
961fc87168
gstrtpsession: use correct seqnum for the STREAM_START ans SEGMENT events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695 >
2025-04-05 08:43:05 +00:00
dukesook
daa1ee84b9
qtdemux: Extend Uncompressed Lookup Table
...
- LUT now supports various subsampling, interleaves, and bit depths.
- Replaces stride with GstVideoInfo pre_info to represent original data.
- Simplifies gst_row_align_buffer() with gst_video_frame_copy().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8598 >
2025-04-05 07:59:32 +00:00
Doug Nazar
6e9667b65c
matroskademux: Add support for relative position cues
...
Cueing data can contain the block number within a cluster and/or
a relative offset into the cluster.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5535 >
2025-03-28 17:47:27 -04:00
Doug Nazar
3578b23ba2
matroskamux: Add support for chroma siting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5534 >
2025-03-28 11:44:13 -04:00
Doug Nazar
123a7a515f
matroskamux: Add support for interlaced field order
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5534 >
2025-03-28 11:44:13 -04:00
Doug Nazar
671dd6a61e
matroskamux: Always use v4 for DocType version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5534 >
2025-03-28 11:43:50 -04:00
Doug Nazar
8e6ec1fc34
matroskademux: Handle chroma site color information
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5534 >
2025-03-28 11:22:39 -04:00
Víctor Manuel Jáquez Leal
d59ce45789
y4menc: use start() vmethod rather than change_state()
...
Also it wil call negotiate() vmethod at set_format()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8654 >
2025-03-27 14:29:40 +01:00
Víctor Manuel Jáquez Leal
0f0a4d6ab3
y4menc: enable y4menc debugging category
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8654 >
2025-03-27 14:29:40 +01:00
Víctor Manuel Jáquez Leal
2fb3dddd51
y4menc: handle padded frames
...
Since y4menc inherits from GstVideoEncoder, it negotiates upstream buffer pools
with GstVideoMeta support. Thus, certain decoders might use that meta for
frames with padded memory. Nonetheless y4menc assumes only linear memory video
frames, without padding.
This patch will copy frames using gst_video_frame_copy() if buffer has
GstVideoMeta or its video info is padded with its custom video info. Otherwise,
it ill call the agnostic gst_buffer_copy() for a shallow copy.
Supersedes: !5042
Fixes : #2765
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8654 >
2025-03-27 14:28:03 +01:00
Víctor Manuel Jáquez Leal
fb0bea8fef
y4menc: create an output video info without padding
...
The unpadded strides and offsets calculations for the video info are inspired
from y4mdec.
A boolean flags is toggled if the video info is padded for the given resolution.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8654 >
2025-03-27 14:05:43 +01:00
Doug Nazar
a33e1c7563
rtspsrc: Free various props during cleanup
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648 >
2025-03-27 09:03:18 +00:00
Doug Nazar
e3818d0e1b
qtmoovrecover: Free various props during cleanup
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648 >
2025-03-27 09:03:18 +00:00
Sebastian Dröge
f795796f89
qtdemux: Fix stsc size check in qtdemux_merge_sample_table()
...
There are 3 32bit integers per entry and not one more for all but the last.
Fixes a regression introduced in 5a9e80c01b4b49c6c7630a6d08b600114f38c0db
when playing back files that have one sample table entry per audio sample.
Merging the sample tables would've always failed because of the too strict size
check and one audio sample per GStreamer buffer would've been output, which
doesn't perform very well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8657 >
2025-03-25 18:38:45 +00:00
Tim-Philipp Müller
7861a2e4fb
imagefreeze: add support for JPEG-XS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8601 >
2025-03-13 00:11:52 +00:00
Thibault Saunier
ed693c7435
video: Give better names to buffer pools
...
Making debugging simpler
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8617 >
2025-03-12 14:49:22 +00:00
Devon Sookhoo
2f2a6e76bc
qtdemux: InterleaveType enum
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8578 >
2025-03-06 14:40:45 +00:00