Víctor Manuel Jáquez Leal
a075e57c61
vajpegdec: Fix 4:2:2 for i965.
...
Since i965 uses NV12 either for 4:2:0 and 4:2:2 chroma (using an
internal color conversion) the chroma validation has to be shortcut.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
074bdad21f
va: libs: Add Y42B format.
...
Enable 4:2:2 JPEG decoding in iHD.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
4dd6728ed5
va: Validate JPEG subsampling configurations.
...
There are Mesa Gallium drivers that report subsampling but without
any pixel format. So, strip out these subsamplings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
0446e35a14
va: gst_va_create_raw_caps_from_config() may return NULL.
...
This patch verifies if the function returns NULL in the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Eric Knapp
45408db258
decklink: Validate video input format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Eric Knapp
0c42c4801c
decklink: Auto-detect 10-bit YUV
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Daniel Morin
d2fcf85796
gst-play: missing cleanup for g_autoptr
...
Without this change cleanup function for g_autoptr is not defined for
GstPlayMediaInfo, GstPlaySignalAdapter, GstPlayVideoRenderer,
GstPlayVideoOverlayVideoRenderer and GstPlayVisualization. Cleanup
function was defined in gstplay.h, but missing in other header files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2888 >
2022-08-17 09:52:00 +03:00
Seungha Yang
eedaf10359
meson: d3d11: Fix missing header install
...
Install gstd3d11compile.h header file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2896 >
2022-08-16 16:55:45 +00:00
Seungha Yang
df64226e71
d3d11decoder: Do timer based DecoderBeginFrame retry
...
... instead of retry count based one, because the precision of Sleep()
varies depending on system and application configuration.
Also, don't retry DecoderBeginFrame if decoder is doing flush.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2886 >
2022-08-15 19:16:16 +00:00
Seungha Yang
812bb14f28
cudaupload,cudadownload: Don't simplify caps in transform_caps
...
The simplified caps might not be a subset of filter caps
and basetransform will complain about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2883 >
2022-08-15 18:44:14 +00:00
Seungha Yang
9b4fafb882
d3d11decoder: Do not use miniobject qdata
...
The miniobject qdata uses global mutex.
Use ID3D11DeviceChild::{Set,Get}PrivateData methods instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2885 >
2022-08-15 02:50:18 +09:00
Seungha Yang
852ba82e36
docs: Remove dxgiscreencapsrc from documentation
...
The implementation was dropped in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1750
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2878 >
2022-08-13 18:40:02 +00:00
Sebastian Dröge
723bdd2514
player: Don't leak wrapped video info
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1373
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880 >
2022-08-13 12:24:37 +03:00
Sebastian Dröge
aff79db608
play: Make ownership of video-sink clearer in combination with floating references
...
And correctly handle the case of VideoRenderer::create_video_sink() not
actually returning a floating reference, which might be tricky for some
bindings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880 >
2022-08-13 12:16:16 +03:00
Sebastian Dröge
f060b8b6f3
play: Fix object construction
...
Ideally new() functions should simply call g_object_new() and not much
else, so let's do that here and handle all the construction properly in
a GObject way.
Now a play object created via g_object_new() is actually usable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880 >
2022-08-13 12:16:16 +03:00
Sebastian Dröge
abfbcc0b6f
player: Fix object construction
...
Ideally new() functions should simply call g_object_new() and not much
else, so let's do that here and handle all the construction properly in
a GObject way.
Now a player object created via g_object_new() is actually usable.
In addition, also fix the video-renderer property so that reading it
returns an object of the correct type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880 >
2022-08-13 12:05:47 +03:00
Sebastian Dröge
15ee056fb8
player: Release signal adapter on finalize
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880 >
2022-08-13 12:04:31 +03:00
Seungha Yang
3632e97df2
mxfdemux: Always calculate BlockAlign of raw audio
...
Workaround for nBlockAlign and nBitsPerSample mismatch. Always
use the formula described in the specification for BlockAlign value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2864 >
2022-08-12 19:26:08 +00:00
Seungha Yang
7c842d9247
meson: d3d11: Fix build with GIR enabled
...
... and remove unused list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2870 >
2022-08-12 18:03:00 +00:00
Matthias Clasen
491dcddf6e
gstplayer: Plug a memory leak
...
This was showing up as a memory leak in GTK's
gstreamer media backend:
40 bytes in 1 blocks are definitely lost in loss record 18,487 of 40,868
at 0x484586F: malloc (vg_replace_malloc.c:381)
by 0x50D5278: g_malloc (gmem.c:125)
by 0x50EDBA5: g_slice_alloc (gslice.c:1072)
by 0x50EFBCC: g_slice_alloc0 (gslice.c:1098)
by 0x51F2F45: g_type_create_instance (gtype.c:1911)
by 0x51DAE37: g_object_new_internal (gobject.c:2011)
by 0x51DC080: g_object_new_with_properties (gobject.c:2181)
by 0x51DCB20: g_object_new (gobject.c:1821)
by 0x9855F86: UnknownInlinedFun (gstplayer-wrapped-video-renderer.c:109)
by 0x9855F86: gst_player_new (gstplayer.c:579)
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1374
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2875 >
2022-08-12 15:43:05 +00:00
Corentin Damman
0d07ff60c9
d3d11window: fix DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING swap chain flag for full screen
...
Fixes #1372 (regression introduced in 5eeec165
)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2866 >
2022-08-12 09:35:40 +00:00
Philippe Normand
90d46c1748
wpesrc: Switch URI handler to web+... protocols
...
The web://http:// URIs were not compliant with RFC 3986. Using web+http://
allows us to use the GstUri parser to pass down a valid URI to `wpevideosrc`.
Corresponding change for the CEF source element:
8d499495dd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2856 >
2022-08-10 15:10:26 +00:00
Corentin Damman
0d5d94aabd
nvcodec: fix caps leaks in nvh264/h265encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2850 >
2022-08-10 12:24:37 +00:00
Víctor Manuel Jáquez Leal
ad15fc9169
vah264enc: Set codec frame sync point if IDR
...
This flag is used by GstVideoEncoder base class for certain configurations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2852 >
2022-08-10 08:00:18 +00:00
Víctor Manuel Jáquez Leal
c4706ed219
vah264enc: Packed headers can be zero.
...
A driver can report back no packed header support (VA_ENC_PACKED_HEADER_NONE).
This patch removes that false verification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2851 >
2022-08-10 04:31:27 +00:00
Seungha Yang
05dae94352
d3d11: Use WIN32 API directly for locking with RAII pattern
...
Such abstraction is unnecessary for this library/plugin.
Use WIN32 API directly instead of GLib wrappers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848 >
2022-08-08 20:13:51 +00:00
Seungha Yang
a75e88fdd2
d3d11memory: Remove unnecessary locking
...
* memory map/unmap is already protected by d3d11 device lock.
Don't need to take another memory lock.
* Use WIN32 critical section and slim reader/writer lock APIs
directly instead of GLib wrappers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848 >
2022-08-08 20:13:51 +00:00
Víctor Manuel Jáquez Leal
ecb12a05b8
vah264enc: Fix caps for mesa gallium.
...
Radeon mesa gallium driver has a bug which adds P010_10LE sink caps
format. This patch removes formats which arent 420 chroma.
gst_caps_set_format_array() wasn't used because the fix traverse
several structures with potential different formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Víctor Manuel Jáquez Leal
8c59ee29c2
vah264dec: Complete profiles in decoder.
...
Instead of specifying all the H.264 "supported" profiles in the global
hash table (used either by decoders and encoders), just complete them
in the decoder only, since the encoder doesn't support them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Seungha Yang
66d504ee58
d3d11: Don't find global default allocator
...
We were using global default allocator already. Pass null
allocator object to *_alloc() methods then the method will
use default allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:55:18 +09:00
Seungha Yang
21e5c33797
d3d11memory: Allow null GstD3D11Allocator to alloc methods
...
Similar to gst_allocator_alloc(), use default GstD3D11Allocator
when caller passes null allocator object
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:54:56 +09:00
Seungha Yang
74f56632c3
d3d11: Use std::call_once()
...
g_once_init_enter() always takes global mutex for non-GCC build.
Use C++ once call implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:27:23 +09:00
Seungha Yang
cf64c9f588
d3d11device: Use WIN32 critical section API directly
...
GLib's GRecMutex will allocate another heap memory for CRITICAL_SECTION
struct and g_rec_mutex_lock/g_rec_mutex_unlock use WIN32 APIs actually.
We don't need such intermediate function calls and redundant heap allocation.
Just call WIN32 APIs directly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2845 >
2022-08-06 05:12:41 +09:00
Víctor Manuel Jáquez Leal
67ce55f33e
vah264enc: Lock properties read/write.
...
This is a first step for changing properties at runtime.
And add missing bitrate upate and notification.
Fixes : #1258
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
cc9d69cb66
vah264enc: Use guint32 for rc_ctrl as it's for rc_ctrl_mode.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
7e95a8fc92
vah264enc: Split aud property and its usage.
...
Just as other property variables, it's split for ease it usage,
particularly after adding access locks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
c9f2108b43
va: baseenc: Untabbify and format.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Seungha Yang
b8010e41a1
d3d11compositor: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 03:19:42 +09:00
Seungha Yang
f89cb98495
d3d11videosink: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Seungha Yang
0ac7077d2d
d3d11convert: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Seungha Yang
72ee96af42
d3d11converter: Add options for gamma and primaries conversion
...
Gamma remap and/or primaries conversion requires additional
processing which might be something user want to avoid, performance
reason for example
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Robert Mader
e93773bda7
waylandsink: Logging code style updates
...
For better readability of debug messages and to keep similar code
in sync with `GstGtkWaylandsink`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694 >
2022-08-03 14:25:17 +00:00
Robert Mader
062638a639
waylandsink: Rename occurrences of GstWaylandSink to 'self'
...
Rename all occurrences to `self`, making it consintent with `GstWl*`
and `GstGtkWaylandsink`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694 >
2022-08-03 14:25:17 +00:00
Víctor Manuel Jáquez Leal
ce7070bf5b
vapostproc: Check for colorimetry changes.
...
It uses what's merged in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2777 >
2022-08-02 17:39:24 +00:00
Olivier Crête
fed0dfdd46
gtkwaylandsink test: Add navigationtest to example
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1515 >
2022-08-02 16:34:13 +00:00
George Kiagiadakis
7e18fc1b1f
Add new gtkwaylandsink element
...
This is based on gtksink, but similar to waylandsink uses Wayland APIs
directly instead of rendering with Gtk/Cairo primitives.
Note that the long term plan is to move this into the existing extension
in `-good`, which requires the Wayland library to move the as well.
For this reason several files like `gstgtkutils.*` and `gtkgstbasewidget.*`
are straight copies and should be kept in sync.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1515 >
2022-08-02 16:34:13 +00:00
Seungha Yang
bc065d2cc2
d3d11videosink: Translate mouse position
...
Converts mouse cursor position represented in display coordinates to
stream coordinates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Seungha Yang
7d4a1a5beb
d3d11videosink: Early terminate mouse/keyboard event handling
...
... and add missing null check (plus coding style fix)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Philippe Normand
4bf62c788c
webrtc: nice: WeakRef access fixes
...
The GstWebRTCNiceStream::ice property getter already hands-off a full reference,
so there is no need to call g_weak_ref_get() in call sites.
Fixes #1350
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2819 >
2022-08-01 13:13:16 +00:00
Philippe Normand
3bdf3455a0
webrtc: ice: Fix GstWebRTCICE parent class
...
It is a GstObject, not a GObject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2819 >
2022-08-01 13:13:16 +00:00
Philippe Normand
10eaae1243
dtls: Properly name encoder/decoder logging categories
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820 >
2022-08-01 09:02:03 +00:00
Philippe Normand
7c3f73ec2e
dtls: Make agent and connection GstObjects
...
Facilitates debug logs interpretation of GST_DEBUG_OBJECT() calls.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820 >
2022-08-01 09:02:03 +00:00
Nirbheek Chauhan
b2d22c0f00
meson: Don't pass -Werror to vendored code
...
Do it the correct way with libusrsctp -- override the option so that
it's done in a compiler-agnostic and future-proof way.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Nirbheek Chauhan
5da9f62313
rtsp+rtmp: Forward warning added to tls-validation-flags to our users
...
With the 2.72 release, glib-networking developers have decided that
TLS certificate validation cannot be implemented correctly by them, so
they've deprecated it.
In a nutshell: a cert can have several validation errors, but there
are no guarantees that the TLS backend will return all those errors,
and things are made even more complicated by the fact that the list of
errors might refer to certs that are added for backwards-compat and
won't actually be used by the TLS library.
Our best option is to ignore the deprecation and pass the warning onto
users so they can make an appropriate security decision regarding
this.
We can't deprecate the tls-validation-flags property because it is
very useful when connecting to RTSP cameras that will never get
updates to fix certificate errors.
Relevant upstream merge requests / issues:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Nirbheek Chauhan
11ecda9d73
dtls: Disable OpenSSL 3.0 deprecation warnings for now
...
Fedora 36 ships with OpenSSL 3.0, which deprecates all low-level APIs,
so this code needs to be rewritten. There is no easy fix in the
porting guide, and it recommends disabling the warnings if you can't
use the high-level API.
https://wiki.openssl.org/index.php/OpenSSL_3.0#Upgrading_to_OpenSSL_3.0_from_OpenSSL_1.1.1
Here's the replacement API:
https://www.openssl.org/docs/man3.0/man7/migration_guide.html#Deprecated-low-level-object-creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Seungha Yang
8fee6bf785
wasapi2: Fix initial mute/volume setting
...
Fix up volume/mute change flag setting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2809 >
2022-07-29 02:37:29 +09:00
Eric Knapp
d11a0d04ec
va: h264enc: Make AUD the first NAL unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2796 >
2022-07-27 06:46:21 +00:00
U. Artie Eoff
e3e98da727
meson: webrtc: ensure definition of libgstwebrtcnice_dep
...
... and skip if it's disabled.
Fixes #1344
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2797 >
2022-07-26 17:39:52 -04:00
yatinmaan
2c1e61ea16
webrtc: Split WebRTCICE into base classes and implementation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2398 >
2022-07-26 13:51:11 +00:00
Seungha Yang
cf94045dbf
qsvencoder: Add support for D3D11 shared texture
...
Although input texture belongs to the other d3d11 device,
we can do GPU copy when its physical device is identical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Seungha Yang
6fff608f27
d3d11: Port to GstD3D11Fence
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Seungha Yang
ba259111d5
d3d11: Implement fence abstraction
...
Depending on device feature level, d3d11 runtime can support
ID3D11Fence which is equivalent to ID3D12Fence.
Waiting using fence has performance-wise benefit over pulling
ID3D11Query status. If ID3D11Fence is not supported by device,
then ID3D11Query will be used instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Benjamin Gaignard
8ec0dca73b
codecs: h265: Make sure that sps is processed just before decoding
...
It may happens that bitstream doesn't provided SPS in decoding order
(like in VPSSPSPPS_A_MainConcept_1 conformance test file).
To be sure that the decoder got the correct SPS parameters process
SPS just before start decoding the frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575 >
2022-07-22 16:13:47 -04:00
Sebastian Fricke
5019be9fdb
codecs: h265: Fix typos
...
Fix multiple typos in warning and info messages.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575 >
2022-07-22 16:13:47 -04:00
Benjamin Gaignard
a275e1e029
videoparsers: h265: Be less restrictive between PPS and SPS parsing order
...
Allow to parse PPS to be parser even if SPS hasn't been parsered before.
This help to parse VPSSPSPPS_A_MainConcept_1 conformance test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575 >
2022-07-22 16:13:47 -04:00
Benjamin Gaignard
5ae05bb42a
codecparsers: Defering computation of pps and sps fields
...
While possible defer computataion of pps and sps fields until
slice parsing since it may happens that bitstreams don't encoded
them in expected order.
A example weird ordered bitstreams is VPSSPSPPS_A_MainConcept_1
conformance test.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575 >
2022-07-22 16:13:47 -04:00
Nicolas Dufresne
316b182a86
v4l2codecs: h264: Reset the number of slices on picture start
...
This way, if we aborted a frame in the middle, we don't endup thinking
there is multiple slices to send.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
c2144ec586
v4l2codecs: h264: Fix initialization of the slice array
...
The function g_array_sized_new() leaves the len to 0, but the slice
implementation assumes it would be set to 4. Sending multiple slices is
not yet support for H.264 as no driver needed it yet, but if that code
was to be used it would have overflowed as the array would never grow as
multiple 0 by 2 always results in 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
a707d984ae
v4l2codecs: h264: Rename count variable to num_controls
...
This is the counter for the used control slot. The term num_controls was
introduced in the HEVC decoder and felt like a better choice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
a2b219c7e1
v4l2codecs: hevc: Add an API check
...
This adds an API check and bump recommended base kernel version to 5.20.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Benjamin Gaignard
0eb7028570
v4l2codecs: Add v4l2 stateless H265 decoder
...
Add v4l2 stateless H265 decoder.
Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Benjamin Gaignard
70941696ed
v4l2codecs: Increase minimum payload size
...
Fluster MAXBINS_{A-C}_TI_5 HEVC tests files require to store
a payload larger than usual given their resolutions.
Increase the minimum payload size to handle them correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
f1c98e2c9e
v4l2codecs: Align v4l2 headers with HEVC final uAPI
...
HEVC uAPI have landed for kernel 5.10.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
74a811e718
codecparsers: h265: Introduce long_term_ref_pic_set_size
...
This is the size of the `if( long_term_ref_pics_present_flag )` inside
slice_segment_header( ) syntax. This size in bit, and after de-emulation
is needed by some HW.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Sebastian Dröge
0aad12fbce
audiobuffersplit: Actually store number of samples to drop in gapless mode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780 >
2022-07-22 08:01:45 +00:00
Sebastian Dröge
fad0a72eca
audiobuffersplit: Use input running time for comparison instead of the currently tracked running time
...
Otherwise gapless mode would do completely wrong calculations on
discontinuities and cause input/output to drift slowly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780 >
2022-07-22 08:01:45 +00:00
Sebastian Dröge
0485c354d2
audiobuffersplit: Combine two if expressions to reduce indentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780 >
2022-07-22 08:01:45 +00:00
Seungha Yang
ac6577e2a9
d3d11compositor: Add support for crop meta
...
GstD3D11Converter supports cropping already. Cropping is just
a matter of setting source rectangle area to converter,
from d3d11 point of view
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2782 >
2022-07-22 05:07:23 +09:00
Seungha Yang
aa0b7f3284
examples: d3d11: Add GstD3D11Converter example
...
An example to demonstrate color space conversion, rescale and flip/rotation
using GstD3D11Converter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767 >
2022-07-22 00:27:24 +09:00
Seungha Yang
1c3fac818d
d3d11: Move GstD3D11Converter to gst-libs
...
The object is equivalent to GstVideoConverter but for D3D11.
Application can use this object directly for various conversions,
such as color space conversion, rescale, crop and flip/rotation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767 >
2022-07-22 00:08:51 +09:00
Seungha Yang
32eeadb4a5
d3d11: Define enum and flags types manually
...
gnome.mkenums_simple() doesn't work well for GstD3D11, seems to
be confused by numeric representation of D3D11, must be a bug
in GLib or so. Just don't rely on the incomplete automagic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767 >
2022-07-22 00:07:52 +09:00
Seungha Yang
879eb9412b
d3d11: Run gst-indent
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767 >
2022-07-22 00:07:52 +09:00
Jordan Petridis
3a20a4564f
openmpt: update from now deprecated api
...
https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2721 >
2022-07-21 07:52:37 +00:00
Fan F He
6fe35ad59d
msdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame
...
Enable these features for accurate bitrate control.
Feature introduction of LowDelayBRC, MaxFrameSizeI and MaxFrameSizeP could be found here:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md
Signed-off-by: Fan F He <fan.f.he@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2742 >
2022-07-20 07:10:19 +00:00
Seungha Yang
ee289a65ce
d3d11converter: Use GstStructure to set initialization options
...
Runtime updatable options are exposed via object properties
but there are a few options which should be known at initialization
time. Use GstStructure to signal it and to be easily extensible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:51 +09:00
Seungha Yang
d3d8820359
d3d11converter: Use primaries and transfer function compare methods
...
Different enum values could be functionally equal, then we don't need
to do full conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:51 +09:00
Seungha Yang
16f4567a50
d3d11format: Move DXGI color space mapping method to gst-libs
...
Expose color space mapping method to public so that application
can configure GstCaps or GstVideoInfo using DXGI color space
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:46 +09:00
Seungha Yang
687f9feac6
d3d11convert: Use new colorimetry compare function
...
Avoid conversion if both are functionally identical
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765 >
2022-07-18 08:56:45 +00:00
Seungha Yang
35994eb5c9
d3d11testsrc: Fix SMPTE pattern rendering
...
It was wrong vertex shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2766 >
2022-07-17 23:59:04 +09:00
Piotr Brzeziński
6bf15124e7
applemedia: Add HEVC support to vtenc and vtdec
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2754 >
2022-07-16 05:20:56 +00:00
Seungha Yang
1dd29a2564
d3d11: Move HLSL compiler to gst-libs
...
We should move this functionality to gst-libs so that GstD3D11Converter
can be moved to gst-libs.
Another advantage is that applications can call our
HLSL compiler wrapper method without any worry about OS version
dependent system installed HLSL library.
Note that there are multiple HLSL compiler library versions
on Windows and system installed one would be OS version dependent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2760 >
2022-07-15 06:31:51 +09:00
Thibault Saunier
073df3d820
webrtcbin: Add a signal to plug bandwidth estimator elements
...
We need GStreamer elements to do the bandwidth estimation as this way
they can also control the pacing of the transmission flow as specified
in the [GCC] algorithm for example.
Bandwidth estimator element are placed right before the "RTPSession" as
an "rtp-aux-sender" element. This way they can use the "Transport-wide
Congestion Control" RTCP feedback messages through the "RTPTwcc" custom
events that are sent by the rtpsession.
Applications are responsible to react to the bandwidth estimator element
and set the encoder target bitrate etc... which means that we can not
pass an estimator as an element factory, so a signal as been chosen
instead.
[GCC]: https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2562 >
2022-07-12 20:40:55 +00:00
Seungha Yang
5386a426f3
h265decoder: Report latency
...
Similar to that of h264decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2726 >
2022-07-11 11:59:02 +00:00
He Junyan
8e2bbfed13
va: baseenc: Do not use codec frame structure again after finish_frame().
...
In _push_out_one_buffer(), we use codec frame structure again for error handling
after we already call finish_frame(), which is a latent segment fault.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
He Junyan
27c33f0161
va: baseenc: Do not clear the codec frame twice when error.
...
The current manner will clear the input codec frame twice if we fail
to push the output data, which will trigger an assert.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
Jordan Petridis
3385ea3481
fluiddec: Remove workaround for version 1.1.9
...
We require >= 2.1 version since the previous commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Jordan Petridis
2fa6ec8733
fluidsynth: update from now deprecated api
...
fluid_synth_set_chorus_on and fluid_synth_set_reverb_on were
deprecated in favor of new funtions where you can also specify
the fx_group the effect would apply.
The behavior of the set_* variants was to apply to all groups
so we pass -1 to the new functions as per documentation.
https://www.fluidsynth.org/api/group__chorus__effect.html#ga3c48310eecdca9cd338799d19f19c32d
and
https://www.fluidsynth.org/api/group__reverb__effect.html#gacb7917564c988cf54f2e35189b509c8e
and the introduction of the change:
https://github.com/FluidSynth/fluidsynth/pull/673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Seungha Yang
b09ca8635f
d3d11: Use scoped device lock
...
Make code simpler and more deadlock-free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2728 >
2022-07-09 03:36:17 +09:00
Seungha Yang
02c2485468
qsvencoder: Fix for latency report when B-frame is enabled
...
QSV runtime will introduce additional delay when B-frame is enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730 >
2022-07-08 13:24:12 +00:00
Seungha Yang
4f90e9b561
qsvencoder: Do not query again if previous call succeeded
...
Don't need to query multiple times
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730 >
2022-07-08 13:24:12 +00:00