Seungha Yang
6c4c576699
h265decoder: Update SpsMaxLatencyPictures properly
...
The SpsMaxLatencyPictures value never gets back to zero even if
it's needed. Update the value properly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2915 >
2022-08-22 19:48:53 +00:00
Seungha Yang
59e60203ba
h265decoder: Reorganize debug printing
...
As of the MR
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575
gst_h265_decoder_process_sps() is called per slice and it causes
noisy debug message print.
Reorganize related and the other debug printings at once.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2915 >
2022-08-22 19:48:53 +00:00
Thibault Saunier
d04a80676e
webrtc:ice: Fix candidate stats related APIs for bindings
...
null-terminated arrays of structures is not usable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2917 >
2022-08-19 10:46:01 -04:00
Thibault Saunier
050006e9f0
webrtc: doc: Cleanup Since markers
...
We hide some newly public symbols when moving some objects to the library
which was not really correct in the end. Properly add the Since markers
as needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
82a7a23fa0
webrtc:ice: Reindent header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
0ee9727df3
webrtc:ice: Mark protected fields as such
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
24b171735d
webrtc: Fix documentaton moving symbols in the right pages
...
As those symbols are documented in a 'fwd' header smart indexing in
hotdoc wasn't working.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
b3e0205c5a
webrtc:ice: Avoid using GArray in public API
...
And use plain null terminated C arrays instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
50202d6b53
webrtc:ice: Fix some annotations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
8dd4c215da
webrtc: Make GstWebRTCIceCandidateStats a Boxed type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Thibault Saunier
ff0d73be57
webrtc:ice: Add padding to structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891 >
2022-08-18 08:34:36 +00:00
Seungha Yang
75e8f80999
cuda: Hide runtime compiler related header and symbols
...
That's already abstracted via gst_cuda_nvrtc_compile() method
and therefore, we do not need to expose such symbols yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2884 >
2022-08-18 05:20:08 +09: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
f3d51ef235
d3d11: Serialize ensure_element_data() call
...
It can be called any time from random thread. Thus, multiple
device objects can be created for the same physical device
if the call is not serialized, that's not a scenario we expect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2727 >
2022-07-08 01:35:34 +09:00
Seungha Yang
347ad181be
d3d11memory: Update alloc_wrapped() API to avoid staging texture alloc
...
Add size parameter and use it for CPU accessible memory size
instead of allocating staging texture per API call.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
46a3394581
d3d11memory: Add private method for texture wrapped memory allocation
...
Unlike public method gst_d3d11_allocator_alloc_wrapped(), newly
added method by this commit will not calculate CPU accessible memory
size, since staging texture must be allocated to calculate the size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
3919491eb2
d3d11: Use library private header in plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
bcacfc7ced
cuda: Protect gst_cuda_ensure_element_context() with lock
...
Serialize the order of context setup since it can be called
from multiple threads
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2666 >
2022-06-30 12:38:08 +00:00