aboutsummaryrefslogtreecommitdiff
path: root/include/encoder/video
diff options
context:
space:
mode:
Diffstat (limited to 'include/encoder/video')
-rw-r--r--include/encoder/video/cuda.h2
-rw-r--r--include/encoder/video/software.h2
-rw-r--r--include/encoder/video/vaapi.h2
-rw-r--r--include/encoder/video/video.h4
-rw-r--r--include/encoder/video/vulkan.h15
5 files changed, 20 insertions, 5 deletions
diff --git a/include/encoder/video/cuda.h b/include/encoder/video/cuda.h
index 802e72e..6d32e09 100644
--- a/include/encoder/video/cuda.h
+++ b/include/encoder/video/cuda.h
@@ -8,7 +8,7 @@ typedef struct gsr_egl gsr_egl;
typedef struct {
gsr_egl *egl;
bool overclock;
- bool hdr;
+ gsr_color_depth color_depth;
} gsr_video_encoder_cuda_params;
gsr_video_encoder* gsr_video_encoder_cuda_create(const gsr_video_encoder_cuda_params *params);
diff --git a/include/encoder/video/software.h b/include/encoder/video/software.h
index e39d5f8..fd2dc6b 100644
--- a/include/encoder/video/software.h
+++ b/include/encoder/video/software.h
@@ -7,7 +7,7 @@ typedef struct gsr_egl gsr_egl;
typedef struct {
gsr_egl *egl;
- bool hdr;
+ gsr_color_depth color_depth;
} gsr_video_encoder_software_params;
gsr_video_encoder* gsr_video_encoder_software_create(const gsr_video_encoder_software_params *params);
diff --git a/include/encoder/video/vaapi.h b/include/encoder/video/vaapi.h
index 2981a01..b509f17 100644
--- a/include/encoder/video/vaapi.h
+++ b/include/encoder/video/vaapi.h
@@ -7,7 +7,7 @@ typedef struct gsr_egl gsr_egl;
typedef struct {
gsr_egl *egl;
- bool hdr;
+ gsr_color_depth color_depth;
} gsr_video_encoder_vaapi_params;
gsr_video_encoder* gsr_video_encoder_vaapi_create(const gsr_video_encoder_vaapi_params *params);
diff --git a/include/encoder/video/video.h b/include/encoder/video/video.h
index 21338d6..49f48bd 100644
--- a/include/encoder/video/video.h
+++ b/include/encoder/video/video.h
@@ -10,7 +10,7 @@ typedef struct AVFrame AVFrame;
struct gsr_video_encoder {
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 */
+ void (*copy_textures_to_frame)(gsr_video_encoder *encoder, AVFrame *frame, gsr_color_conversion *color_conversion); /* Can be NULL */
/* |textures| should be able to fit 2 elements */
void (*get_textures)(gsr_video_encoder *encoder, unsigned int *textures, int *num_textures, gsr_destination_color *destination_color);
void (*destroy)(gsr_video_encoder *encoder, AVCodecContext *video_codec_context);
@@ -20,7 +20,7 @@ struct gsr_video_encoder {
};
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_copy_textures_to_frame(gsr_video_encoder *encoder, AVFrame *frame, gsr_color_conversion *color_conversion);
void gsr_video_encoder_get_textures(gsr_video_encoder *encoder, unsigned int *textures, int *num_textures, gsr_destination_color *destination_color);
void gsr_video_encoder_destroy(gsr_video_encoder *encoder, AVCodecContext *video_codec_context);
diff --git a/include/encoder/video/vulkan.h b/include/encoder/video/vulkan.h
new file mode 100644
index 0000000..383fc4f
--- /dev/null
+++ b/include/encoder/video/vulkan.h
@@ -0,0 +1,15 @@
+#ifndef GSR_ENCODER_VIDEO_VULKAN_H
+#define GSR_ENCODER_VIDEO_VULKAN_H
+
+#include "video.h"
+
+typedef struct gsr_egl gsr_egl;
+
+typedef struct {
+ gsr_egl *egl;
+ gsr_color_depth color_depth;
+} gsr_video_encoder_vulkan_params;
+
+gsr_video_encoder* gsr_video_encoder_vulkan_create(const gsr_video_encoder_vulkan_params *params);
+
+#endif /* GSR_ENCODER_VIDEO_VULKAN_H */