Havard Graff
e0811f890f
videodecoder: Fix min-force-key-unit-interval logic and logging
...
The new keyframe is needed when the deadline of the buffer has exeeded
the waiting time, not while it is within it.
Also, since we look at the deadline of the frame, log that instead of PTS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1278 >
2021-09-16 17:00:14 +03:00
U. Artie Eoff
48474d3cf7
tests: skip cc tests if plugin is disabled
...
Skip the closedcaption element tests if the
closedcaption option is disabled at compile
time (i.e. -Dclosedcaption=disabled).
v2: rename pangocairo_dep to avoid conflict
with later definition in ext/ttml/meson.build
as suggested by @tpm.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1388 >
2021-09-15 10:04:14 -07:00
Olivier Crête
972184f434
rtphdrhext-twcc: Return failure on map failure
...
This feels like exactly like a case that should fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059 >
2021-09-15 17:02:01 +00:00
Olivier Crête
f8f24a2619
rtphdrext: Update write() API to return a signed value
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059 >
2021-09-15 17:02:01 +00:00
Olivier Crête
fd93c1ac19
rtphdrext: Make write function return a signed value
...
Since the return value is documented to possibly be smaller than 0,
then it needs to be signed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1258 >
2021-09-15 16:35:09 +00:00
Olivier Crête
98f2a84a28
videorate: Add unit test for closing a segment and opening a separate one
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767 >
2021-09-15 15:35:43 +00:00
Olivier Crête
24fd80344d
videorate: Drop incoming buffers that are outside of the segment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767 >
2021-09-15 15:35:43 +00:00
Olivier Crête
6f7922b4db
videorate: Only "close" the segment if it is discontinous
...
Otherwise, it will drop valid buffers on a simple segment update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767 >
2021-09-15 15:35:43 +00:00
Olivier Crête
a76f38b2c7
videorate: Add test for segment update
...
Continue as-is on segment update.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767 >
2021-09-15 15:35:43 +00:00
Olivier Crête
75b4809ebc
videorate: Update the base time on segment updates
...
Dropping it to 0 makes videorate push buffers from timestamp 0 again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/767 >
2021-09-15 15:35:43 +00:00
He Junyan
162026961b
codecs: h264dec: Check bumping again after inserting current picture.
...
In order to get the lowest latency, we can add another bumping check after
inserting the current picture into the DPB immediately. That can avoid
waiting for another decoding circle of the next frame and so the latency
is lower.
Fix : #1628
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501 >
2021-09-15 13:20:28 +00:00
He Junyan
28eb729b53
codecs: h264: Add protection to to_insert picture in bump check.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501 >
2021-09-15 13:20:28 +00:00
He Junyan
5c73725c9b
codecs: h264dec: Improve the policy to infer max_num_reorder_frames.
...
The max_num_reorder_frames number can change the way we bumping the
pictures in the DPB. The smaller it is, the lower latency we will
get. So it is important for live mode streams, but it is not given
in VUI parameters sometimes. We now improve the policy to infer it:
1. Never guess it in the "strict" compliance.
2. For baseline and constrained baseline profiles, which do not have
B frames, set it to 0.
3. For -intra only profiles, set it to 0.
4. Otherwise, not guess it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501 >
2021-09-15 13:20:28 +00:00
U. Artie Eoff
8b1634930f
tests: skip aes test if elements not built
...
In ext/aes/meson.build, the aes_dep will return
not-found if -Daes=disabled, regardless of whether
openssl is found or not. Thus, we don't need a
separate check for the option. This will also
ensure that aes_dep is always defined and we can
use it in the tests/check/meson.build unit.
Fixes #1660
v2: handle -Daes=disabled, too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2522 >
2021-09-14 23:15:44 -07:00
Vivienne Watermeier
d78b00163d
validate: fix relative paths for test files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/256 >
2021-09-14 15:09:20 +02:00
Seungha Yang
4576abde67
qtdemux: Try to build AAC codec-data whenever it's possible
...
AAC codec_data is a just collection of AAC profile, samplerate, and
channels. We can know samplerate and channels from parsed
SampleEntry data. Although the AAC profile is unknown there,
let's assume it as AAC-LC like we've been doing for the version 1
atom.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1082 >
2021-09-14 17:55:13 +09:00
Philippe Normand
5dc39091f3
wpe: Add support for web:// URIs
...
The CEF source already supports this. No good reason for wpesrc not too ;)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2503 >
2021-09-13 15:02:24 +00:00
Mathieu Duponchelle
c6acee201e
multiqueue: fix obsolete comment re initial flow status
...
The initial single queue srcresult is OK, it hasn't been
NOT_LINKED since 2007.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885 >
2021-09-13 14:16:06 +00:00
Mathieu Duponchelle
67eb70bb9c
multiqueue: never consider a queue that is not waiting
...
.. when computing the high id.
After a flush for instance, sq->srcresult is reset to OK,
yet it doesn't make sense to pick a non-existing position
id as the high id when a queue doesn't contain any items
in that situation either.
It is in any case completely OK to let the not-linked stream
get consumed without throttling at this stage, as any
first packet arriving on other single queues will get assigned
a higher position id.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885 >
2021-09-13 14:16:06 +00:00
He Junyan
364a2fe08e
va: h264dec: Try to use ConstrainedBaseline or Main to decode BaseLine.
...
In the h264, the Baseline profile is widely misused. A lot of streams declare
that they are the Baseline, but in fact they just conform to ConstrainedBaseline.
The features such as FMO and ASO are not used at all.
If the decoder does not strictly conforms to the SPEC, we can just use Baseline
or Main profile to decode it to avoid lots of streams failure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2428 >
2021-09-13 21:51:12 +08:00
Vivienne Watermeier
44bfc00884
flv: fix seqnum handling for seeks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1078 >
2021-09-13 12:30:30 +00:00
Matthew Waters
f441c72e5a
isomp4: also allow muxing different h264/5 profiles/levels/etc
...
All of that is advertised through the codec_data itself so can change
just fine within isomp4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1071 >
2021-09-13 09:42:15 +00:00
Sebastian Dröge
3592bf7726
matroska: Add support for muxing/demuxing ffv1
...
Previously only demuxing when stored via the RIFF/AVI mapping was
supported.
See https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#matroska-file-format
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/923
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1080 >
2021-09-13 10:05:18 +03:00
He Junyan
0b949ec07c
codecs: h264dec: Improve the fast bump for the live mode.
...
We control the policy of fast bump by the profile and the compliance
property. For baseline and constrained baseline profiles, we can use
more radical bump policy. User can also change the bump policy by
setting the compliance property in run time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432 >
2021-09-13 06:37:28 +00:00
He Junyan
56269d127f
codecs: h264: Change the low_latency to an enum for dpb_needs_bump().
...
The bool parameter of low_latency is not enough. We have multi policies for
low latency bumping, from the safest to something radical. So we need an enum
to represent the proper latency requirement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432 >
2021-09-13 06:37:28 +00:00
He Junyan
3c975ed918
codecs: h264dec: Add a compliance property to control behavior.
...
Some features such as the low-latency DPB bumping and mapping the
baseline profile as the constrained-baseline profile do not conform
to the H264 offical spec. But in practice, they are very useful and
are widely needed. We add this compliance property to control the
behavior of the decoder, make it fit more requirement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432 >
2021-09-13 06:37:28 +00:00
Philippe Normand
a61d038cb6
docs: Update cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2521 >
2021-09-12 12:23:36 +01:00
Philippe Normand
732b352df6
docs: Update cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1081 >
2021-09-12 12:18:32 +01:00
Philippe Normand
a55dafe341
discoverer: Prevent stream tags from leaking in global tags
...
The PrivateStream should keep track of stream tags only. Likewise, the
GstDiscovererInfo should keep track of global tags only.
This patch fixes the issue where the discoverer would report duplicated tag
titles, especially for Matroska media files. The Matroska demuxer emits
correctly-scoped tags, but downstream was making no distinction of them.
Fixes #598 , #836 , https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/827
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1275 >
2021-09-12 10:20:05 +01:00
Thibault Saunier
e3636642b7
validate: Fix double freeing of GstStructure
...
gst_validate_get_config is transfer-container only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/255 >
2021-09-10 20:12:28 +00:00
Jordan Petridis
d68d52e137
citemplate: only build rust docker images in gst-ci repos
...
They are only used by the gst-rs repos which aren't using
this template anyway, so we don't need to have the jobs for the
rest of the pipelines.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/418 >
2021-09-10 16:31:00 +00:00
Jordan Petridis
2a93d4f347
citemplate: Bump tag of latest rustc version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/418 >
2021-09-10 16:31:00 +00:00
Víctor Manuel Jáquez Leal
4f0b619023
va: Update vapostproc documentation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:23 +02:00
Víctor Manuel Jáquez Leal
d4d483856f
va: Update todo lists, removing deinterlacing.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:23 +02:00
Víctor Manuel Jáquez Leal
4a39bf6680
Add vadeinterlace element.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:23 +02:00
Víctor Manuel Jáquez Leal
b13fd4f15b
va: filter: Add past and future frames in GstVaSample.
...
And add them in the pipeline structure if they are provided.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:23 +02:00
Víctor Manuel Jáquez Leal
419ef31d1e
va: filter: Add gst_va_filter_add_deinterlace_buffer()
...
This function decorates gst_va_filter_add_filter_buffer() to get the
number of past and future frames to hold, given the method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:22 +02:00
Víctor Manuel Jáquez Leal
101dcb55d9
va: filter: Add deinterlacing method parameter.
...
For exposing that gobject parameter a new helper function is added:
gst_va_filter_install_deinterlace_properties()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 17:48:22 +02:00
Jordan Petridis
ab610be59d
citemplate: post-merge use upstream urls for fetching scripts
...
since gstreamer/gst-ci!414 landed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/416 >
2021-09-10 18:25:08 +03:00
Víctor Manuel Jáquez Leal
51dcba7b1e
va: filter: Protect filters array of overwrite.
...
It's possible to modify the filters array from another GStremer
thread, and the post-processing operation is not atomic, so the filter
array is reffed while the VA pipeline is processed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:45:00 +02:00
Víctor Manuel Jáquez Leal
cc91fd0956
va: filter: Add helper function to query pipeline caps.
...
This function is going to be shared for future deinterlace filter
processing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:45:00 +02:00
Víctor Manuel Jáquez Leal
7f2e1e2eb3
va: filter: Shuffle _destroy_filters_unlocked().
...
In order to put it near to its caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:45:00 +02:00
Víctor Manuel Jáquez Leal
0a7828e9ba
vapostproc: Move up color balance detection to plugin.
...
In order to install the color balance interface, a GstVaFilter is
instantiated and queried to know if it supports color balance
filter. It was done just after the GObject was registered. Now, it's
done before.
The reason of this change is that deinterlace element has to be
registered only if deinterlace filter is available, using only one
instantiate of GstVaFilter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:45:00 +02:00
Víctor Manuel Jáquez Leal
ece5feeb8d
va: basetransform: Update documentation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:41:27 +02:00
Víctor Manuel Jáquez Leal
1b30920464
va: basetransform: Add autoptr clean up function.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 14:34:32 +02:00
Víctor Manuel Jáquez Leal
ef3f53428d
va: basetransform: Use copy_metadata() at buffer import.
...
Instead of using only gst_buffer_copy_into() use copy_metadata()
vmethod to copy what's needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 10:52:13 +02:00
Víctor Manuel Jáquez Leal
51e446345f
vapostproc: don't chain up transform_meta()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495 >
2021-09-10 10:52:13 +02:00
Daniel Almeida
b8c826afe3
codecs: gstvp9statefulparser: feature_data should be 0 if feature_enable is 0
...
The spec says in 6.2.11 that feature_data[i][j] should be zero if
feature_enabled[i][j] is zero. Instead we retained the old value in the parser.
Fix it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2449 >
2021-09-09 18:32:42 +00:00
Marek Vasut
8239ff343f
gsth264parser: Fix handling of NALs with emulation byte set
...
In case a set of NALs with emulation_prevention_three_byte is decoded using
hardware decoder like Hantro G1, wrong struct v4l2_ctrl_h264_decode_params
.dec_ref_pic_marking_bit_size is passed into the kernel, which results in
decoding artifacts. Subtract the number of emulation three bytes from the
.dec_ref_pic_m->bit_size to get the correct bit size and avoid having these
artifacts. Apply the exact same fix to slice->pic_order_cnt_bit_size as well.
The following NALs (7, 8, 6, 5) decode with artifacts,
.dec_ref_pic_marking_bit_size is set to 10 without this patch.
00000000 00 00 00 01 27 4d 00 20 89 8b 60 3c 04 bf 2e 02 |....'M. ..`<....|
00000010 d4 18 04 18 c0 c0 01 77 00 00 5d c1 7b df 05 00 |.......w..].{...|
00000020 00 00 01 28 ee 1f 20 00 00 01 06 05 10 b9 ed b9 |...(.. .........|
00000030 30 5d 21 4b 71 83 71 2c 10 a3 14 bb 29 80 00 00 |0]!Kq.q,....)...|
00000040 01 25 b8 00 05 00 00 03 03 7f fa 78 1e e7 fd fe |.%.........x....|
^^^^^^^^^^^^--- emulation 3 byte
00000050 b4 62 7a 31 ff 7d 81 fd 26 d8 62 b6 d6 25 46 ae |.bz1.}..&.b..%F.|
The following NALs (7, 8, 6, 5) decode fine,
.dec_ref_pic_marking_bit_size is set to 2 without this patch.
00000000 00 00 00 01 27 4d 00 20 89 8b 60 3c 04 bf 2e 02 |....'M. ..`<....|
00000010 d4 18 04 18 c0 c0 01 77 00 00 5d c1 7b df 05 00 |.......w..].{...|
00000020 00 00 01 28 ee 1f 20 00 00 01 06 05 10 b9 ed b9 |...(.. .........|
00000030 30 5d 21 4b 71 83 71 2c 10 a3 14 bb 29 80 00 00 |0]!Kq.q,....)...|
00000040 01 25 b8 00 04 c0 00 03 7f fa 78 1e e7 fd fe b4 |.%........x.....|
00000050 62 7a 31 ff 7d 81 fd 26 d8 62 b6 d6 25 46 ae ce |bz1.}..&.b..%F..|
Fixes: d0d65fa875
("codecparsers: h264: record dec_ref_pic_marking() size")
Fixes: 0cc7d6f093
("codecparsers: h264: record pic_order_cnt elements size")
Signed-off-by: Marek Vasut <marex@denx.de>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2517 >
2021-09-09 16:49:41 +00:00
Aaron Boxer
15d724e671
gsth264parser: reject memory management control op greater than 6
...
This prevents assertion from being thrown in
gst_h264_dpb_perform_memory_management_control_operation
if corrupt NAL has a control op greater than 6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2508 >
2021-09-09 15:32:14 +00:00