]> git.sesse.net Git - ffmpeg/commitdiff
hwcontext_vulkan: correctly access the p->extensions bitmask
authorLynne <dev@lynne.ee>
Tue, 24 Nov 2020 13:05:22 +0000 (14:05 +0100)
committerLynne <dev@lynne.ee>
Wed, 25 Nov 2020 22:06:36 +0000 (23:06 +0100)
Its a 64-bit bitfield being put directly into an int.

libavutil/hwcontext_vulkan.c

index 656a1cc69590e6ad9e0a2da97301b2090dd5bae3..7156952339e0d97b48e83a5b2b68b65bc2fb1e07 100644 (file)
@@ -1965,7 +1965,7 @@ static int vulkan_map_from_drm_frame_desc(AVHWFramesContext *hwfc, AVVkFrame **f
     VulkanFramesPriv *fp = hwfc->internal->priv;
     AVVulkanFramesContext *frames_hwctx = hwfc->hwctx;
     const AVPixFmtDescriptor *fmt_desc = av_pix_fmt_desc_get(hwfc->sw_format);
-    const int has_modifiers = p->extensions & EXT_DRM_MODIFIER_FLAGS;
+    const int has_modifiers = !!(p->extensions & EXT_DRM_MODIFIER_FLAGS);
     VkSubresourceLayout plane_data[AV_NUM_DATA_POINTERS] = { 0 };
     VkBindImageMemoryInfo bind_info[AV_NUM_DATA_POINTERS] = { 0 };
     VkBindImagePlaneMemoryInfo plane_info[AV_NUM_DATA_POINTERS] = { 0 };
@@ -2997,7 +2997,7 @@ static int vulkan_transfer_data(AVHWFramesContext *hwfc, const AVFrame *vkf,
     int log2_chroma = av_pix_fmt_desc_get(swf->format)->log2_chroma_h;
 
     int host_mapped[AV_NUM_DATA_POINTERS] = { 0 };
-    const int map_host = p->extensions & EXT_EXTERNAL_HOST_MEMORY;
+    const int map_host = !!(p->extensions & EXT_EXTERNAL_HOST_MEMORY);
 
     if ((swf->format != AV_PIX_FMT_NONE && !av_vkfmt_from_pixfmt(swf->format))) {
         av_log(hwfc, AV_LOG_ERROR, "Unsupported software frame pixel format!\n");