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
Seungha Yang
6cc6494287
d3d11screencapturesrc: Set colorimetry to caps
...
Make use of reported DXGI colorspace if possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 21:05:25 +09:00
Seungha Yang
2476678b3c
d3d11: Update colorspace map
...
Map DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 to sRGB colorimetry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 20:15:28 +09:00
Seungha Yang
59d92ea62c
d3d11: Add an utility method for DXGI colorspace conversion
...
Add a method for DXGI_COLOR_SPACE_TYPE -> GstVideoColorimetry conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 20:03:06 +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
8aeb8ea58f
proxysink: Fix GstProxySrc leak
...
Clear weak pointer to peer src when disposing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552 >
2022-07-07 05:54:54 +09:00
Seungha Yang
37fdaaf8ff
proxysink: Make sure stream-start and caps events are forwarded
...
There might be a sequence of event and buffer flow:
- Got stream-start/caps/segment events
- Got flush events
- And then buffers with a new segment event
In the above case, stream-start and caps event might not be reached to
peer proxysrc if peer proxysrc is not ready to receive them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552 >
2022-07-07 05:42:21 +09:00
Matthew Waters
6066e913ee
webrtc: implement support for asynchronous host resolution
...
Doesn't block anymore if a mdns host resolution takes multiple seconds
to complete in e.g. stun/turn/ice candidate usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1961 >
2022-07-05 03:20:57 +00:00
Seungha Yang
e0d1b98827
d3d11converter: Remove convert() method
...
Expose only single convert_buffer() method. It's safer approach than
passing arbitrary list of SRV/RTV pointers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
df396b9acd
d3d11testsrc: Use convert_buffer() method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
7a48843ca6
d3d11: Remove video processor
...
Processing using ID3D11VideoProcessor was integrated into
GstD3D11Converter and GstD3D11VideoProcessor implementation is
not used anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00: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
Ignazio Pillai
76dbe45b83
wasapi: Implement default audio channel mask
...
Some multichannel capture devices does not provide a channel mask value
which will result in a pipeline failure due to the empty channel mask.
Implemented the same fix used for wasapi2
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1204
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2692 >
2022-07-04 08:56:15 +00:00
Seungha Yang
5f39388ae5
d3d11videosink: Add support for rotation
...
Adding "rotate-method" property
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1396
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
4e75ca0351
d3d11videosink: Protect window with lock at every place
...
Access to the object should be thread safe to support runtime
property update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
60e6be7068
d3d11convert: Add support for GstVideoOrientationMethod
...
Add flip/rotation support via GstVideoDirectionInterface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
f549575ce8
d3d11converter: Add support for GstVideoOrientationMethod
...
Shader can handle rotation/flip with other conversions
at once in a single pipeline, and depending on device
capability, videoprocessor may support it too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
5eeec16502
d3d11videosink: Use single GstD3D11Converter object
...
GstD3D11Converter supports videoprocessor and texture upload.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:40:47 +09: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
9709bcf3fe
d3d11compositor: Use single GstD3D11Converter object
...
... and remove unnessary videoprocessor/upload/copy code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
993b9b36db
d3d11convert: Add border-color property
...
Use user specified border-color instead of black color
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
6a59dd95e8
d3d11convert: Use single GstD3D11Converter object
...
... and don't use GstD3D11VideoProcessor. Now GstD3D11Converter will
be able to convert using videoprocessor, and texture upload is also supported by
GstD3D11Converter. All the noisy code can be removed therefore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
91a732fe90
d3d11converter: Add support conversion using videoprocessor
...
* Add videoprocessor feature to d3d11converter, in order to unifiy
conversion flow.
* Add convert_buffer() method to support automatic shader/videoprocessor
selection. The method also supports texture upload if input memory
cannot be used for conversion (e.g., system memory or so)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
fdbb9041a2
d3d11overlaycompositor: Objectify overlay render implementation
...
Be consistent with other implementations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:27 +09:00
Seungha Yang
b2d09de899
d3d11: Don't use const pointer to GstDxgiColorSpace
...
Instead, fill values of passed GstDxgiColorSpace struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-01 19:34:16 +00:00
Sebastian Dröge
2aae64edb9
decklinkvideosink: Pass video frames directly to the Decklink SDK without copying
...
If the video frame is stored in PBO memory then we need to copy anyway as
it might be stored in CPU-accessible GPU memory that can't be accessed
from the Decklink driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2674 >
2022-07-01 08:46:48 +00:00
Vincent Cheah Beng Keat
5ffaf2aa09
msdkmjpegdec: Add support for error report
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2401 >
2022-07-01 06:29:30 +00:00
Seungha Yang
30c8dbe032
nvencoder: Add support for dynamic GPU device selection
...
Adding nvautogpu{h264,h265}enc class which will accept upstream logical
GPU device object (GstCudaContext or GstD3D11Device) instead of
using pre-assigned GPU instance.
If upstream logical GPU device object is not NVENC compatible
(e.g., D3D11 device of non-NVIDIA GPU) or it's system memory,
then user specified "cuda-device-id" or "adapter-luid" property
will be used for GPU device selection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2666 >
2022-06-30 12:38:08 +00: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
Seungha Yang
ce82c0570e
cuda: Add YUY2 and UYVY formats for GL interop
...
Those formats are not supported conversion formats by CUDA convert/scale elements
but would be useful for GL <-> CUDA interop use case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2691 >
2022-06-30 11:17:15 +00:00
Seungha Yang
d9f08e17f1
cudadownload: Passthrough in case of CUDA -> SYSTEM
...
GstCudaMemory supports CPU access via CUDA pinned host memory already
and it would show faster memory transfer performance between
GPU and CPU than copying from/to normal system memory.
If downstream supports video meta, we can passthrough CUDA memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2690 >
2022-06-30 10:45:45 +00:00
Sebastian Dröge
a54eddad3a
webrtcbin: Reject caps that are not valid for creating an SDP media.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689 >
2022-06-30 09:28:27 +00:00
Corentin Damman
ae781610c8
cudaformat: add support for planar 4:2:2 YUV formats in CUDA D3D11 interop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2269 >
2022-06-30 07:30:09 +00:00
Corentin Damman
8678fc999a
cudamemory: add support for planar 4:2:2 YUV formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2269 >
2022-06-30 07:30:09 +00:00
Benjamin Gaignard
d3a01eccae
v4l2codecs: enumerate all possible formats
...
Some decoder may also allow to (down) scale the decoded video.
Use VIDIOC_ENUM_FRAMESIZES iotcl to enumerate the possible output
formats resolutions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2589 >
2022-06-29 19:18:16 +00:00
Seungha Yang
85fe9fb61d
nvcodec: Add cuda-device-id read-only property to stateless decoders
...
... and remove unnecessary intermediate subclass from class hierarchy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2665 >
2022-06-30 01:54:17 +09:00
Seungha Yang
1e11c05591
nvcodec: Add cuda-device-id read-only property to CUVID decoders
...
Similar to the other hardware decoder plugins, provides assigned
device id via property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2665 >
2022-06-30 01:45:20 +09:00
Tim-Philipp Müller
9272943bc7
coding style: allow declarations after statement
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683 >
2022-06-29 13:40:25 +00:00
Seungha Yang
38e142db9a
d3d11convert: Add support for GstVideoCropMeta
...
Performs crop, scale, and color space conversion all in
a single render pipeline. Note that cropping related property is not
added in this element (which will make negotiation very complicated),
but user can configure videocrop element for crop meta to be attached
on each buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2678 >
2022-06-29 09:43:10 +00:00
Seungha Yang
1043481247
d3d11videosink: Fix for force-aspect-ratio setting when rendering on shared texture
...
Set specified force-aspect-ratio value on window object
in case of shared texture rendering as well
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1304
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2671 >
2022-06-29 09:04:33 +00:00
Seungha Yang
236378c9d5
mfvideoenc: Fix broken encoding when resolution is not an even number
...
Width and height values of 4:2:0 subsampled YUV format should be even number,
and if it's not the case, there should be padding which is not a contiguous memory layout.
Do copy input frames to MediaFoundation's memory in that case for now.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1165
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2661 >
2022-06-29 08:26:45 +00:00
Tim-Philipp Müller
afc94046ba
dv, opusparse: fix duplicate symbols in static build
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2670 >
2022-06-28 01:29:06 +01:00
Seungha Yang
b09ae1d635
d3d11: Enumerate devices via native DXGI API
...
D3D11CreateDevice() can fail for some reason (e.g., buggy GPU driver)
and then gst_d3d11_device_new() will return nullptr.
Use DXGI API directly instead of relying on the gst_d3d11_device_new()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2663 >
2022-06-27 20:30:13 +00:00
Seungha Yang
260114fa1b
examples: Add an example for application texture sharing
...
This example shows GstD3D11BufferPool usage and a way of
D3D11 texture sharing between application and GStreamer via appsrc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
Seungha Yang
dbed379f09
examples: Add d3d11decoder zero-copy rendering example
...
This example code demonstrates D3D11 device sharing between
application and GStreamer. Application can access texture
using appsink and it can be rendered on application's window without
any copy operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
Seungha Yang
eee0f97c18
d3d11: Add a helper method for GstContext creation
...
Add gst_d3d11_context_new() method for application to create
GstContext using GstD3D11Device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
Seungha Yang
06b7b240af
d3d11memory: Add support for wrapping application texture
...
Add gst_d3d11_allocator_alloc_wrapped() method to support wrapping
application texture using GstD3D11Memory without copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
Seungha Yang
fce7431381
d3d11: Install library headers
...
Our Direct3D11 abstraction layer has been improved and
it gained good shape from API point of view.
Also, On Windows, GstD3D11 has various advantages over GstGL
in terms of compatibility/stability/feature/performance.
Note that WGL implementation is known to be buggy for some
drivers/vendors/scenario (that's a reason why Google implemented ANGLE).
Moreover, GstGL is not fully optimized for Windows unfortunately.
It's the time to open this interface to application developers
for various optimized processing using our Direct3D11
infrastructure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
Seungha Yang
aca71fd692
d3d11: Update gst_d3d11_allocation_params_new() interface
...
Define GST_D3D11_ALLOCATION_FLAG_DEFAULT (0) value instead of
casting enum type everywhere. And pass D3D11_RESOURCE_MISC_FLAG value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646 >
2022-06-27 19:33:57 +00:00
U. Artie Eoff
c4a9a96a15
va: postproc: add scale-method property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654 >
2022-06-27 12:17:54 -04:00
U. Artie Eoff
211ba46369
va: filter/postproc: move unconditional props to vavpp
...
Only conditional/dynamic properties should be installed/handled
by vafilter. Thus, move and install the unconditional/static
properties in vavpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654 >
2022-06-27 12:17:53 -04:00
U. Artie Eoff
178f4fcd20
va: compositor/filter: use scale method setter
...
Use the filter's scale method member instead of the sample's member.
Removes the filter_flags member from the composite sample.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654 >
2022-06-27 10:53:11 -04:00
U. Artie Eoff
280678fe42
va: filter: add scale method field and setter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654 >
2022-06-27 10:52:03 -04:00
Víctor Manuel Jáquez Leal
63a8fc505e
va: Add vajpegdec element.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Víctor Manuel Jáquez Leal
ec55017a83
va: allocator: Add hack for no fourcc when surface creation.
...
This patch adds general mechanism for handling specific hacks. In this
case for jpeg decoder in i965 driver, which cannot create surfaces
with fourcc specified.
From jpeg decoder to the allocator, which creates the surfaces,
there's a non-simple path: basedec pseudo-class adds a hacks guint32
which will be set by actual elements (vajpegdec, in this case) and
basedec will always set the hack to the allocator when the allocator
is instantiated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Víctor Manuel Jáquez Leal
ffd94a98be
va: Add RGBP format definition.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Víctor Manuel Jáquez Leal
5b28509564
va: caps: Add jpeg fields in coded caps.
...
Given the supported rt formats in a profile/entrypoint config it's
possible to know the supported JPEG colorspace and subsampling. This
patch adds this information in coded caps to a safer autoplugging
after jpegparser.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Víctor Manuel Jáquez Leal
cc30854893
va: Add jpegdecoder base class.
...
This base class is intented for hardware accelerated decoders, but since
only VA uses it, it will be kept internally in va plugin.
It follows the same logic as the others video decoders in the library but.
as JPEG are independet images, there's no need to handle a DBP so no need
of a picture object. Instead a scan object is added with all the structures
required to decode the image (huffman and quant tables, mcus, etc.).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Víctor Manuel Jáquez Leal
f36d2671e4
va: build: Remove duplicated source.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575 >
2022-06-27 13:43:14 +00:00
Seungha Yang
16955ba672
cudamemorycopy: Make sure writable caps before removing fields
...
The caps to be modified may not be writable when D3D11/GL/NVMM
are all disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2664 >
2022-06-27 20:28:31 +09:00
Tim-Philipp Müller
c895cdbec8
tests: skip unit tests for dependency-less elements that have been disabled
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2660 >
2022-06-27 07:05:00 +00:00
Víctor Manuel Jáquez Leal
8a2660dc7f
va: allocator: Use always lseek to get dmabuf size.
...
Gallium drivers historically have reported strange dmabuf sizes, from always
zero to the whole frame (multiple fds). The simplest solution is to use lseek
SEEK_END to get the prime descriptor size.
Also the allocator raises a warning if both values differ in order to report
it to driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2574 >
2022-06-24 15:24:09 +02:00
Nicolas Dufresne
83c51c9812
va: allocator: Fix translation of VADRMPRIMESurfaceDescriptor
...
VADRMPRIMESurfaceDescriptor structure describes the offsets from the
point of view of the specific handle (DMABuf). While GstVideoInfo
(and the meta) describes offsets from the point of the view of the
GstBuffer, an aggregate of all the GstMemory (1 per handle).
This changes combined with [Mesa Fix](https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16813 )
fixes decoding failure with AMD driver.
Fixes #1223
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2574 >
2022-06-24 14:14:03 +02:00
Seungha Yang
170271b86f
d3d11: Revert staging buffer pool implementation
...
The staging buffer pool implementation was added to improve
throughput performance since we can avoid per-frame
CPU copy operation via staging texture but it turned out that
we can not make it thread safe. See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1182
Reverting the staging texture implementation as it does not show
any visible value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651 >
2022-06-23 22:03:52 +09:00
Seungha Yang
abd60b6b1e
qsvdecoder: Fix system memory alignment
...
Do right padding, not left
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651 >
2022-06-23 21:43:25 +09:00
Seungha Yang
513a1cbbb3
d3d11decoder: Fix texture download
...
Stride applied to src/dst was reversed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651 >
2022-06-23 21:41:24 +09:00
Víctor Manuel Jáquez Leal
56f9359136
jpegparse: Add YUV440 sampling support.
...
Found some samples with this sampling, so in order to support it,
JPEG2000 header cannot be used anymore, a this patch also adds the
enums for each supported colorspace and sampling, avoiding hacks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2641 >
2022-06-22 18:44:11 +00:00
Víctor Manuel Jáquez Leal
685a611812
va: Use driver implementation macro rather than function.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2642 >
2022-06-21 18:21:46 +00:00
He Junyan
f0d4135b3a
h265parse: Fix uninitialized width and height when update src caps.
...
The commit b90d0274
introduces uninitialized width and height when we
consider to change the "pixel-aspect-ratio" for some interlaced stream.
We need to check the resolution in the src caps, and if no resolution
info found, there is no need to consider the aspect ratio.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2630 >
2022-06-21 15:47:45 +00:00
Seungha Yang
1dc24d23d2
d3d11: Fix some typos
...
Fix up spelling and d3d11testsrc class meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2644 >
2022-06-21 20:12:06 +09:00
Seungha Yang
a040450685
d3d11compositor: Performance optimization
...
Removing glvideomixer-like nuance (it was initially referenced)
and rewriting element since it's not an optimal design at all
from performance point of view.
* Remove wrapper bin (and internal conversion/upload/download elements)
which will waste CPU/GPU resources. Conversion/blending can be done by the
d3d11compositor element at once.
* Add support YUV blending without RGB conversion.
The RGB <-> YUV conversion is completely unnecessary since YUV textures
support blending as well.
* Remove complicated blending operation properties since it's hard
to use from application point of view. Instead, adding "operator" property
like what compositor element does.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631 >
2022-06-20 19:18:53 +00:00
Seungha Yang
adcb3ec1f2
d3d11converter: Fix alpha factor update
...
converter should set entire constant buffer values since it's mapped
with write-discard flag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631 >
2022-06-20 19:18:53 +00:00
Robert Mader
6aa0b0cae2
gstwaylandsink: Add rotate-method property
...
Similar to and inspired by glimagesink and gtkglsink.
Using the Wayland buffer transform API allows to offload
rotate operations to the Wayland compositor. This can have
several advantages:
- The Wayland compositor may be able to use hardware plane
capabilities to do the rotation.
- In case of pre-rotated content on rotated outputs the
rotations may equal out, potentially allowing the
compositor to use hardware planes even if they don't
support rotate operations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2543 >
2022-06-20 18:30:56 +00:00
Seungha Yang
eaa9943b98
d3d11decoder: Check 16K resolution support
...
16K decoding is supported by some GPUs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2629 >
2022-06-18 18:02:44 +00:00
Seungha Yang
e1fd0f620f
d3d11decoder: Add support for non-zero crop-{x,y} position
...
AVC and HEVC define crop rectangle and the x/y coordinates might
not be zero. This commit will address the non-zero x/y offset coordinates
via GstVideoCropMeta if downstream supports the meta and d3d11 memory.
Otherwise decoder will copy decoded texture into output frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2624 >
2022-06-17 20:15:02 +00:00
Seungha Yang
461416b5f1
d3d11converter: Implement filling border color
...
Equivalent to GST_VIDEO_CONVERTER_OPT_BORDER_ARGB and
GST_VIDEO_CONVERTER_OPT_FILL_BORDER options of GstVideoConverter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622 >
2022-06-17 19:40:48 +00:00
Seungha Yang
59f39724b7
d3d11converter: Objectify converter
...
... and set conversion options via property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622 >
2022-06-17 19:40:48 +00:00
Seungha Yang
3ed94c2dde
d3d11shader: Remove GstD3D11Quad helper object
...
It's not very generic to be used for various scenario. Use native D3D11
APIs directly instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622 >
2022-06-17 19:40:48 +00:00
Seungha Yang
ec6384947b
d3d11compositor: Don't use GstD3D11Quad
...
The helper object will be removed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622 >
2022-06-17 19:40:48 +00:00
Seungha Yang
93662da3d1
d3d11overlaycompositor: Fix HLSL compiler warning
...
warning X3206: 'Sample': implicit truncation of vector type
And don't use GstD3D11Quad since it will result in redundant API calls
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622 >
2022-06-17 19:40:48 +00:00
Mathieu Duponchelle
f10e2eb88f
cccombiner: expose output-padding property
...
When schedule=true and output-padding=false, cccombiner will not
inject padding in the output closed caption meta stream.
The property has no effect when schedule=false.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1621 >
2022-06-17 14:11:46 +00:00
Olivier Crête
c4971a456e
webrtcbin: Limit sink query to sink pads
...
This allows the reception of streams that don't exactly match
the codec preferences. In particular, the ssrc in the codec preferences
is local sender SSRC, the other side is expected to send a different SSRC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2615 >
2022-06-17 08:08:43 +00:00
Vivia Nikolaidou
b90d02741e
avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders
...
Some encoders (e.g. Makito) have H265 field-based interlacing, but then
also specify an 1:2 pixel aspect ratio. That makes it kind-of work with
decoders that don't properly support field-based decoding, but makes us
end up with the wrong aspect ratio if we implement everything properly.
As a workaround, detect 1:2 pixel aspect ratio for field-based
interlacing, and check if making that 1:1 would make the new display
aspect ratio common. In that case, we override it with 1:1.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2577 >
2022-06-16 10:03:02 +00:00
Stéphane Cerveau
19972b8153
srtsrc: add "keep-listening" property to avoid EOS on disconnect
...
The property 'keep-listening' avoids EOS
when the remote client disconnects.
It can be useful to a keep a pipeline alive
when the srt connection drops remotely.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Stéphane Cerveau
eb1f21b484
srtsrc: remove dead code
...
Remove code useless since
132e3a1af9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Seungha Yang
8e5a4246b9
qsvh264dec: Use newly added avcC data parsing API
...
Use gst_h264_parser_parse_decoder_config_record() method to parse
codec_data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449 >
2022-06-15 19:58:59 +00:00
Seungha Yang
a1b4c62b35
h264parse: Use newly added avcC data parsing API
...
Use gst_h264_parser_parse_decoder_config_record() method to parse
codec_data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449 >
2022-06-15 19:58:59 +00:00
Seungha Yang
b48c8eaee6
h264decoder: Use newly added avcC data parsing API
...
Use gst_h264_parser_parse_decoder_config_record() method to parse
codec_data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449 >
2022-06-15 19:58:59 +00:00
Seungha Yang
72975fbd6d
h264parser: Add an API for AVCDecoderConfigurationRecord parsing
...
Add a method for AVC configuration date parsing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449 >
2022-06-15 19:58:59 +00:00
Sebastian Dröge
87230db55c
decklinkvideosink: Fix selection of > PAL widescreen modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2601 >
2022-06-15 13:23:51 +00:00
Víctor Manuel Jáquez Leal
bb84a533bf
va: basedec: Select output format with the used chroma in decoder.
...
Currently, video format is decided with downstream caps intersection,
but that's not correct since chroma is not considered. The video
decoders have to decide the output format given the used chroma, not
by the downstream caps negotiation.
This patch changes that. Still, caps feature is selected by caps
negotiation, then, with the preferred caps feature, the output format
is search within that caps feature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2569 >
2022-06-15 00:00:53 +00:00
Matthew Waters
9df7a21ec9
vulkan: add vulkan overlay compositor element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:06 +00:00
Matthew Waters
efe8e41b61
vkfullscreenquad: add support for disabling clearing
...
e.g. if drawing over the top of an existing image, we don'w want to
clear.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:05 +00:00
Matthew Waters
fe8b4514e9
vkfullscreenquad: support setting blend operations
...
Allows e.g. blending with an existing image.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:05 +00:00
Matthew Waters
53596c2fc6
vkfullscreenaud: create the vulkan command pool upfront
...
Allows outside to reuse the same command buffer pool much more easily.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:05 +00:00
Matthew Waters
32487878d9
vulkan: add some missing GAutoPtr definitions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:05 +00:00