| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- #include <obs-module.h>
 
- struct cut_info {
 
- 	obs_source_t *source;
 
- };
 
- static const char *cut_get_name(void *type_data)
 
- {
 
- 	UNUSED_PARAMETER(type_data);
 
- 	return obs_module_text("CutTransition");
 
- }
 
- static void *cut_create(obs_data_t *settings, obs_source_t *source)
 
- {
 
- 	struct cut_info *cut;
 
- 	cut = bmalloc(sizeof(*cut));
 
- 	cut->source = source;
 
- 	obs_transition_enable_fixed(source, true, 0);
 
- 	UNUSED_PARAMETER(settings);
 
- 	return cut;
 
- }
 
- static void cut_destroy(void *data)
 
- {
 
- 	struct cut_info *cut = data;
 
- 	bfree(cut);
 
- }
 
- static void cut_video_render(void *data, gs_effect_t *effect)
 
- {
 
- 	struct cut_info *cut = data;
 
- 	obs_transition_video_render(cut->source, NULL);
 
- 	UNUSED_PARAMETER(effect);
 
- }
 
- static float mix_a(void *data, float t)
 
- {
 
- 	UNUSED_PARAMETER(data);
 
- 	return 1.0f - t;
 
- }
 
- static float mix_b(void *data, float t)
 
- {
 
- 	UNUSED_PARAMETER(data);
 
- 	return t;
 
- }
 
- static bool cut_audio_render(void *data, uint64_t *ts_out, struct obs_source_audio_mix *audio, uint32_t mixers,
 
- 			     size_t channels, size_t sample_rate)
 
- {
 
- 	struct cut_info *cut = data;
 
- 	return obs_transition_audio_render(cut->source, ts_out, audio, mixers, channels, sample_rate, mix_a, mix_b);
 
- }
 
- static enum gs_color_space cut_video_get_color_space(void *data, size_t count,
 
- 						     const enum gs_color_space *preferred_spaces)
 
- {
 
- 	UNUSED_PARAMETER(count);
 
- 	UNUSED_PARAMETER(preferred_spaces);
 
- 	struct cut_info *const cut = data;
 
- 	return obs_transition_video_get_color_space(cut->source);
 
- }
 
- struct obs_source_info cut_transition = {
 
- 	.id = "cut_transition",
 
- 	.type = OBS_SOURCE_TYPE_TRANSITION,
 
- 	.get_name = cut_get_name,
 
- 	.create = cut_create,
 
- 	.destroy = cut_destroy,
 
- 	.video_render = cut_video_render,
 
- 	.audio_render = cut_audio_render,
 
- 	.video_get_color_space = cut_video_get_color_space,
 
- };
 
 
  |