mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-13 18:40:03 +01:00
vulkan_decode: add queue_flags field to specify queue used
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
const FFVulkanDecodeDescriptor ff_vk_dec_av1_desc = {
|
const FFVulkanDecodeDescriptor ff_vk_dec_av1_desc = {
|
||||||
.codec_id = AV_CODEC_ID_AV1,
|
.codec_id = AV_CODEC_ID_AV1,
|
||||||
.decode_extension = FF_VK_EXT_VIDEO_DECODE_AV1,
|
.decode_extension = FF_VK_EXT_VIDEO_DECODE_AV1,
|
||||||
|
.queue_flags = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
|
||||||
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR,
|
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR,
|
||||||
.ext_props = {
|
.ext_props = {
|
||||||
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME,
|
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME,
|
||||||
|
|||||||
@@ -1116,7 +1116,7 @@ int ff_vk_decode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
/* Create queue context */
|
/* Create queue context */
|
||||||
vk_desc = get_codecdesc(avctx->codec_id);
|
vk_desc = get_codecdesc(avctx->codec_id);
|
||||||
ctx->qf = ff_vk_qf_find(s, VK_QUEUE_VIDEO_DECODE_BIT_KHR, vk_desc->decode_op);
|
ctx->qf = ff_vk_qf_find(s, vk_desc->queue_flags, vk_desc->decode_op);
|
||||||
if (!ctx->qf) {
|
if (!ctx->qf) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Decoding of %s is not supported by this device\n",
|
av_log(avctx, AV_LOG_ERROR, "Decoding of %s is not supported by this device\n",
|
||||||
avcodec_get_name(avctx->codec_id));
|
avcodec_get_name(avctx->codec_id));
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
typedef struct FFVulkanDecodeDescriptor {
|
typedef struct FFVulkanDecodeDescriptor {
|
||||||
enum AVCodecID codec_id;
|
enum AVCodecID codec_id;
|
||||||
FFVulkanExtensions decode_extension;
|
FFVulkanExtensions decode_extension;
|
||||||
|
VkQueueFlagBits queue_flags;
|
||||||
VkVideoCodecOperationFlagBitsKHR decode_op;
|
VkVideoCodecOperationFlagBitsKHR decode_op;
|
||||||
|
|
||||||
VkExtensionProperties ext_props;
|
VkExtensionProperties ext_props;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
const FFVulkanDecodeDescriptor ff_vk_dec_h264_desc = {
|
const FFVulkanDecodeDescriptor ff_vk_dec_h264_desc = {
|
||||||
.codec_id = AV_CODEC_ID_H264,
|
.codec_id = AV_CODEC_ID_H264,
|
||||||
.decode_extension = FF_VK_EXT_VIDEO_DECODE_H264,
|
.decode_extension = FF_VK_EXT_VIDEO_DECODE_H264,
|
||||||
|
.queue_flags = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
|
||||||
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
|
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
|
||||||
.ext_props = {
|
.ext_props = {
|
||||||
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME,
|
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME,
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
const FFVulkanDecodeDescriptor ff_vk_dec_hevc_desc = {
|
const FFVulkanDecodeDescriptor ff_vk_dec_hevc_desc = {
|
||||||
.codec_id = AV_CODEC_ID_HEVC,
|
.codec_id = AV_CODEC_ID_HEVC,
|
||||||
.decode_extension = FF_VK_EXT_VIDEO_DECODE_H265,
|
.decode_extension = FF_VK_EXT_VIDEO_DECODE_H265,
|
||||||
|
.queue_flags = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
|
||||||
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,
|
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,
|
||||||
.ext_props = {
|
.ext_props = {
|
||||||
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME,
|
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME,
|
||||||
|
|||||||
Reference in New Issue
Block a user