Go to the source code of this file.
|  | 
| static int | vk_prores_start_frame (AVCodecContext *avctx, const AVBufferRef *buffer_ref, av_unused const uint8_t *buffer, av_unused uint32_t size) | 
|  | 
| static int | vk_prores_decode_slice (AVCodecContext *avctx, const uint8_t *data, uint32_t size) | 
|  | 
| static int | vk_prores_end_frame (AVCodecContext *avctx) | 
|  | 
| static int | add_push_data (FFVulkanShader *shd) | 
|  | 
| static int | init_shader (AVCodecContext *avctx, FFVulkanContext *s, FFVkExecPool *pool, FFVkSPIRVCompiler *spv, FFVulkanShader *shd, const char *name, const char *entrypoint, FFVulkanDescriptorSetBinding *descs, int num_descs, const char *source, int local_size, int interlaced) | 
|  | 
| static void | vk_decode_prores_uninit (FFVulkanDecodeShared *ctx) | 
|  | 
| static int | vk_decode_prores_init (AVCodecContext *avctx) | 
|  | 
| static void | vk_prores_free_frame_priv (AVRefStructOpaque _hwctx, void *data) | 
|  | 
◆ vk_prores_start_frame()
◆ vk_prores_decode_slice()
  
  | 
        
          | static int vk_prores_decode_slice | ( | AVCodecContext * | avctx, |  
          |  |  | const uint8_t * | data, |  
          |  |  | uint32_t | size |  
          |  | ) |  |  |  | static | 
 
 
◆ vk_prores_end_frame()
◆ add_push_data()
◆ init_shader()
  
  | 
        
          | static int init_shader | ( | AVCodecContext * | avctx, |  
          |  |  | FFVulkanContext * | s, |  
          |  |  | FFVkExecPool * | pool, |  
          |  |  | FFVkSPIRVCompiler * | spv, |  
          |  |  | FFVulkanShader * | shd, |  
          |  |  | const char * | name, |  
          |  |  | const char * | entrypoint, |  
          |  |  | FFVulkanDescriptorSetBinding * | descs, |  
          |  |  | int | num_descs, |  
          |  |  | const char * | source, |  
          |  |  | int | local_size, |  
          |  |  | int | interlaced |  
          |  | ) |  |  |  | static | 
 
 
◆ vk_decode_prores_uninit()
◆ vk_decode_prores_init()
◆ vk_prores_free_frame_priv()
◆ ff_source_common_comp
      
        
          | const char* ff_source_common_comp | 
      
 
 
◆ ff_source_prores_reset_comp
      
        
          | const char* ff_source_prores_reset_comp | 
      
 
 
◆ ff_source_prores_vld_comp
      
        
          | const char* ff_source_prores_vld_comp | 
      
 
 
◆ ff_source_prores_idct_comp
      
        
          | const char* ff_source_prores_idct_comp | 
      
 
 
◆ ff_vk_dec_prores_desc
Initial value:= {
    .queue_flags = VK_QUEUE_COMPUTE_BIT,
}
Definition at line 32 of file vulkan_prores.c.
 
 
◆ ff_prores_vulkan_hwaccel
Initial value:= {
    .p.name                = "prores_vulkan",
}
Definition at line 523 of file vulkan_prores.c.
 
 
 
static void vk_prores_free_frame_priv(AVRefStructOpaque _hwctx, void *data)
static int vk_prores_end_frame(AVCodecContext *avctx)
@ AV_PIX_FMT_VULKAN
Vulkan hardware images.
#define HWACCEL_CAP_THREAD_SAFE
static int vk_prores_start_frame(AVCodecContext *avctx, const AVBufferRef *buffer_ref, av_unused const uint8_t *buffer, av_unused uint32_t size)
static int vk_prores_decode_slice(AVCodecContext *avctx, const uint8_t *data, uint32_t size)
static int vk_decode_prores_init(AVCodecContext *avctx)
#define HWACCEL_CAP_ASYNC_SAFE
Header providing the internals of AVHWAccel.
int ff_vk_decode_uninit(AVCodecContext *avctx)
Free decoder.
void(* flush)(AVBSFContext *ctx)
int ff_vk_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
Initialize hw_frames_ctx with the parameters needed to decode the stream using the parameters from av...
int(* init)(AVBSFContext *ctx)
static void uninit(AVBSFContext *ctx)
void ff_vk_decode_flush(AVCodecContext *avctx)
Flush decoder.
the pkt_dts and pkt_pts fields in AVFrame will work as usual Restrictions on codec whose streams don t reset across will not work because their bitstreams cannot be decoded in parallel *The contents of buffers must not be read before as well as code calling up to before the decode process starts Call have update_thread_context() run it in the next thread. Add AV_CODEC_CAP_FRAME_THREADS to the codec capabilities. There will be very little speed gain at this point but it should work. Use ff_thread_get_buffer()(or ff_progress_frame_get_buffer() in case you have inter-frame dependencies and use the ProgressFrame API) to allocate frame buffers. Call ff_progress_frame_report() after some part of the current picture has decoded. A good place to put this is where draw_horiz_band() is called - add this if it isn 't called anywhere
int ff_vk_params_invalidate(AVCodecContext *avctx, int t, const uint8_t *b, uint32_t s)
Removes current session parameters to recreate them.
int ff_vk_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
Synchronize the contexts between 2 threads.