He Junyan
5aa2239c4b
codecs: AV1: Ensure current picture and frame to NULL before return
...
The current code fails to clear the current picture and frame pointer if
some flow error such as EOS happens. This causes the double free issue in
gst_av1_decoder_reset().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5104 >
2023-07-26 16:27:43 +08:00
Fabian Orccon
216f9d66a0
h265parser: Write Unregistered User Data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Fabian Orccon
dd47fa53d8
h265parse: Parse SEI unregistered user data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Seungha Yang
9a902afce4
codecs: Use release_frame() instead of drop_frame()
...
drop_frame() will post QoS message which is not intended here
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5024 >
2023-07-13 13:48:46 +00:00
Seungha Yang
45766f2448
codecs: Propagate downstream flow ERROR
...
Don't translate downstream flow ERROR to OK
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5024 >
2023-07-13 13:48:46 +00:00
Seungha Yang
b18bd5ec2b
d3d11bufferpool: Fix heavy CPU usage in case of fixed-size pool
...
There's no reason to release GstMemory manually at all.
If we do release GstMemory, corresponding GstBuffer will be
discarded by GstBufferPool baseclass because the size is changed
to zero.
Actual cause of heavy CPU usage in case of fixed-size pool
(i.e., decoder output buffer pool) and if we remove GstMemory from
GstBuffer is that GstBufferPool baseclass is doing busy wait in acquire_buffer()
for some reason. That needs to be investigated though, discarding
and re-alloc every GstBuffer is not ideal already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4935 >
2023-06-27 23:25:09 +00:00
Seungha Yang
9aa1d683a2
d3d11poolallocator: Initialize flush flag with TRUE
...
If it's not active state, it should return flushing from acquire
method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4935 >
2023-06-27 23:25:09 +00:00
He Junyan
6accb7a1f5
va: Only change video format in gst_va_video_info_from_dma_info()
...
The current way of using gst_video_info_set_format() will change all
fields of the GstVideoInfo. We only need to change its format, stride
and offset fields.
In order to keep the consistency with th common drm API, we rename the
gst_va_video_info_from_dma_info() into gst_va_dma_drm_info_to_video_info().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4883 >
2023-06-26 16:18:23 +00:00
Stéphane Cerveau
2974c18a5c
codecparsers: keep naming consistency in GST_H264_LEVEL
...
GST_H264_LEVEL_2 should be used instead of GST_H264_LEVEL_2_0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4737 >
2023-06-26 10:47:36 +00:00
Stéphane Cerveau
c98f5c2bf4
vkvideoutils: fix memory leak in structure's string
...
Retrieve a const char* from structure for "chromat-format" and
avoid extra mem copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
fc0ee45fb5
vkdevice: fix beta extensions symbol
...
Missing 's' to VK_ENABLE_BETA_EXTENSIONS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
c1149d60c1
vkphysicaldevice: fix leak with queue_family_query_props
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
6920166af4
vulkan: fix C2099 error with VS2019
...
As VK_FORMAT_FEATURE_2_xxx are defined as static const variable, the
vscoce C compiler prevents the initialization of the vk_usage_map
structure with error "C2099: initializer is not a constant".
Init the structure separately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Seungha Yang
de749fa356
cuda: Introduce GST_CUDA_CRITICAL_ERRORS env to abort on critical error
...
Adding GST_CUDA_CRITICAL_ERRORS env variable so that program can be
terminated on unrecoverable error.
Example)
GST_CUDA_CRITICAL_ERRORS=2,700 gst-launch-1.0 ...
In this example, CUDA_ERROR_OUT_OF_MEMORY(2) and
CUDA_ERROR_ILLEGAL_ADDRESS(700) are registered as critical error
and program will be aborted on those errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4729 >
2023-06-18 16:44:43 +00:00
Seungha Yang
58b166453d
cuda: Move cuda debug helper function to .cpp
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4729 >
2023-06-18 16:44:43 +00:00
Benjamin Gaignard
465d146864
codecparser: AV1: fix reference frame ordering
...
In AV1 specifications earliest_order_hint is initialized at
beginning of the process and not before each frame ordering.
FFMPEG parser does the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1011 >
2023-06-16 01:30:40 +00:00
Seungha Yang
5b6ecf359e
va: Fix Windows build
...
DRM_FORMAT_MOD_LINEAR and DRM_FORMAT_MOD_INVALID are not defined
on Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4864 >
2023-06-15 21:14:29 +00:00
Seungha Yang
842805d7c6
av1decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
77b9e1351a
mpeg2decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
965e566156
vp9decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
7d2beab9b1
vp8decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
a88d90b777
d3d11: Log device removed reason
...
... and live objects. It could be useful hint for GPU debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4170 >
2023-06-14 06:23:12 +00:00
Víctor Manuel Jáquez Leal
06a2b2c7d9
va: dmabuf allocator to use GstVideoInfoDmaDrm
...
Change the internal GstVideoInfo structure in the GstVaDmabufAllocator to
GstVideoInfoDmaDrm in order to keep track of the exported DRM format by the
driver, and thus removing the DRMModifier quark attached as qdata in the
GstMemory. Though, the exposed API isn't updated yet; that has to go in a
second iteration.
Also this patch clean up some code (remove an unused buffer size assignation)
and fix some typos in documentation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
e00e64116a
va: Add a helper function to detect the surface modifier
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
a01f2f0206
va: Lower the message level for va_export_surface_to_dmabuf()
...
Some surface formats such as GST_VIDEO_FORMAT_Y42B and GST_VIDEO_FORMAT_RGB
can be created but can not be exported as DMA buffer. You can not say that
this is a driver bug because the driver may never want to share this kind of
surface out of libva.
And this function will be used to detect modifiers later, so the error message
will be annoying.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
7166fd3863
va: Extend the va_create_surfaces() function to accept modifiers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
994ab957c1
va: Add a helper function to convert video drm info to video info
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:36 +00:00
He Junyan
547f3e8622
va: Map drm fourcc into va fourcc in video format
...
The fourcc defined in va.h and drm_fourcc.h sometimes is not identical.
For example, the I420 format is defined as "I420" in va.h but defined
as "YU12" in drm_fourcc.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:36 +00:00
Seungha Yang
e422a991f3
h265decoder: Calculate DPB size based on level
...
As specified in "A.4 Tiers and levels", calculate DPB size based
on level in order to avoid over preallocated DPB
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4840 >
2023-06-13 02:57:06 +00:00
Seungha Yang
15735a4ef3
d3d11converter: Add support for premultiplied alpha
...
Adding "src-alpha-mode" and "dest-alpha-mode" properties
and performs premultiplied alpha conversion if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4825 >
2023-06-10 18:12:58 +00:00
Seungha Yang
1aa9e74aaf
cudadownload: Always download CUDA memory if it's bound to decoder
...
Decoder bounded CUDA memory is allocated by driver and the pool size
is fixed. Since we don't know how many buffers would be held by
downstream non-CUDA element, we should download such CUDA memory
and release it back to decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4810 >
2023-06-08 22:27:06 +00:00
Víctor Manuel Jáquez Leal
53860147c6
va: bump libva version to 1.12
...
Remove all checks in gstva for all version lower than 1.12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4781 >
2023-06-08 08:50:04 +00:00
Seungha Yang
1e5343f0c6
d3d11memory: Add support for resource sharing via NT handle
...
Adding gst_d3d11_memory_get_nt_handle() method so that GstD3D11Memory
can hold shareable NT handle and for easy reuse of it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4774 >
2023-06-06 17:54:44 +00:00
Víctor Manuel Jáquez Leal
e074cb55f7
va: remove unused parameters in internal function
...
gst_va_buffer_surface_new() don't use neither format, width nor height.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4768 >
2023-06-04 19:16:53 +02:00
Víctor Manuel Jáquez Leal
06d793033d
vulkan/format: use basic features (v1) as fallback
...
if vkGetPhysicalDeviceFormatProperties2 isn't available.
This approach assumes that, for basic features flags symbols,
VkFormatFeatureFlagBits and VkFormatFeatureFlagBits2 are binary equivalent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 >
2023-06-01 13:58:47 +00:00
Matthew Waters
0a74a967e3
vulkan/format: don't rely on vulkan header version for function availability
...
e.g. android will have update vulkan.h headers but old platforms will
not contain the function and will result in a link error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 >
2023-06-01 13:58:47 +00:00
Mathieu Duponchelle
211928ca41
webrtc/nice: put usage of OPTION_CONSENT_FRESHNESS behind check
...
See https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/257
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4750 >
2023-06-01 00:42:28 +00:00
Colin Kinloch
82c449ce00
waylandsink: Emit "map" signal boarder surface is ready
...
This allows gtkwaylandsink to queue a draw of its gtk widget at the
correct time, avoiding a race.
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4722 >
2023-05-31 18:57:56 +00:00
Víctor Manuel Jáquez Leal
8b75e5fb57
vkvideoutils: fix code-style
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 10:08:27 +02:00
Víctor Manuel Jáquez Leal
365454790a
vkphysicaldevice: fetch queue family query result support
...
And merged in a single structure the queue family operations report.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 10:08:27 +02:00
Víctor Manuel Jáquez Leal
e2a40c58bf
vkimagebufferpool: chain the correct structure
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 09:45:07 +02:00
Víctor Manuel Jáquez Leal
e9414b9582
vkvideoutils: fix bug for chroma string comparison
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 09:45:07 +02:00
Víctor Manuel Jáquez Leal
8670a023f1
vkimagebufferpool: prepare new allocated buffers
...
This means change initial memory undefined layout and access to the ones
required for their usage.
This is only used if VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME is available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:30 +00:00
Víctor Manuel Jáquez Leal
e177080bec
vulkan: number of memories in buffer rather than number of planes
...
New vulkan formats don't match the number of planes with the number of memories
attached to the buffer. This patch changes the pattern of using planes for
traverse the memories with the number of attached memories.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
565fe3291e
vkutils: add gst_vulkan_get_or_create_image_view_with_info()
...
It's a generalization of the original gst_vulkan_get_or_create_image_view().
The reason for passing the whole VkImageViewCreateInfo structure rather than
just the missing fields, is because VkImageSubresourceRange and
VkComponentMapping can be different and those are most of VkImageViewCreateInfo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
bb29b4dfec
vkdevice: enable device optional extensions
...
Enable before-hand what the user might use.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d7bbcffe14
vkformat: add VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
b1321f78d3
vkswapper: use gst_vulkan_format_to_video_format()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d84926b60f
vkformat: add gst_vulkan_format_to_video_format()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
ce7256e0d3
vulkan: use gst_vulkan_format_get_aspect()
...
In order to use it, without depending in a previous calling of
_create_info_from_args(), VkFormat as input parameter to
gst_vulkan_image_memory_init() was added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
b8e908131d
vkformat: add gst_vulkan_format_get_aspect()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
26d00ba0cc
vkimagebufferpool: fail if image cannot be allocated
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d91c17264c
vkimagebufferpool: gst_vulkan_image_buffer_pool_config_set_decode_caps()
...
This is going to be used when the pool is used by a video decoder for
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, since the frame allocation needs the
VkVideoProfileInfoKHR, and for that here GstCaps is used to wire it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
07271fc648
vkvideoutils: add gst_vulkan_video_profile_{to/from}_caps()
...
Add this new source file with utils for video profile mapping with GstCaps.
These method is used to pass this information along GStreamer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
c7c5dedd7f
vkimagebufferpool: use gst_vulkan_image_memory_alloc_with_image_info()
...
As the pool will be only used for images with usage
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR only one layer has to be allocated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
83e73a2f59
vulkan: find memory type index with requirements
...
The specification says:
VUID-vkAllocateMemory-pAllocateInfo-01713
must pAllocateInfo->allocationSize be less than or equal to
VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex =
VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex
as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that
device was created from.
Though this can be catch by the validation layer, the requested frame size
depends on the use case so it's better to check this restriction by our code.
This patch also makes use of this new function to find memory type index,
and removes the unused function to find memory type index, which, as GstVulkan is
considered unstable, we can do it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
4dd0fd6797
vkimagebufferpool: use gst_vulkan_format_from_video_info_2()
...
To get the number of images and its Vulkan formats for the GStreamer format.
Also it gets the basic image usage by default if it's not defined. It fails if the
video format is not supported.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
35dbd9f92c
vkformat: add gst_vulkan_format_from_video_info_2()
...
The purpose of this function is to get more info about the mapped Vulkan format
from the GStreamer format, since they can be multiple Vulkan formats for one
GStreamer format.
Also a Vulkan format may have certain usage and aspects that must be verified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
14dd6aac16
vkformat: move gst_vulkan_format_from_video_info()
...
Moved gst_vulkan_format_from_video_info() from gstvkimagememory to gstvkformat
in order to centralize the video format operations in a single source file.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
b1c166b53c
vkimagebufferpool: pass usage and memory properties
...
Pass, in config structure, usage and memory properties, assigning proper
defaults if they aren't set. This parameters are used in image memory
allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
7b62c26139
vkdevice: add gst_vulkan_device_queue_family_indices()
...
This method will return a GArray with all the queue family indices created by
the device when it's opened. This array will be used by VkImageCreateInfo to
allocate a new Vulkan image.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
ea2bd1882f
vkdevice: add programming parameters verification
...
To `gst_vulkan_device_foreach_queue()`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
1e2ff519c6
vkbuffermemory: add gst_vulkan_buffer_memory_alloc_with_buffer_info()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
64ba7fb2eb
vkimagememory: gst_vulkan_image_memory_alloc_with_image_info()
...
This new method instead of passing a bunch of variables which will fill
`VkImageCreateInfo`, the method accepts this whole structure, so the caller can
customize it as much as they want.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
5f5249cf73
vkimagememory: look up for Vulkan format using a static table
...
Replace the switch structure with explicit and extendable static table.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
1458c31031
vkdevice: enable multiple queues per device
...
Originally the opened device only created one queue of one family queue, to say
graphics one. This approach felt short when other queue family is required not
shared with the graphics queue family, for example video decoding.
This new approach proposes to create those queues with supported families. For
now, only video decoding and encoder are created, if they are available.
In order to hold multiple queues opened, an array of VkDeviceQueueCreateInfo is
held along the live the device object, because it's used to traverse or get the
opened queues.
The algorithm to choose which queues create (or open) is to look for the queue
with more family bits, which also supports the one we are requesting, thus
minimizing the number of global queues of a certain family to create.
Nonetheless, the number of queues to open per family is set to be all of them,
widening the possibility of parallelism.
Also, this commit do a cosmetic refactor the assigning the physical device
nearer where it's used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
25140499fc
vkdevice: enable features from physical device
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
9e807b58a0
vkphysicaldevice: add gst_vulkan_physical_device_get_features()
...
gst_vulkan_physical_device_get_features() is a private function to access to the
available features in the device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:28 +00:00
Víctor Manuel Jáquez Leal
83160fb47c
vkphysicaldevice: fetch queue family video codec operations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:28 +00:00
Víctor Manuel Jáquez Leal
dde60fab37
vkdebug: add video queue flags strings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:28 +00:00
Víctor Manuel Jáquez Leal
d03df074f7
vulkan: detect vulkan video extensions
...
Also adds a meson option to enable them.
The symbol GST_VULKAN_HAVE_VIDEO_EXTENSIONS is an alias of
defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 238
if the option is allowed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:28 +00:00
Haihua Hu
78d9d8478d
gstplay: fix critical log when enable playbin3
...
when play rtsp stream with playbin3 enabled, there are some critical logs:
g_object_get_is_valid_property: object class 'GstPlayBin3' has no property named 'n-video'
g_object_get_is_valid_property: object class 'GstPlayBin3' has no property named 'n-audio'
g_object_get_is_valid_property: object class 'GstPlayBin3' has no property named 'n-text'
self->collection could be NULL when READY->PAUSED if the pipeline
is live, then it will fallback to query playbin2's property,
we can call gst_play_streams_info_create_from_collection
directly, it will check self->collection internal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4460 >
2023-05-18 10:27:29 +00:00
Seungha Yang
e9d8bf7532
h264parser: Define level enum values
...
... and stop duplicating it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4595 >
2023-05-17 21:29:25 +00:00
Elliot Chen
f722d9c428
gstplay: avoid getting property of playbin2 if subtitle_sid is null
...
There is a probability of getting "current-text" property
when play with playbin3, and this property is available
only in playbin2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4106 >
2023-05-17 15:24:29 +08:00
Piotr Brzeziński
f60c87769f
macos: Remove old NSApp workaround related code
...
This is no longer needed since the introduction of `gst_macos_main()` in 1.22.
Before that existed, we had a patch for GLib in Cerbero, which did work but made it
impossible to update GLib at all. The code being removed was a fail-safe in case of
running without said patch being applied. It's no longer needed, since for macOS
we just wrap our GStreamer with an NSApplication using `gst_macos_main()`.
Warnings will be displayed if no NSApp/NSRunLoop is found wherever needed,
pointing the user towards using the new API.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4366 >
2023-05-11 20:30:19 +02:00
Seungha Yang
74b7493fd3
h264decoder: Drop nonexisting picture silently without error
...
If end_picture() was not successful, we do drop corresponding
GstVideoCodecFrame and therefore gst_video_decoder_get_frame()
will return nullptr which is expected behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4561 >
2023-05-09 17:02:48 +00:00
Matthew Waters
8ca6547f49
webrtc/nice: support consent-freshness RFC7675
...
As is supported by libwebrtc already. This allows ICE components to
transition to failed if consent to send from the peer is revoked or if
multiple consent packets are lost.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4542 >
2023-05-08 13:50:44 +00:00
Seungha Yang
7b6f7e6e36
d3d11memory: Don't clear wrapped texture memory
...
The external texture may hold already rendered scene and therefore
it should not be cleared in alloc method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4554 >
2023-05-05 13:18:06 +00:00
Víctor Manuel Jáquez Leal
6258914b1d
vkdebug: fix type compilation warning
...
Since VkMemoryHeapFlagBits is an enum, while VkMemoryHeapFlags is the expected
alias of VkFlags.
This issue is spotted by warning of gcc 13.1.1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4547 >
2023-05-05 10:05:40 +00:00
Philippe Normand
d9c853f165
dtlstransport: Keep strong ref of dtls encoder/decoder
...
Otherwise get_property() calls for the client, certificate and/or
remote-certificate properties might access moved objects, since the encoder and
decoder are added to the transportsendbin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4519 >
2023-05-02 03:54:53 +00:00
Nirbheek Chauhan
479f0175b5
meson: Add feature options for optional va deps libdrm and gudev
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428 >
2023-04-28 15:22:31 +05:30
Nirbheek Chauhan
55ee0635d3
meson: Fix libdrm and vaapi configure checks
...
We do not need fallback: for libdrm checks because the wrap file
already has a [provide] section.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428 >
2023-04-28 15:21:10 +05:30
Víctor Manuel Jáquez Leal
3a09e700e6
vkswapper: missing image barrier after vkCmdClearColorImage
...
After clear color image command the swapper image needs to add a barrier before
copying the buffer to display on it. Otherwise a potential synchronization
problem might occur.
Fixes #2403
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4501 >
2023-04-28 00:59:57 +00:00
Víctor Manuel Jáquez Leal
f12e052e54
vulkan: use VK_QUEUE_FAMILY_IGNORED in barriers
...
Instead of using the valid queue family 0 (zero) if there aren't queue transfers
there's no need to specify a not validated queue family, but just
VK_QUEUE_FAMILY_IGNORED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4501 >
2023-04-28 00:59:57 +00:00
Seungha Yang
4ed3c46de7
cudamemory: Fix for semi planar YUV memory size decision
...
UV plan of the semi planar format requires only half of Y plane size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4502 >
2023-04-27 20:55:53 +00:00
Thibault Saunier
6e305a471f
meson: Add CameraBin and Va girs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479 >
2023-04-25 02:57:55 +00:00
Martin Nordholts
2fed3bf6c4
webrtc: Plug leaks of resolved ICE addresses
...
The addresses we get from `resolve_host_finish()` (via
`resolve_host_async()`, `resolve_host_main_cb()`, `on_resolve_host()`,
`g_resolver_lookup_by_name_finish()`) must be freed. Otherwise we leak
memory.
Leak found and confirmed fixed with GCC AddressSanitizer.
Change-Id: If32d24452d626234f01b253b77a7d6d16eac1cee
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4469 >
2023-04-24 06:23:30 +00:00
Thibault Saunier
b14e675a27
gir: Checkout all .gir files and check that they are updated on the CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010 >
2023-04-22 09:32:32 -04:00
Seungha Yang
c7c380abb1
d3d11memory: Remove redundant bind flag validation
...
It has been validated outside of each function already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4455 >
2023-04-20 18:05:27 +00:00
Seungha Yang
bb5c151336
h264decoder: Enable low-latency bumping in case of pic_order_cnt_type 2
...
In case of POC type 2, output order is equal to decoding order
(no frame reordering)
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2447
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
73daa0e0ad
h264decoder: Fix for latency report
...
The minimum latency answered by an element should be the maximum
latency from the element's perspective. Also consider max_reorder_frames
update as a sequence change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
e0c2578f73
h264decoder: Ignore invalid max_num_reorder_frames in VUI
...
It's not fatal and can be ignored
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
f439481d8e
h265decoder: Fix for latency report when src caps is not configured
...
Depending on subclass, negotiation might not happen on new_sequence()
Fixing regression introduced by the commit
4a4823b972
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
560fd4834c
h264decoder: Fix for latency report when src caps is not configured
...
Depending on subclass, negotiation might not happen on new_sequence()
Fixing regression introduced by the commit
4a4823b972
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Sebastian Dröge
b90c0bd79b
vulkan: Use new GLib APIs as suggested by comments
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4349 >
2023-04-06 00:26:13 +00:00
Edward Hervey
8e51399334
mpegts: Fix include headers
...
<gst/mpegts/mpegts.h> is the unique header to use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4336 >
2023-04-04 20:54:50 +00:00
Matthew Waters
54acb36689
vulkan/wayland: use xdg_wm_base when available
...
wl_shell is deprecated and has been removed from some compositors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Matthew Waters
edffae31dd
vulkan/wayland: provide a dummy registry global_remove function
...
Even if we don't care about any global objects being removed, wayland
will still error if globals are removed without a corresponding listener
set up for them. e.g. wl_output hotplugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Matthew Waters
21cff6b134
vulkan/wayland: rename debug category to mention wayland instead of XCB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Brad Hards
4e14bac1ff
mpegts: implement metadata in PES packets
...
Co-authored-by: Andoni Morales Alastruey <ylatuya@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1312 >
2023-03-30 12:16:52 +00:00