mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
Specs: Review design of effect implementation proposal
This commit is contained in:
parent
6e5d16ac6d
commit
36e742c114
1 changed files with 20 additions and 10 deletions
|
@ -18,10 +18,16 @@ API which would allow developers to handle any use-case
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
* Effects are actually descendant of GESTrackOperation
|
* Effects are actually descendant of GESTrackOperation
|
||||||
* You can add effects wherever you want
|
|
||||||
|
* You can add effects on any clip, layer or on part of them
|
||||||
|
|
||||||
* Effects are configurable and those could change during time
|
* Effects are configurable and those could change during time
|
||||||
|
|
||||||
* We should be able to handle the gnome-video-effects standard
|
* We should be able to handle the gnome-video-effects standard
|
||||||
* We can implement complexe effects
|
|
||||||
|
* We can implement complexe effects. It means effects that are more
|
||||||
|
than adding GstElement-s to the timeline. It can also mean effects
|
||||||
|
that are both: video and audio at the same time
|
||||||
|
|
||||||
2. Problems
|
2. Problems
|
||||||
----------
|
----------
|
||||||
|
@ -31,6 +37,9 @@ API which would allow developers to handle any use-case
|
||||||
* We should be able to configure effects through an API in GES and
|
* We should be able to configure effects through an API in GES and
|
||||||
not directly configuring the corresponding GstElement properties.
|
not directly configuring the corresponding GstElement properties.
|
||||||
|
|
||||||
|
* We should also expose the GstElement-s contained in an effect so
|
||||||
|
it is possible for people to control their properties as they wish.
|
||||||
|
|
||||||
* We should be able to handle complexe effects.
|
* We should be able to handle complexe effects.
|
||||||
|
|
||||||
* We should be able to implement complexe effects directly in GES
|
* We should be able to implement complexe effects directly in GES
|
||||||
|
@ -45,10 +54,11 @@ API which would allow developers to handle any use-case
|
||||||
A. The registry
|
A. The registry
|
||||||
|
|
||||||
We could implement a GESEffectRegistry which would actually
|
We could implement a GESEffectRegistry which would actually
|
||||||
retrieve elements from the GSTRegistry which actually are effects,
|
retrieve elements (effects) from the GSTRegistry and any other mean
|
||||||
as well as effects from gnome-video-effects. This way the developers
|
such as gnome-video-effects to let us get all the effects that are present
|
||||||
could have the list of all the effects that are installed on the système
|
on the system....
|
||||||
pretty easily.
|
This way the developers could have the list of all the effects
|
||||||
|
that are installed on the system pretty easily.
|
||||||
|
|
||||||
B. Effects configurability
|
B. Effects configurability
|
||||||
|
|
||||||
|
@ -81,16 +91,16 @@ C. Keyframes
|
||||||
|
|
||||||
The user wants to add an effect to an entire layer => GESTimelineLayer API.
|
The user wants to add an effect to an entire layer => GESTimelineLayer API.
|
||||||
|
|
||||||
The developer wants to allow his users to configure effects => mapping between
|
The developer wants to allow his users to configure effects => mapping between
|
||||||
GESTrackEffect and the configurable properties of elements (GESEffect).
|
GESTrackEffect and the configurable properties of elements (GESEffect).
|
||||||
|
|
||||||
The user wants to add an effect on a special portion of a clip, we should
|
The user wants to add an effect on a special portion of a clip, we should
|
||||||
allow him to configure that thanks to a system of keyframes. FIXME
|
allow him to configure that thanks to a system of keyframes. FIXME
|
||||||
|
|
||||||
We want to implement an effect which isn't only composed by a bin, but is more
|
We want to implement an effect which isn't only composed by a bin, but is more
|
||||||
complexe than that (ex: "effect '24'") => we have the GESTrackOperation
|
complexe than that (ex: "effect '24'") => we have the GESTrackOperation
|
||||||
which is the base class (abstract) for this kind of implementation. We should
|
which is the base class (abstract) for this kind of implementation. We should
|
||||||
also have a GESPropertiesMapping abstract class which would be the base
|
also have a GESPropertiesMapping abstract class which would be the base
|
||||||
class of GESEffect and could be used in this use-case.
|
class of GESEffect and could be used in this use-case.
|
||||||
|
|
||||||
A developer wants to implement effect which handle music and video at the same
|
A developer wants to implement effect which handle music and video at the same
|
||||||
|
|
Loading…
Reference in a new issue