Commit graph

344 commits

Author SHA1 Message Date
Víctor Manuel Jáquez Leal
20b207bf8f vaallocator: Fix gi annotations.
Remove spurious types and skip functions that returns VASurfaceID
which isn't exposed to introspection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3557>
2022-12-11 20:42:54 +00:00
Seungha Yang
a874c9f2d4 cuda: Fix runtime compiler library loading on Windows
The cuda is a part of GPU driver but runtime compiler is a part of
cuda toolkit, which means the version number can be different.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545>
2022-12-09 19:24:08 +09:00
Seungha Yang
e6585c89ea cuda: Hide memory copy util function
The method was intended to be used by only cudaupload/download elements
and not ready to be a part of public API

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545>
2022-12-08 19:52:23 +00:00
Marek Olejnik
02359dd251 h265decoder: Do not abort when failed to prepare ref pic set
Currently the element calls abort when failed to prepare reference
picture set. This can happent when the input stream is somehow
corrupted, like a rtsp strem with lost packets. Now it will only
return with GST_FLOW_ERROR instead of terminating whole process.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3505>
2022-12-07 13:01:35 +00:00
Johan Sternerup
4b96294f19 webrtc: Fix possible use-after-free of GstWebRTCICETransport
Because of the asynchronous resolving of mDNS ICE candidates it is
possible that GstWebRTCICE outlives webrtcbin. This in turn prolongs
the lifetime of the GstWebRTCNiceStream objects via refs in
nice_stream_map. Thus the GstWebRTCICETransport objects held in
GstWebRTCNiceStream may be invalid at the time they are accessed by
the _on_candidate_gathering_done() callback since GstWebRTCNiceStream
doesn't take a reference to them. Doing so would create a circular
reference, so instead this commit introduces weak references to the
transport objects and then we can check if the objects are valid before
accessing them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3502>
2022-12-02 03:37:29 +00:00
He Junyan
25f90c828a h264parser: Fix a typo in pred_weight_table parsing.
When setting default values, the reference list number of l1 is wrong.

Fix: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/336
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3464>
2022-11-25 14:13:46 +00:00
Seungha Yang
132eddd7b9 av1decoder: Clear highest_spatial_layer per sequence header
Clear the value to default zero, indicating that no spatial scalability
layer is used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
2022-11-19 11:58:01 +00:00
Seungha Yang
c92128f6b0 av1decoder: Don't error out by dropped OBU
OBU can be dropped if the current layer is not in selected operation
point

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
2022-11-19 11:58:01 +00:00
Seungha Yang
f1a52c5ea0 av1decoder: Fix wrong spatial layer validation
Highest spatial id and temporal id is independent, and should not drop
temporal enhance layer by the previous condition. Note that
the decision for dropping OBU based on operation point is being
handled in gst_av1_parser_identify_one_obu() already.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1585
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
2022-11-19 11:58:01 +00:00
Seungha Yang
55ca832d70 av1parser: Don't print warning for expected OBU drop
Dropping an OBU which is not in selected operation point is an
expected condition.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
2022-11-19 11:58:01 +00:00
Seungha Yang
3ef2955c7d av1parser: Remove impossible condition
unsigned integer cannot be negative

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
2022-11-19 11:58:01 +00:00
Jan Schmidt
6538ebbaf3 webrtc: Improve GstWebRTCStatsType docstring
Fix a typo of peer-connectiion -> peer-connection

Add a link to the w3c RTCStats type for a description
of what each statistics type is.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434>
2022-11-19 13:12:58 +11:00
Johan Sternerup
e708543039 webrtcbin: Add settings for HTTP proxy
Pass this to libnice which has a simple HTTP 1.0 proxy with basic
authentication only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2867>
2022-11-18 15:00:58 +00:00
Seungha Yang
2ede4011bf codecs: Keep track of non-decoding-essential input state change
In theory, input caps can be updated anytime at non-keyframe or
sequence boundary, such as HDR10 metadata, framerate, aspect-ratio
or so. Those information update might not trigger ::new_sequence()
or subclass may ignore the changes.

