X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmiracle%2Fmiracle_unit.c;h=ff6072317d4ab5ed35c382e56b4a3c1dde092a57;hb=c287a51b7a4c2cc437256c178a5eb2e7775d34fa;hp=f784d3a8f494345a0a2d8e910bf2d69805175eb8;hpb=48377c7457b33c7e08e648d57187cd4a60f78a3d;p=melted diff --git a/src/miracle/miracle_unit.c b/src/miracle/miracle_unit.c index f784d3a..ff60723 100644 --- a/src/miracle/miracle_unit.c +++ b/src/miracle/miracle_unit.c @@ -246,7 +246,7 @@ void miracle_unit_report_list( miracle_unit unit, valerie_response response ) { mlt_playlist_clip_info info; mlt_playlist_get_clip_info( playlist , &info, i ); - valerie_response_printf( response, 10240, "%d \"%s\" %lld %lld %lld %lld %.2f\n", + valerie_response_printf( response, 10240, "%d \"%s\" %d %d %d %d %.2f\n", i, strip_root( unit, info.resource ), info.frame_in, @@ -255,6 +255,7 @@ void miracle_unit_report_list( miracle_unit unit, valerie_response response ) info.length, info.fps ); } + valerie_response_printf( response, 1024, "\n" ); } /** Load a clip into the unit clearing existing play list. @@ -266,7 +267,7 @@ void miracle_unit_report_list( miracle_unit unit, valerie_response response ) \param out The ending frame (-1 for maximum) */ -valerie_error_code miracle_unit_load( miracle_unit unit, char *clip, int64_t in, int64_t out, int flush ) +valerie_error_code miracle_unit_load( miracle_unit unit, char *clip, int32_t in, int32_t out, int flush ) { // Now try to create an producer mlt_producer instance = create_producer( clip ); @@ -286,7 +287,7 @@ valerie_error_code miracle_unit_load( miracle_unit unit, char *clip, int64_t in, return valerie_invalid_file; } -valerie_error_code miracle_unit_insert( miracle_unit unit, char *clip, int index, int64_t in, int64_t out ) +valerie_error_code miracle_unit_insert( miracle_unit unit, char *clip, int index, int32_t in, int32_t out ) { mlt_producer instance = locate_producer( unit, clip ); @@ -324,6 +325,14 @@ valerie_error_code miracle_unit_clean( miracle_unit unit ) return valerie_ok; } +valerie_error_code miracle_unit_clear( miracle_unit unit ) +{ + clear_unit( unit ); + miracle_log( LOG_DEBUG, "Cleared playlist" ); + miracle_unit_status_communicate( unit ); + return valerie_ok; +} + valerie_error_code miracle_unit_move( miracle_unit unit, int src, int dest ) { mlt_properties properties = unit->properties; @@ -344,7 +353,7 @@ valerie_error_code miracle_unit_move( miracle_unit unit, int src, int dest ) \param out The ending frame (-1 for maximum) */ -valerie_error_code miracle_unit_append( miracle_unit unit, char *clip, int64_t in, int64_t out ) +valerie_error_code miracle_unit_append( miracle_unit unit, char *clip, int32_t in, int32_t out ) { mlt_producer instance = locate_producer( unit, clip ); @@ -391,6 +400,9 @@ void miracle_unit_play( miracle_unit_t *unit, int speed ) void miracle_unit_terminate( miracle_unit unit ) { mlt_consumer consumer = mlt_properties_get_data( unit->properties, "consumer", NULL ); + mlt_playlist playlist = mlt_properties_get_data( unit->properties, "playlist", NULL ); + mlt_producer producer = mlt_playlist_producer( playlist ); + mlt_producer_set_speed( producer, 0 ); mlt_consumer_stop( consumer ); miracle_unit_status_communicate( unit ); } @@ -507,7 +519,7 @@ int miracle_unit_get_status( miracle_unit unit, valerie_status status ) /** Change position in the playlist. */ -void miracle_unit_change_position( miracle_unit unit, int clip, int64_t position ) +void miracle_unit_change_position( miracle_unit unit, int clip, int32_t position ) { mlt_properties properties = unit->properties; mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); @@ -527,8 +539,8 @@ void miracle_unit_change_position( miracle_unit unit, int clip, int64_t position if ( mlt_playlist_get_clip_info( playlist, &info, clip ) == 0 ) { - int64_t frame_start = info.start; - int64_t frame_offset = position; + int32_t frame_start = info.start; + int32_t frame_offset = position; if ( frame_offset < 0 ) frame_offset = info.frame_out; @@ -557,7 +569,7 @@ int miracle_unit_get_current_clip( miracle_unit unit ) /** Set a clip's in point */ -int miracle_unit_set_clip_in( miracle_unit unit, int index, int64_t position ) +int miracle_unit_set_clip_in( miracle_unit unit, int index, int32_t position ) { mlt_properties properties = unit->properties; mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); @@ -578,7 +590,7 @@ int miracle_unit_set_clip_in( miracle_unit unit, int index, int64_t position ) /** Set a clip's out point. */ -int miracle_unit_set_clip_out( miracle_unit unit, int index, int64_t position ) +int miracle_unit_set_clip_out( miracle_unit unit, int index, int32_t position ) { mlt_properties properties = unit->properties; mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL ); @@ -600,7 +612,7 @@ int miracle_unit_set_clip_out( miracle_unit unit, int index, int64_t position ) /** Step by specified position. */ -void miracle_unit_step( miracle_unit unit, int64_t offset ) +void miracle_unit_step( miracle_unit unit, int32_t offset ) { mlt_properties properties = unit->properties; mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL );