X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fproducer%2Fscene%2Fscene_producer.h;h=08b2e7fb6f704d0608ef996846facac3c2445954;hb=ceffb3558efafb706af50c04b4b150250e2963f0;hp=ccfad7fe9c8c2a742272543428754123fa276a64;hpb=ff80d200060c9a2bb574dea979c0d688269c6d2a;p=casparcg diff --git a/core/producer/scene/scene_producer.h b/core/producer/scene/scene_producer.h index ccfad7fe9..08b2e7fb6 100644 --- a/core/producer/scene/scene_producer.h +++ b/core/producer/scene/scene_producer.h @@ -54,16 +54,34 @@ struct corners struct adjustments { binding opacity; + binding contrast; + binding saturation; + binding brightness; adjustments(); }; +struct levels +{ + binding min_input; + binding max_input; + binding gamma; + binding min_output; + binding max_output; + + levels(); +}; + struct chroma_key { - binding key; - binding threshold; - binding softness; - binding spill; + binding enable; + binding target_hue; + binding hue_width; + binding min_saturation; + binding min_brightness; + binding softness; + binding spill_suppress; + binding spill_suppress_saturation; }; struct layer @@ -73,14 +91,17 @@ struct layer scene::coord position; scene::rect crop; scene::corners perspective; + scene::rect clip; binding rotation; scene::adjustments adjustments; + scene::levels levels; binding> producer; binding hidden; binding is_key; binding use_mipmap; binding blend_mode; scene::chroma_key chroma_key; + binding volume; explicit layer(const std::wstring& name, const spl::shared_ptr& producer); }; @@ -111,7 +132,7 @@ mark_action get_mark_action(const std::wstring& name); class scene_producer : public frame_producer_base { public: - scene_producer(std::wstring producer_name, int width, int height, const video_format_desc& format_desc); + scene_producer(std::wstring producer_name, std::wstring template_name, int width, int height, const video_format_desc& format_desc); ~scene_producer(); draw_frame receive_impl() override; @@ -129,6 +150,7 @@ public: layer& create_layer( const spl::shared_ptr& producer, const std::wstring& name); void reverse_layers(); + layer& get_layer(const std::wstring& name); binding timeline_frame(); binding speed(); @@ -195,7 +217,7 @@ public: static_cast(duration))); to_affect.set(tweened); - + //CASPAR_LOG(info) << relative_frame << L" " << *start_value << L" " << duration << L" " << tweened; }; @@ -221,7 +243,8 @@ public: store_keyframe(to_affect.identity(), k); } - void add_mark(int64_t frame, mark_action action, const std::wstring& label); + void add_mark(int64_t at_frame, mark_action action, const std::wstring& label); + void add_task(binding when, std::function task); core::variable& get_variable(const std::wstring& name) override; const std::vector& get_variables() const override;