FFmpeg
Loading...
Searching...
No Matches
ffv1_vulkan.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Lynne <dev@lynne.ee>
3 *
4 * This file is part of FFmpeg.
5 *
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#ifndef AVCODEC_FFV1_VULKAN_H
22#define AVCODEC_FFV1_VULKAN_H
23
24#include "libavutil/vulkan.h"
25#include "ffv1.h"
26
28 VkSpecializationInfo *sl,
29 enum AVPixelFormat sw_format);
30
32
33typedef struct FFv1ShaderParams {
34 VkDeviceAddress slice_data;
35
36 uint32_t extend_lookup[8];
37 uint16_t context_count[8];
38
39 int fmt_lut[4];
40 uint16_t img_size[2];
41
43 uint32_t key_frame;
44 uint32_t crcref;
46
47 /* Encoder-only */
48 int sar[2];
52
53 /* Decoder-only */
54 uint32_t remap_allowed;
56
57#endif /* AVCODEC_FFV1_VULKAN_H */
#define f(width, name)
Definition cbs_vp8.c:236
#define s(width, name)
Definition cbs_vp9.c:198
FF Video Codec 1 (a lossless codec)
int ff_ffv1_vk_init_consts(FFVulkanContext *s, FFVkBuffer *vkb, FFV1Context *f)
Definition ffv1_vulkan.c:85
void ff_ffv1_vk_set_common_sl(AVCodecContext *avctx, FFV1Context *f, VkSpecializationInfo *sl, enum AVPixelFormat sw_format)
Definition ffv1_vulkan.c:24
AVPixelFormat
Pixel format.
Definition pixfmt.h:71
main external API structure.
Definition avcodec.h:443
uint32_t plane_state_size
Definition ffv1_vulkan.h:42
uint16_t img_size[2]
Definition ffv1_vulkan.h:40
uint32_t max_pixels_per_slice
Definition ffv1_vulkan.h:51
uint32_t key_frame
Definition ffv1_vulkan.h:43
uint16_t context_count[8]
Definition ffv1_vulkan.h:37
uint32_t remap_allowed
Definition ffv1_vulkan.h:54
uint32_t slice_size_max
Definition ffv1_vulkan.h:50
uint32_t extend_lookup[8]
Definition ffv1_vulkan.h:36
VkDeviceAddress slice_data
Definition ffv1_vulkan.h:34