diff --git a/source/encoder.cpp b/source/encoder.cpp index 591f24b..a9f052e 100644 --- a/source/encoder.cpp +++ b/source/encoder.cpp @@ -76,6 +76,10 @@ void obsffmpeg::encoder_factory::register_encoder() sstr << " [" << caps << "]"; } this->info.readable_name = sstr.str(); + + // Allow UI Handler to replace visible name. + obsffmpeg::find_codec_handler(this->avcodec_ptr->name) + ->override_visible_name(this->avcodec_ptr, this->info.readable_name); } // Assign Ids. diff --git a/source/ui/handler.cpp b/source/ui/handler.cpp index 8322f05..3873fc9 100644 --- a/source/ui/handler.cpp +++ b/source/ui/handler.cpp @@ -20,3 +20,5 @@ // SOFTWARE. #include "handler.hpp" + +void obsffmpeg::ui::handler::override_visible_name(AVCodec* codec, std::string& name) {} diff --git a/source/ui/handler.hpp b/source/ui/handler.hpp index abb5c22..9317709 100644 --- a/source/ui/handler.hpp +++ b/source/ui/handler.hpp @@ -21,7 +21,10 @@ #pragma once +#include + extern "C" { +#include #include #pragma warning(push) #pragma warning(disable : 4244) @@ -33,6 +36,8 @@ namespace obsffmpeg { namespace ui { class handler { public: + virtual void override_visible_name(AVCodec* codec, std::string& name); + virtual void get_defaults(obs_data_t* settings, AVCodec* codec, AVCodecContext* context) = 0; virtual void get_properties(obs_properties_t* props, AVCodec* codec,