master ohmu/fastfetch-openbsd / src / detection / codec / codec.h
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