ohmu
·
2026-10-15
1#pragma once
2
3#include "fastfetch.h"
4#include "modules/codec/option.h"
5
6typedef enum FFCodecType: uint32_t {
7 FF_CODEC_TYPE_NONE = 0,
8 FF_CODEC_TYPE_UNKNOWN = UINT32_C(1) << 0,
9 FF_CODEC_TYPE_H261 = UINT32_C(1) << 1,
10 FF_CODEC_TYPE_H263 = UINT32_C(1) << 2,
11 FF_CODEC_TYPE_MJPEG = UINT32_C(1) << 3,
12 FF_CODEC_TYPE_MPEG1 = UINT32_C(1) << 4,
13 FF_CODEC_TYPE_MPEG2 = UINT32_C(1) << 5,
14 FF_CODEC_TYPE_DIVX_XVID = UINT32_C(1) << 6,
15 FF_CODEC_TYPE_H264 = UINT32_C(1) << 7,
16 FF_CODEC_TYPE_WMV8 = UINT32_C(1) << 8,
17 FF_CODEC_TYPE_WMV9 = UINT32_C(1) << 9,
18 FF_CODEC_TYPE_VC1 = UINT32_C(1) << 10,
19 FF_CODEC_TYPE_VP8 = UINT32_C(1) << 11,
20 FF_CODEC_TYPE_HEVC = UINT32_C(1) << 12,
21 FF_CODEC_TYPE_VP9 = UINT32_C(1) << 13,
22 FF_CODEC_TYPE_AV1 = UINT32_C(1) << 14,
23 FF_CODEC_TYPE_VVC = UINT32_C(1) << 15,
24 FF_CODEC_TYPE_DOLBY_VISION_HEVC = UINT32_C(1) << 16,
25 FF_CODEC_TYPE_PRORES = UINT32_C(1) << 17,
26 FF_CODEC_TYPE_PRORES_RAW = UINT32_C(1) << 18,
27 FF_CODEC_TYPE_MAX = FF_CODEC_TYPE_PRORES_RAW,
28} FFCodecType;
29
30typedef struct FFCodecResult {
31 FFstrbuf gpu;
32 FFCodecType decoders;
33 FFCodecType encoders;
34 const char* platformApi;
35} FFCodecResult;
36
37const char* ffDetectCodec(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
38const char* ffDetectCodecNative(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
39
40#ifdef FF_HAVE_VULKAN
41const char* ffDetectCodecVulkan(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
42#endif