minor tidy up
[melted] / src / tests / charlie.c
1 #include <framework/mlt.h>
2 #include <stdio.h>
3
4 int main( int argc, char **argv )
5 {
6 char temp[ 132 ];
7 char *file1 = NULL;
8 char *file2 = NULL;
9
10 mlt_factory_init( "../modules" );
11
12 if ( argc >= 2 )
13 file1 = argv[ 1 ];
14 if ( argc >= 3 )
15 file2 = argv[ 2 ];
16
17 // Start the consumer...
18 mlt_consumer sdl_out = mlt_factory_consumer( "sdl", NULL );
19
20 fprintf( stderr, "Press return to continue\n" );
21 fgets( temp, 132, stdin );
22
23 // Create the producer(s)
24 mlt_producer dv1 = mlt_factory_producer( "libdv", file1 );
25 mlt_producer dv2 = mlt_factory_producer( "libdv", file2 );
26 //mlt_producer dv1 = producer_ppm_init( NULL );
27 //mlt_producer dv2 = producer_ppm_init( NULL );
28
29 // Connect a producer to our sdl consumer
30 mlt_consumer_connect( sdl_out, mlt_producer_service( dv1 ) );
31
32 fprintf( stderr, "Press return to continue\n" );
33 fgets( temp, 132, stdin );
34
35 // Register producers(s) with a multitrack object
36 mlt_multitrack multitrack = mlt_multitrack_init( );
37 mlt_multitrack_connect( multitrack, dv1, 0 );
38 mlt_multitrack_connect( multitrack, dv2, 1 );
39
40 // Create a filter and associate it to track 0
41 mlt_filter filter = mlt_factory_filter( "deinterlace", NULL );
42 mlt_filter_connect( filter, mlt_multitrack_service( multitrack ), 0 );
43 mlt_filter_set_in_and_out( filter, 0, 5 );
44
45 // Create another
46 mlt_filter greyscale = mlt_factory_filter( "greyscale", NULL );
47 mlt_filter_connect( greyscale, mlt_filter_service( filter ), 0 );
48 mlt_filter_set_in_and_out( greyscale, 0, 10 );
49
50 // Buy a tractor and connect it to the filter
51 mlt_tractor tractor = mlt_tractor_init( );
52 mlt_tractor_connect( tractor, mlt_filter_service( greyscale ) );
53
54 // Connect the tractor to the consumer
55 mlt_consumer_connect( sdl_out, mlt_tractor_service( tractor ) );
56
57 // Do stuff until we're told otherwise...
58 fprintf( stderr, "Press return to continue\n" );
59 fgets( temp, 132, stdin );
60
61 // Close everything...
62 //mlt_consumer_close( sdl_out );
63 //mlt_tractor_close( tractor );
64 //mlt_filter_close( filter );
65 //mlt_filter_close( greyscale );
66 //mlt_multitrack_close( multitrack );
67 //mlt_producer_close( dv1 );
68 //mlt_producer_close( dv2 );
69
70 mlt_factory_close( );
71
72 return 0;
73 }