X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltTransition.cpp;h=5a18c8eb54e83942671cb8d1ef2bfdd68d311a73;hb=009596ca20a3c4b77e6fc6d8355a509be81f9897;hp=2456a78de471caae76bbb35113d6e0c5f7009845;hpb=1a4cf7f5285d16d0530ea03c2b524be7c1aa5dbc;p=melted diff --git a/mlt++/src/MltTransition.cpp b/mlt++/src/MltTransition.cpp index 2456a78..5a18c8e 100644 --- a/mlt++/src/MltTransition.cpp +++ b/mlt++/src/MltTransition.cpp @@ -24,7 +24,6 @@ using namespace Mlt; Transition::Transition( char *id, char *arg ) : - destroy( true ), instance( NULL ) { if ( arg != NULL ) @@ -48,22 +47,31 @@ Transition::Transition( char *id, char *arg ) : } } +Transition::Transition( Service &transition ) : + instance( NULL ) +{ + if ( transition.type( ) == transition_type ) + { + instance = ( mlt_transition )transition.get_service( ); + inc_ref( ); + } +} + Transition::Transition( Transition &transition ) : - destroy( false ), instance( transition.get_transition( ) ) { + inc_ref( ); } Transition::Transition( mlt_transition transition ) : - destroy( false ), instance( transition ) { + inc_ref( ); } Transition::~Transition( ) { - if ( destroy ) - mlt_transition_close( instance ); + mlt_transition_close( instance ); } mlt_transition Transition::get_transition( ) @@ -76,3 +84,7 @@ mlt_service Transition::get_service( ) return mlt_transition_service( get_transition( ) ); } +void Transition::set_in_and_out( int in, int out ) +{ + mlt_transition_set_in_and_out( get_transition( ), in, out ); +}