By this commit, input state change will be tracked by baseclass
and subclass will be able to know the non-decoding-essential
update by checking the codec specific picture struct
on ::output_picture()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328>
2022-11-16 13:12:38 +00:00
Seungha Yang
c1efa9ac4b cudaupload,cudadownload: Add support for planar 8bits RGB formats
Defines RGBP, BGRP, and GBR formats, which have the same memory
layout as already supported Y444. And defines GBRA format as well
which needs just one additional alpha plane

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>
2022-11-15 16:25:44 +00:00
Seungha Yang
9c4c8c3932 cudacontext: Store texture alignment
it was missed in the previous refactoring

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>
2022-11-15 16:25:44 +00:00
Elliot Chen
b09b246fc8 gstplay: add warning message details check before post it
For some warning message which has no detail data, need check to avoid printing critical log.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3382>
2022-11-15 01:01:10 +00:00
Seungha Yang
837881ad29 d3d11converter: Fix YUY2 conversion error
Always configure shader conversion path, then fallback to the
shader path if processor is not available

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>
2022-11-14 20:14:27 +00:00
Seungha Yang
d0572622fa d3d11: Add support for planar RGB formats
Adding RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, and
GBRA_12LE format support

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>
2022-11-14 20:14:27 +00:00
Edward Hervey
90a1d9f873 transcoder: Don't leak API bus and GMainLoop
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>
2022-11-12 10:33:51 +01:00
Elliot Chen
4020542b3c gstplay: fix segmentation fault caused by subtitle info update
For subtitle stream played by subrui, gstplay will update subtitle
information before select the stream by using playbin3. Need check
the subtitle_sid value to avoid segmentation fault.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3383>
2022-11-10 14:07:39 +00:00
He Junyan
3875c420f7 libs: va: Add API to peek the va buffer's display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322>
2022-11-05 13:39:34 +08:00
He Junyan
464650a5d0 libs: va: Add API to peek the va memory's display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322>
2022-11-05 13:39:34 +08:00
He Junyan
b1a98433f8 libs: va: Add API to peek the allocator's display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322>
2022-11-05 13:39:34 +08:00
He Junyan
028920cfc4 libs: va: Fix code style in gstvaallocator.h
Replace all tabs with spaces.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322>
2022-11-05 13:39:34 +08:00
Seungha Yang
3f94df9487 d3d11: Add support for YUY2 format
YUY2 is a primary YUV 4:2:2 format for DXVA.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316>
2022-11-03 06:40:09 +09:00
Marijn Suijten
31c23fb6c0 vulkan: Mark gst_vulkan_image_view_new create_info as constant pointer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615>
2022-11-01 15:19:51 +01:00
Marijn Suijten
3d081c45be vulkan: Remove unnecessary null checks
These null checkes are slightly misleading when double-checking
mutability for external language interop.  None of the functions in
these files allow the variable at hand to become `NULL` under normal
operation, because they are checked at initialization and never (allowed
to be) reassigned to `NULL`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615>
2022-11-01 15:19:51 +01:00
Marijn Suijten
ebe7517b8e vulkan: Add missing (nullable) annotation to Returns
Most of these functions already state they might return `%NULL`, but
this is not picked up by G-IR.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615>
2022-11-01 15:19:51 +01:00
Marijn Suijten
614cd87732 vulkan: Add missing array length and (out) annotation to parameters
Add `array length` annotation for `layouts` such that `n_layouts` is
properly marked as its length, and add `(out)` where a function returns
in that parameter.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615>
2022-11-01 15:19:51 +01:00
Matthew Waters
f77f27f4c9 vp9parser: initialize subsampling to -1
The default value of 0 is a valid subsampling value and could be
confused with an 'unset' value.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>
2022-10-28 00:06:07 +00:00
Thibault Saunier
4f991a55af adaptivedemux: Minor typo fix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
2022-10-27 19:45:44 +00:00
He Junyan
2408ca2f18 h265bitwriter: Correct the all API to byte aligned.
In fact, all the h265 bit writer have byte aligned output. So we
change the API from bit size in unit to byte size, which is easy
to use.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193>
2022-10-27 12:15:43 +00:00
He Junyan
c294ba82e6 h264bitwriter: Correct the all API to byte aligned.
In fact, all the h264 bit writer have byte aligned output except
the slice header. So we change the API from bit size in unit to
byte size, which is easy to use. For slice header, we add a extra
"trail_bits_num" to return the unaligned bits number.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193>
2022-10-27 12:15:43 +00:00
He Junyan
9dc76185fc bitwriter: Fix a nal conversion bug when input is not byte aligned.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193>
2022-10-27 12:15:43 +00:00
Seungha Yang
2c5a050ae7 codecparsers: {h264,h265}bitwriter: Don't install headers yet
Those APIs are quite early stage of development, and we might want to
change them in the near future

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3275>
2022-10-27 06:15:56 +00:00
Seungha Yang
e68645c2d2 d3d11: Move format defines to private header
Those defines will be likely changed/deleted in the future, and we
don't need to expose them to public at the moment

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3265>
2022-10-26 02:55:34 +09:00
Sebastian Dröge
366893e9ac Fix various warnings from gobject-introspection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>
2022-10-25 09:45:25 +03:00
Nirbheek Chauhan
a083280a58 gl/vulkan: Fix static linking on macOS
duplicate symbol '__invoke_on_main' in:
    /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o)
    /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o)
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Also make the same change in iOS for consistency.

Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3242>
2022-10-24 00:48:08 +00:00
Alba Mendez
4810008afa webrtcbin: support adding TURN servers after pipeline start
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1680

