| 4719 | } |
| 4720 | |
| 4721 | static int vulkan_transfer_data_to(AVHWFramesContext *hwfc, AVFrame *dst, |
| 4722 | const AVFrame *src) |
| 4723 | { |
| 4724 | av_unused VulkanDevicePriv *p = hwfc->device_ctx->hwctx; |
| 4725 | |
| 4726 | switch (src->format) { |
| 4727 | #if CONFIG_CUDA |
| 4728 | case AV_PIX_FMT_CUDA: |
| 4729 | #ifdef _WIN32 |
| 4730 | if ((p->vkctx.extensions & FF_VK_EXT_EXTERNAL_WIN32_MEMORY) && |
| 4731 | (p->vkctx.extensions & FF_VK_EXT_EXTERNAL_WIN32_SEM)) |
| 4732 | #else |
| 4733 | if ((p->vkctx.extensions & FF_VK_EXT_EXTERNAL_FD_MEMORY) && |
| 4734 | (p->vkctx.extensions & FF_VK_EXT_EXTERNAL_FD_SEM)) |
| 4735 | #endif |
| 4736 | return vulkan_transfer_data_from_cuda(hwfc, dst, src); |
| 4737 | #endif |
| 4738 | default: |
| 4739 | if (src->hw_frames_ctx) |
| 4740 | return AVERROR(ENOSYS); |
| 4741 | else |
| 4742 | return vulkan_transfer_frame(hwfc, (AVFrame *)src, dst, 1); |
| 4743 | } |
| 4744 | } |
| 4745 | |
| 4746 | #if CONFIG_CUDA |
| 4747 | static int vulkan_transfer_data_to_cuda(AVHWFramesContext *hwfc, AVFrame *dst, |
nothing calls this directly
no test coverage detected