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