Colin Kinloch
99fc124f25
videocrop, videobox: Simplify navigation event handling and support touch events
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:49 +00:00
Colin Kinloch
841f50f0d9
va: Fix vapostproc navigation event co-ordinate mapping
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:49 +00:00
Colin Kinloch
d54e597278
va: Use gst_video_orientation_from_tag to parse orientation
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:48 +00:00
Tong Wu
ef4fc11193
msdkvpp: delete the macros to make video memory work on Windows
...
Since gst_msdk_import_to_msdk_surface has been implemented for d3d11, we
delete the macros to make it work on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
7becf35221
msdkvpp: modify the way of copying system memory to msdk surface
...
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
9a6dd525f7
msdkvpp: add d3d11 support during negotiation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
a55808d299
msdkvpp: add d3d11 video memory to sink and src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
78523c5130
msdkvpp: delete use_sinkpad_va and use_srcpad_va
...
This two variables are no longer useful. Delete them for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
f25f528120
msdkenc: modify the way of copying system memory to msdk surface
...
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
f6e207eb1b
msdkallocator_d3d: add d3d11 video memory and import it to msdk surface
...
This patch introduces d3d11 texture and index to GstMsdkMemoryID and
implements gst_msdk_import_to_msdk_surface in order to wrap the surface
to mfxMemId.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
7f18f11a90
msdkallocator_d3d: implement GetHDL callback function
...
During encoding process, oneVPL runtime will call GetHDL callback function.
This patch implements this function for the use of msdk.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
86d22b2e38
msdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface
...
Add a flags parameter to function gst_msdk_import_to_msdk_surface and
move the function declaration to gstmsdkallcator.h to prepare for adding
Windows implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
abe47f3fa0
msdkenc: add d3d11 pool during negotiation
...
This patch adds Windows specific set_format and propose_allocation
functions to enable creating d3d11 pools during negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
c62deb6fe9
msdkenc: add D3D11 caps for msdkenc
...
This patch adds D3D11 feature to sink factory for msdkenc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
d61a248ac8
MSDK: Introduce d3d11 device to MSDK context
...
Currently MSDK context does not support d3d11va. Now introduce d3d11va
device to MSDK context, making it able to create msdk session with d3d11
device and to easily share with upstream and donwstream.
Add environment variable to enable user to choose GPU device in multi-GPU
environment. This variable is only valid when there's no context
returned by upstream or downstream. Otherwise it will use the device
that created by upstream or downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
11e13b189d
MSDK: Add gst d3d11 lib into MSDK's dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Víctor Manuel Jáquez Leal
eb0f90f6ec
vafilter: Log out processed surfaces for debug.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373 >
2022-11-11 04:19:54 +00:00
Víctor Manuel Jáquez Leal
bc4aa017ac
vadeinterlace, vapostproc: Drop output buffer if process failed.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373 >
2022-11-11 04:19:54 +00:00
Seungha Yang
b36b9c7821
amfcodec: Fix typos
...
Fixing typo surfrace -> surface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3378 >
2022-11-09 23:02:21 +00:00
Seungha Yang
93b6cf7adb
mfvideosrc: Return S_OK from ISampleGrabberCB callback
...
The Microsoft's ISampleGrabber implementation seems to be ignoring
the HRESULT return value from the callback though,
S_OK is the right HRESULT code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3379 >
2022-11-10 06:03:45 +09:00
Seungha Yang
99b83f33f7
d3d11screencapturesrc: Specify PAR 1/1 to template caps
...
... otherwise PAR can be wrongly signalled during the negotiation
Fixing below pipeline when desktop resolution is not 640x480
gst-launch-1.0.exe \
d3d11screencapturesrc ! videoscale !
video/x-raw,width=640,height=480,pixel-aspect-ratio=1/1 ! d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360 >
2022-11-09 11:22:06 +00:00
Víctor Manuel Jáquez Leal
1f7cf1d408
va: caps: Fix raw caps for H264 encoding.
...
Mesa gallium and Intel i965 ill reports unsupported video formats.
This commit reverts ecb12a05
and adds a deeper workaround, since
ecb12a05
only fix the template caps, but not when renegotation
happens.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal
4994487b8f
vabaseenc: Log out the flow error name.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal
dbf8c38667
vah264enc: Enable parameters change while running.
...
1. Removes the verification if the internal encoder is not opened
yet to allow the property setting.
2. And toggles on the base class' reconf flag for each property
variable that can be modified at run time.
3. Mark those modifiable properties as mutable while playing.
Currently the run-time modifiable properties are:
qpi, qpp, qpb, bitrate, target percentage, target usage and rate control
Other properties can be enabled too, but they need testing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:21 +01:00
Víctor Manuel Jáquez Leal
bd3c50e50f
vabaseenc: Enable encoder reconfiguration.
...
Adds an internal function reset() which drains the internal queues and
calls the reconfig() vmethod.
This reset() method is called inconditionally at set_format() and in
handle_frame() if the instance's reconf flag is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:26 +01:00
Víctor Manuel Jáquez Leal
351a107ecc
vah264enc: Avoid reopen encoder or renegotiate.
...
If parameters remain similar enough to avoid either encoder reopening
or downstream renegotiation, avoid it.
This is going to be useful for dynamic parameters setting.
To check if the stream parameters changed, so the internal encoder has
to be closed and opened again, are required two steps:
1. If input caps, profile, chroma or rate control mode have changed.
2. If any of the calculated variables and element properties have
changed.
Later on, only if the output caps also changed, the pipeline
is renegotiated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:26 +01:00
Víctor Manuel Jáquez Leal
38f1a4ee3d
vaencoder: Add gst_va_encoder_get_reconstruct_pool_config()
...
This method will return the caps configured in the reconstruct buffer
pool, and its maxium number of buffers to allocate.
The caps are needed later to know if the internal encoder has to be
reopened if the stream properties change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:25 +01:00
Seungha Yang
ded3e7c81a
directshow: Demote rank of device provider to GST_RANK_NONE
...
Current directshow plugin seems to be unstable and unmaintained
for many many years.
See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323
and
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1828
Disable this device provider by default to avoid any side-effect
of this plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3355 >
2022-11-09 00:30:45 +00:00
Victor Manuel Jaquez Leal
bb86728a1a
vah264enc: Fix properties documentation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Victor Manuel Jaquez Leal
c60504bd9e
va: Document device-path property.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Victor Manuel Jaquez Leal
0918910a7d
vavp8dec, vampeg2dec: Fix type name.
...
The camel case name is wrong when registering the type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Víctor Manuel Jáquez Leal
96a6b33029
vacaps: Sort raw caps according their efficiency.
...
Caps negotiations considers template caps order. This patch sets the
correct order according the feture caps: VAMemory, DMABuf and
SystemMemory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3349 >
2022-11-08 05:15:09 +00:00
Víctor Manuel Jáquez Leal
bbd2bce11d
vabasetransform: Fail if cannot import the input buffer.
...
Otherwise got a buffer double free.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3348 >
2022-11-07 17:57:05 +00:00
Seungha Yang
4b05736c63
mfvideosrc: Add support for DirectShow capture filter
...
Adding DirecShow video capture filter mode, in addition
to existing MediaFoundation and WinRT(UWP) mode, to support
DirectShow only filters (not KS driver compatible)
such as custom virtual camera filters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3350 >
2022-11-08 01:33:14 +09:00
Seungha Yang
0405e0cfc7
d3d11videosink: Always clear back buffer on resize
...
Swapchain may not need to be resized if the size of backbuffer
is equal to the previous size. Then previously rendered frame will be stay
on the screen. Do clear back buffer whenever resize() is called
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3341 >
2022-11-05 17:23:24 +00:00
Seungha Yang
e1e9ee5506
qsv: Fix encoding error when input memory belongs to other GPU
...
Copy frame if VA display of input buffer is different from that
of encoder, like we've been doing on Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3335 >
2022-11-05 13:59:45 +00:00
He Junyan
1881d1826a
va: baseenc: Do not import the VA surface from other display.
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
d51b29b1dc
va: compositor: Do not use allocator and pool from other display.
...
Just like the va decoder, the compositor should not use allocator
and pool from other display. Also, when importing the input buffer,
if it is from other display, we should fallback to memory copy.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
b9b211c1d1
va: basetransform: Do not use allocator and pool from other display.
...
Just like the va decoder, the vpp and deinterlace should not use allocator
and pool from other display. Also, when importing the input buffer, if it
is from other display, we should fallback to memory copy.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
a8330686cb
va: basedec: Do not use allocator and pool from other display.
...
The command line such as:
gst-launch-1.0 -vf filesrc location=1.264 ! h264parse !
vah264dec ! varenderD129postproc ! fakesink
The decoder here gets the allocation proposal from the vpp which is
on another GPU device. The allocator and pool belong to other display
and should not be used in the decoder.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
Seungha Yang
4db4f08227
d3dvideosink: Update plugin description
...
Direct3D is too generic (there are various version numbers).
Clarify that this element is using the Direct3D9 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3333 >
2022-11-04 22:48:41 +00:00
Seungha Yang
bfed80a82c
directshow: Validate enumerated AM_MEDIA_TYPE struct
...
The video info struct can be null if format is undefined
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323 >
2022-11-04 10:01:39 +00:00
Seungha Yang
f7cc753274
qsvjpegenc: Add support for YUY2 format
...
Now GstD3D11 defines YUY2 format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316 >
2022-11-03 06:40:10 +09:00
Seungha Yang
1853dd56a4
qsv: Add JPEG decoder
...
Because DXVA does not define JPEG decoding, we need this
vendor specific API for Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316 >
2022-11-03 06:40:10 +09:00
Tong Wu
60f7467dfe
msdkcontext: use gst_object_unref instead of g_object_unref
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
bae66c8ae0
msdkcontext: use gst_object_ref for GstVaDisplay
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
c9cc92a20a
msdkcontext: g_object_new() must not return nullptr
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
7b03da634b
msdkenc: use GST_CAPS_FEATURE_MEMORY_VA to check the feature
...
Add macros to protect sinkpad_is_va(), since it is not defined on
Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Eric Knapp
87e9952b8f
vah264enc: Added option to insert CEA-708 closed captions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2910 >
2022-11-01 23:22:03 +00:00
Seungha Yang
be1771126d
qsv: Check 16K resolution support
...
... and remove duplicated code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3310 >
2022-11-01 17:23:52 +00:00
Seungha Yang
92e03ba869
d3d11decoder: Fix for VP9 decoding with odd resolution
...
Fixing off by one mismatch when width and/or height of stream
is odd number
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3302 >
2022-10-31 20:45:25 +00:00
Seungha Yang
5e66dde1b2
qsv: Add VP9 decoder
...
Recent Intel GPU supports 12bits VP9 decoding but only VP9
profile2 with 10bits is defined by DXVA spec.
Thus, we need this vendor specific decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3290 >
2022-10-31 19:30:47 +00:00
Seungha Yang
d8bdd9429b
d3d11vp9dec: Disallow Profile2 12bits stream
...
Since DXVA does not support the format, specify bit-depth field
to sinkpad template caps so that d3d11vp9dec can be skipped
during autoplugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3297 >
2022-10-31 11:29:39 +00:00
Víctor Manuel Jáquez Leal
96f0521155
vaencoder: Reset attribute index to one.
...
Further fix to 4ffb3663
where I forgot to reset the attribute index.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3285 >
2022-10-27 20:32:15 +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
Mengkejiergeli Ba
13be7cbe86
msdkvpp: Set va mem caps as higher priority
...
We use va pool as msdkvpp's bufferpool, which means both va memory
and dma memory will be allocated by va pool. Considering drm modifier
stuff is not ready, we use va memory with higher priortiry than
dma memory when deciding vpp caps.
Besides, this patch removes the specified "interlace-mode" in vpp caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3253 >
2022-10-27 11:12:08 +00:00
Mengkejiergeli Ba
c989d023fd
msdkav1enc: Remove reorder TU workaround
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225 >
2022-10-27 07:07:38 +00:00
Mengkejiergeli Ba
78a7c6318a
msdkav1enc: Remove pts workaround
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225 >
2022-10-27 07:07:38 +00:00
Mengkejiergeli Ba
2c1315cae9
msdkvpp: Fix upper frc
...
Refact vpp commit 4c6b719445
broke the
upper FRC, here to fix this by using outbuf_new.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3223 >
2022-10-27 05:17:12 +00:00
Mengkejiergeli Ba
27216d6f2e
bad: Add msdkav1enc docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2971 >
2022-10-27 04:02:10 +00:00
Ignacio Casal Quinteiro
d44eb4b2fa
avfdeviceprovider: do not leak the properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3268 >
2022-10-26 10:29:25 +00:00
Víctor Manuel Jáquez Leal
ba24191f2a
vaencoder: Fix caps semantics.
...
When using gst_va_caps_from_profiles() the semantics of sink/src caps
depends if the element is an encoder or a decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
d32fdf975d
va: Fix typos.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
4ffb3663a8
vah264enc: Fail if unsupported rate control.
...
Handle when encoder doesn't support rate control, which is set as
VA_RC_NONE, and if the set rate control mode is not supported by the
GStreamer element, the element configuration fails.
Also it logs out max and target bitrate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
5e531c1a88
vah264enc: Add todo item.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
d463feaa08
vaencoder: Honor entrypoint at constructor.
...
The entrypoint is set when the encoder helper is constructed,
nonetheless it was also passed as parameter when opening. That's
buggy.
In order to simplify the code, the entrypoint at construction is
honored.
But gst_va_encoder_has_profile_and_entrypoint() now doesn't rely in
the internal list of profiles since it only contains those that
belongs to codec and entrypoint, thus it queries directly the VA
driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
79c47fbdb8
vabaseenc: Scope error bail out.
...
Though this is not enforced by the GStreamer code style, it's clearer
to add a nested scope for error handling using label/goto.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Víctor Manuel Jáquez Leal
d608872ba3
vabaseenc: Use class entrypoint.
...
Add a macro to access to class entrypoint and use it instead of move
it to a variable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063 >
2022-10-26 08:19:32 +00:00
Seungha Yang
722f097b9d
nvcodec: Update for documentation
...
* Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related
properties
* Fix some typos
* Add since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
7ce3fccf25
mediafoundation: Update for documentation
...
* Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related
properties
* Add doc caps
* Add since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
9d926ae8b1
mfvideoencoder: Document only hardware encoders
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
e9415aafb5
mfvideoencoder: Fix device enumeration
...
Although a GPU does not support the codec, the other GPU might
be able to support the codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
d92c43cb0f
amfcodec: Update for documentation
...
* Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related
properties
* Add doc caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
4038a486a0
qsv: Use GST_PARAM_DOC_SHOW_DEFAULT flag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
6974b6f6ff
d3d11: Update for documentation
...
* Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related
properties
* Add doc caps
* Increase deinterlace max resolution
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
31be056b6e
d3d11: Run indent
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
1ec4905e92
wic: Add since marker
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
92fd435a25
directshow: Add since marker
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250 >
2022-10-24 12:42:51 +00:00
Seungha Yang
23261bccbb
qsv: Enable MinGW toolchain support
...
Use PCRE regex method to work around (likely) GCC std::regex bug,
and enable building for non-MSVC
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3239 >
2022-10-24 10:53:40 +00:00
Seungha Yang
426535f3a6
d3d11screencapture: Add WinRT API based capture mode
...
Add Windows Graphics Capture (WGC) API based screen capture mode.
The conditions where this mode is used:
* Explicitly requested by user (capture-api property)
* To capture specific window
* When DXGI desktop duplication API does not work on hybrid graphics systems
(e.g., multi-gpu laptop)
Full features of this implementation require Windows 11. And Windows 11
SDK is required to build this feature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3144 >
2022-10-21 14:21:28 +00:00
Seungha Yang
087e335006
d3d11screencapture: Subclassing capture implementation
...
Preparation to use WinRT capture API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3144 >
2022-10-21 14:21:28 +00:00
Seungha Yang
dcd3f210a0
qsv: Add plugin doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2738 >
2022-10-21 21:29:25 +09:00
Seungha Yang
2b3f690355
qsv: Update SDK version to v2022.2.4
...
See release note
https://github.com/oneapi-src/oneVPL/releases/tag/v2022.2.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2738 >
2022-10-21 21:29:25 +09:00
Seungha Yang
573a0489f6
d3d11videosink: Add "emit-present" property
...
Controls the decision for "present" signal use, and
allows delayed "present" signal handler install via the property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3176 >
2022-10-18 21:19:01 +00:00
Seungha Yang
cb7958e710
wasapi2: Add support for process loopback capture
...
Adding loopback capture mode for specified PID.
Note that this feature requires Windows 10 build 20348
(Windows 11/Windows Server 2022 or later),
and any process loopback related properties will not be exposed
if OS does not support it.
Example launch lines:
* wasapi2src loopback-mode=include-process-tree loopback-target-pid=<PID>
Captures audio generated by an application (specified by PID)
and its child process
* wasapi2src loopback-mode=exclude-process-tree loopback-target-pid=<PID>
Captures desktop audio excluding PID and its child process
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1278
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3195 >
2022-10-17 23:28:48 +00:00
Piotr Brzeziński
1e70525bc9
avfvideosrc: Allow specifying crop coordinates during screen capture
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3153 >
2022-10-12 21:19:31 +00:00
Wojciech Kapsa
b618ff3369
decklink: reset calculation of gst_decklink_video_src_update_time_mapping on no_signal. When the HDMI cable was disconnected for a long time, the calculation took too much time. SDI cable works fine.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3132 >
2022-10-10 08:13:30 +00:00
Wojciech Kapsa
505f48f237
decklink: Add new persistent-id property and sort devices by persistent ID
...
The order of the devices iterator from the SDK is undefined and can
randomly change.
Keep the device-number property for backwards compatibility and
simplicity but prefer the persistent-id property and also use it for the
device provider implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3078 >
2022-10-06 15:50:11 +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
Christopher Obbard
0c83ddcdf7
v4l2codecs: Warn user when no media devices are found
...
Currently if the user is not able to access the devices under /dev/media*,
either due to no media devices present on the system or simply no permission
to access the device, v4l2codecs initialises with no features or debug messages.
Since calling `GST_DEBUG="v4l2*:7" gst-inspect-1.0 v4l2codecs` is a typical way
to diagnose why element(s) failed to enumerate, we should be more verbose here
when the user is not able to access any /dev/media* device. So print a simple
debug message in this case to aid debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3088 >
2022-09-29 19:12:14 +00:00
Víctor Manuel Jáquez Leal
f9371ccc38
vabaseenc: Move out encoder validation from assertion.
...
Assertion can be disabled at compilation time. Still it's important to
validate it the encoder object was opened by the subclass. This patch
removes the assertion and returns if the encoder is open.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3051 >
2022-09-20 18:59:18 +00:00
Mengkejiergeli Ba
03a24de4cb
msdkav1enc: We should not set other alignment here
...
According to spec, we have 32bit alignment for height (progressive) and
16bit alignment for width, so here we don't need to add other alignment
settings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3050 >
2022-09-20 16:25:15 +08:00
He Junyan
cf2581953b
va: h264enc: Fix rate control enum register failure for the second GPU.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3041 >
2022-09-19 09:24:36 +00:00
Víctor Manuel Jáquez Leal
a8387fdc6b
vah264enc: Avoid precision lost by just rounding up.
...
The code where dividing by 16 and later multiplying by 16, which is
spurious and a potential loose of precision.
2022-09-17 10:14:40 +02:00
Víctor Manuel Jáquez Leal
69c75f9827
vah264enc: Update AUD property if driver can't handle raw data.
2022-09-17 10:10:19 +02:00
Víctor Manuel Jáquez Leal
42861617d5
vah264enc: Remove unused dispose method.
2022-09-17 10:04:51 +02:00
Eric Knapp
f720a5dd66
vadeinterlace: Fix passthrough latency query
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3038 >
2022-09-17 05:47:41 +00:00
Seungha Yang
b6ca76eb68
nvh265sldec: Sync up with d3d11h265dec implementation
...
Each RefPicSetStCurrBefore/RefPicSetStCurrAfter/RefPicSetLtCurr array
might have empty element (i.e., reference pictures might not be stored
sequentially). Don't error out for the empty element case,
but instead, iterates each array and fill NVDEC's reference list
as much as possible
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1441
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3039 >
2022-09-16 20:25:23 +00:00
Víctor Manuel Jáquez Leal
f4260ecdc5
va: baseenc: Fix gobject style for chained method.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3035 >
2022-09-16 19:10:12 +00:00
He Junyan
9a991cfe9e
va: av1dec: user internal buffer pool for non output layers.
...
The AV1 support multi spatial layers within one TU with different
resolutions, and only the highest spatial layer need to be output.
For example, there are two spatial layer, base level is 800x600
and higher level is 1920x1080. We need to decode both because the
higher level needs base layer as reference, but we only need to output
1920x1080 frames here.
The current manner always renegotiates the caps once we detect the
current picture resolution changes, so we renegotiate again and
again between different layers. That's a big waste and has very
low performance. We now only do the renegotiation for the highest
output layer. For other non output layers, we just keep a internal
buffer pool which is big enough to handle the surface allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2382 >
2022-09-16 09:45:00 +00:00
Thibault Saunier
339e5916c6
Build documentation for rust plugins
...
- Update the docker image we use, starting using the standard one adding
`gtk4-doc` as required by rust plugins
- Update the plugins_doc_caches as required, some more plugins are built
with the new image
- Install ninja from pip as the version from F31 is too old
- Avoid buildings all GSreamer plugins when building the doc as it takes
time and resources for no good reason
- Stop linking to `GInstanceInitFunc` as it is not present in latest GLib
documentation, leading to warnings in hotdoc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954 >
2022-09-15 20:11:47 +00:00
Seungha Yang
c91d72e677
nvdec: Fix for HEVC decoding when coded resolution is larger than display resolution
...
As documented in the SDK header, we should set coded width/height
values to the corresponding decoder configuration option,
instead of display resolution
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1438
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3022 >
2022-09-14 05:59:20 +09:00
Seungha Yang
ca47012a55
cudaupload,cudadownload: Fix document
...
* Fix typo, NVIDA -> NVIDIA
* Add cudadownload doc to the source file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018 >
2022-09-13 16:40:51 +00:00
Seungha Yang
7ea3c55549
cudaupload,cudadownload: Use shared GstD3D11Device context if possible
...
Handle d3d11 device context in set_context() method with
additional device compatibility check so that only NVIDIA GPU
associated d3d11 device can be configured in the element.
And clear old d3d11 device per set_info() for d3d11 device to be
updated as well.
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
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
1c69fe3fc8
vajpegdec: Enhance explanation comment.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948 >
2022-09-07 05:57:40 +00:00
Víctor Manuel Jáquez Leal
230e1e6bb4
va: caps: Use G_STMT_START / END
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948 >
2022-09-07 05:57:40 +00:00
Víctor Manuel Jáquez Leal
44fe871534
vajpegdec: Check if driver has internal color conversion.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948 >
2022-09-07 05:57:40 +00:00
Florian Zwoch
a1b60be22b
va: Fix log message when registering H264 encoder.
...
The log message would report an error for the H264 decoder when
registering failed, but we tried to register the H264 encoder instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2974 >
2022-09-02 10:29:11 +00:00
Mengkejiergeli Ba
da9479a034
msdkvpp: Add va memory when fixating src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
bb79853d20
msdkvpp : Use va pool at linux path and system pool for windows
...
We use msdkvpp's own pool to allocate buffers instead of external frame
allocator mfxFrameAllocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
4c6b719445
msdkvpp: Import buffer to msdk_surface
...
If the buffer is not msdk_buffer, we can try to directly import the
attached memory (i.e. va mem and dmabuf mem) by applying the common
uitl function: import_to_msdk_function ().
Here add a flag "from_qdata" in GstMsdkSurface to handle the cropping case,
we should avoid updating the crop values when msdk_surface is from the
memory's qdata, because the crop info from this surface is the already
updated one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
45819899c3
msdkvpp: Add va caps at sink and src pad
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
966a2c3754
msdkenc: Apply common util func to import mem as msdk_surface
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
2854af85fd
msdk: Add help functions to get mfxFrameSurface1 from GstBuffer and wrap it as GstMsdkSurface
...
Note that the memory abstraction for system memory is for windows path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
23f5bdcee7
msdkenc: Use va pool on linux and system pool for windows
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
956dc40fb8
msdkenc: Directly import dmabuf memory as mfx surface
...
When input buffer is of dmabuf memory but not a msdk buffer (i.e., the
allocator is not msdk_allocator), then we can try to get fd of this mem,
create the corresponding va surface and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
b2e18f7f88
msdkenc: Directly import va memory as mfx surface
...
If input buffer is of va memory, we can directly obtain va surface from
the buffer and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
a8c1cec051
msdk: Use va libs API to get VA surface from buffer
...
Direct apply gst_va_buffer_get_surface to get VASurface from a buffer,
so remove corresponding functions which are not used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +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
Piotr Brzeziński
0d72a6209c
avfvideosrc: Fix wrong default framerate value
...
Current default G_MAXINT is not a correct value under any circumstances.
This creates an issue with screen capture, during which we currently do
not get any framerate info causing G_MAXINT to show up, where elements
downstream can possibly misbehave - for example, `vtenc` causes
a kernel panic.
Replace with 30/1 to avoid such scenarios.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2944 >
2022-08-25 14:24:57 +00:00
He Junyan
67eb1223c0
jpegdecoder: return the real error of decode_scan and decode_frame.
...
The current handle_frame() does not return the real error that happens
in decode_scan and decode_frame, which makes the pipeline continue with
the error and may trigger asserting later.
We also return the error when decode_quant_table or decode_huffman_table
fails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2938 >
2022-08-25 17:42:55 +08:00
Seungha Yang
0a65aaa6d2
d3d11videosink: Add display-format property
...
Make swapchian's display format configurable, since some DXGI formats
we can use for swapchain are not API interop compatible.
For instance, BGRA format should be used for Direct2D interop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923 >
2022-08-24 17:44:49 +00:00
Seungha Yang
470436d7e6
d3d11videosink: Add present signal
...
The "present" signal will be emitted just before the
IDXGISwapChain::Present() call. The client can perform additional
GPU operation with given GstD3D11Device object and
ID3D11RenderTargetView handle. Or, the client can read back
the scene to be displayed on window using the signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923 >
2022-08-24 17:44:49 +00:00
He Junyan
42838c3b9e
va: h265dec: Enable the scc_main_4:4:4_10 profile.
...
We should enable this profile which is already allown in vaprofile.c
after libva 1.8 version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2909 >
2022-08-19 00:50:53 +00:00
U. Artie Eoff
135edee484
kmssink: add fd property
...
This allows an application to provide their own opened DRM device
fd handle to kmssink. For example, an application can lease
multiple fd's from a DRM master to display on different CRTC
outputs at the same time with multiple kmssink instances.
Specifying the fd property is not allowed when driver-name
and/or bus-id properties are specified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2807 >
2022-08-18 18:31:59 +00:00
Seungha Yang
7bcfccd0bd
d3d11: Use CRITICAL_SECTION instead of GRecMutex
...
The GRecMutex abstraction (and heap allocation happens in GLib)
is unnecessary for this plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2914 >
2022-08-18 17:48:57 +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
b10fc4d8db
vajpegdec: Fix memory leak.
...
Free value content.
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
a075e57c61
vajpegdec: Fix 4:2:2 for i965.
...
Since i965 uses NV12 either for 4:2:0 and 4:2:2 chroma (using an
internal color conversion) the chroma validation has to be shortcut.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
4dd6728ed5
va: Validate JPEG subsampling configurations.
...
There are Mesa Gallium drivers that report subsampling but without
any pixel format. So, strip out these subsamplings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
0446e35a14
va: gst_va_create_raw_caps_from_config() may return NULL.
...
This patch verifies if the function returns NULL in the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Eric Knapp
45408db258
decklink: Validate video input format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Eric Knapp
0c42c4801c
decklink: Auto-detect 10-bit YUV
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Seungha Yang
df64226e71
d3d11decoder: Do timer based DecoderBeginFrame retry
...
... instead of retry count based one, because the precision of Sleep()
varies depending on system and application configuration.
Also, don't retry DecoderBeginFrame if decoder is doing flush.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2886 >
2022-08-15 19:16:16 +00:00
Seungha Yang
812bb14f28
cudaupload,cudadownload: Don't simplify caps in transform_caps
...
The simplified caps might not be a subset of filter caps
and basetransform will complain about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2883 >
2022-08-15 18:44:14 +00:00
Seungha Yang
9b4fafb882
d3d11decoder: Do not use miniobject qdata
...
The miniobject qdata uses global mutex.
Use ID3D11DeviceChild::{Set,Get}PrivateData methods instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2885 >
2022-08-15 02:50:18 +09:00
Corentin Damman
0d07ff60c9
d3d11window: fix DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING swap chain flag for full screen
...
Fixes #1372 (regression introduced in 5eeec165
)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2866 >
2022-08-12 09:35:40 +00:00
Corentin Damman
0d5d94aabd
nvcodec: fix caps leaks in nvh264/h265encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2850 >
2022-08-10 12:24:37 +00:00
Víctor Manuel Jáquez Leal
ad15fc9169
vah264enc: Set codec frame sync point if IDR
...
This flag is used by GstVideoEncoder base class for certain configurations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2852 >
2022-08-10 08:00:18 +00:00
Víctor Manuel Jáquez Leal
c4706ed219
vah264enc: Packed headers can be zero.
...
A driver can report back no packed header support (VA_ENC_PACKED_HEADER_NONE).
This patch removes that false verification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2851 >
2022-08-10 04:31:27 +00:00
Seungha Yang
05dae94352
d3d11: Use WIN32 API directly for locking with RAII pattern
...
Such abstraction is unnecessary for this library/plugin.
Use WIN32 API directly instead of GLib wrappers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848 >
2022-08-08 20:13:51 +00:00
Víctor Manuel Jáquez Leal
ecb12a05b8
vah264enc: Fix caps for mesa gallium.
...
Radeon mesa gallium driver has a bug which adds P010_10LE sink caps
format. This patch removes formats which arent 420 chroma.
gst_caps_set_format_array() wasn't used because the fix traverse
several structures with potential different formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Víctor Manuel Jáquez Leal
8c59ee29c2
vah264dec: Complete profiles in decoder.
...
Instead of specifying all the H.264 "supported" profiles in the global
hash table (used either by decoders and encoders), just complete them
in the decoder only, since the encoder doesn't support them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Seungha Yang
66d504ee58
d3d11: Don't find global default allocator
...
We were using global default allocator already. Pass null
allocator object to *_alloc() methods then the method will
use default allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:55:18 +09:00
Seungha Yang
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
Víctor Manuel Jáquez Leal
67ce55f33e
vah264enc: Lock properties read/write.
...
This is a first step for changing properties at runtime.
And add missing bitrate upate and notification.
Fixes : #1258
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
cc9d69cb66
vah264enc: Use guint32 for rc_ctrl as it's for rc_ctrl_mode.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
7e95a8fc92
vah264enc: Split aud property and its usage.
...
Just as other property variables, it's split for ease it usage,
particularly after adding access locks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
c9f2108b43
va: baseenc: Untabbify and format.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Seungha Yang
b8010e41a1
d3d11compositor: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 03:19:42 +09:00
Seungha Yang
f89cb98495
d3d11videosink: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Seungha Yang
0ac7077d2d
d3d11convert: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Víctor Manuel Jáquez Leal
ce7070bf5b
vapostproc: Check for colorimetry changes.
...
It uses what's merged in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2777 >
2022-08-02 17:39:24 +00:00
Seungha Yang
bc065d2cc2
d3d11videosink: Translate mouse position
...
Converts mouse cursor position represented in display coordinates to
stream coordinates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Seungha Yang
7d4a1a5beb
d3d11videosink: Early terminate mouse/keyboard event handling
...
... and add missing null check (plus coding style fix)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Nirbheek Chauhan
b2d22c0f00
meson: Don't pass -Werror to vendored code
...
Do it the correct way with libusrsctp -- override the option so that
it's done in a compiler-agnostic and future-proof way.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Seungha Yang
8fee6bf785
wasapi2: Fix initial mute/volume setting
...
Fix up volume/mute change flag setting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2809 >
2022-07-29 02:37:29 +09:00
Eric Knapp
d11a0d04ec
va: h264enc: Make AUD the first NAL unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2796 >
2022-07-27 06:46:21 +00:00
Seungha Yang
cf94045dbf
qsvencoder: Add support for D3D11 shared texture
...
Although input texture belongs to the other d3d11 device,
we can do GPU copy when its physical device is identical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Seungha Yang
6fff608f27
d3d11: Port to GstD3D11Fence
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Nicolas Dufresne
316b182a86
v4l2codecs: h264: Reset the number of slices on picture start
...
This way, if we aborted a frame in the middle, we don't endup thinking
there is multiple slices to send.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
c2144ec586
v4l2codecs: h264: Fix initialization of the slice array
...
The function g_array_sized_new() leaves the len to 0, but the slice
implementation assumes it would be set to 4. Sending multiple slices is
not yet support for H.264 as no driver needed it yet, but if that code
was to be used it would have overflowed as the array would never grow as
multiple 0 by 2 always results in 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
a707d984ae
v4l2codecs: h264: Rename count variable to num_controls
...
This is the counter for the used control slot. The term num_controls was
introduced in the HEVC decoder and felt like a better choice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
a2b219c7e1
v4l2codecs: hevc: Add an API check
...
This adds an API check and bump recommended base kernel version to 5.20.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Benjamin Gaignard
0eb7028570
v4l2codecs: Add v4l2 stateless H265 decoder
...
Add v4l2 stateless H265 decoder.
Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Benjamin Gaignard
70941696ed
v4l2codecs: Increase minimum payload size
...
Fluster MAXBINS_{A-C}_TI_5 HEVC tests files require to store
a payload larger than usual given their resolutions.
Increase the minimum payload size to handle them correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
f1c98e2c9e
v4l2codecs: Align v4l2 headers with HEVC final uAPI
...
HEVC uAPI have landed for kernel 5.10.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Seungha Yang
ac6577e2a9
d3d11compositor: Add support for crop meta
...
GstD3D11Converter supports cropping already. Cropping is just
a matter of setting source rectangle area to converter,
from d3d11 point of view
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2782 >
2022-07-22 05:07:23 +09:00
Seungha Yang
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
Fan F He
6fe35ad59d
msdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame
...
Enable these features for accurate bitrate control.
Feature introduction of LowDelayBRC, MaxFrameSizeI and MaxFrameSizeP could be found here:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md
Signed-off-by: Fan F He <fan.f.he@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2742 >
2022-07-20 07:10:19 +00:00
Seungha Yang
ee289a65ce
d3d11converter: Use GstStructure to set initialization options
...
Runtime updatable options are exposed via object properties
but there are a few options which should be known at initialization
time. Use GstStructure to signal it and to be easily extensible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:51 +09:00
Seungha Yang
d3d8820359
d3d11converter: Use primaries and transfer function compare methods
...
Different enum values could be functionally equal, then we don't need
to do full conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:51 +09:00
Seungha Yang
16f4567a50
d3d11format: Move DXGI color space mapping method to gst-libs
...
Expose color space mapping method to public so that application
can configure GstCaps or GstVideoInfo using DXGI color space
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776 >
2022-07-20 07:05:46 +09:00
Seungha Yang
687f9feac6
d3d11convert: Use new colorimetry compare function
...
Avoid conversion if both are functionally identical
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765 >
2022-07-18 08:56:45 +00:00
Seungha Yang
35994eb5c9
d3d11testsrc: Fix SMPTE pattern rendering
...
It was wrong vertex shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2766 >
2022-07-17 23:59:04 +09:00
Piotr Brzeziński
6bf15124e7
applemedia: Add HEVC support to vtenc and vtdec
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2754 >
2022-07-16 05:20:56 +00:00
Seungha Yang
1dd29a2564
d3d11: Move HLSL compiler to gst-libs
...
We should move this functionality to gst-libs so that GstD3D11Converter
can be moved to gst-libs.
Another advantage is that applications can call our
HLSL compiler wrapper method without any worry about OS version
dependent system installed HLSL library.
Note that there are multiple HLSL compiler library versions
on Windows and system installed one would be OS version dependent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2760 >
2022-07-15 06:31:51 +09:00
He Junyan
8e2bbfed13
va: baseenc: Do not use codec frame structure again after finish_frame().
...
In _push_out_one_buffer(), we use codec frame structure again for error handling
after we already call finish_frame(), which is a latent segment fault.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
He Junyan
27c33f0161
va: baseenc: Do not clear the codec frame twice when error.
...
The current manner will clear the input codec frame twice if we fail
to push the output data, which will trigger an assert.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Seungha Yang
7b39a09f9d
d3d11converter: Add support for colorimetry conversion
...
Handle color primaries and gamma functions.
HDR <-> SDR conversion (tone mapping) should be implemented as well
but not a part of this patch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581 >
2022-06-14 05:04:53 +09:00
Seungha Yang
3a44d14ac8
d3d11convert: Don't passthrough if colorimetry conversion is required
...
Different input/output colorimetry requires conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581 >
2022-06-14 04:41:40 +09:00
Seungha Yang
f3f905b491
d3d11window: Use SDR colorspace whenever possible
...
PQ uses completely different light level scale
and it should not be used for SDR bt2020.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581 >
2022-06-14 04:39:31 +09:00
Seungha Yang
ac26860a80
d3d11converter: Rewrite conversion object
...
Rewriting GstD3D11Converter (equivalent to GstVideoConverter)
to optimize some conversion path and clean up.
* Extract YUV <-> RGB conversion matrix building method to
utils. It will be used by other implementation
* Use calculated offset values for YCbCr <-> YPbPr conversion
instead of hardcoded values
* Handle color range adjustment
* Move transform matrix building helper function to utils.
The method will be used by other elements
* Use single constant buffer. Multiple constatne buffer for
conversion pipeline is almost pointless
* Remove lots of duplicated HLSL code and split pixel shader
code path into sampling -> colorspace conversion ->
shader output packing
* Avoid floating point precision error around UV coordinates
* Optimize RGB -> YUV conversion path
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581 >
2022-06-14 04:37:30 +09:00
Benjamin Gaignard
a6f8cc4b95
v4l2codecs: Add P010 pixel format
...
Copy V4L2_PIX_FMT_P010 define from linux header.
V4L2_PIX_FMT_P010 is the little endian definition of P010 so map
it GST_VIDEO_FORMAT_P010_10LE.
Add it v4l2 default video formats to allows v4l2 decoders to
enumerate and use it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2590 >
2022-06-13 16:44:29 +02:00
Tim-Philipp Müller
9d9e59622f
Bump GLib requirement to >= 2.62
...
Can't require 2.64 yet because of
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568 >
2022-06-10 06:01:41 +00:00
Sebastian Dröge
92a4088621
decklink: Add support for 4K DCI, 8K/UHD2 and 8K DCI modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2570 >
2022-06-10 05:31:35 +00:00
Seungha Yang
44768b233a
qsvencoder: Do not copy if input is D3D11 texture
...
In case that input is D3D11 texture, QSV seems to work regardless
of the alignment. Actually the alignment requirement seems to make
only sense for system memory.
Other Intel GPU dependent implementations (new VA encoder, and MediaFoundation)
do not require such alignment nor other vendor specific ones (NVENC and AMF)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2540 >
2022-06-09 20:28:10 +00:00
Seungha Yang
e8fdf9177a
d3d11decoder: Fix for alternate interlacing signalling
...
Don't set d3d11+interlace caps feature. None of d3d11 elements
support it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2579 >
2022-06-09 23:19:24 +09:00
Seungha Yang
45dd8bf35a
d3d11: Add d3d11testsrc element
...
Adding Direct3D11 based videotestsrc element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2554 >
2022-06-09 05:08:41 +09:00
Jan Schmidt
d76ba0292f
amc: Add H.265 encoder mapping.
...
Add mime type mapping to enable the use of Android H.265 encoders
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2511 >
2022-06-08 03:25:13 +00:00
Mengkejiergeli Ba
1fe5655c2a
msdkdec: Decoder should use its own pool when downstream allocator is not recognizable
...
Msdkdec should use it own pool when the allocation from downstream query
is not any msdk_allocator (i.e. msdk_video_allocator,
msdk_dmabuf_allocator and msdk_system_allocator). Otherwise, when using
pipeline "msdkh264dec ! vah264enc !" to transcode a not 16-bit-aligned
stream (i.e. 1920x1080), the transcoding will fail due to the size
mismatch issue between decoder pool and encoder pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2451 >
2022-06-08 02:48:53 +00:00
Víctor Manuel Jáquez Leal
045b6f5ea3
vah264enc: Guard logging functions
...
.. and use spec for rate control rather than static switch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522 >
2022-06-07 12:02:21 +00:00
Víctor Manuel Jáquez Leal
261714e25d
vah264enc: Support default and none rate control.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522 >
2022-06-07 12:02:21 +00:00
Víctor Manuel Jáquez Leal
e27ad1a273
va: encoder: Rate control property.
...
Fixes : #1241
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522 >
2022-06-07 12:02:21 +00:00
Eric Knapp
1818374de2
decklinkvideosink: Add 3G-SDI Level A output support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2544 >
2022-06-07 10:07:42 +03:00
Mengkejiergeli Ba
7696ca83b2
msdkav1enc: Reorder pts
...
This is a workaround for pts because oneVPL cannot handle the pts
correctly when there is b-frames. We first cache the input frame pts in
a queue then retrive the smallest one for the output encoded frame as
we always output the coded frame when this frame is displayable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00
Mengkejiergeli Ba
ae7dfb9680
msdkav1enc: Add b-pyramid and p-pyramid
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00
Mengkejiergeli Ba
8ea23fd0da
msdkav1enc: Add tile for encoding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00
Mengkejiergeli Ba
610b7ee66a
msdk: Add msdkav1enc element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00
Jakub Adam
9fd396834a
amfencoder: always empty the queue when pushing output samples
...
gst_amf_encoder_try_output() pushes at most one output buffer downstream
although more may be ready. As a consequence, output samples will keep
queueing up in AMFComponent whenever QueryOutput() returns AMF_REPEAT
(and do_wait is FALSE). This has negative impact on latency when the
video being encoded is a live stream.
In order to avoid it, always retrieve and push all samples available in
AMFComponent's output queue at once.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2536 >
2022-06-01 18:19:09 +02:00
Seungha Yang
7acfd0cdd1
directshow: Fix for uninitialized debug category warning
...
A method in the code is used in another place (device provider)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2519 >
2022-05-30 12:00:43 +00:00
Víctor Manuel Jáquez Leal
be948816d3
va: Register base classes as abstract.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2521 >
2022-05-29 16:03:46 +00:00
Víctor Manuel Jáquez Leal
ae9fe4a851
va: encoder: Use entrypoint type.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2521 >
2022-05-29 16:03:46 +00:00
Víctor Manuel Jáquez Leal
4474056f6f
va264enc: Fix typo.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2508 >
2022-05-29 11:56:39 +00:00
Víctor Manuel Jáquez Leal
e83983d7ca
va: encoder: Fix regression since commit 2042c2d4f0
.
...
There's no need to compare with the open entrypoint to query the
encoder. This commit removes the checks to the configured entrypoint
with the parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2508 >
2022-05-29 11:56:39 +00:00
Seungha Yang
5762dfb15d
mfvideoencoder: Handle dynamic property update
...
Re-init MFT on property update to apply new encoding options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Seungha Yang
2db6e0ac3c
mediafoundation: Run indent
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Seungha Yang
9fbf4f9c10
mfvideoenc: Remove redundant bitwise or operation
...
MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY (0xc0) covers
MFT_ENUM_FLAG_SORTANDFILTER (0x40)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Seungha Yang
442d21ab2a
mfvideoencoder: Early terminate d3d11 interop
...
Shared texture will work only for the same GPU
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Seungha Yang
39dd92fa5e
mfvideoencoder: Check HRESULT code as well for GPU sync
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Seungha Yang
00ae87cbb5
mfvideoencoder: Don't specify keyed mutex misc flag
...
Current implemetation copies textures using non-keyed mutex way.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX is pointless
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037 >
2022-05-28 23:12:53 +09:00
Víctor Manuel Jáquez Leal
24527856cb
vacompositor: Pass video info pointer than copying it.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2496 >
2022-05-28 00:00:39 +00:00
Víctor Manuel Jáquez Leal
f9b631e0ea
vacompositor: Remove useless consts.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2496 >
2022-05-28 00:00:39 +00:00
Seungha Yang
fe64295841
d3d11decoder: Work around Intel DXVA driver crash
...
Intel DXVA driver crashes sometimes (from GPU thread) if
ID3D11VideoDecoder is released while there are outstanding view objects.
To make sure the object life cycle, holds an ID3D11VideoDecoder refcount
in GstD3D11Memory object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2504 >
2022-05-27 15:13:15 +00:00
Seungha Yang
7c8902c983
qsvencoder: Bind internal texture to render target
...
... so that memory allocator can initialize texture with black color
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2502 >
2022-05-27 14:03:49 +00:00
Mengkejiergeli Ba
81d2982476
msdkh265enc: Add intra refresh parameters
...
Note that for msdkh265enc, intra refresh parameters are only supported
under low-power mode. If these parameters are set without enabling lowpower,
they will be simply ignored.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2308 >
2022-05-27 02:15:42 +00:00
Mengkejiergeli Ba
9c8cb97db9
msdkh264enc: Add intra refresh parameters
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2308 >
2022-05-27 02:15:42 +00:00
Jan Schmidt
6c0423b861
amc: Don't map input buffer with write mode
...
When copying data out of a GStreamer buffer, we don't
need to map it writable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2492 >
2022-05-26 12:44:03 +00:00
He Junyan
2042c2d4f0
va: H264enc: Add encoder for VAEntrypointEncSliceLP.
...
We name vah264lpenc to support H264's VAEntrypointEncSliceLP encoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2472 >
2022-05-25 20:40:48 +00:00
He Junyan
d47416d3a2
va: encoder: Do not reset the frame count when reconfig().
...
We should not reset the input/output_frame_count when some configure
changes. For example, the if resolution changes, the current way just
resets the frame count and make the PTS of the output buffer restart
from the original PTS of the first frame. That causes a lot of QOS
event and drop all the new frames.
We should only reset them when encoder start().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2489 >
2022-05-25 18:56:34 +00:00
He Junyan
994f2c56e2
va: encoder: change reset_state() to a virtual function of base class.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2489 >
2022-05-25 18:56:34 +00:00
U. Artie Eoff
8a161880fc
vacompositor: check caps and info return values
...
Check return values for get caps and video info from caps.
This was flagged by static analysis.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2480 >
2022-05-25 10:16:00 +00:00
Seungha Yang
9b128f1841
d3d11decoder: Don't print error log on negotiation failure
...
It may not be a critical error and even expected when shutting down
pipeline or flushing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2483 >
2022-05-25 05:46:40 +09:00
Erwann Gouesbet
09a45c37ca
d3d11screencapture: Fix missing/outdated cursor shape
...
d3d11screencapture can miss a cursor shape to draw or draw an outdated cursor shape.
- AcquireNextFrame only provides cursor shape when there is one update
- current d3d11screencapture skips cursor shape when mouse is not drawn
So, if a gstreamer application uses d3d11screencapture with cursor initially not drawn
"show-cursor"=false and then switches this property to true, the cursor will not be
actually drawn until AcquireNextFrame provides a new cursor shape.
This commit makes d3d11screencapture always update the cursor shape information, even
if the mouse is not drawn. d3d11screencapture will always have the latest cursor shape
when requested to draw it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2485 >
2022-05-24 20:10:00 +00:00
Víctor Manuel Jáquez Leal
8433bab0b5
va: Avoid unused variable if logging is disabled.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2478 >
2022-05-24 19:07:47 +00:00
Víctor Manuel Jáquez Leal
84c0d02755
va: Keep include's code style
...
Headers are in alphabetical order.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2465 >
2022-05-24 13:41:50 +00:00
Víctor Manuel Jáquez Leal
46e536898f
vafilter: Fix logging of unsupported alpha blending.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2477 >
2022-05-24 12:30:49 +00:00
Seungha Yang
4c384f8356
qsv: Add AV1 encoder element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2467 >
2022-05-23 13:28:11 +00:00
Seungha Yang
8e665fa435
qsvencoder: Move common property to baseclass
...
adapter-luid and device-path are common for all codecs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2467 >
2022-05-23 13:28:11 +00:00
He Junyan
fc75e38496
va: baseenc: No need to check the frame pointer in handle_frame().
...
No need to check the NULL pointer of "frame" in error handling, it
is assured non-NULL by base class and we already use it everywhere
in this function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2471 >
2022-05-23 15:03:03 +08:00
He Junyan
de5952bc83
va: baseenc: include the "vacompat.h" for old version glib.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2463 >
2022-05-22 15:03:54 +08:00
U. Artie Eoff
d2651a1e0b
va: vpp: enable compositor
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2332 >
2022-05-21 21:18:15 +02:00
U. Artie Eoff
afe8723196
va: vpp: add compositor
...
New implementation of a VA-API compositor with blend feature.
Various chunks of code was taken from vavpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2332 >
2022-05-21 21:18:15 +02:00
He Junyan
a2920411d3
va: Apply the va base encoder to the vah264enc.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2330 >
2022-05-20 22:58:58 +02:00
He Junyan
21a9ba7e7e
va: Add the GstVaBaseEnc common object for all va encoders.
...
Just like the GstVaBaseDec and GstVaBaseTransform, this base encoder
will handle all common logic for all va encoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2330 >
2022-05-20 22:58:58 +02:00
Seungha Yang
909154a989
qsv: Disable non-MSVC build on Windows
...
... and remove pointless UWP consideration that will never work.
Cross-compiled binary has an issue which causes deadlock.
Although cerbero will not build this plugin for non-MSVC build,
people can still build this plugin and may complain its brokenness.
See also
https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/854
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2431 >
2022-05-17 03:32:10 +09:00
Diogo Goncalves
acfc9ae216
avfvideosrc: fix wrong framerate selected for caps
...
This fix solves an issue where a format that doesn't support the
requested framerate would be selected. It ensures that we use the first
format and framerate pair that supports the requested caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2331 >
2022-05-13 19:38:45 +00:00
Seungha Yang
858520932c
d3d11decoder: Add hardcoded minimum resolution values to caps for NVIDIA
...
NVIDIA GPUs have undocumented limitation regarding minimum resolution
and it can be queried via a NVDEC API. However, since we don't want to
bring CUDA/NVDEC API into D3D11, use hardcoded values for now
until we find a nice way for capability check.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2406 >
2022-05-12 18:20:26 +00:00
Víctor Manuel Jáquez Leal
4c97ffeafb
va: basedec: Always select first available format.
...
If the stream chroma doesn't match with any video format in the source
caps template (generated from va config surface formats) instead of
return unknown, return the first available format in the template,
assuming that the driver would be capable to do color conversions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2404 >
2022-05-11 15:03:54 +02:00
Víctor Manuel Jáquez Leal
c47255d148
va: basedec: Select format from template or negotiated caps.
...
Instead of using a hard-coded list of preferred formats according the
chroma type, now if now caps are pre-negotiated, from template caps
will choose the first format with the same chroma type. If
pre-negotiated, then it will choose the first format, with same chroma
type, from the first caps structure.
Also all the decoders will check if GST_VIDEO_FORMAT_UNKNOWN is
returned, failing the negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2351 >
2022-05-09 08:50:58 +00:00
Dmitry Osipenko
fd694d840a
v4l2codecs: h264: Set frame type flags
...
V4L spec now requires decode_params flags to be set in accordance to the
frame's type. In particular this is required by H.264 decoder of NVIDIA
Tegra SoC to operate properly. Set the flags based on type of parsed
slices.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1757 >
2022-05-06 13:35:59 +00:00
Seungha Yang
e0a9a73adf
d3d11screencapturesrc: Fix crash when d3d11 device is different from owned one
...
GstD3D11ScreenCapture object is pipeline-independent global object
and the object can be shared by multiple src elements,
in order to overcome a limitation of DXGI Desktop Duplication API.
Note that the API allows only single capture session in a process for
a monitor.
Therefore GstD3D11ScreenCapture object must be able to handle a case
where a src element holds different GstD3D11Device object. Which can
happen when GstD3D11Device context is not shared by pipelines.
What's changed:
* Allocates capture texture with D3D11_RESOURCE_MISC_SHARED for the
texture to be able to copied into other device's texture
* Holds additional shader objects per src element and use it when drawing
mouse
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1197
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2366 >
2022-05-05 18:18:57 +00:00
Seungha Yang
58c94eed84
nvh264dec,nvh265dec: Don't realloc bitstream buffer per slice
...
Allocated memory size has not been updated which results in
realloc per slice. Fixing it and also release bitstream buffer
on ::close(), not finalize.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2361 >
2022-05-05 12:15:27 +00:00
Jakub Adam
03b6dab006
d3d11screencapture: Set viewport when drawing mouse cursor
...
If there weren't any moved/dirty regions in the captured frame, the
viewport of the ID3D11DeviceContext would be left at whatever previous
value it had, which could lead to the cursor being drawn in a wrong
position and/or in an incorrect size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2362 >
2022-05-04 17:18:32 +02:00
Seungha Yang
33e77782c6
nvcodec: Add AV1 decoder
...
Adding GstCodecs based AV1 decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453 >
2022-05-04 01:23:25 +09:00
Seungha Yang
1444dd91c5
meson: nvcodec: Remove unnecessary override option and fix build with non-MSVC
...
cpp_std=c++11 was hack for macOS build but we don't build this plugin
for Apple device anymore. And add "-Wno-deprecated-declarations"
compile option for gcc/clang
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453 >
2022-05-04 01:10:07 +09:00
Seungha Yang
fe4d6bb469
nvcodec: Bump SDK header version to 11.1
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453 >
2022-05-03 23:56:34 +09:00
Seungha Yang
29aab904a8
nvdecoder: Handle DPB size margin in a single place
...
... instead of each subclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343 >
2022-05-03 14:17:49 +00:00
Seungha Yang
a8b2fbf77f
d3d11decoder: Handle DPB size margin in a single place
...
... instead of each subclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343 >
2022-05-03 14:17:49 +00:00
Seungha Yang
6a4c42c03f
codecs: Signal required DPB size for AV1,MPEG2,VP8, and VP9 via new_sequence()
...
Make all codecs consistent so that subclass can know additional DPB
size requirement depending on render-delay configuration regardless
of codec. Note that render-delay feature is not implemented for AV1
yet but it's planned.
Also, consider new_sequence() is mandatory requirement, not optional
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343 >
2022-05-03 14:17:49 +00:00
Nicolas Dufresne
ab839f3642
v4l2codecs: Port to the new tile size helper
...
This will complete the scaling of width/height shift scaling
as only a partial implementation was made.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Seungha Yang
4047653275
d3d11h265dec: Assign PRIMARY + 1 rank
...
Promote d3d11h265dec to be default one if available
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2314 >
2022-04-27 20:06:53 +00:00
Seungha Yang
dce45586e8
nvvp9sldec: Increase DPB size to cover render delay
...
This should've included in the previous MR
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/987
already, but missed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2313 >
2022-04-27 18:35:07 +00:00
Thibault Saunier
3c959ff53e
cudaconvert: Enhance debugging when setting video info fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2300 >
2022-04-26 19:04:06 +00:00
He Junyan
264e577e7e
va: dec: Use gst_buffer_pool_config_set_va_alignment() to set alignment.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2282 >
2022-04-26 20:26:09 +08:00
Seungha Yang
81ee2a9f2a
qsvencoder: Workaround for invalid DTS with VP9
...
SDK runtime seems to report zero DTS for all frames in case of VP9 but
we don't need to use DTS for the codec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2291 >
2022-04-26 04:51:54 +09:00
Seungha Yang
205a23f456
nvcodec: Stop building for non-{Windows,Linux} target
...
The other platforms, specifically macOS have not been supported already
because this plugin loads so or dll. Moreover, NVIDIA dropped
support for macOS as of CUDA 11.0. See also
https://developer.nvidia.com/nvidia-cuda-toolkit-11_0_0-developer-tools-mac-hosts
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2283 >
2022-04-25 15:50:52 +00:00
Seungha Yang
9f19ca68b3
d3d11videosink: Fix for unhandled mouse double click events
...
Only window created with CS_DBLCLKS style can receive those mouse
double click events, so we need to use the style for internal/external
windows can get double click events.
Also, passthrough mouse events to parent window in the same message pumping
threads instead of manually forwarding each mouse event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1172
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2277 >
2022-04-23 13:20:54 +00:00
Xavier Claessens
1a0eea3299
Meson: Fix deprecation warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1876 >
2022-04-23 00:33:00 +00:00
Corentin Damman
df64280874
cuda-converter: fix nvrtc compilation on non-English locale systems
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2268 >
2022-04-22 18:57:22 +00:00
He Junyan
277aa12b86
va: h264enc: Do not let L0 number surplus the HW limitation.
...
The algorithm to calculate the L0/L1 number may let the L0 number
surplus the HW limitation. We should ensure that limitation after
that calculation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2202 >
2022-04-22 13:32:21 +00:00
He Junyan
43dfe021da
va: vpp: Update the colorimetry and HDR fields when fixup src caps.
...
When we fixup src caps, the current way of handling the HDR fields is not
correct.
1. We trim the HDR fields only when the input caps is not a subset of the
fixup src caps. But in fact, the input caps with HDR fields such as the
"mastering-display-info" can possibly be the subset of the fixup src caps,
if they have all same other fields.
2. We always copy the colorimetry from input caps to src caps if it is
absent. But when hdr-tone-mapping is enabled, the HDR->SDR conversion makes
the colorimetry change. We should use downstream's setting, or just use the
default colorimetry of SDR.
We changes to:
1. If hdr-tone-mapping is enabled, we trim all HDR fields and add a correct
colorimetry.
2. Copy colorimetry from input if it is still absent.
3. Consider the subset replacement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2244 >
2022-04-22 06:53:37 +00:00
Seungha Yang
6a3776c527
qsv: Add GPU description to element long-name on Windows
...
Would be useful for a multi-Intel-GPU system
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2249 >
2022-04-20 18:49:18 +00:00
Víctor Manuel Jáquez Leal
722a6c7708
vapostproc: Notify if hdr-tone-mapping property changes.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2247 >
2022-04-20 17:01:52 +00:00
Víctor Manuel Jáquez Leal
e207ff905b
va: Expose a couple va surface/buffer methods.
...
And use them in va plugin.
Also, set as default logging category the vadisplay one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2077 >
2022-04-20 15:15:56 +00:00
Xavier Claessens
b99ecc78ca
Replace gst-i18n-*.h with gi18n-lib.h
...
GLib guarantees libintl is always present, using proxy-libintl as
last resort. There is no need to mock gettex API any more.
This fix static build on Windows because G_INTL_STATIC_COMPILATION must
be defined before including libintl.h, and glib does it for us as part
as including glib.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028 >
2022-04-19 18:01:06 +00:00
Thibault Saunier
dcd2ccad59
cuda: Fix typo in gst_cuda_buffery_copy_type_to_string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Thibault Saunier
c033f8fad2
cuda: Factor out a public GstCUDA library
...
So applications and elements implemented outside GStreamer can reuse
our infrastructure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Thibault Saunier
3549d59725
nvenc: Give more details about errors
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Seungha Yang
c38869212c
d3dvideosink: Remove outdated comment
...
d3dvideosink is not a primary video sink element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2223 >
2022-04-18 20:27:34 +00:00
Seungha Yang
dd32e2efbc
d3d11decoder: Do not preallocate texture using downstream d3d11 buffer pool
...
Our decoder implementation does not use downstream d3d11 pool for
decoding because of special requirement of D3D11/DXVA. So preallocation
using the downstream buffer pool will waste GPU memory in most cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2211 >
2022-04-18 18:31:02 +00:00
He Junyan
4c5d34648c
va: h264enc: Fix the forgotten unlock() when getting device path property.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2215 >
2022-04-18 12:44:19 +08:00
Seungha Yang
23e280f05b
qsvdecoder: Use system memory for non-d3d11 downstream
...
QSV's memory download implementation seems to be more faster
than our implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 22:59:48 +09:00
Seungha Yang
9543998aa3
qsv: Add H.265 decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 20:57:31 +09:00
Seungha Yang
d136c98770
qsv: Include single gstva.h
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 20:57:31 +09:00
Seungha Yang
fba44e8a01
qsvh264dec: Don't register element if it's not supported by device
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 20:57:31 +09:00
Seungha Yang
0692a5dde9
qsvh264dec: Add support for packetized format
...
Handle avc/avc3 packetized formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 20:57:26 +09:00
Seungha Yang
3c3274a8da
qsv: Move debug init into each source file
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 04:15:13 +09:00
Seungha Yang
a9a49c235d
qsvdecoder: Reset next_task_index per init_session()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206 >
2022-04-17 04:15:13 +09:00
Seungha Yang
b5a8bef5a7
d3d11decoder: Copy HDR10 related caps field manually
...
If negotiate() is called from the set_format() chain, sinkpad may not
hold caps yet, so baseclass cannot copy it over to srcpad caps.
Copy them manually.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2203 >
2022-04-16 18:36:41 +00:00
Seungha Yang
86cf307a6c
qsvencoder: Rename property name i-frames to idr-interval
...
... and clarify the meaning of the value for each h264 and h265
encoder since the usage of mfxInfoMFX::IdrInterval is different
per codec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2204 >
2022-04-16 23:34:41 +09:00
Seungha Yang
f848619ff4
qsvh265enc: Write HDR10 metadata SEI
...
If device supports HDR10 metadata API, write the information
into bitstream per IDR.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2204 >
2022-04-16 23:34:41 +09:00
Víctor Manuel Jáquez Leal
a2a6ece487
vah264enc: Use GstVaFeature enum for enabling MBBRC.
...
GstVaFeature is a common enumeration for auto/disabled/enabled kind of
property setting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169 >
2022-04-16 11:11:51 +00:00
Víctor Manuel Jáquez Leal
3a7c1ddb3c
vah264enc: Move rate-control enum to encoder class helper.
...
Since it's a common enumeration used, as user setting property, for
most of codecs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169 >
2022-04-16 11:11:51 +00:00
Víctor Manuel Jáquez Leal
81951c59ef
vah264enc: Add device-path property.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169 >
2022-04-16 11:11:51 +00:00
Corentin Damman
c68c40a6bc
cudautils: fix critical typo in gst_cuda_buffer_fallback_copy
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2194 >
2022-04-16 02:16:22 +00:00
He Junyan
c5546d476a
va: h264enc: Correct the hierarchical level name for pyramid-b frames.
...
The current way names the level by the number of B frames it contains, the
less it contains, the higher level it is. So the non ref B frames are in the
lowest layer and the B frames in the highest level refer to I/P frames.
But the widely used way is just the opposite, the ref B frames are in the
lower level and non ref B frames are at the highest level.
The is just a terminology change, and does not have any effect for compression
result and quality.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2149 >
2022-04-13 08:22:32 +00:00
Seungha Yang
83ba83924a
amfh265enc: Handle preset option
...
Add missing preset option handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2165 >
2022-04-13 01:46:34 +09:00
Seungha Yang
097919f79b
amfencoder: Do shared resource copy only if texture belongs to other device
...
Staging texture from the same d3d11device can be copied without
shared resource handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2165 >
2022-04-13 01:42:34 +09:00
Seungha Yang
2548014dfc
win32: Enable high-resolution timer for MinGW build
...
timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
header instead, which defines struct and APIs in case of our MinGW
toolchain. Note that in case of native Windows10 SDK (MSVC build),
mmsystem.h will include timeapi.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2153 >
2022-04-12 15:09:16 +00:00
Andoni Morales Alastruey
2df32360b2
amfcodec: fix setting quality presets
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2159 >
2022-04-12 12:14:04 +02:00
Seungha Yang
ad9c435647
amfcodec: Fix for MinGW build
...
timeapi.h header might not be missing depending on toolchain.
Also do hard meson error if winmm dep is not available but
amfcodec is explicitly enabled.
And fixing various GCC build warning errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2155 >
2022-04-11 18:44:40 +00:00
Seungha Yang
ad434759a9
qsv: Add JPEG encoder
...
Note that YUY2 is not supported yet, since the format support is not
implemented now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2142 >
2022-04-10 23:38:07 +09:00
Seungha Yang
89293656e4
amfcodec: Update plugin cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2143 >
2022-04-10 03:15:02 +09:00
Seungha Yang
a0d8133d60
nvencoder: Update property names and default values
...
Update properties of newly written D3D11/CUDA mode encoders
to be consistent with Intel QSV plugin. And rename "zerolatency"
to "zero-reorder-delay" because previous "zerolatency" may
misleading
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2140 >
2022-04-09 14:00:35 +00:00
Seungha Yang
7b89cdbefe
qsvencoder: Update property names and default values
...
Stop using MSDK plugins property naming, instead use unified names
and default values to be consistent with newly written NVIDIA encoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2140 >
2022-04-09 14:00:35 +00:00
Seungha Yang
f413449a28
amfcodec: Add support for h264/h265 encoding
...
New encoder implementations for AMD GPU using AMF API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2109 >
2022-04-08 17:59:12 +00:00
Seungha Yang
c41a72a1ff
amfcodec: Import AMF SDK headers
...
SDK version v1.4.24 at the commit of
fbf12cd39f
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2109 >
2022-04-08 17:59:12 +00:00
Seungha Yang
6e4ffaee1e
msdk: Fix Windows build
...
Headers of gstva should not be included on Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2141 >
2022-04-09 02:13:57 +09:00
Seungha Yang
2291781087
d3d11window: Use ANSI version WIN32 API explicitly
...
We were using ANSI version APIs implicitly because UNICODE is not
defined by ourselves. But potentially it can be broken if user
defines UNICODE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2131 >
2022-04-08 11:51:37 +00:00
Seungha Yang
fb226f4733
d3d11: Run indent
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2131 >
2022-04-08 11:51:37 +00:00
Seungha Yang
26fa35dcdf
qsvencoder: Don't use USAGE_HINT_ENCODER and enable derived image support
...
Peformance issue by disabled derived image support was reported
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2111 >
2022-04-04 21:18:13 +00:00
Seungha Yang
b74da32b5c
Revert "vah264enc: Disable derived image support"
...
This reverts commit 0011feb0d6
.
The commit caused performance-wise regression for some platforms
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2111 >
2022-04-04 21:18:13 +00:00
Tong Wu
4e97cc24a7
msdk: use mfxU32 instead of uint32_t
...
Msdk should use mfx variables defined in mfxdefs.h. Replace uint32_t
with mfxU32.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2091 >
2022-04-04 20:28:25 +00:00
Seungha Yang
5ed8e416fe
nvcodec: Fix typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2107 >
2022-04-03 22:12:33 +09:00
Seungha Yang
9b5fe81d01
nvencoder: Fix operator overloading
...
GUID equality check was inverted
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2107 >
2022-04-03 22:09:19 +09:00
Seungha Yang
0011feb0d6
vah264enc: Disable derived image support
...
Behavior of derived image seems to be platform dependent and
it's buggy in some cases.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1110
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2086 >
2022-04-02 07:04:03 +00:00
He Junyan
976356e159
va: h264enc: Do not use USAGE_HINT_ENCODER for input pool.
...
It seems that the VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER is used only
for the recon surfaces, if we set this flags for input raw surfaces,
the alignment is wrong and we get broken result.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2100 >
2022-04-02 06:23:03 +00:00
Xavier Claessens
b004464ac6
Remove glib and gobject dependencies everywhere
...
They are part of gst_dep already and we have to make sure to always have
gst_dep. The order in dependencies matters, because it is also the order
in which Meson will set -I args. We want gstreamer's config.h to take
precedence over glib's private config.h when it's a subproject.
While at it, remove useless fallback args for gmodule/gio dependencies,
only gstreamer core needs it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031 >
2022-04-01 16:32:17 +00:00
Seungha Yang
b5ed0eb4b0
qsvencoder: Add support for VA memory
...
Use VA allocator and buffer pool implementation for zero-copy
encoding with upstream VA elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2030 >
2022-03-31 20:48:24 +00:00
Seungha Yang
9c44b32c21
qsv: Use pipeline's VA context
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2030 >
2022-03-31 20:48:24 +00:00
Víctor Manuel Jáquez Leal
6d2f57b6c7
libs: va: add VA allocator parameter for derived images usage.
...
Added GstVaFeature enum type, and new parameter for VA allocator's
set_format() and get_format(). Also added a new parameter in VA pool
gst_va_pool_new_with_config() and
gst_buffer_pool_config_set_va_allocation_params().
This new parameter will define if derived images will by used for
buffer mapping.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2057 >
2022-03-31 14:14:45 +00:00
Víctor Manuel Jáquez Leal
8759014f4c
va: encoder: Remove unused allocation config.
...
Since it's also done inside of gst_va_pool_new_with_config().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2072 >
2022-03-30 22:18:06 +00:00
Víctor Manuel Jáquez Leal
599257bf10
vapostproc: Build classification dynamically.
...
By default, the classification is
"Converter/Filter/Colorspace/Scaler/Video/Hardware", but if VA
post-processor driver supports either color balance, skin tone
enhancement, sharpening or noise reduction, "Effect" is added.
Thus, if vapostproc ranking is raised, it can be chosen by
autovideosink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2066 >
2022-03-30 04:24:35 +00:00
Víctor Manuel Jáquez Leal
400faf7361
va: Set <gst/va/gstva.h> as library single point entry header.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048 >
2022-03-29 19:48:30 +00:00
He Junyan
990fbb3b52
va: Move allocators and pool objects into gstva library.
...
In order to other plugins use gstva objects, such as allocators and buffer
pools, this merge request move them from the va plugin to the gstva library.
This objects are not exposed in <gst/va/gstva.h> since they are not expected
to be used by users, only by plugin implementators.
Because of the surface copy design, which is used to implement allocator's
mem_copy() virtual function, depends on the vafilter, which is kept inside
the plugin, memory copy through VAPosproc is disabled and removed temporarly.
Also added some missing parameter validation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048 >
2022-03-29 19:48:30 +00:00
He Junyan
53783eab6c
va: Move the video format functions into gstlibva.
...
Untabifying header file.
The logging category was moved from the plugin generic category to
the display category. It can argue that video formats hacks are
display dependant.
Added validations for input parameters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048 >
2022-03-29 19:48:30 +00:00
Seungha Yang
886cfecd36
qsvencoder: Add support for dynamic bitrate update
...
... and add more encoding options.
QSV API supports dynamic bitrate change without IDR insertion.
That's more efficient way of runtime encoding option update
than starting from new sequence with IDR per bitrate option change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039 >
2022-03-29 15:52:58 +00:00
Seungha Yang
a8d7b10cc4
qsvh265enc: Add missing gop-size property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039 >
2022-03-29 15:52:58 +00:00
Seungha Yang
1a7b23dc02
qsv: Fix mfxFrameAllocator::Lock for encoder
...
Only read map is possible for encoder input system memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039 >
2022-03-29 15:52:58 +00:00
Matthew Waters
b8a5e7a4e4
applemeida/texturecache: remove unused variable
...
Fixes:
../sys/applemedia/videotexturecache.m:71:20: error: variable 'features' set but not used [-Werror,-Wunused-but-set-variable]
GstCapsFeatures *features;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Matthew Waters
3ffbb66593
applemedia/corevideobuffer: remove unused variable
...
Fixes:
../sys/applemedia/corevideobuffer.c:209:19: error: variable 'video_meta' set but not used [-Werror,-Wunused-but-set-variable]
GstVideoMeta *video_meta;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Matthew Waters
b8f83c9d14
applemedia/iosgl: remove unused variable
...
Fixes:
../sys/applemedia/iosurfaceglmemory.c:219:41: error: variable 'texfmt' set but not used [-Werror,-Wunused-but-set-variable]
GLuint tex_id, tex_target, texifmt, texfmt;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Matthew Waters
49e452525d
vtdec: remove unused variable
...
Fixes:
../sys/applemedia/vtdec.c:611:35: error: variable 'output_flags' set but not used [-Werror,-Wunused-but-set-variable]
VTDecodeFrameFlags input_flags, output_flags;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Matthew Waters
edd9ec0456
avsamplevideosink: remove unused variable
...
Fixes
../sys/applemedia/avsamplevideosink.m:80:20: error: variable 'gstelement_class' set but not used [-Werror,-Wunused-but-set-variable]
GstElementClass *gstelement_class;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Matthew Waters
651cd8e0bb
avfassetsrc: fix unused-but-set warning
...
../sys/applemedia/avfassetsrc.m:1014:12: error: variable 'caps' set but not used [-Werror,-Wunused-but-set-variable]
GstCaps *caps;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046 >
2022-03-28 10:30:23 +00:00
Andrew Pritchard
432354e6d4
Fix GstAmcSurfaceTexture segfault
...
Check that `self` and `self->callback` are defined. `self` can be set to
`NULL` in `remove_listener`, and `self->callback` can be set to `NULL`
inside `gst_amc_surface_texture_jni_set_on_frame_available_callback`.
This can cause a segfault since the Java object can outlive the C
object, and call the callback after `remove_listener` is called.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2024 >
2022-03-28 04:44:21 +00:00
Nicolas Dufresne
c9d8b8a972
v4l2codecs: Detect missing M2M_HOLD_CAPTURE_BUF
...
Produce an error if we try to use the feature of holding capture buffer
but it is not supported by the driver. Ingoring this can lead to stalls
as the driver will run-out of capture buffer to decode into. This
affects slice decoders but also split-field interlaced decoding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009 >
2022-03-25 21:40:28 +00:00
Nicolas Dufresne
efa360ce82
v4l2codecs: h264: Set other field poc if available
...
Whenever the other field POC is available, pass it back to the
driver. This should not be strictly required, but it makes things
easier to debug and more forgiven.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009 >
2022-03-25 21:40:28 +00:00
Nicolas Dufresne
dcd62c35f0
v4l2codecs: Trace request by it FD
...
This helps when crossing the debug logs with the kernel logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009 >
2022-03-25 21:40:28 +00:00
Nicolas Dufresne
d24dc74170
v4l2codecs: h264: Fix dpb entry flag FLAG_FIELD
...
The logic to guess back this value was broken. Use the value
now saved into the picture instead. This was tested using
LibreELEC patched 5.15 kernel, and fixed the interlaced decode
issues.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009 >
2022-03-25 21:40:28 +00:00
Thibault Saunier
25819c41fb
navigation: Add support for key Modifiers in all relevant events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010 >
2022-03-25 15:16:03 +00:00