فهرست منبع

obs-transitions: Expose hardware decoding for Stingers

This also enables hardware decoding by default for stingers.

Note: per c2a2bc5e4027f9e4cba75989f0591200eef8c768 this will not affect
webm files with alpha.
Matt Gajownik 5 سال پیش
والد
کامیت
4a53958c87
2فایلهای تغییر یافته به همراه13 افزوده شده و 0 حذف شده
  1. 1 0
      plugins/obs-transitions/data/locale/en-US.ini
  2. 12 0
      plugins/obs-transitions/transition-stinger.c

+ 1 - 0
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"

+ 12 - 0
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,