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