]> git.sesse.net Git - mlt/commitdiff
Add mlt_transition_get_position()
authorDan Dennedy <dan@dennedy.org>
Wed, 9 Mar 2011 08:45:28 +0000 (00:45 -0800)
committerDan Dennedy <dan@dennedy.org>
Fri, 11 Mar 2011 07:15:45 +0000 (23:15 -0800)
src/framework/mlt_transition.c
src/framework/mlt_transition.h
src/mlt++/MltTransition.cpp
src/mlt++/MltTransition.h

index 5d6e06825f3390ade555bbd609d64a6acd85ef44..1e70a0c9276da916d911ca19aeba78612ebad169 100644 (file)
@@ -206,6 +206,23 @@ mlt_position mlt_transition_get_length( mlt_transition self )
        return ( out > 0 ) ? ( out - in + 1 ) : 0;
 }
 
+/** Get the position within the transition.
+ *
+ * The position is relative to the in point.
+ *
+ * \public \memberof mlt_transition_s
+ * \param self a transition
+ * \param frame a frame
+ * \return the position
+ */
+
+mlt_position mlt_transition_get_position( mlt_transition self, mlt_frame frame )
+{
+       mlt_position in = mlt_transition_get_in( self );
+       mlt_position position = mlt_frame_get_position( frame );
+       return position - in;
+}
+
 /** Get the percent complete.
  *
  * \public \memberof mlt_transition_s
index 340d2d706bab61dd62711d021898bda0b80dbb1b..3e9d4513f9d12cb4826f9e8412e8cc10585c771b 100644 (file)
@@ -74,6 +74,7 @@ extern int mlt_transition_get_b_track( mlt_transition self );
 extern mlt_position mlt_transition_get_in( mlt_transition self );
 extern mlt_position mlt_transition_get_out( mlt_transition self );
 extern mlt_position mlt_transition_get_length( mlt_transition self );
+extern mlt_position mlt_transition_get_position( mlt_transition self, mlt_frame frame );
 extern double mlt_transition_get_progress( mlt_transition self, mlt_frame frame );
 extern double mlt_transition_get_progress_delta( mlt_transition self, mlt_frame frame );
 extern mlt_frame mlt_transition_process( mlt_transition self, mlt_frame a_frame, mlt_frame b_frame );
index 527aba3e6894fbf3a4b0659a54785adffbffeb23..fa16a8137088bc4f088bb39593fd13cfb036b330 100644 (file)
@@ -122,6 +122,11 @@ int Transition::get_length( )
        return mlt_transition_get_length( get_transition( ) );
 }
 
+int Transition::get_position( Frame &frame )
+{
+       return mlt_transition_get_position( get_transition( ), frame.get_frame( ) );
+}
+
 double Transition::get_progress( Frame &frame )
 {
        return mlt_transition_get_progress( get_transition( ), frame.get_frame( ) );
index 51e8401a5644395bd656f7f24d750bbc3f45c725..fc5560ee6ff4e82669bd1827262ca73f46e0db48 100644 (file)
@@ -51,6 +51,7 @@ namespace Mlt
                        int get_in( );
                        int get_out( );
                        int get_length( );
+                       int get_position( Frame &frame );
                        double get_progress( Frame &frame );
                        double get_progress_delta( Frame &frame );
        };