Ming Qian
094d121812
video: Add support for linear 8x128 NV12 tiles and 10bit BE tiles
...
This adds linear 8x128 NV12 based tiles and NV12 10bit big endian tiles.
These formats are used by i.MX 8QXP/8QM VPU and exposed in V4L2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379 >
2022-03-22 00:41:39 +00:00
Benjamin Gaignard
98cb44ffc6
v4l2codecs: Fix memory leak
...
Free pending_requests array when releasing decoder to avoid memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2000 >
2022-03-21 16:06:05 +00:00
Daniel Almeida
9a364464f0
av1decoder: Sync duplicate_picture with VP9 one
...
Pass the current frame to the duplicate_picture callback. This makes it easier
to set the frame's output_buffer if we already have one available. Also
documented that unlike VP9, it is not optional to implement this as the
picture will populate the DPB if it is a key-frame. To ensure this, remove the
default implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992 >
2022-03-21 15:10:01 +00:00
Nicolas Dufresne
a7ceac50b2
vp9decoder: Copy system_frame_number in duplicate_picture
...
Just like AV1, copy the system_frame_number from the original picture to make
it clear they reference the same data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992 >
2022-03-21 15:10:01 +00:00
Nicolas Dufresne
80107d4a86
cdoecs: av1: Copy system_frame_number in duplicate_picture
...
The system_frame_number is notably used by V4L2 decoder as a unique
indentifier for the frame that was decoded. This value is used to tell driver
which frame to reference, as V4L2 does not have an efficient mechanism to
otherwise pass back the frames.
For this reason, and because it is more ligical, copy the original
system_frame_number into the duplicate picture instead of using the current
frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992 >
2022-03-21 15:10:01 +00:00
Seungha Yang
0c6125bad6
meson: va: Define GST_USE_UNSTABLE_API
...
Remove extra_c_args which is not defined in this meson file at all,
and define GST_USE_UNSTABLE_API to avoid build warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1999 >
2022-03-21 22:17:00 +09:00
Matthew Waters
206021e4d4
rtpmanager/rtx: implement initial support for reading/writing rid extensions
...
Two RTP Header extensions are very relevant for rtprtxsend/receive.
1. "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id": will always be removed
2. "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id": will be written
instead of the "rtp-stream-id" header extension.
Currently it's only a simple replacement of one header extension for
another however a future change would only add the relevant extension
based on some heuristics (like, video frames only on one of the rtp key
frame buffers, or only until the rtx ssrc has been validated by the peer)
in order to reduce the required bandwidth.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759 >
2022-03-21 03:18:18 +00:00
Matthew Waters
33be3e5936
test: add tests for sdes-based RTP header extensions
...
mid, stream id and repaired stream id.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759 >
2022-03-21 03:18:18 +00:00
Matthew Waters
1e55e2d654
rtpmanager: add support for RFC8852 (rid) RTP header extensions
...
Both for regular RID and for adding on a repaired (RTX) etc stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759 >
2022-03-21 03:18:18 +00:00
Matthew Waters
ecd9cce3b1
rtpmanager: add support for writing RFC8843 (BUNDLE mid) RTP header extension
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759 >
2022-03-21 03:18:18 +00:00
Nicolas Dufresne
049655c824
codecs: av1: Fix state when we show existing keyframe
...
Showing existing keyframe have special meaning in AV1. All the references
frame will be refreshed with the original keyframe information. The refresh
process (7.20) is implemented by saving data from the frame_header into the
state. To fix this special case, load all the relevant information into the
frame_header.
As there is nothing happening in between this and the loading of the key-frame
into the state, this patch also remove the separate API function, using it
internally instead.
Fixes #1090
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1971 >
2022-03-19 11:56:33 +00:00
Sebastian Dröge
3de245ed17
videocrop: Add support for v210
...
Like UYVY and similar formats this is rounding down to the start of the
previous macro-pixel to not mix up the different components.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988 >
2022-03-19 01:25:07 +00:00
Sebastian Dröge
49ec82b209
videocrop: Use GST_ROUND_DOWN_2 instead of re-defining a local version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988 >
2022-03-19 01:25:07 +00:00
Sebastian Dröge
cd86181d54
videocrop: Rename PACKED_COMPLEX to PACKED_YVYU
...
It's not handling any kind of complex packed format, only formats that
are like YVYU.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988 >
2022-03-19 01:25:07 +00:00
Jakub Adam
90eadae350
d3d11: Fix some typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1985 >
2022-03-19 00:19:41 +00:00
Thibault Saunier
692750efae
validate: Totally hide media descriptor node types from the API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1986 >
2022-03-18 23:30:37 +00:00
Nirbheek Chauhan
2913ab9dbf
meson: Fix warning about build_root() and source_root()
...
```
../meson.build:384: WARNING: Project targeting '>= 0.60.0' but tried to use feature deprecated since '0.56.0': meson.build_root. use meson.project_build_root() or meson.global_build_root() instead.
../meson.build:385: WARNING: Project targeting '>= 0.60.0' but tried to use feature deprecated since '0.56.0': meson.source_root. use meson.project_source_root() or meson.global_source_root() instead.
...
WARNING: Deprecated features used:
* 0.56.0: {'meson.source_root', 'meson.build_root'}
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977 >
2022-03-18 22:49:16 +00:00
Nirbheek Chauhan
1cb127f16b
meson: Bump all meson requirements to 0.60
...
Lots of new warnings ever since
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977 >
2022-03-18 22:49:16 +00:00
Nirbheek Chauhan
8819350b74
openexr: Fix some warnings
...
```
../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:46:24: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations]
46 | virtual Int64 tellg ();
| ^
In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32:
/usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here
23 | typedef IMATH_NAMESPACE::Int64 Int64;
| ^~~~~
../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:47:32: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations]
47 | virtual void seekg (Int64 pos);
| ^
In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32:
/usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here
23 | typedef IMATH_NAMESPACE::Int64 Int64;
| ^~~~~
../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:67:26: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations]
67 | Int64 MemIStream::tellg ()
| ^
In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32:
/usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here
23 | typedef IMATH_NAMESPACE::Int64 Int64;
| ^~~~~
../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:73:29: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations]
73 | MemIStream::seekg (Int64 pos)
| ^
In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32:
/usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here
23 | typedef IMATH_NAMESPACE::Int64 Int64;
| ^~~~~
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977 >
2022-03-18 22:49:16 +00:00
Nirbheek Chauhan
5182daaf88
subprojects/avtp: Update to latest avtp 0.2.0
...
Fixes some meson warnings too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977 >
2022-03-18 22:49:16 +00:00
He Junyan
580a2bb64b
codecparsers: av1parser: Fix a typo in FilmGrainParams comment.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1974 >
2022-03-18 18:59:25 +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
Jakub Adam
df55700f44
d3d11screencapturesrc: Allow capturing screen sub-area
...
Adds crop-x, crop-y, crop-width, crop-height properties specifying the
screen area to capture.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1932 >
2022-03-18 13:56:51 +01:00
Nirbheek Chauhan
253ee75a72
webrtcbin: Warn when offer didn't intersect with transceiver caps
...
We were silently falling back to creating a recvonly offer if the caps
didn't intersect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
0007fa38e0
webrtc-sendrecv: Fix create-answer caps negotiation
...
We need to parse the payload type map provided by the offer SDP and
set those values on the payloader, otherwise webrtcbin will create
a recvonly answer SDP and we won't send anything to the browser.
Fixed it for both C and Python sendrecv examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
3c0d582b7c
webrtc_sendrecv.py: Add picture-id-mode to rtpvp8pay
...
This doesn't just make TWCC stats perform better, it also fixes
stuttery video playback in Chrome.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
e0378f9913
webrtc_sendrecv.py: Print an error on unknown JSON message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
90da0e1d1e
webrtc_sendrecv.py: Add missing copyright headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
583408c312
webrtc_sendrecv.py: Implement all negotiation modes
...
Earlier, the example only supported one negotiation mode:
* Browser client is running, gstreamer starts a call and sends offer
Now these three modes are also supported:
* Browser client is running, gstreamer starts a call and sends an
offer request
* gstreamer connects and waits for browser client to start a call and
send an offer
* gstreamer connects and waits for browser client to start a call and
send an offer request
The following features are still missing:
* Data channel support
* TWCC support + stats logging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
0b1438cc97
webrtc_sendrecv.py: Make it executable
...
Why wasn't it already. Tired of typing 'python webrtc_sendrecv.py'.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Nirbheek Chauhan
2294356d9b
webrtc_sendrecv.py: Fix event loop usage for messages
...
Instead of creating a new loop, we should just be fetching the running
loop, then doing a blocking network call inside the callback, schedule
it on the event loop. This is what the C example does too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Nirbheek Chauhan
ee4ca699a0
webrtc_sendrecv.py: Use default arg for server URL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Matthew Waters
f0e5c8e0f2
ci/fuzzing: update glib version to 2.72.0
...
Fixes an issue where on configure, glib's internal gnulib was tripping
up the undefined behaviour sanitizer with a divide by 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1976 >
2022-03-18 18:35:05 +11:00
Vivienne Watermeier
2b85e5f99c
glvideomixerelement: send translated navigation events to the relevant sink pads
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Vivienne Watermeier
6fd7e7699d
compositor: send translated navigation events to the relevant sink pads
...
Fixes #888
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Matthew Waters
03ff52ee69
ci/fuzzling: fix oss-fuzz build
...
gst-plugins-base doesn't have a cairo option anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1975 >
2022-03-18 13:16:42 +11:00
Thibault Saunier
1a5d2ce98c
validate: Cleanup ABI and make it ready to be stabilized this cycle
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Thibault Saunier
5089139e57
validate: Introspect gst-validate-runner.c
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Thibault Saunier
2ef203e659
validate: Add getters for ValidateReports
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
5ea0c20a33
validate: Change IssueId type to guint32
...
Which is a bit more bindings-friendly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
616d1dd6ba
validate: ssim: Respect requested dump recurrence parameter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
c275b5c678
validate: Keep scenario alive enough when executing actions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
a9e3b05055
validate: Introspection annotation cleanups
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
d07f2323fe
validate: Fix padding and constants
...
Without this the Rust -sys validate crate tests don't pass.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
8780da3ffe
validate: Expose all public headers in main header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
aa917a9d9a
validate: Fix pkgconfig name
...
Making it consistent with the reset of GStreamer. This also means that
anyone wanting to target -validate >= 1.22 needs to change the way they
link against it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Sangchul Lee
7691c6776a
rtpjitterbuffer: Fix invalid memory access in rtp_jitter_buffer_pop()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1973 >
2022-03-17 12:46:14 +00:00
Vivienne Watermeier
8cb5d9f49e
documentation: improve misleading wording
...
The documentation for several gst_*_writable_structure functions stated
that they would never return NULL, without making clear that the passed
object is required to be writable. This changes the wording in those
cases to make that requirement more clear.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1784 >
2022-03-17 11:56:37 +00:00
Matthew Waters
098ff9a453
ccconverter: drop data with a warning if scratch buffers overflow
...
Instead of asserting which could bring down the entire application.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1972 >
2022-03-17 21:46:44 +11:00
Hou Qi
b962126b06
v4l2videodec: set frame duration according to framerate
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1953 >
2022-03-16 14:15:04 +00:00