Víctor Manuel Jáquez Leal
30281af83f
va: allocator: remove GstVideoInfo from GstVaBufferSurface
...
Don't store it them anymore since it is related with the negotiated stream and
not the concrete buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667 >
2020-10-09 16:34:56 +02:00
Víctor Manuel Jáquez Leal
67eb0a9440
va: remove GstVideoInfo parameter from _get_surface() functions
...
There shouldn't be need to retrieve GstVideoInfo per buffer or memory since it
is the same for all the negotiated stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667 >
2020-10-09 16:34:56 +02:00
Víctor Manuel Jáquez Leal
895fe44154
va: vpp: don't fetch video info from buffer
...
Instead of fetching video info from the buffer, use the already set ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667 >
2020-10-09 16:34:56 +02:00
Víctor Manuel Jáquez Leal
64eb0f0ed2
va: dec, vpp: don't get buffer size from allocators
...
Since buffer size is now ignored by bufferpool there's no need to get tha value
from the allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667 >
2020-10-09 16:34:56 +02:00
Víctor Manuel Jáquez Leal
e73b866fe0
va: pool: ignore size in config
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667 >
2020-10-09 16:34:56 +02:00
Seungha Yang
20d9283e3d
mfvideosrc: Use only the first video stream per device
...
Non-first video stream might not be working with current
implementation. It could be non-video (e.g., photo source) and then
ReadSample() might be blocked forever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1661 >
2020-10-08 20:43:58 +00:00
Seungha Yang
9279326d8a
decklink: Update doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Seungha Yang
b86e77e3a3
decklink: Update Windows headers with SDK 11.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Seungha Yang
94a9a8f836
decklink: Update OSX headers with SDK 11.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Tim
c6151f635f
decklink: Updated DeckLink SDK to 11.2 to support DeckLink 8K Pro
...
Updated Decklink SDK to version 11.2 in order to support newer cards like the Decklink 8K Pro.
This required to replace the duplex property by a profile property.
Profile values can be the following:
- bmdProfileOneSubDeviceFullDuplex
- bmdProfileOneSubDeviceHalfDuplex
- bmdProfileTwoSubDevicesFullDuplex
- bmdProfileTwoSubDevicesHalfDuplex
- bmdProfileFourSubDevicesHalfDuplex
Fixes #987
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Seungha Yang
9ecdfea7da
mfvideosrc: Fix invalid memory access when outputting jpeg
...
Don't access unknown-dangerous-nonsense address
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1662 >
2020-10-08 16:28:16 +00:00
Seungha Yang
0a454191c0
d3d11upload: Allow passthrough for system memory
...
... like how d3d11download and gl{upload,download} do.
This should've been part of the commit 9b72b04dad
but I missed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1645 >
2020-10-05 15:54:37 +00:00
Víctor Manuel Jáquez Leal
dcc4557dd6
va: allocator: refactor flush methods for both allocators
...
Since the logic is the same, it can be generalized in a single common
function.
Also the methods run the common function with a lock and signal the
buffers' conditional.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
37fa6df57d
va: allocator: refactor GstVaDmabufAllocator
...
Move code down to group it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
9c56c1b3e8
va: allocator: refactor GstVaBuffersurface
...
Move code up and add namespace to methods, and renaming
_creating_buffer_surface() to the canonical
gst_va_buffer_surface_new()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
734e2a74c4
va: implement pooled allocators
...
1. Allocators don't implement memory free() methods since all the memories will
implement dispose() returning FALSE
2. Memory/miniobject dispose() will act as memory release, enqueueing the
release memory
3. A new allocator's method prepare_buffer() which queries the released memory
queue and will add the requiered memories to the buffer.
4. Allocators added a GCond to synchronize dispose() and prepare_buffer()
5. A new allocator's method flush() which will free for real the memories.
While the bufferpool will
1. Remove all the memories at reset_buffer()
2. Implement acquire_buffer() calling allocator's prepare_buffer()
3. Implement flush_start() calling allocator's flush()
4. start() is disabled since it pre-allocs buffers but also calls
our reset_buffer() which will drop the memories and later the
buffers are ditched, something we don't want. This approach avoids
buffer pre-allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
d6f9cfc159
va: allocator: user gst_clear_object() for _buffer_surface_unref()
...
Event if this function is only used by gst_va_dmabuf_memories_setup(), it might
get reused later by GstVaDmabufAllocator's functions. This change makes the
function less fragile.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
10b3250175
va: allocator: renamed gst_va_dmabuf_memory_release()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
1617dcbe9e
va: allocator: renamed available_mems queue
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
303b1ea350
va: allocator: rename gst_va_dmabuf_allocator_setup_buffer()
...
Since it's related with GstVaDmabufAllocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
bb586b227f
va: allocator: calculated surface frame internally
...
Instead of using gst_buffer_get_size() just add the memory sizes reported by
exported fd.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
864f0c2ede
va: allocator: make GstVaMemory shareable
...
Renamed the first variable member of GstVaMemory from parent to mem in
order to avoid confusion with GstMemory's parent.
When freeing the structure, memory's parent is check in order to
decide if surfaces has to be destroyed or not, since only the parent
class have to destroy it.
Removed GST_MEMORY_FLAG_NO_SHARE in memory initialization, since it is
deprecated.
Implemented allocator's share virtual method which creates a new
shallow GstVaMemory structure based on the passed one which will be
it's parent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
0b6d8e73ec
va: allocator: remove copy method for GstVaMemory
...
Since the memory has to be shareable. That will be address in the next
commits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Víctor Manuel Jáquez Leal
43b950b252
va: allocator: remove va allocator mem_is_span() vmethod
...
Since it is the default by base class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626 >
2020-10-04 18:42:51 +00:00
Seungha Yang
a9314b4554
d3d11upload/d3d11download: Make use of staging buffer
...
... instead of direct cpu map for d3d11memory object. In this way,
we don't need per GstD3D11Memory staging texture.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627 >
2020-10-04 15:44:03 +00:00
Seungha Yang
f35eeaa02b
d3d11: Don't hold staging texture
...
Staging texture is used for memory transfer between system and
gpu memory. Apart from d3d11{upload,download} elements, however,
it should happen very rarely.
Before this commit, d3d11bufferpool was allocating at least one
staging texture in order to calculate cpu accessible memory size,
and it wasn't freed for later use of the texture unconditionally.
But it will increase system memory usage. Although GstD3D11memory
object is implemented so that support CPU access, most memory
transfer will happen in d3d11{upload,download} elements.
By this commit, the initial staging texture will be freed immediately
once cpu accessible memory size is calculated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627 >
2020-10-04 15:44:03 +00:00
Seungha Yang
899f9978f5
d3d11: Move to G_DECLARE_FINAL_TYPE
...
... and remove unnecessary forward declaration.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627 >
2020-10-04 15:44:03 +00:00
Víctor Manuel Jáquez Leal
666eedc215
va: caps: centralize caps feature discovering
...
These function were repeated in the different implemented
elements. This patch centralize them.
The side effect is dmabuf memory type is no longer checked with the
current VAContext, but assuming that dmabuf is a consequence of caps
negotiation from dynamic generated caps templates, where the context's
memory types are validated, there's no need to validate them twice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1644 >
2020-10-04 15:22:04 +00:00
Víctor Manuel Jáquez Leal
3653c19de3
va: filter: fix counter variable reuse
...
There was a bug reusing the counter variable i in nested loops. Also
the patch makes the code cleaner.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1643 >
2020-10-04 16:05:03 +02:00
Sebastian Dröge
97e648a738
decklink: Correctly order the different dependent mode tables
...
One was forgotten in 309f6187fe
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1617 >
2020-10-01 06:29:19 +00:00
Seungha Yang
a668de747f
wasapisrc: Make sure that wasapisrc produces data in loopback mode
...
An oddness of wasapi loopback feature is that capture client will not
produce any data if there's no outputting sound to corresponding
render client. In other words, if there's no sound to render,
capture task will stall. As an option to solve such issue, we can
add timeout to wake up from capture thread if there's no incoming data
within given time interval. But it seems to be glitch prone.
Another approach is that we can keep pushing silence data into
render client so that capture client can keep capturing data
(even if it's just silence).
This patch will choose the latter one because it's more straightforward
way and it's likely produce glitchless sound than former approach.
A bonus point of this approach is that loopback capture on Windows7/8
will work with this patch. Note that there's an OS bug prior to Windows10
when loopback capture client is running with event-driven mode.
To work around the bug, event signalling should be handled manually
for read thread to wake up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1588 >
2020-09-30 12:57:34 +00:00
Víctor Manuel Jáquez Leal
cd618f19b9
va: simplify VPP detection
...
Also the previous code failed if VPP was not present blacklisting the
plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1619 >
2020-09-30 10:49:39 +02:00
Haihao Xiang
df49114275
msdk: call vaExportSurfaceHandle() to get DMABuf FD
...
Compared to vaAcquireBufferHandle(), vaExportSurfaceHandle() may
provide the handle details, so we needn't call vaDeriveImage().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1353 >
2020-09-29 02:06:02 +00:00
He Junyan
709bec8f07
va: Implement the VA vp8 decoder.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587 >
2020-09-25 17:07:30 +08:00
He Junyan
ae8f97ae34
va: codestyle: Clear all tabs in header files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587 >
2020-09-25 17:07:10 +08:00
He Junyan
410938a069
va: util: make the _format_changed a common decoder function.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587 >
2020-09-25 17:07:05 +08:00
Víctor Manuel Jáquez Leal
00b73cfddd
va: h264dec: allocate output buffers according DPB size
...
Instead of allocating the maximal number of references for output
buffers, this patch reduces the memory foot print in many cases by
just allocating the output buffers required for the DPB.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1595 >
2020-09-24 20:35:49 +02:00
Víctor Manuel Jáquez Leal
755d769045
va: decoder: store output buffer rather than surface
...
GstVaDecodePicture stored the processed VASurfaceID, under the
assumption that the bufferpool with keep the referenced buffers, but
this approach is fragil.
This patch changes GstVaDecodePicture to store the output buffer,
which already contains its VASurfaceID, and provides a new method to
retrieve the VASurfaceID directly from picture.
Based on He Junyan <junyan.he@intel.com> patches for
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1594 >
2020-09-24 15:36:06 +02:00
Matthew Waters
6c26d0e1a0
vtdec/vulkan: use Shared storage mode for IOSurface textures
...
Fixes a debug assertion with i(Pad)OS 14:
'IOSurface textures must use MTLStorageModeShared'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1592 >
2020-09-23 23:21:50 +00:00
Víctor Manuel Jáquez Leal
990d1bfbce
va: vpp: global lock to handle shared buffers
...
Add a global mutex to exclusive access to shared stream buffers, such
as DMABufs or VASurfaces after a tee:
LIBVA_DRIVER_NAME=iHD \
gst-launch-1.0 v4l2src ! tee name=t t. ! queue ! \
vapostproc skin-tone=9 ! xvimagesink \
t. ! queue ! vapostproc ! xvimagesink
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
9845ec68dc
va: add vapostproc element
...
Video postprocessor for VA-API
Funcionalities: resize frames, change format, import buffers, apply
filters (such as denoise, sharpen, orientation, if driver offers them).
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
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
Matthew Waters
d1667da0c3
build: update for gl pkg-config file split
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1462 >
2020-08-07 20:22:41 +10:00
Sebastian Dröge
309f6187fe
decklink: Re-order modes enum for backwards compatibility with 1.16
...
The PAL/NTSC widescreen modes were added after 1.16 but inserted before
the HD modes, which changed the integer values of the enums.
Move them to the very end instead to keep backwards compatibility.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1048
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1492 >
2020-08-06 12:22:04 +03:00
Andrew Branson
8a51fdbc2c
androidmedia: ignore additional camera effects if not present
...
Fixes https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/283
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1470 >
2020-08-04 11:07:33 +00:00
Víctor Manuel Jáquez Leal
6cf03b21f6
va: h264dec: log if upstream pool is kept
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1489 >
2020-08-04 10:39:05 +02:00
Víctor Manuel Jáquez Leal
f332c35ec0
va: utils: fix precondition check for handle_context_query()
...
display paramater can be NULL, but if it's not, it has to be a
GstVaDisplay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1489 >
2020-08-04 10:39:05 +02:00
Víctor Manuel Jáquez Leal
62dacfd89a
va: allocator: support for GST_MAP_VA map flag
...
This flag will return the VASurface value at mapping
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
f7cfb422f1
va: context: instanciate VA display through GstContext
...
Add all the machinery to instanciate VA display through GstContext,
thus all va elements can share the same display and the user can set
a custom one.
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
0cc1dccd84
va: h264dec: don't copy frames if VAMemory capsfeature is negotiated
...
Otherwise the VASurfaceID is lost.
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
aa664a4eca
va: h264dec: copy render_device_path in klass
...
It it's not copied both cdata and klass, the string is lost. Thus
also it's freed from cdata when freeing it.
2020-08-03 19:33:01 +02:00