This is to ensure people can create their own Layer Transition subclass.
API : GESTimelineTransition is now GESTimelineStandardTransition
<xi:include href="xml/ges-track-object.xml"/>
<xi:include href="xml/ges-track-source.xml"/>
<xi:include href="xml/ges-track-operation.xml"/>
+ <xi:include href="xml/ges-timeline-transition.xml"/>
</chapter>
<chapter>
<xi:include href="xml/ges-timeline-title-source.xml"/>
<xi:include href="xml/ges-timeline-test-source.xml"/>
<xi:include href="xml/ges-timeline-text-overlay.xml"/>
- <xi:include href="xml/ges-timeline-transition.xml"/>
+ <xi:include href="xml/ges-timeline-standard-transition.xml"/>
</chapter>
<chapter>
<SECTION>
<FILE>ges-enums</FILE>
<TITLE>GES Enums</TITLE>
-GESVideoTransitionType
+GESVideoStandardTransitionType
GESTrackType
GESTextHAlign
DEFAULT_HALIGNMENT
ges_text_valign_get_type
GES_VIDEO_TEST_PATTERN_TYPE
ges_video_test_pattern_get_type
-GES_VIDEO_TRANSITION_TYPE_TYPE
-ges_video_transition_type_get_type
+GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
+ges_video_standard_transition_type_get_type
</SECTION>
<SECTION>
CreateTrackObjectFunc
CreateTrackObjectsFunc
FillTrackObjectFunc
-GES_TIMELINE_OBJECT_DURATION
-GES_TIMELINE_OBJECT_INPOINT
-GES_TIMELINE_OBJECT_PRIORITY
-GES_TIMELINE_OBJECT_START
-GES_TIMELINE_OBJECT_HEIGHT
ges_timeline_object_set_inpoint
ges_timeline_object_set_start
ges_timeline_object_set_duration
ges_timeline_object_find_track_object
ges_timeline_object_add_track_object
<SUBSECTION Standard>
+GES_TIMELINE_OBJECT_DURATION
+GES_TIMELINE_OBJECT_INPOINT
+GES_TIMELINE_OBJECT_PRIORITY
+GES_TIMELINE_OBJECT_START
+GES_TIMELINE_OBJECT_HEIGHT
ges_timeline_object_create_track_objects
ges_timeline_object_create_track_object
ges_timeline_object_fill_track_object
<FILE>ges-timeline-transition</FILE>
<TITLE>GESTimelineTransition</TITLE>
GESTimelineTransition
-GESTimelineTransitionClass
-ges_timeline_transition_new
-ges_timeline_transition_new_for_nick
<SUBSECTION Standard>
+GESTimelineTransitionClass
GESTimelineTransitionPrivate
-GES_IS_TIMELINE_TRANSITION
-GES_IS_TIMELINE_TRANSITION_CLASS
GES_TIMELINE_TRANSITION
-GES_TIMELINE_TRANSITION_CLASS
-GES_TIMELINE_TRANSITION_GET_CLASS
+GES_IS_TIMELINE_TRANSITION
GES_TYPE_TIMELINE_TRANSITION
ges_timeline_transition_get_type
+GES_TIMELINE_TRANSITION_CLASS
+GES_IS_TIMELINE_TRANSITION_CLASS
+GES_TIMELINE_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-standard-transition</FILE>
+<TITLE>GESTimelineStandardTransition</TITLE>
+GESTimelineStandardTransition
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+<SUBSECTION Standard>
+GESTimelineStandardTransitionClass
+GESTimelineStandardTransitionPrivate
+GES_IS_TIMELINE_STANDARD_TRANSITION
+GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION
+GES_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
+GES_TYPE_TIMELINE_STANDARD_TRANSITION
+ges_timeline_standard_transition_get_type
</SECTION>
ges_timeline_source_get_type
ges_timeline_test_source_get_type
ges_timeline_transition_get_type
+ges_timeline_standard_transition_get_type
ges_tl_filesource_get_type
ges_tl_text_overlay_get_type
ges_tl_title_src_get_type
ges_track_video_test_source_get_type
ges_track_video_transition_get_type
ges_video_test_pattern_get_type
-ges_video_transition_type_get_type
+ges_video_standard_transition_type_get_type
ges-timeline-file-source.c \
ges-timeline-operation.c \
ges-timeline-transition.c \
+ ges-timeline-standard-transition.c \
ges-timeline-test-source.c \
ges-timeline-title-source.c \
ges-timeline-overlay.c \
ges-timeline-file-source.h \
ges-timeline-operation.h \
ges-timeline-transition.h \
+ ges-timeline-standard-transition.h \
ges-timeline-test-source.h \
ges-timeline-title-source.h \
ges-timeline-overlay.h \
"windshield-h"}
,
{
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
"Crossfade between two clips",
"crossfade"}
,
};
GType
-ges_video_transition_type_get_type (void)
+ges_video_standard_transition_type_get_type (void)
{
static GType the_type = 0;
static gsize once = 0;
} GESTrackType;
/**
- * GESVideoTransitionType:
- * @GES_VIDEO_TRANSITION_TYPE_NONE: Transition type has not been set,
- * @GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR: A bar moves from left to right,
- * @GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_TB: A bar moves from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TL: A box expands from the upper-left corner to the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TR: A box expands from the upper-right corner to the lower-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BR: A box expands from the lower-right corner to the upper-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BL: A box expands from the lower-left corner to the upper-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CI: A box shape expands from each of the four corners toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CO: A box shape expands from the center of each quadrant toward the corners of each quadrant,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_V: A central, vertical line splits and expands toward the left and right edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_H: A central, horizontal line splits and expands toward the top and bottom edges,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TC: A box expands from the top edge's midpoint to the bottom corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_RC: A box expands from the right edge's midpoint to the left corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BC: A box expands from the bottom edge's midpoint to the top corners,
- * @GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_LC: A box expands from the left edge's midpoint to the right corners,
- * @GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TL: A diagonal line moves from the upper-left corner to the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TR: A diagonal line moves from the upper right corner to the lower-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_BOWTIE_V: Two wedge shapes slide in from the top and bottom edges toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_BOWTIE_H: Two wedge shapes slide in from the left and right edges toward the center,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DBL: A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
- * @GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DTL: A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
- * @GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DBD: Four wedge shapes split from the center and retract toward the four edges,
- * @GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DD: A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_D: A wedge shape moves from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_L: A wedge shape moves from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_U: A wedge shape moves from bottom to top,
- * @GES_VIDEO_TRANSITION_TYPE_VEE_R: A wedge shape moves from left to right,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_D: A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_L: A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_U: A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_BARNVEE_R: A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
- * @GES_VIDEO_TRANSITION_TYPE_IRIS_RECT: A rectangle expands from the center.,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW12: A radial hand sweeps clockwise from the twelve o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW3: A radial hand sweeps clockwise from the three o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW6: A radial hand sweeps clockwise from the six o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_CLOCK_CW9: A radial hand sweeps clockwise from the nine o'clock position,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBV: Two radial hands sweep clockwise from the twelve and six o'clock positions,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBH: Two radial hands sweep clockwise from the nine and three o'clock positions,
- * @GES_VIDEO_TRANSITION_TYPE_PINWHEEL_FB: Four radial hands sweep clockwise,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_CT: A fan unfolds from the top edge, the fan axis at the center,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_CR: A fan unfolds from the right edge, the fan axis at the center,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOV: Two fans, their axes at the center, unfold from the top and bottom,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOH: Two fans, their axes at the center, unfold from the left and right,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWT: A radial hand sweeps clockwise from the top edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWR: A radial hand sweeps clockwise from the right edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWB: A radial hand sweeps clockwise from the bottom edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWL: A radial hand sweeps clockwise from the left edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PV: Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PD: Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OV: Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OH: Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_T: A fan unfolds from the bottom, the fan axis at the top edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_R: A fan unfolds from the left, the fan axis at the right edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_B: A fan unfolds from the top, the fan axis at the bottom edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_FAN_L: A fan unfolds from the right, the fan axis at the left edge's midpoint,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIV: Two fans, their axes at the top and bottom, unfold from the center,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIH: Two fans, their axes at the left and right, unfold from the center,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTL: A radial hand sweeps clockwise from the upper-left corner,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBL: A radial hand sweeps counter-clockwise from the lower-left corner.,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBR: A radial hand sweeps clockwise from the lower-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTR: A radial hand sweeps counter-clockwise from the upper-right corner,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDTL: Two radial hands attached at the upper-left and lower-right corners sweep down and up,
- * @GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDBL: Two radial hands attached at the lower-left and upper-right corners sweep down and up,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_T: Two radial hands attached at the upper-left and upper-right corners sweep down,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_L: Two radial hands attached at the upper-left and lower-left corners sweep to the right,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_B: Two radial hands attached at the lower-left and lower-right corners sweep up,
- * @GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_R: Two radial hands attached at the upper-right and lower-right corners sweep to the left,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_R: Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_U: Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_V: Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
- * @GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_H: Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
- * @GES_VIDEO_TRANSITION_TYPE_CROSSFADE: Crossfade
+ * GESVideoStandardTransitionType:
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE: Transition type has not been set,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR: A bar moves from left to right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB: A bar moves from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL: A box expands from the upper-left corner to the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR: A box expands from the upper-right corner to the lower-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR: A box expands from the lower-right corner to the upper-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL: A box expands from the lower-left corner to the upper-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI: A box shape expands from each of the four corners toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO: A box shape expands from the center of each quadrant toward the corners of each quadrant,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V: A central, vertical line splits and expands toward the left and right edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H: A central, horizontal line splits and expands toward the top and bottom edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC: A box expands from the top edge's midpoint to the bottom corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC: A box expands from the right edge's midpoint to the left corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC: A box expands from the bottom edge's midpoint to the top corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC: A box expands from the left edge's midpoint to the right corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL: A diagonal line moves from the upper-left corner to the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR: A diagonal line moves from the upper right corner to the lower-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V: Two wedge shapes slide in from the top and bottom edges toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H: Two wedge shapes slide in from the left and right edges toward the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL: A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL: A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD: Four wedge shapes split from the center and retract toward the four edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD: A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D: A wedge shape moves from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L: A wedge shape moves from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U: A wedge shape moves from bottom to top,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R: A wedge shape moves from left to right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D: A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L: A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U: A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R: A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT: A rectangle expands from the center.,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12: A radial hand sweeps clockwise from the twelve o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3: A radial hand sweeps clockwise from the three o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6: A radial hand sweeps clockwise from the six o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9: A radial hand sweeps clockwise from the nine o'clock position,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV: Two radial hands sweep clockwise from the twelve and six o'clock positions,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH: Two radial hands sweep clockwise from the nine and three o'clock positions,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB: Four radial hands sweep clockwise,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT: A fan unfolds from the top edge, the fan axis at the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR: A fan unfolds from the right edge, the fan axis at the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV: Two fans, their axes at the center, unfold from the top and bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH: Two fans, their axes at the center, unfold from the left and right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT: A radial hand sweeps clockwise from the top edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR: A radial hand sweeps clockwise from the right edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB: A radial hand sweeps clockwise from the bottom edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL: A radial hand sweeps clockwise from the left edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV: Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD: Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV: Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH: Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T: A fan unfolds from the bottom, the fan axis at the top edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R: A fan unfolds from the left, the fan axis at the right edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B: A fan unfolds from the top, the fan axis at the bottom edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L: A fan unfolds from the right, the fan axis at the left edge's midpoint,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV: Two fans, their axes at the top and bottom, unfold from the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH: Two fans, their axes at the left and right, unfold from the center,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL: A radial hand sweeps clockwise from the upper-left corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL: A radial hand sweeps counter-clockwise from the lower-left corner.,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR: A radial hand sweeps clockwise from the lower-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR: A radial hand sweeps counter-clockwise from the upper-right corner,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL: Two radial hands attached at the upper-left and lower-right corners sweep down and up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL: Two radial hands attached at the lower-left and upper-right corners sweep down and up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T: Two radial hands attached at the upper-left and upper-right corners sweep down,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L: Two radial hands attached at the upper-left and lower-left corners sweep to the right,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B: Two radial hands attached at the lower-left and lower-right corners sweep up,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R: Two radial hands attached at the upper-right and lower-right corners sweep to the left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R: Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U: Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V: Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H: Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
+ * @GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE: Crossfade
*
*/
typedef enum {
- GES_VIDEO_TRANSITION_TYPE_NONE = 0,
- GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR = 1,
- GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_TB = 2,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TL = 3,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TR = 4,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BR = 5,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BL = 6,
- GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CI = 7,
- GES_VIDEO_TRANSITION_TYPE_FOUR_BOX_WIPE_CO = 8,
- GES_VIDEO_TRANSITION_TYPE_BARNDOOR_V = 21,
- GES_VIDEO_TRANSITION_TYPE_BARNDOOR_H = 22,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_TC = 23,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_RC = 24,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_BC = 25,
- GES_VIDEO_TRANSITION_TYPE_BOX_WIPE_LC = 26,
- GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TL = 41,
- GES_VIDEO_TRANSITION_TYPE_DIAGONAL_TR = 42,
- GES_VIDEO_TRANSITION_TYPE_BOWTIE_V = 43,
- GES_VIDEO_TRANSITION_TYPE_BOWTIE_H = 44,
- GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DBL = 45,
- GES_VIDEO_TRANSITION_TYPE_BARNDOOR_DTL = 46,
- GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DBD = 47,
- GES_VIDEO_TRANSITION_TYPE_MISC_DIAGONAL_DD = 48,
- GES_VIDEO_TRANSITION_TYPE_VEE_D = 61,
- GES_VIDEO_TRANSITION_TYPE_VEE_L = 62,
- GES_VIDEO_TRANSITION_TYPE_VEE_U = 63,
- GES_VIDEO_TRANSITION_TYPE_VEE_R = 64,
- GES_VIDEO_TRANSITION_TYPE_BARNVEE_D = 65,
- GES_VIDEO_TRANSITION_TYPE_BARNVEE_L = 66,
- GES_VIDEO_TRANSITION_TYPE_BARNVEE_U = 67,
- GES_VIDEO_TRANSITION_TYPE_BARNVEE_R = 68,
- GES_VIDEO_TRANSITION_TYPE_IRIS_RECT = 101,
- GES_VIDEO_TRANSITION_TYPE_CLOCK_CW12 = 201,
- GES_VIDEO_TRANSITION_TYPE_CLOCK_CW3 = 202,
- GES_VIDEO_TRANSITION_TYPE_CLOCK_CW6 = 203,
- GES_VIDEO_TRANSITION_TYPE_CLOCK_CW9 = 204,
- GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBV = 205,
- GES_VIDEO_TRANSITION_TYPE_PINWHEEL_TBH = 206,
- GES_VIDEO_TRANSITION_TYPE_PINWHEEL_FB = 207,
- GES_VIDEO_TRANSITION_TYPE_FAN_CT = 211,
- GES_VIDEO_TRANSITION_TYPE_FAN_CR = 212,
- GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOV = 213,
- GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FOH = 214,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWT = 221,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWR = 222,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWB = 223,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWL = 224,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PV = 225,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PD = 226,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OV = 227,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_OH = 228,
- GES_VIDEO_TRANSITION_TYPE_FAN_T = 231,
- GES_VIDEO_TRANSITION_TYPE_FAN_R = 232,
- GES_VIDEO_TRANSITION_TYPE_FAN_B = 233,
- GES_VIDEO_TRANSITION_TYPE_FAN_L = 234,
- GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIV = 235,
- GES_VIDEO_TRANSITION_TYPE_DOUBLEFAN_FIH = 236,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTL = 241,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBL = 242,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWBR = 243,
- GES_VIDEO_TRANSITION_TYPE_SINGLESWEEP_CWTR = 244,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDTL = 245,
- GES_VIDEO_TRANSITION_TYPE_DOUBLESWEEP_PDBL = 246,
- GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_T = 251,
- GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_L = 252,
- GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_B = 253,
- GES_VIDEO_TRANSITION_TYPE_SALOONDOOR_R = 254,
- GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_R = 261,
- GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_U = 262,
- GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_V = 263,
- GES_VIDEO_TRANSITION_TYPE_WINDSHIELD_H = 264,
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE = 512
-} GESVideoTransitionType;
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE = 0,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR = 1,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB = 2,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL = 3,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR = 4,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR = 5,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL = 6,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI = 7,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO = 8,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V = 21,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H = 22,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC = 23,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC = 24,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC = 25,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC = 26,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL = 41,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR = 42,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V = 43,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H = 44,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL = 45,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL = 46,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD = 47,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD = 48,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D = 61,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L = 62,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U = 63,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R = 64,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D = 65,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L = 66,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U = 67,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R = 68,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT = 101,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 = 201,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 = 202,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 = 203,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 = 204,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV = 205,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH = 206,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB = 207,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT = 211,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR = 212,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV = 213,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH = 214,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT = 221,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR = 222,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB = 223,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL = 224,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV = 225,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD = 226,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV = 227,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH = 228,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T = 231,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R = 232,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B = 233,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L = 234,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV = 235,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH = 236,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL = 241,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL = 242,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR = 243,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR = 244,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL = 245,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL = 246,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T = 251,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L = 252,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B = 253,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R = 254,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R = 261,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U = 262,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V = 263,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H = 264,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE = 512
+} GESVideoStandardTransitionType;
-#define GES_VIDEO_TRANSITION_TYPE_TYPE \
- (ges_video_transition_type_get_type())
+#define GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE \
+ (ges_video_standard_transition_type_get_type())
-GType ges_video_transition_type_get_type (void);
+GType ges_video_standard_transition_type_get_type (void);
/**
* GESTextVAlign:
* the two adjacent sources.
*/
+#include <ges/ges.h>
#include "ges-internal.h"
-#include "ges-simple-timeline-layer.h"
-#include "ges-timeline-object.h"
-#include "ges-timeline-source.h"
-#include "ges-timeline-transition.h"
#include "gesmarshal.h"
static void
/**
* GESTimelineObject:
*
- * The GESTimelineObject subclass. Subclasses can access these fields.
+ * The #GESTimelineObject base class.
*/
struct _GESTimelineObject {
/*< private >*/
/**
* GESTimelineObjectClass:
* @create_track_object: method to create a single #GESTrackObject for a given #GESTrack.
- * @create_track_objects: method to crate multiple #GESTrackObjects for a
+ * @create_track_objects: method to create multiple #GESTrackObjects for a
* #GESTrack.
* @fill_track_object: method to fill an associated #GESTrackObject.
* @need_fill_track: Set to TRUE if @fill_track_object needs to be called.
ret = GST_STATE_CHANGE_FAILURE;
goto done;
}
- if (self->
- priv->mode & (TIMELINE_MODE_RENDER | TIMELINE_MODE_SMART_RENDER))
+ if (self->priv->
+ mode & (TIMELINE_MODE_RENDER | TIMELINE_MODE_SMART_RENDER))
GST_DEBUG ("rendering => Updating pipeline caps");
if (!ges_timeline_pipeline_update_caps (self)) {
GST_ERROR_OBJECT (element, "Error setting the caps for rendering");
--- /dev/null
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ * 2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION: ges-timeline-standard-transition
+ * @short_description: Transition from one clip to another in a
+ * #GESTimelineLayer
+ *
+ * Creates an object that mixes together the two underlying objects, A and B.
+ * The A object is assumed to have a higher prioirity (lower number) than the
+ * B object. At the transition in point, only A will be visible, and by the
+ * end only B will be visible.
+ *
+ * The shape of the video transition depends on the value of the "vtype"
+ * property. The default value is "crossfade". For audio, only "crossfade" is
+ * supported.
+ *
+ * #GESSimpleTimelineLayer will automatically manage the priorities of sources
+ * and transitions. If you use #GESTimelineStandardTransitions in another type of
+ * #GESTimelineLayer, you will need to manage priorities yourself.
+ */
+
+#include <ges/ges.h>
+#include "ges-internal.h"
+
+struct _GESTimelineStandardTransitionPrivate
+{
+ /* Dummy variable */
+ void *nothing;
+};
+
+enum
+{
+ PROP_VTYPE = 5,
+};
+
+G_DEFINE_TYPE (GESTimelineStandardTransition, ges_timeline_standard_transition,
+ GES_TYPE_TIMELINE_TRANSITION);
+
+static GESTrackObject *ges_tl_transition_create_track_object (GESTimelineObject
+ * self, GESTrack * track);
+
+static void
+ges_timeline_standard_transition_update_vtype_internal (GESTimelineObject *
+ self, GESVideoStandardTransitionType value)
+{
+ GList *tmp, *trackobjects;
+ GESTimelineStandardTransition *trself =
+ (GESTimelineStandardTransition *) self;
+
+ /* FIXME : We need a much less crack way to find the trackobject to change */
+ trackobjects = ges_timeline_object_get_track_objects (self);
+ for (tmp = trackobjects; tmp; tmp = tmp->next) {
+ GESTrackVideoTransition *obj;
+ if (GES_IS_TRACK_VIDEO_TRANSITION (tmp->data)) {
+ obj = (GESTrackVideoTransition *) tmp->data;
+ if (!ges_track_video_transition_set_type (obj, value))
+ goto beach;
+ }
+ }
+
+ trself->vtype = value;
+
+beach:
+ g_list_foreach (trackobjects, (GFunc) g_object_unref, NULL);
+ g_list_free (trackobjects);
+ return;
+}
+
+static void
+ges_timeline_standard_transition_get_property (GObject * object,
+ guint property_id, GValue * value, GParamSpec * pspec)
+{
+ GESTimelineStandardTransition *self =
+ GES_TIMELINE_STANDARD_TRANSITION (object);
+ switch (property_id) {
+ case PROP_VTYPE:
+ g_value_set_enum (value, self->vtype);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+ges_timeline_standard_transition_set_property (GObject * object,
+ guint property_id, const GValue * value, GParamSpec * pspec)
+{
+ GESTimelineObject *self = GES_TIMELINE_OBJECT (object);
+
+ switch (property_id) {
+ case PROP_VTYPE:
+ ges_timeline_standard_transition_update_vtype_internal (self,
+ g_value_get_enum (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+ges_timeline_standard_transition_class_init (GESTimelineStandardTransitionClass
+ * klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GESTimelineObjectClass *timobj_class = GES_TIMELINE_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (klass,
+ sizeof (GESTimelineStandardTransitionPrivate));
+
+ object_class->get_property = ges_timeline_standard_transition_get_property;
+ object_class->set_property = ges_timeline_standard_transition_set_property;
+
+ /**
+ * GESTimelineStandardTransition:vtype
+ *
+ * a #GESVideoTransitionType representing the wipe to use
+ */
+ g_object_class_install_property (object_class, PROP_VTYPE,
+ g_param_spec_enum ("vtype", "VType",
+ "The SMPTE video wipe to use, or 0 for crossfade",
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+
+ timobj_class->create_track_object = ges_tl_transition_create_track_object;
+ timobj_class->need_fill_track = FALSE;
+}
+
+static void
+ges_timeline_standard_transition_init (GESTimelineStandardTransition * self)
+{
+
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+ GES_TYPE_TIMELINE_STANDARD_TRANSITION,
+ GESTimelineStandardTransitionPrivate);
+
+ self->vtype = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
+}
+
+static GESTrackObject *
+ges_tl_transition_create_track_object (GESTimelineObject * obj,
+ GESTrack * track)
+{
+ GESTimelineStandardTransition *transition =
+ (GESTimelineStandardTransition *) obj;
+ GESTrackObject *res;
+
+ GST_DEBUG ("Creating a GESTrackTransition");
+
+ if (track->type == GES_TRACK_TYPE_VIDEO) {
+ res = GES_TRACK_OBJECT (ges_track_video_transition_new ());
+ ges_track_video_transition_set_type ((GESTrackVideoTransition *) res,
+ transition->vtype);
+ }
+
+ else if (track->type == GES_TRACK_TYPE_AUDIO) {
+ res = GES_TRACK_OBJECT (ges_track_audio_transition_new ());
+ }
+
+ else {
+ GST_WARNING ("Transitions don't handle this track type");
+ return NULL;
+ }
+
+ return res;
+}
+
+/**
+ * ges_timeline_standard_transition_new:
+ * @vtype: the type of transition to create
+ *
+ */
+
+GESTimelineStandardTransition *
+ges_timeline_standard_transition_new (GESVideoStandardTransitionType vtype)
+{
+ return g_object_new (GES_TYPE_TIMELINE_STANDARD_TRANSITION, "vtype",
+ (gint) vtype, NULL);
+}
+
+/**
+ * ges_timeline_standard_transition_new_for_nick:
+ * @nick: a string representing the type of transition to create
+ */
+
+GESTimelineStandardTransition *
+ges_timeline_standard_transition_new_for_nick (gchar * nick)
+{
+ GEnumValue *value;
+ GEnumClass *klass;
+ GESTimelineStandardTransition *ret = NULL;
+
+ klass =
+ G_ENUM_CLASS (g_type_class_ref (GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE));
+ if (!klass)
+ return NULL;
+
+ value = g_enum_get_value_by_nick (klass, nick);
+ if (value) {
+ ret = g_object_new (GES_TYPE_TIMELINE_STANDARD_TRANSITION, "vtype",
+ (gint) value->value, NULL);
+ }
+
+ g_type_class_unref (klass);
+ return ret;
+}
--- /dev/null
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ * 2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GES_TIMELINE_STANDARD_TRANSITION
+#define _GES_TIMELINE_STANDARD_TRANSITION
+
+#include <glib-object.h>
+#include <ges/ges.h>
+#include <ges/ges-timeline-transition.h>
+
+G_BEGIN_DECLS
+
+#define GES_TYPE_TIMELINE_STANDARD_TRANSITION ges_timeline_standard_transition_get_type()
+
+#define GES_TIMELINE_STANDARD_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransition))
+
+#define GES_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+#define GES_IS_TIMELINE_STANDARD_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+#define GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+#define GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+typedef struct _GESTimelineStandardTransitionPrivate GESTimelineStandardTransitionPrivate;
+
+/**
+ * GESTimelineStandardTransition:
+ * @vtype: a #GESVideoStandardTransitionType indicating the type of video transition
+ * to apply.
+ */
+struct _GESTimelineStandardTransition {
+ /*< private >*/
+ GESTimelineTransition parent;
+
+ /*< public >*/
+ GESVideoStandardTransitionType vtype;
+
+ /*< private >*/
+ GESTimelineStandardTransitionPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+/**
+ * GESTimelineStandardTransitionClass:
+ *
+ */
+
+struct _GESTimelineStandardTransitionClass {
+ /*< private >*/
+ GESTimelineTransitionClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+GType ges_timeline_standard_transition_get_type (void);
+
+GESTimelineStandardTransition *ges_timeline_standard_transition_new (GESVideoStandardTransitionType vtype);
+GESTimelineStandardTransition *ges_timeline_standard_transition_new_for_nick (char *nick);
+
+G_END_DECLS
+
+#endif /* _GES_TIMELINE_STANDARD_TRANSITION */
/**
* SECTION: ges-timeline-transition
- * @short_description: Transition from one clip to another in a
- * #GESTimelineLayer
- *
- * Creates an object that mixes together the two underlying objects, A and B.
- * The A object is assumed to have a higher prioirity (lower number) than the
- * B object. At the transition in point, only A will be visible, and by the
- * end only B will be visible.
- *
- * The shape of the video transition depends on the value of the "vtype"
- * property. The default value is "crossfade". For audio, only "crossfade" is
- * supported.
- *
- * #GESSimpleTimelineLayer will automatically manage the priorities of sources
- * and transitions. If you use #GESTimelineTransitions in another type of
- * #GESTimelineLayer, you will need to manage priorities yourself.
+ * @short_description: Base classes for transitions
*/
+#include <ges/ges.h>
#include "ges-internal.h"
-#include "ges-timeline-transition.h"
-#include "ges-track-video-transition.h"
-#include "ges-track-audio-transition.h"
struct _GESTimelineTransitionPrivate
{
void *nothing;
};
-enum
-{
- PROP_VTYPE = 5,
-};
-
-G_DEFINE_TYPE (GESTimelineTransition, ges_timeline_transition,
+G_DEFINE_ABSTRACT_TYPE (GESTimelineTransition, ges_timeline_transition,
GES_TYPE_TIMELINE_OPERATION);
-static GESTrackObject *ges_tl_transition_create_track_object (GESTimelineObject
- * self, GESTrack * track);
-
-static void
-ges_timeline_transition_update_vtype_internal (GESTimelineObject * self,
- GESVideoTransitionType value)
-{
- GList *tmp, *trackobjects;
- GESTimelineTransition *trself = (GESTimelineTransition *) self;
-
- /* FIXME : We need a much less crack way to find the trackobject to change */
- trackobjects = ges_timeline_object_get_track_objects (self);
- for (tmp = trackobjects; tmp; tmp = tmp->next) {
- GESTrackVideoTransition *obj;
- if (GES_IS_TRACK_VIDEO_TRANSITION (tmp->data)) {
- obj = (GESTrackVideoTransition *) tmp->data;
- if (!ges_track_video_transition_set_type (obj, value))
- goto beach;
- }
- }
-
- trself->vtype = value;
-
-beach:
- g_list_foreach (trackobjects, (GFunc) g_object_unref, NULL);
- g_list_free (trackobjects);
- return;
-}
-
-static void
-ges_timeline_transition_get_property (GObject * object,
- guint property_id, GValue * value, GParamSpec * pspec)
-{
- GESTimelineTransition *self = GES_TIMELINE_TRANSITION (object);
- switch (property_id) {
- case PROP_VTYPE:
- g_value_set_enum (value, self->vtype);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
-static void
-ges_timeline_transition_set_property (GObject * object, guint property_id,
- const GValue * value, GParamSpec * pspec)
-{
- GESTimelineObject *self = GES_TIMELINE_OBJECT (object);
-
- switch (property_id) {
- case PROP_VTYPE:
- ges_timeline_transition_update_vtype_internal (self,
- g_value_get_enum (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
static void
ges_timeline_transition_class_init (GESTimelineTransitionClass * klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GESTimelineObjectClass *timobj_class = GES_TIMELINE_OBJECT_CLASS (klass);
-
g_type_class_add_private (klass, sizeof (GESTimelineTransitionPrivate));
-
- object_class->get_property = ges_timeline_transition_get_property;
- object_class->set_property = ges_timeline_transition_set_property;
-
- /**
- * GESTimelineTransition:vtype
- *
- * a #GESVideoTransitionType representing the wipe to use
- */
- g_object_class_install_property (object_class, PROP_VTYPE,
- g_param_spec_enum ("vtype", "VType",
- "The SMPTE video wipe to use, or 0 for crossfade",
- GES_VIDEO_TRANSITION_TYPE_TYPE, GES_VIDEO_TRANSITION_TYPE_CROSSFADE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
-
- timobj_class->create_track_object = ges_tl_transition_create_track_object;
- timobj_class->need_fill_track = FALSE;
}
static void
ges_timeline_transition_init (GESTimelineTransition * self)
{
-
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionPrivate);
-
- self->vtype = GES_VIDEO_TRANSITION_TYPE_NONE;
-}
-
-static GESTrackObject *
-ges_tl_transition_create_track_object (GESTimelineObject * obj,
- GESTrack * track)
-{
- GESTimelineTransition *transition = (GESTimelineTransition *) obj;
- GESTrackObject *res;
-
- GST_DEBUG ("Creating a GESTrackTransition");
-
- if (track->type == GES_TRACK_TYPE_VIDEO) {
- res = GES_TRACK_OBJECT (ges_track_video_transition_new ());
- ges_track_video_transition_set_type ((GESTrackVideoTransition *) res,
- transition->vtype);
- }
-
- else if (track->type == GES_TRACK_TYPE_AUDIO) {
- res = GES_TRACK_OBJECT (ges_track_audio_transition_new ());
- }
-
- else {
- GST_WARNING ("Transitions don't handle this track type");
- return NULL;
- }
-
- return res;
-}
-
-/**
- * ges_timeline_transition_new:
- * @vtype: the type of transition to create
- *
- */
-
-GESTimelineTransition *
-ges_timeline_transition_new (GESVideoTransitionType vtype)
-{
- return g_object_new (GES_TYPE_TIMELINE_TRANSITION, "vtype", (gint) vtype,
- NULL);
-}
-
-/**
- * ges_timeline_transition_new_for_nick:
- * @nick: a string representing the type of transition to create
- */
-
-GESTimelineTransition *
-ges_timeline_transition_new_for_nick (gchar * nick)
-{
- GEnumValue *value;
- GEnumClass *klass;
- GESTimelineTransition *ret = NULL;
-
- klass = G_ENUM_CLASS (g_type_class_ref (GES_VIDEO_TRANSITION_TYPE_TYPE));
- if (!klass)
- return NULL;
-
- value = g_enum_get_value_by_nick (klass, nick);
- if (value) {
- ret = g_object_new (GES_TYPE_TIMELINE_TRANSITION, "vtype",
- (gint) value->value, NULL);
- }
-
- g_type_class_unref (klass);
- return ret;
}
/**
* GESTimelineTransition:
- * @vtype: a #GESVideoTransitionType indicating the type of video transition
- * to apply.
*/
struct _GESTimelineTransition {
/*< private >*/
GESTimelineOperation parent;
- /*< public >*/
- GESVideoTransitionType vtype;
-
/*< private >*/
GESTimelineTransitionPrivate *priv;
GType ges_timeline_transition_get_type (void);
-GESTimelineTransition *ges_timeline_transition_new (GESVideoTransitionType vtype);
-GESTimelineTransition *ges_timeline_transition_new_for_nick (char *nick);
-
G_END_DECLS
#endif /* _GES_TIMELINE_TRANSITION */
#include "ges-track-object.h"
#include "ges-track-operation.h"
-G_DEFINE_TYPE (GESTrackOperation, ges_track_operation, GES_TYPE_TRACK_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GESTrackOperation, ges_track_operation,
+ GES_TYPE_TRACK_OBJECT);
struct _GESTrackOperationPrivate
{
*
*/
+#include <ges/ges.h>
#include "ges-internal.h"
-#include "ges-track-object.h"
-#include "ges-track-transition.h"
-#include "ges-timeline-transition.h"
-G_DEFINE_TYPE (GESTrackTransition, ges_track_transition, GES_TYPE_TRACK_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GESTrackTransition, ges_track_transition,
+ GES_TYPE_TRACK_OBJECT);
struct _GESTrackTransitionPrivate
{
* @short_description: implements video crossfade transition
*/
+#include <ges/ges.h>
#include "ges-internal.h"
-#include "ges-track-object.h"
-#include "ges-timeline-transition.h"
-#include "ges-track-video-transition.h"
G_DEFINE_TYPE (GESTrackVideoTransition, ges_track_video_transition,
GES_TYPE_TRACK_TRANSITION);
self->mixer = NULL;
self->sinka = NULL;
self->sinkb = NULL;
- self->type = GES_VIDEO_TRANSITION_TYPE_NONE;
+ self->type = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
self->start_value = 0.0;
self->end_value = 0.0;
}
g_object_set (G_OBJECT (mixer), "background", 1, NULL);
gst_bin_add (GST_BIN (topbin), mixer);
- if (self->type != GES_VIDEO_TRANSITION_TYPE_CROSSFADE) {
+ if (self->type != GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE) {
self->sinka =
(GstPad *) link_element_to_mixer_with_smpte (GST_BIN (topbin), iconva,
mixer, self->type, NULL);
gboolean
ges_track_video_transition_set_type (GESTrackVideoTransition * self,
- GESVideoTransitionType type)
+ GESVideoStandardTransitionType type)
{
GST_DEBUG ("%p %d => %d", self, self->type, type);
if (self->type && (self->type != type) &&
- ((type == GES_VIDEO_TRANSITION_TYPE_CROSSFADE) ||
- (self->type == GES_VIDEO_TRANSITION_TYPE_CROSSFADE))) {
+ ((type == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE) ||
+ (self->type == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE))) {
GST_WARNING
("Changing between 'crossfade' and other types is not supported");
return FALSE;
}
self->type = type;
- if (self->smpte && (type != GES_VIDEO_TRANSITION_TYPE_CROSSFADE))
+ if (self->smpte && (type != GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE))
g_object_set (self->smpte, "type", (gint) type, NULL);
return TRUE;
}
GESTrackTransition parent;
/*< private >*/
- GESVideoTransitionType type;
+ GESVideoStandardTransitionType type;
/* these enable video interpolation */
GstController *controller;
gboolean
ges_track_video_transition_set_type (GESTrackVideoTransition * self,
-GESVideoTransitionType type);
+GESVideoStandardTransitionType type);
;
GESTrackVideoTransition* ges_track_video_transition_new (void);
typedef struct _GESTimelineTransition GESTimelineTransition;
typedef struct _GESTimelineTransitionClass GESTimelineTransitionClass;
+typedef struct _GESTimelineStandardTransition GESTimelineStandardTransition;
+typedef struct _GESTimelineStandardTransitionClass GESTimelineStandardTransitionClass;
+
typedef struct _GESTimelineTestSource GESTimelineTestSource;
typedef struct _GESTimelineTestSourceClass GESTimelineTestSourceClass;
GES_TYPE_TIMELINE_TEST_SOURCE;
GES_TYPE_TIMELINE_FILE_SOURCE;
GES_TYPE_TIMELINE_TITLE_SOURCE;
- GES_TYPE_TIMELINE_TRANSITION;
+ GES_TYPE_TIMELINE_STANDARD_TRANSITION;
GES_TYPE_TIMELINE_OVERLAY;
/* TODO: user-defined types? */
#include <ges/ges-timeline-overlay.h>
#include <ges/ges-timeline-text-overlay.h>
#include <ges/ges-timeline-transition.h>
+#include <ges/ges-timeline-standard-transition.h>
#include <ges/ges-track.h>
#include <ges/ges-track-object.h>
#include <ges/ges-track-source.h>
GST_DEBUG ("Adding transition");
source = (GESTimelineObject *)
- ges_timeline_transition_new_for_nick ((gchar *) "bar-wipe-lr");
+ ges_timeline_standard_transition_new_for_nick ((gchar *) "bar-wipe-lr");
g_object_set (G_OBJECT (source), "duration", (guint64) GST_SECOND / 2, NULL);
ges_simple_timeline_layer_add_object (GES_SIMPLE_TIMELINE_LAYER (layer),
source, -1);
- KEY ("Object1", "type", "GESTimelineTransition");
+ KEY ("Object1", "type", "GESTimelineStandardTransition");
KEY ("Object1", "start", "1500000000");
KEY ("Object1", "in-point", "0");
KEY ("Object1", "duration", "500000000");
"volume=0\n"
"\n"
"[Object1]\n"
- "type=GESTimelineTransition\n"
+ "type=GESTimelineStandardTransition\n"
"start=1500000000\n"
"in-point=0\n"
"duration=500000000\n"
SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TEST_SOURCE), -1,
"duration", (guint64) 2 * GST_SECOND);
- SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TRANSITION), -1,
+ SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_STANDARD_TRANSITION), -1,
"duration", (guint64) GST_SECOND / 2,
- "vtype", GES_VIDEO_TRANSITION_TYPE_BAR_WIPE_LR);
+ "vtype", GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR);
SIMPLE_LAYER_OBJECT ((GES_TYPE_TIMELINE_TEST_SOURCE), -1,
"duration", (guint64) 2 * GST_SECOND);
GESTimelineLayer *layer;
GESTrack *track;
GESCustomTimelineSource *source1, *source2, *source3, *source4;
- GESTimelineTransition *tr1, *tr2, *tr3, *tr4, *tr5;
+ GESTimelineStandardTransition *tr1, *tr2, *tr3, *tr4, *tr5;
GESSimpleTimelineLayer *gstl;
gboolean valid;
gint count = 0;
#define HALF_SECOND ((guint64) (0.5 * GST_SECOND))
#define SECOND(a) ((guint64) (a * GST_SECOND))
- tr1 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr1 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
g_object_set (tr1, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr1), HALF_SECOND);
- tr2 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr2 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
g_object_set (tr2, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr2), HALF_SECOND);
- tr3 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr3 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
g_object_set (tr3, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr3), HALF_SECOND);
- tr4 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr4 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
g_object_set (tr4, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr4), HALF_SECOND);
- tr5 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr5 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
g_object_set (tr5, "duration", HALF_SECOND, "start", (guint64) 42, NULL);
fail_unless_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (tr5), HALF_SECOND);
#include <ges/ges.h>
#include <gst/check/gstcheck.h>
-#include <ges/ges-timeline-transition.h>
-#include <ges/ges-track-video-transition.h>
-#include <ges/ges-track-audio-transition.h>
/* This test uri will eventually have to be fixed */
#define TEST_URI "blahblahblah"
GST_START_TEST (test_transition_basic)
{
- GESTimelineTransition *tr1, *tr2;
+ GESTimelineStandardTransition *tr1, *tr2;
GESTrackObject *trackobject;
GESTrack *track;
track = ges_track_video_raw_new ();
fail_unless (track != 0);
- tr1 = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ tr1 =
+ ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
fail_unless (tr1 != 0);
- fail_unless (tr1->vtype == GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ fail_unless (tr1->vtype == GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
- tr2 = ges_timeline_transition_new_for_nick ((gchar *) "bar-wipe-lr");
+ tr2 = ges_timeline_standard_transition_new_for_nick ((gchar *) "bar-wipe-lr");
fail_unless (tr2 != 0);
fail_unless (tr2->vtype == 1);
ges_init ();
object =
- GES_TIMELINE_OBJECT (ges_timeline_transition_new
- (GES_VIDEO_TRANSITION_TYPE_CROSSFADE));
+ GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE));
track = ges_track_video_raw_new ();
fail_unless (track != NULL);
/* test changing vtype */
GST_DEBUG ("Setting to crossfade");
- g_object_set (object, "vtype", GES_VIDEO_TRANSITION_TYPE_CROSSFADE, NULL);
- assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype,
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ g_object_set (object, "vtype", GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
+ NULL);
+ assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type,
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
/* Check that changing from crossfade to anything else fails (it should
* still be using crossfade */
GST_DEBUG ("Setting back to 1 (should fail)");
g_object_set (object, "vtype", 1, NULL);
/* FIXME : This should succeed */
- assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype,
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype,
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type,
- GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
+ GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
GST_DEBUG ("Releasing track object");
ges_timeline_object_release_track_object (object, trackobject);
* type (in this case 1) */
GST_DEBUG ("Setting to vtype:1");
assert_equals_int (GES_TRACK_VIDEO_TRANSITION (trackobject)->type, 1);
- assert_equals_int (GES_TIMELINE_TRANSITION (object)->vtype, 1);
+ assert_equals_int (GES_TIMELINE_STANDARD_TRANSITION (object)->vtype, 1);
ges_timeline_object_release_track_object (object, trackobject);
g_object_unref (object);
pos = g_list_index (objects, app->selected_objects->data);
ges_simple_timeline_layer_move_object (GES_SIMPLE_TIMELINE_LAYER (app->layer),
- GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
+ GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
for (tmp = objects; tmp; tmp = tmp->next) {
g_object_unref (tmp->data);
pos = g_list_index (objects, app->selected_objects->data);
ges_simple_timeline_layer_move_object (GES_SIMPLE_TIMELINE_LAYER (app->layer),
- GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
+ GES_TIMELINE_OBJECT (app->selected_objects->data), pos - 1);
for (tmp = objects; tmp; tmp = tmp->next) {
g_object_unref (tmp->data);
GST_DEBUG ("adding transition");
- obj = GES_TIMELINE_OBJECT (ges_timeline_transition_new
- (GES_VIDEO_TRANSITION_TYPE_CROSSFADE));
+ obj = GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE));
g_object_set (G_OBJECT (obj), "duration", GST_SECOND, NULL);
ges_simple_timeline_layer_add_object (GES_SIMPLE_TIMELINE_LAYER
GESTimelineObject *srca, *srcb;
GESTimelinePipeline *pipeline;
guint64 aduration, bduration, tduration, tstart;
- GESTimelineTransition *tr = NULL;
+ GESTimelineStandardTransition *tr = NULL;
pipeline = ges_timeline_pipeline_new ();
g_print ("creating transition at %" GST_TIME_FORMAT " of %f duration (%"
GST_TIME_FORMAT ")\n", GST_TIME_ARGS (tstart), tdur,
GST_TIME_ARGS (tduration));
- if (!(tr = ges_timeline_transition_new_for_nick (nick)))
+ if (!(tr = ges_timeline_standard_transition_new_for_nick (nick)))
g_error ("invalid transition type %s\n", nick);
g_object_set (tr,
}
else if (!g_strcmp0 ("+transition", source)) {
- obj = GES_TIMELINE_OBJECT (ges_timeline_transition_new_for_nick (arg0));
+ obj =
+ GES_TIMELINE_OBJECT (ges_timeline_standard_transition_new_for_nick
+ (arg0));
if (!obj)
g_error ("invalid transition type\n");
print_transition_list (void)
{
GEnumClass *smpte_class;
- GESTimelineTransition *tr;
- GESTimelineTransitionClass *klass;
+ GESTimelineStandardTransition *tr;
+ GESTimelineStandardTransitionClass *klass;
GParamSpec *pspec;
GEnumValue *v;
- tr = ges_timeline_transition_new (GES_VIDEO_TRANSITION_TYPE_CROSSFADE);
- klass = GES_TIMELINE_TRANSITION_GET_CLASS (tr);
+ tr = ges_timeline_standard_transition_new
+ (GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
+ klass = GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS (tr);
if ((pspec = g_object_class_find_property (G_OBJECT_CLASS (klass), "vtype"))) {