summaryrefslogtreecommitdiffstats
path: root/src/detection/codec/codec.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/detection/codec/codec.h')
-rw-r--r--src/detection/codec/codec.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/detection/codec/codec.h b/src/detection/codec/codec.h
new file mode 100644
index 0000000..d0f48d9
--- /dev/null
+++ b/src/detection/codec/codec.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "fastfetch.h"
+#include "modules/codec/option.h"
+
+typedef enum FF_A_PACKED FFCodecType {
+ FF_CODEC_TYPE_NONE = 0,
+ FF_CODEC_TYPE_UNKNOWN = UINT32_C(1) << 0,
+ FF_CODEC_TYPE_H261 = UINT32_C(1) << 1,
+ FF_CODEC_TYPE_H263 = UINT32_C(1) << 2,
+ FF_CODEC_TYPE_MJPEG = UINT32_C(1) << 3,
+ FF_CODEC_TYPE_MPEG1 = UINT32_C(1) << 4,
+ FF_CODEC_TYPE_MPEG2 = UINT32_C(1) << 5,
+ FF_CODEC_TYPE_DIVX_XVID = UINT32_C(1) << 6,
+ FF_CODEC_TYPE_H264 = UINT32_C(1) << 7,
+ FF_CODEC_TYPE_WMV8 = UINT32_C(1) << 8,
+ FF_CODEC_TYPE_WMV9 = UINT32_C(1) << 9,
+ FF_CODEC_TYPE_VC1 = UINT32_C(1) << 10,
+ FF_CODEC_TYPE_VP8 = UINT32_C(1) << 11,
+ FF_CODEC_TYPE_HEVC = UINT32_C(1) << 12,
+ FF_CODEC_TYPE_VP9 = UINT32_C(1) << 13,
+ FF_CODEC_TYPE_AV1 = UINT32_C(1) << 14,
+ FF_CODEC_TYPE_VVC = UINT32_C(1) << 15,
+ FF_CODEC_TYPE_DOLBY_VISION_HEVC = UINT32_C(1) << 16,
+ FF_CODEC_TYPE_PRORES = UINT32_C(1) << 17,
+ FF_CODEC_TYPE_PRORES_RAW = UINT32_C(1) << 18,
+ FF_CODEC_TYPE_MAX = FF_CODEC_TYPE_PRORES_RAW,
+ FF_CODEC_TYPE_FORCE_UNSIGNED = UINT32_MAX,
+} FFCodecType;
+
+typedef struct FFCodecResult {
+ FFstrbuf gpu;
+ FFCodecType decoders;
+ FFCodecType encoders;
+ const char* platformApi;
+} FFCodecResult;
+
+const char* ffDetectCodec(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
+const char* ffDetectCodecNative(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
+
+#ifdef FF_HAVE_VULKAN
+const char* ffDetectCodecVulkan(FFCodecOptions* options, FFlist* result /*list of FFCodecResult*/);
+#endif