When a TURN server is added for the first time, propagate
the change to all nice streams that already exist. This
lets us add servers after the pipeline has been started
(and streams have been added).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3217>
2022-10-19 07:23:42 +00:00
Sebastian Dröge
f6898303a0 play: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:17 +03:00
Sebastian Dröge
2f0e195709 vulkan: Add/fix various annotations
And fix a memory leak in gst_vulkan_display_wayland_new() in error
cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:17 +03:00
Sebastian Dröge
b57c07d5a7 d3d11: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:17 +03:00
Sebastian Dröge
73557fe093 cuda: Add/fix various annotations
And fix a memory leak when creating a CUDA context fails.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:17 +03:00
Sebastian Dröge
f821ddc108 codecs: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:17 +03:00
Sebastian Dröge
3d528b25d1 badaudio: Add/fix annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:16 +03:00
Sebastian Dröge
64c376b5b2 webrtc: Add/fix various annotations
And mark string parameters as const.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 08:56:58 +00:00
Mathieu Duponchelle
b10e0efd3a webrtc/nice: fix small leak of split strings
g_strfreev previously stopped at our manual NULL-termination. Fix by
restoring the pointer after joining.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3188>
2022-10-14 20:15:00 +00:00
Sebastian Dröge
430ec0d860 webrtc: Move GST_WEBRTC_ERROR_TYPE_ERROR at the end of the enum to keep ABI compatibility
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3154>
2022-10-11 11:24:19 +00:00
Nirbheek Chauhan
a5ef7cb041 d3d11: Fix debug build on UWP
GstDXGIGetDebugInterface() is unused when targeting UWP. We directly
call DXGIGetDebugInterface1() in that case.

Fixes build failure:

