Víctor Manuel Jáquez Leal
117453b947
va: allocator: export composed layer for YUY2 and UYVY
...
This is a result of an error reported by i965 driver which only can
export composed layer for these formats. This seems to work too with
iHD. These formats are not exposed as native surfaces in Gallium.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
a4e535d5c1
va: allocator: add gst_va_dmabuf_buffer_setup()
...
This function will take an array of DMABuf GstMemory and an array of
fd, and create a VASurfaceID with those fds. Later that VASurfaceID is
attached to each DMABuf through GstVaBufferSurface.
In order to free the surface GstVaBufferSurface now have GstVaDisplay
member, and _buffer_surface_unref() were added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
6ac4e79b21
va: allocator: try to get VASurfaceID from every DMABuf allocator
...
Relax the check of the allocator type, because now the qdata can be
attached for other DMABuf allocators.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
20e493981b
va: allocator: try to create surface without fourcc but chroma only
...
There are, in VPP, surfaces that doesn't support 4:2:2 fourccs but it
supports the chroma. So this patch gives that opportunity to the
driver.
This patch also simplifiies
gst_va_video_surface_format_from_image_format() to just an iterator
for surfaces available formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
482a7d7d7e
va: allocator: create surfaces with VASurfaceAttribExternalBuffers
...
Add a new parameter to _create_surfaces(): a pointer to
VASurfaceAttribExternalBuffers.
If it's defined the memory type is changed to DRM_PRIME, also a new item is
added to the VASurfaceAttrib array with
VASurfaceAttribExternalBufferDescriptor.
Also, the VASurfaceAttrib for pixel format is not mandatory anymore. If fourcc
parameter is 0, is not added in the array, relying on the chroma. This is
useful when creating surfaces for uploading or downloading images.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
f306b1e0fe
va: pool: use gst_object_replace() for allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
f6a623d565
va: device: use gst_clear_object()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
6af7ec3c0f
va: caps: expose gst_caps_set_format_array()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529 >
2020-09-23 18:19:22 +02:00
Víctor Manuel Jáquez Leal
b1a1e2d841
va: vah264dec: fix documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1591 >
2020-09-23 15:14:21 +00:00
Haihao Xiang
912fa7ce99
msdk: add support for AV1 decoding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1448 >
2020-09-22 06:54:27 +00:00
Víctor Manuel Jáquez Leal
9ed141734e
va: utils: use GstObject for GstVaDisplay in context
...
Thus application could fetch the GstVaDisplay through the sync bus
without knowning the specific implementation, and sharing it or
extract properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586 >
2020-09-21 17:07:51 +00:00
Víctor Manuel Jáquez Leal
ed80aa5d6b
va: utils: fix code style and wrong log message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586 >
2020-09-21 17:07:51 +00:00
Víctor Manuel Jáquez Leal
9e9e5c72d5
va: h264dec: add documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1585 >
2020-09-20 09:21:08 +02:00
Haihao Xiang
9443bf7a22
msdk: enable GPUCopy
...
Note it works for system memory only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910 >
2020-09-20 01:40:08 +00:00
Haihao Xiang
1d082baf18
msdk: call MFXInitEx instead of MFXInit
...
MFXInitEx has more control than MFXInit. The current setting in this
commit is identical to MFXInit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910 >
2020-09-20 01:40:08 +00:00
Víctor Manuel Jáquez Leal
467618f8ac
va: decoder: render picture only if data
...
Call vaRenderPicture() only if buffer or slice data is available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584 >
2020-09-19 14:32:13 +02:00
Víctor Manuel Jáquez Leal
ad019a1d01
va: decoder: warn if decode fails on a surface
...
Instead of logging error if a step fails, it logs a warning message
reducing the noise and obeying the rule for errors since the program
doesn't end
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584 >
2020-09-19 14:32:13 +02:00
Víctor Manuel Jáquez Leal
ad839ada5b
va: h264dec: check is pad has fixed caps at caps query
...
Otherwise it will always reply with the possible driver caps, which
generates problems with Web MSE players.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1583 >
2020-09-19 13:00:49 +02:00
Seungha Yang
2fe1afeafa
va: h264dec: Don't need to set pts/dts/duration on outputting frame
...
It will be handled by videodecoder baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1582 >
2020-09-18 23:50:54 +00:00
Nicolas Dufresne
671d9fed3a
kmssink: Do not source using padded width/height
...
The width/height from the video meta can be padded width, height. But when
sourcing from padded buffer, we only want to use the valid pixels. This
rectangle is from the crop meta, orther it is deduces from the caps. The width
and height from the caps is save in the parent class, use these instead of the
GstVideoInfo when settting the src rectangle.
This fixes an issue with 1080p video displaying repeated or green at the
padded bottom 8 lines (seen with v4l2codecs).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1580 >
2020-09-18 16:26:23 +00:00
Seungha Yang
ea24a2e527
d3d11: Add support for packed 8bits 4:2:2 YUV formats
...
Note that newly added formats (YUY2, UYVY, and VYUY) are not supported
render target view formats. So such formats can be only input of d3d11convert
or d3d11videosink. Another note is that YUY2 format is a very common
format for hardware en/decoders on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1581 >
2020-09-18 14:47:21 +00:00
Randy Li (ayaka)
2f5904c20d
msdk: vpp: fixup passthrough checking for DMA
...
I think it is just a typo from e1a90f1ec9
msdkvpp: Disable passthrough if memory capsfeature changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1559 >
2020-09-16 03:02:31 +00:00
Seungha Yang
08119ea515
d3d11vp9dec: Don't need to consider output_picture() call without GstVideoCodecFrame
...
Baseclass will be updated in order to ensure GstVideoCodecFrame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Seungha Yang
b73a223dc5
d3d11vp9dec: Specify profile and alignment on sink template
...
Set supported profile(s) on sink template caps, so that decodebin
can filter out this element if profile of given vp9 stream is not
supported by hardware decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Seungha Yang
bb5ef4fd5b
d3d11decoder: Cleanup code
...
* Don't need to set pts/dts/duration on output buffer of frame.
it's handled by baseclass
* Remove meaningless debug output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Víctor Manuel Jáquez Leal
261d6e463a
Revert "va: h264dec: set latency"
...
This reverts commit 3aedef4c86
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1531 >
2020-09-14 16:48:31 +00:00
Nicolas Dufresne
20785e775e
v4l2slh264dec: Minor cleanup
...
Move few variables in their respective scope.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563 >
2020-09-10 15:21:57 +00:00
Nicolas Dufresne
cc8e1ca2ac
v4l2slh264dec: Fix B-Frame weight table
...
We where not setting the luma l1 weight table.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563 >
2020-09-10 15:21:57 +00:00
Seungha Yang
47bbc997f8
mfvideosrc: Set timestamp on buffer when it's captured
...
Capture the timestamp immediately when new frame is arrived,
instead of doing that on ::create() method. There would be
time gap between captured time and outputting time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1351 >
2020-09-10 10:21:00 +00:00
Seungha Yang
d1d2acead1
mfvideoenc: Add support for zero-copy encoding
...
Add custom IMFMediaBuffer and IMF2DBuffer implementation in order to
keep track of lifecycle of Media Foundation memory object.
By this new implementation, we can pass raw memory of upstream buffer
to Media Foundation without copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1518 >
2020-09-09 07:25:52 +00:00
Sebastian Dröge
64039cdf84
gst: Update for gst_video_transfer_function_*() function renaming
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557 >
2020-09-07 12:14:47 +03:00
Haihao Xiang
cc3057e4ea
msdkvp9dec: change the include header order
...
This fixes the compiler error when MFX_VERSION_USE_LATEST is defined in
the SDK.
/usr/include/mfx/mfxvp9.h:48:5: error: unknown type name ‘mfxExtBuffer’
mfxExtBuffer Header;
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1549 >
2020-09-01 13:57:13 +08:00
Jérôme Laheurte
ccfb799d83
dshowsrcwrapper: Update build instructions. Add _builddir to include search path.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1537 >
2020-08-28 23:00:53 +00:00
Jérôme Laheurte
02666d929f
dshowsrcwrapper: fix typo in variable name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1538 >
2020-08-25 10:49:11 +02:00
Seungha Yang
95e007ac49
d3d11videosink: Fix crash caused by missing null termination
...
gst_caps_features_new() must be null terminated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1524 >
2020-08-24 20:03:05 +00:00
Víctor Manuel Jáquez Leal
7c696b67be
va: allocator: remove parameter from _create_buffer_surface()
...
Don't the allocator to _create_buffer_surface() since it's not used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
80de32b017
va: utils: free allocated string
...
and fix a memleak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
69a00541dd
va: utils: fix log category initialization
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
c905f6131d
va: h264dec: check va allocator at decide allocation
...
And some code cleanups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
f755730b20
va: decoder: improve locks for member variable access
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Seungha Yang
5d4ab18ced
mediafoundation: Correct wrong raw video format mapping
...
Was a shameful mistake
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1517 >
2020-08-17 21:39:13 +09:00
Víctor Manuel Jáquez Leal
3aedef4c86
va: h264dec: set latency
...
The min latency is calculated with the maximum number of frames that
precede any frame, if available, and it is lower than the maximum
number of frames in DBP.
The max latency is calculated with the maxium size of frames in DBP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1500 >
2020-08-17 09:32:41 +00:00
Seungha Yang
5ffd2c64a0
mediafoundation: Call MFShutdown when destroying plugin
...
MFStartup and MFShutdown should be paired as documented in
https://docs.microsoft.com/en-us/windows/win32/api/mfapi/nf-mfapi-mfstartup#remarks
Otherwise valgrind-like tools would report false positive memory leak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1512 >
2020-08-13 07:05:36 +00:00
Xu Guangxin
9123b9ba39
msdkvpp: do not hold too many input buffers in locked list
...
If the surface is locked before vpp, upstream takes the reference.
We do not need to take a reference for msdk in vpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1490 >
2020-08-13 01:43:19 +00:00
Xu Guangxin
ea0aac4c19
msdkvpp: refact, put input and output surface in diffrent list
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1490 >
2020-08-13 01:43:19 +00:00
Seungha Yang
185d2f56a3
d3d11: Handle newly added GST_VIDEO_TRANSFER_BT601
...
Use the value for mapping between DXGI_COLOR_SPACE_TYPE and GstVideoColorimetry.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1410 >
2020-08-12 15:18:56 +00:00
Seungha Yang
205ad89802
d3d11: Store more device information in context structure
...
It would be more informative for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1507 >
2020-08-12 14:04:55 +00:00
Seungha Yang
ff9157eef4
d3d11: Selected adapter index should be unsigned integer
...
If d3d11device was created successfully, the index of adapter
must not be negative value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1507 >
2020-08-12 14:04:55 +00:00
Víctor Manuel Jáquez Leal
122a3cc40c
va: h264dec: remove spurious comment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1499 >
2020-08-10 15:36:47 +00:00
Víctor Manuel Jáquez Leal
159562faf7
va: h264dec: check return value of gst_va_handle_set_context()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1499 >
2020-08-10 15:36:47 +00:00