aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-09-26 16:08:26 +0200
committerdec05eba <dec05eba@protonmail.com>2024-09-26 16:08:26 +0200
commit1aaa26d87e539c1f3cef2052f6f47960f7d2c303 (patch)
tree1b5402270dbd8097f87e14543a41bdd7ccae9ef7 /include
parent0b20a46e58d376d00b292b15826a6b0fb17fc00a (diff)
Move codec query from encoder to separate file
Diffstat (limited to 'include')
-rw-r--r--include/codec_query/codec_query.h18
-rw-r--r--include/codec_query/cuda.h8
-rw-r--r--include/codec_query/vaapi.h8
-rw-r--r--include/encoder/video/video.h14
4 files changed, 34 insertions, 14 deletions
diff --git a/include/codec_query/codec_query.h b/include/codec_query/codec_query.h
new file mode 100644
index 0000000..7d5a292
--- /dev/null
+++ b/include/codec_query/codec_query.h
@@ -0,0 +1,18 @@
+#ifndef GSR_CODEC_QUERY_H
+#define GSR_CODEC_QUERY_H
+
+#include <stdbool.h>
+
+typedef struct {
+ bool h264;
+ bool hevc;
+ bool hevc_hdr;
+ bool hevc_10bit;
+ bool av1;
+ bool av1_hdr;
+ bool av1_10bit;
+ bool vp8;
+ bool vp9;
+} gsr_supported_video_codecs;
+
+#endif /* GSR_CODEC_QUERY_H */
diff --git a/include/codec_query/cuda.h b/include/codec_query/cuda.h
new file mode 100644
index 0000000..b57c4ee
--- /dev/null
+++ b/include/codec_query/cuda.h
@@ -0,0 +1,8 @@
+#ifndef GSR_CODEC_QUERY_CUDA_H
+#define GSR_CODEC_QUERY_CUDA_H
+
+#include "codec_query.h"
+
+bool gsr_get_supported_video_codecs_nvenc(gsr_supported_video_codecs *video_codecs, bool cleanup);
+
+#endif /* GSR_CODEC_QUERY_CUDA_H */
diff --git a/include/codec_query/vaapi.h b/include/codec_query/vaapi.h
new file mode 100644
index 0000000..60bdeca
--- /dev/null
+++ b/include/codec_query/vaapi.h
@@ -0,0 +1,8 @@
+#ifndef GSR_CODEC_QUERY_VAAPI_H
+#define GSR_CODEC_QUERY_VAAPI_H
+
+#include "codec_query.h"
+
+bool gsr_get_supported_video_codecs_vaapi(gsr_supported_video_codecs *video_codecs, const char *card_path, bool cleanup);
+
+#endif /* GSR_CODEC_QUERY_VAAPI_H */
diff --git a/include/encoder/video/video.h b/include/encoder/video/video.h
index 899357a..21338d6 100644
--- a/include/encoder/video/video.h
+++ b/include/encoder/video/video.h
@@ -8,20 +8,7 @@ typedef struct gsr_video_encoder gsr_video_encoder;
typedef struct AVCodecContext AVCodecContext;
typedef struct AVFrame AVFrame;
-typedef struct {
- bool h264;
- bool hevc;
- bool hevc_hdr;
- bool hevc_10bit;
- bool av1;
- bool av1_hdr;
- bool av1_10bit;
- bool vp8;
- bool vp9;
-} gsr_supported_video_codecs;
-
struct gsr_video_encoder {
- gsr_supported_video_codecs (*get_supported_codecs)(gsr_video_encoder *encoder, bool cleanup);
bool (*start)(gsr_video_encoder *encoder, AVCodecContext *video_codec_context, AVFrame *frame);
void (*copy_textures_to_frame)(gsr_video_encoder *encoder, AVFrame *frame); /* Can be NULL */
/* |textures| should be able to fit 2 elements */
@@ -32,7 +19,6 @@ struct gsr_video_encoder {
bool started;
};
-gsr_supported_video_codecs gsr_video_encoder_get_supported_codecs(gsr_video_encoder *encoder, bool cleanup);
bool gsr_video_encoder_start(gsr_video_encoder *encoder, AVCodecContext *video_codec_context, AVFrame *frame);
void gsr_video_encoder_copy_textures_to_frame(gsr_video_encoder *encoder, AVFrame *frame);
void gsr_video_encoder_get_textures(gsr_video_encoder *encoder, unsigned int *textures, int *num_textures, gsr_destination_color *destination_color);