From acf1624d2d6857d7eaae3ab8ac06f036a921a8ec Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 20 Apr 2025 15:50:03 +0200 Subject: Move argument parsing to different file --- src/defs.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/defs.c (limited to 'src/defs.c') diff --git a/src/defs.c b/src/defs.c new file mode 100644 index 0000000..319d21b --- /dev/null +++ b/src/defs.c @@ -0,0 +1,100 @@ +#include "../include/defs.h" +#include + +bool video_codec_is_hdr(gsr_video_codec video_codec) { + // TODO: Vulkan + switch(video_codec) { + case GSR_VIDEO_CODEC_HEVC_HDR: + case GSR_VIDEO_CODEC_AV1_HDR: + return true; + default: + return false; + } +} + +gsr_video_codec hdr_video_codec_to_sdr_video_codec(gsr_video_codec video_codec) { + // TODO: Vulkan + switch(video_codec) { + case GSR_VIDEO_CODEC_HEVC_HDR: + return GSR_VIDEO_CODEC_HEVC; + case GSR_VIDEO_CODEC_AV1_HDR: + return GSR_VIDEO_CODEC_AV1; + default: + return video_codec; + } +} + +gsr_color_depth video_codec_to_bit_depth(gsr_video_codec video_codec) { + // TODO: 10-bit Vulkan + switch(video_codec) { + case GSR_VIDEO_CODEC_HEVC_HDR: + case GSR_VIDEO_CODEC_HEVC_10BIT: + case GSR_VIDEO_CODEC_AV1_HDR: + case GSR_VIDEO_CODEC_AV1_10BIT: + return GSR_COLOR_DEPTH_10_BITS; + default: + return GSR_COLOR_DEPTH_8_BITS; + } +} + +const char* video_codec_to_string(gsr_video_codec video_codec) { + switch(video_codec) { + case GSR_VIDEO_CODEC_H264: return "h264"; + case GSR_VIDEO_CODEC_HEVC: return "hevc"; + case GSR_VIDEO_CODEC_HEVC_HDR: return "hevc_hdr"; + case GSR_VIDEO_CODEC_HEVC_10BIT: return "hevc_10bit"; + case GSR_VIDEO_CODEC_AV1: return "av1"; + case GSR_VIDEO_CODEC_AV1_HDR: return "av1_hdr"; + case GSR_VIDEO_CODEC_AV1_10BIT: return "av1_10bit"; + case GSR_VIDEO_CODEC_VP8: return "vp8"; + case GSR_VIDEO_CODEC_VP9: return "vp9"; + case GSR_VIDEO_CODEC_H264_VULKAN: return "h264_vulkan"; + case GSR_VIDEO_CODEC_HEVC_VULKAN: return "hevc_vulkan"; + } + return ""; +} + +// bool video_codec_is_hevc(gsr_video_codec video_codec) { +// // TODO: 10-bit vulkan +// switch(video_codec) { +// case GSR_VIDEO_CODEC_HEVC: +// case GSR_VIDEO_CODEC_HEVC_HDR: +// case GSR_VIDEO_CODEC_HEVC_10BIT: +// case GSR_VIDEO_CODEC_HEVC_VULKAN: +// return true; +// default: +// return false; +// } +// } + +bool video_codec_is_av1(gsr_video_codec video_codec) { + // TODO: Vulkan + switch(video_codec) { + case GSR_VIDEO_CODEC_AV1: + case GSR_VIDEO_CODEC_AV1_HDR: + case GSR_VIDEO_CODEC_AV1_10BIT: + return true; + default: + return false; + } +} + +bool video_codec_is_vulkan(gsr_video_codec video_codec) { + switch(video_codec) { + case GSR_VIDEO_CODEC_H264_VULKAN: + case GSR_VIDEO_CODEC_HEVC_VULKAN: + return true; + default: + return false; + } +} + +const char* audio_codec_get_name(gsr_audio_codec audio_codec) { + switch(audio_codec) { + case GSR_AUDIO_CODEC_AAC: return "aac"; + case GSR_AUDIO_CODEC_OPUS: return "opus"; + case GSR_AUDIO_CODEC_FLAC: return "flac"; + } + assert(false); + return ""; +} -- cgit v1.2.3-70-g09d2