From d9470770a06a24534c9a124019182d25de3c7adb Mon Sep 17 00:00:00 2001 From: Kurt Kartaltepe Date: Wed, 6 Nov 2019 20:00:39 -0800 Subject: [PATCH] rtmp-services: Type check apply_encoder_settings This fixes ovewritting hidden "profile" setting in ffmpeg vaapi which is a number and not a string. It also shouldnt be overwritten as it is required on some AMD hardware for the encoder to work. --- plugins/rtmp-services/rtmp-common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/rtmp-services/rtmp-common.c b/plugins/rtmp-services/rtmp-common.c index bf0b17891..a11fb8376 100644 --- a/plugins/rtmp-services/rtmp-common.c +++ b/plugins/rtmp-services/rtmp-common.c @@ -485,7 +485,9 @@ static void apply_video_encoder_settings(obs_data_t *settings, obs_data_set_string(settings, "rate_control", "CBR"); item = json_object_get(recommended, "profile"); - if (json_is_string(item)) { + obs_data_item_t *enc_item = obs_data_item_byname(settings, "profile"); + if (json_is_string(item) && + obs_data_item_gettype(enc_item) == OBS_DATA_STRING) { const char *profile = json_string_value(item); obs_data_set_string(settings, "profile", profile); }