From e38a5c61d322e8d13d8f6efb926c7e9b7c0e6c80 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 11 Apr 2016 05:02:39 -0700 Subject: [PATCH] libobs: Add encoder caps (with deprecated flag) Allows the ability to mark an encoder as deprecated (such as the media foundation h264 encoders) --- libobs/obs-encoder.c | 6 ++++++ libobs/obs-encoder.h | 4 ++++ libobs/obs.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index cae242e7e..6b10fe2b8 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -1150,3 +1150,9 @@ const char *obs_encoder_get_id(const obs_encoder_t *encoder) return obs_encoder_valid(encoder, "obs_encoder_get_id") ? encoder->info.id : NULL; } + +uint32_t obs_get_encoder_caps(const char *encoder_id) +{ + struct obs_encoder_info *info = find_encoder(encoder_id); + return info ? info->caps : 0; +} diff --git a/libobs/obs-encoder.h b/libobs/obs-encoder.h index deedc64b0..89a782ae7 100644 --- a/libobs/obs-encoder.h +++ b/libobs/obs-encoder.h @@ -29,6 +29,8 @@ extern "C" { #endif +#define OBS_ENCODER_CAP_DEPRECATED (1<<0) + /** Specifies the encoder type */ enum obs_encoder_type { OBS_ENCODER_AUDIO, /**< The encoder provides an audio codec */ @@ -227,6 +229,8 @@ struct obs_encoder_info { void *type_data; void (*free_type_data)(void *type_data); + + uint32_t caps; }; EXPORT void obs_register_encoder_s(const struct obs_encoder_info *info, diff --git a/libobs/obs.h b/libobs/obs.h index f0c842e1a..06e748af6 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -1633,6 +1633,8 @@ EXPORT void *obs_encoder_get_type_data(obs_encoder_t *encoder); EXPORT const char *obs_encoder_get_id(const obs_encoder_t *encoder); +EXPORT uint32_t obs_get_encoder_caps(const char *encoder_id); + /** Duplicates an encoder packet */ EXPORT void obs_duplicate_encoder_packet(struct encoder_packet *dst, const struct encoder_packet *src);