From 1aaa26d87e539c1f3cef2052f6f47960f7d2c303 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 26 Sep 2024 16:08:26 +0200 Subject: Move codec query from encoder to separate file --- include/codec_query/codec_query.h | 18 ++++++++++++++++++ include/codec_query/cuda.h | 8 ++++++++ include/codec_query/vaapi.h | 8 ++++++++ include/encoder/video/video.h | 14 -------------- 4 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 include/codec_query/codec_query.h create mode 100644 include/codec_query/cuda.h create mode 100644 include/codec_query/vaapi.h (limited to 'include') 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 + +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); -- cgit v1.2.3