Seungha Yang
bef77722aa
h264decoder: Update output frame duration when second field frame is discarded
...
In case of an interlaced stream, if each field picture belongs to
different GstVideoCodecFrame, updates output frame's duration
based on discarded second field picture's timestamp information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7175 >
2024-07-15 20:10:41 +02:00
Víctor Manuel Jáquez Leal
2962097764
vadisplay: fix minor version check
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7169 >
2024-07-12 17:39:52 +02:00
Robert Mader
7502b1ef29
waylandsink: Fix surface cropping for rotated streams
...
The wp_viewport source rectangle is applied in surface-local coordinates
after buffer_transform and buffer_scale. Therefore we need to swap width
and height for 90/270 deg. rotations.
This fixes playback of rotated videos such as portrait videos from
mobile devices.
See also: https://wayland.app/protocols/viewporter#wp_viewport
Fixes: 0b648f9a2d
("waylandsink: Crop surfaces to their display width height")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7160 >
2024-07-10 20:11:32 +02:00
Seungha Yang
e6c19a7922
d3d11converter: Fix runtime compiled shader code
...
Restore mistakenly deleted code in a previous MR
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6803
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7138 >
2024-07-09 09:54:43 +00:00
Sebastian Dröge
b19a687437
typefind: Add typefinders for formats that were previously available via ffmpeg
...
Co-Authored-By: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
4f0fc8a42c
avvidenc: Make sure to pass always increasing PTS to the encoder
...
All MPEG1/2/4-based encoders at least are ignoring input frames if
backwards PTS or PTS that are equal to the previous one are passed in.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
963e15f920
avviddec: Only use 2 ticks per frame if decoding interlaced video
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
20485320e5
avvidenc: Set the DTS to 0 if it is negative, not the PTS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
fa49369c46
avvidenc: Only use 2 ticks per frame if encoding interlaced video
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3518
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
fcbb1fa5f1
avmux: Reset input context to NULL after closing in the muxer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
d3935f0974
avdemux: Fix leak of demuxer input context in error cases
...
Also simplify context lifetime management a bit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
d871f34b39
libav: Update AVCodecContext lifetime to work properly with ffmpeg 7
...
avcodec_close() is deprecated and it's not supported anymore to re-open
a codec, so we only ever allocate the codec in set_format() now and
always free it after usage.
As part of this, also fix various memory leaks in related code paths.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Edward Hervey
bbf21060c2
avviddec: Rename variables and fuse function
...
* gst_ffmpegviddec_frame() is the only caller of gst_ffmpegviddec_video_frame()
and has the same signature. Just move the checks into a single function and
use that.
* Make it clear which frames are the input and output ones in
gst_ffmpegviddec_video_frame() to make issues like the one fixed in the previous
commit more obvious.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:32 +00:00
Sebastian Dröge
2cdaa79da6
libav: Fix signature of avprotocol write function for ffmpeg 7
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:31 +00:00
Sebastian Dröge
bd7b5b166d
avdemux: Remove typefinder implementation
...
Direct access to AVInputFormat::read_probe() is not possible anymore
with ffmpeg 7.0, and the usefulness of this typefinder seems limited
anyway. An alternative implementation around av_probe_input_format3() or
similar would be possible but it would be going over all possible ffmpeg
probes at once.
Having a typefinder here means that basically every application will
load the gst-libav plugin when typefinding is necessary, which has
unnecessary performance impacts. If a typefinder from here was indeed
missing from typefindfunctions in gst-plugins-base then it would be
better to add it there directly.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3378
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148 >
2024-07-08 16:25:31 +00:00
Ruben Gonzalez
c5b4ad429d
vkh265dec: Fix H.264 ref in logs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7147 >
2024-07-08 17:34:07 +02:00
Nirbheek Chauhan
a9fec8f638
meson: Fix invalid include flag in uninstalled gl pc file
...
${libdir}/gstreamer-1.0/include is only valid after installation, but
extra_cflags are added unconditionally, so we can't use that for
include flags.
Instead, let's add the include flag via variables, which are different
for installed and uninstalled pc files.
This is particularly bad for consuming GStreamer via CMake which barfs
on non-existent include paths.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7143 >
2024-07-05 18:43:27 +01:00
Taruntej Kanakamalla
0ae0efb623
lc3: remove bitstream comparison in the tests
...
since the encoded output is changing based on version
it does not make sense to check the output bitstream with a fixed
bytearray since the version in the target might vary. So sticking
to checking the number of output buffers and encoded frame size
similar to the other tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7142 >
2024-07-05 17:14:46 +01:00
Tim-Philipp Müller
0dfdbf49da
subprojects: update liblc3 wrap to 1.1.1
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6407#note_2472538
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7135 >
2024-07-04 11:22:59 +01:00
Tim-Philipp Müller
764543d3a5
info: remove unused valgrind header include
...
Follow-up to commit a2cbf75523
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7129 >
2024-07-03 12:22:18 +01:00
Tim-Philipp Müller
24de7cf1fe
subparse: remove regex optimized flag explicitly
...
That way the other flags in jit_flags are not touched and
flags changes in future only need to be done in one place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7129 >
2024-07-03 12:22:18 +01:00
Tim-Philipp Müller
051b8b6dbb
gst-plugins-base: put valgrind header availability define into config.h for subparse
...
Make the valgrind header avaibility accessible to any code in
gst-plugins-base, currently it was only signalled to unit tests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7129 >
2024-07-03 12:22:18 +01:00
Chris Spoelstra
63196c2ae7
srtsrc: fix case fallthrough of authentication param
...
Add missing breaks to two case statements.
Also adds a missing lock of srtobject->element when getting the value
of PROP_AUTHENTICATION.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7127 >
2024-07-02 17:07:24 +01:00
Edward Hervey
bad0daeb8f
subparse: Don't use jitted regex when used with valgrind
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7124 >
2024-07-02 11:04:01 +00:00
Edward Hervey
869b122e6b
gstreamer/gst-tester: Don't leak thread
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123 >
2024-07-02 10:10:45 +01:00
Edward Hervey
a8cf222cd0
gst-inspect: Fix leak of plugin/feature
...
Reordering changes the initial list head
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123 >
2024-07-02 10:10:45 +01:00
Edward Hervey
00903e36cb
encoding-target: Chain up to parent class
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123 >
2024-07-02 10:10:45 +01:00
Edward Hervey
02607432e3
encoding-profile: Chain up to parent class finalize
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123 >
2024-07-02 10:10:45 +01:00
Shengqi Yu
c4fe9786ea
v4l2object: use v4l2 reported width for padded_width when complex video formats
...
Stride means bytes per line, and padded_width means pixels. Here,
padded_width shoule be pix width reported by v4l2 instead of stride.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7122 >
2024-07-01 20:44:02 +01:00
Edward Hervey
8435fb4805
nlecomposition: Don't leak atomic rc box
...
* gst_structure_get => increases ref
* query_ancestors_position: There are two refs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120 >
2024-07-01 14:31:23 +01:00
Edward Hervey
ef53d8c7b7
nlecomposition: Don't leak message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120 >
2024-07-01 14:31:23 +01:00
Edward Hervey
2d38c289f6
ges-layer: Don't use invalid layers
...
There's a possibility that there are no layers at that priority
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120 >
2024-07-01 14:31:23 +01:00
Edward Hervey
1af999696e
ges-discoverer-manager: Properly initialize/free GRecMutex
...
Fixes small leak of mutex internals
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120 >
2024-07-01 14:31:23 +01:00
Jordan Petridis
7057d7ce22
validate: Remove G_REGEX_OPTIMIZE usage
...
It's not needed and causes issues with valgrind (which doesn't support jit)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7113 >
2024-06-28 17:31:14 +01:00
Guillaume Desmottes
83d736d6d9
rtmp2: guard against calling gst_amf_node_get_type() with NULL
...
gst_amf_node_get_type() raises a CRITICAL if called with a NULL node.
All callers were checking for this except those.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7110 >
2024-06-28 10:25:37 +01:00
Jan Schmidt
5a25a00324
adaptivedemux: Fix handling closed caption streams
...
Fix a typo "CLOSED_CAPTION" -> "CLOSED-CAPTION" and
a broken if statement that always bailed out for
closed captions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7105 >
2024-06-26 15:58:20 +00:00
Jan Schmidt
48e2fb95e6
webrtcdsp: Enable multi_channel processing
...
Enable multi_channel processing in webrtc-audio-processing when the
input or output has multiple channels.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3220
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7104 >
2024-06-26 16:13:04 +01:00
Piotr Brzeziński
67eae3cf31
vtenc: Fix redistribute latency spam
...
Just a quick fix to only report the maximum noticed delay (measured by frames inside the encoder) instead of changing
the reported latency every time the number there changes, which is way too often.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7098 >
2024-06-25 09:49:56 +01:00
Seungha Yang
a593f2f71f
d3d12converter: Make gamma remap work as intended
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7080 >
2024-06-21 10:53:25 +01:00
Sebastian Dröge
95fdb4030f
queue, queue2, multiqueue: Timestamps of gap events must be valid
...
This is checked in gst_event_new_gap() so doesn't have to be checked again here,
but simply can be asserted with a g_return_if_fail().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7075 >
2024-06-20 19:32:14 +01:00
Sebastian Dröge
8e9b364d9b
queue: queue2: multiqueue: Don't work with segment.position if buffers have no timestamps
...
If the first buffers have no timestamp then the sink position would be
initialized to 0. The source pad might output this buffer, which would then
initialize the source position to 0 too.
Afterwards two buffers with a valid but huge timestamp might arrive before any
of them are output on the source pad. The first one would set the sink position
to a huge value, the second one would notice that the difference between the
huge value and 0 is certainly larger than max-size-time and consider the queue
as full.
Instead, simply don't update the times from buffers without timestamps and
assume whatever was set before is still valid, i.e. the buffer has the same
timestamp as the previous one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7075 >
2024-06-20 19:32:14 +01:00
Edward Hervey
6615af3f5f
decodebin3: Fix keyframe drop probe handling
...
We were storing the probe id in a different structure (DecodebinOutputStream)
than the pad it is targetting (which is in MultiQueueSlot).
The problem is that when re-targetting outputs (to a different slot)... we would
end up having an invalid probe id, or not have a reference to an existing one.
Instead, store the probe id in the same structure as the pad it's targetting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7074 >
2024-06-20 15:15:54 +01:00
Edward Hervey
455ca1326b
decodebin3: Fix detection of selection done
...
We should not assert if there are still some old streams that are waiting to be
deactivated.
Instead wait for them to be gone before posting the selection done message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7074 >
2024-06-20 15:15:54 +01:00
Tim-Philipp Müller
a58953cbf6
Back to development after 1.24.5
2024-06-20 13:02:19 +01:00
Tim-Philipp Müller
3c66f10e21
Release 1.24.5
2024-06-20 12:54:15 +01:00
Tim-Philipp Müller
f6af34d3be
rtpdtmfsrc: minor logging clean-up
...
Only serialise event structure for debug logging purposes
if logging is actually enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7062 >
2024-06-19 10:11:28 +01:00
Tim-Philipp Müller
02447fa0b2
rtpdtmfsrc: fix leak when shutting down mid-event
...
.. and update rtpdtmfdepay unit test to trigger
the potential leak more reliably (without the fix).
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3633
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7062 >
2024-06-19 10:11:28 +01:00
Sebastian Dröge
460b883003
video-info: Don't crash in gst_video_info_is_equal() if one videoinfo is zero-initialized
...
Instead handle it like gst_audio_info_is_equal() and consider both different.
And also add a shortcut for the pointers to both infos being equal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7059 >
2024-06-18 20:11:13 +01:00
Edward Hervey
ef5fe0b33b
tsdemux: Fix maximum PCR/DTS values
...
* PTS/DTS are stored as 33 bit
* PCR is 33bit multiplied by 300
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7058 >
2024-06-18 19:03:31 +01:00
He Junyan
aa5092dabf
av1parse: Do not return error when expectedFrameId mismatch
...
According to the SPEC:
The frame id numbers (represented in display_frame_id, current_frame_id,
and RefFrameId[ i ]) are not needed by the decoding process, but allow
decoders to spot when frames have been missed and take an appropriate action.
So we should just print out warning and should not return error in parser when
mismatching. The decoder itself is already robust to handle the reference missing.
Fixes #3622
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7052 >
2024-06-18 11:04:43 +01:00