../gst-libs/gst/d3d11/gstd3d11device.cpp(271): error C2440: '=': cannot convert from 'HRESULT (__cdecl *)(UINT,const IID &,void **)' to 'DXGIGetDebugInterface_t'
../gst-libs/gst/d3d11/gstd3d11device.cpp(271): note: This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3118>
2022-10-05 18:29:01 +00:00
Sangchul Lee
94c2cd9ddd webrtc/nice: Make sure to return NULL when validating turn server fails
It affects 'add-turn-server' signal action and 'turn-server' property
of webrtcbin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3120>
2022-10-05 16:35:00 +00:00
Johan Sternerup
212c09a70e webrtc: return error when sending on non-open datachannel
According to W3C
specification (https://w3c.github.io/webrtc-pc/#datachannel-send) we
should return InvalidStateError exception when trying to send when the
channel is not open. In the world of C/glib/gstreamer we don't have
exceptions but have to rely on gboolean/GError instead. Introducing
these calls for a change in function signature of the action signals
used to send data on the datachannel. Changing the signature of the
existing "send-string" and "send-data" signals would mean an immediate
breaking change so instead we deprecate them. Furthermore, there is no
way to express GError** as an argument to an action signal in a way
that fits language bindings (pointer-to-pointer simply does not work)
and we have to use regular functions instead.

Therefore we introduce gst_webrtc_data_channel_send_data_full() and
gst_webrtc_data_channel_send_string_full() while deprecating the old
functions and corresponding signals.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1958>
2022-10-05 11:08:30 +00:00
Stéphane Cerveau
fb09c028e3 h265parse: fix typo in member of GstH265SPS
Rename sps_extnsion_params to sps_extension_params

Fix comment about vui_parameters_present_flag

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3072>
2022-10-04 10:01:12 +00:00
He Junyan
3d56f133f8 codecs: av1decoder: Add the highest_spatial_layer field.
As SPEC says, when multi spatial layer exists, we should only output
one frame with the highest spatial id from each TU. We now store the
highest spatial layer information in the base class in order to let
the sub class handle different layers easily.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2382>
2022-09-16 09:45:00 +00:00
Seungha Yang
219bb769a2 cuda: Remove GST_CUDA_HAS_D3D define from header
... and fix d3d11 specific enum type name

GST_CUDA_HAS_D3D is a build time define which indicates whether
GstD3D11 library is available or not, but DirectX SDK headers
must be available on the build system already.

Expose Direct3D related symbols if the build target is Windows
(i.e., if G_OS_WIN32 is defined)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018>
2022-09-13 16:40:51 +00:00
Víctor Manuel Jáquez Leal
de7cfa92e3 va: allocator: Fix parameter name to match signature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025>
2022-09-13 14:57:21 +02:00
Víctor Manuel Jáquez Leal
e4f6ade308 va: Complete library and plugin documentation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025>
2022-09-13 14:57:21 +02:00
Víctor Manuel Jáquez Leal
a51ac72b5e va: Move gstvavideoformat out of library headers.
Since it's no needed for API consumers. Though it can be added later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025>
2022-09-13 14:57:21 +02:00
Víctor Manuel Jáquez Leal
38491e25a3 docs: Generate libgstva GI and pkg-config.
Currently libgstva is only exposed internally to gst-plugins-bad. No
headers are installed, no documentation generated, pkgconfig file,
neither gobject-introspection files.

This patch turn on all that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025>
2022-09-13 14:52:39 +02:00
Thibault Saunier
bc9c1e3956 meson: Namespace the plugins_doc_dep/libraries variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Thibault Saunier
c971a6d71f cuda: meson: Fix generating GstCuda gir file against gstreamer-full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Seungha Yang
8b988605a8 d3d11memory: Fix GstAllocator::mem_copy() implementation
We were checking possible bind flags for the DXGI format
of the source texture but that's never applied to
the destination texture desc.

Just use the already configured bind (and misc) flags of source texture
for the destination texture allocation without additional check.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2950>
2022-08-30 19:58:29 +00:00
Seungha Yang
c3cf9521a5 d3d11: Update library doc
* Private header name is changed to gstd3d11-private.h to follow
  naming convention
* Add Since mark everywhere
* Update member variable names to be consistent with the other
  object implementations in this library
* Correct outdated documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2945>
2022-08-27 22:40:34 +09:00
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