gstreamer/subprojects/gst-editing-services/docs/random/rework_class_hierarchie.html

104 lines
2.7 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" >
<title> Rework the GStreamer Editing Services class hierarchy </title>
<xmp theme="cerulean" style="display:none;">
Reasoning:
----------
All the time (position) related concepts are shared between GESTimelineObject and GESTrackObject
and currently are repeated at the 2 levels.
Moreover, if we want to add the concept of Group we end up with something quite similare to the current
GESTimelineObject but that contains GESTimelineObject-s instead of GESTrackObject-s so we could share
those informations creating a new class aiming at containing the objects that have that
notion of timing.
At the same time, we want to clarify namings. First we should remove the word Object in class names,
we have been told various times that it sounds just "wrong" for people as Objects are instances and there
we are talking about Classes.
Class Hierarchy:
-------------
<pre><code>
<table>
<tr>
<td>
Before:
-------
GESTimelineObject
GESTimelineSource
GESCustomTimelineSource
GESTimelineTestSource
GESTimelineFileSource
GESTimelineTitleSource
GESTimelineOperation
GESTimelineOverlay
GESTimelineTextOverlay
GESTimelineTransition
GESTimelineTransition
GESTimelineEffect
GESTimelineParseLaunchEffect
GESTimelineLayer
GESSimpleTimelineLayer
GESTrackObject
GESTrackSource
GESTrackAudioTestSource
GESTrackFileSource
GESTrackImageSource
GESTrackTitleSource
GESTrackVideoTestSource
GESTrackOperation
GESTrackTransition
GESTrackAudioTransition
GESTrackVideoTransition
GESTrackEffect
GESTrackParseLaunchEffect
GESTrackTextOverlay
</td>
<td>
After:
-------
GESTimelineElement
GESContainer
GESClip
GESSourceClip
GESCustomSourceClip
GESTestClip
GESUriClip
GESTitleClip
GESOperationClip
GESOverlayClip
GESTextOverlayClip
GESBaseTransitionClip
GESTransitionClip
GESBaseEffectClip
GESEffectClip
GESClipGroup
GESTrackElement
GESSource
GESAudioTestSource
GESUriSource
GESImageSource
GESTitleSource
GESVideoTestSource
GESOperation
GESTransition
GESAudioTransition
GESVideoTransition
GESBaseEffect
GESEffect
GESTextOverlay
</td>
</tr>
</table>
</code></pre>
</xmp>
<script src="http://strapdownjs.com/v/0.1/strapdown.js"></script>
</html>