diff --git a/plugins/obs-transitions/data/locale/en-US.ini b/plugins/obs-transitions/data/locale/en-US.ini index 0a7141ffa..c3f58bcbb 100644 --- a/plugins/obs-transitions/data/locale/en-US.ini +++ b/plugins/obs-transitions/data/locale/en-US.ini @@ -63,3 +63,4 @@ AudioMonitoring="Audio Monitoring" AudioMonitoring.None="Monitor Off" AudioMonitoring.MonitorOnly="Monitor Only (mute output)" AudioMonitoring.Both="Monitor and Output" +HardwareDecode="Use hardware decoding when available" \ No newline at end of file diff --git a/plugins/obs-transitions/transition-stinger.c b/plugins/obs-transitions/transition-stinger.c index ce50a4c5d..a770f3e50 100644 --- a/plugins/obs-transitions/transition-stinger.c +++ b/plugins/obs-transitions/transition-stinger.c @@ -42,9 +42,11 @@ static void stinger_update(void *data, obs_data_t *settings) { struct stinger_info *s = data; const char *path = obs_data_get_string(settings, "path"); + bool hw_decode = obs_data_get_bool(settings, "hw_decode"); obs_data_t *media_settings = obs_data_create(); obs_data_set_string(media_settings, "local_file", path); + obs_data_set_bool(media_settings, "hw_decode", hw_decode); obs_source_release(s->media_source); struct dstr name; @@ -105,6 +107,11 @@ static void stinger_destroy(void *data) bfree(s); } +static void stinger_defaults(obs_data_t *settings) +{ + obs_data_set_default_bool(settings, "hw_decode", true); +} + static void stinger_video_render(void *data, gs_effect_t *effect) { struct stinger_info *s = data; @@ -322,6 +329,10 @@ static obs_properties_t *stinger_properties(void *data) obs_property_t *p = obs_properties_add_list( ppts, "tp_type", obs_module_text("TransitionPointType"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); +#ifndef __APPLE__ + obs_properties_add_bool(ppts, "hw_decode", + obs_module_text("HardwareDecode")); +#endif obs_property_list_add_int(p, obs_module_text("TransitionPointTypeTime"), TIMING_TIME); obs_property_list_add_int( @@ -368,6 +379,7 @@ struct obs_source_info stinger_transition = { .create = stinger_create, .destroy = stinger_destroy, .update = stinger_update, + .get_defaults = stinger_defaults, .video_render = stinger_video_render, .audio_render = stinger_audio_render, .get_properties = stinger_properties,