X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmiracle%2Fmiracle.c;h=24aac66c9653c0c32a886e47bb87cafd08f2cb25;hb=d5d878221c3123ef1d3a335dbc2b1878b3fdb983;hp=8d1294d033055210b02679097b27f5115192b470;hpb=9390e8b584f3f717f0a326893c0e37cf187a0a51;p=melted diff --git a/src/miracle/miracle.c b/src/miracle/miracle.c index 8d1294d..24aac66 100644 --- a/src/miracle/miracle.c +++ b/src/miracle/miracle.c @@ -1,5 +1,5 @@ /* - * miracle.c -- A DV over IEEE 1394 TCP Server + * miracle.c -- MLT Video TCP Server * * Copyright (C) 2002-2003 Ushodaya Enterprises Limited * Authors: @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -45,8 +46,7 @@ static miracle_server server = NULL; static void main_cleanup( ) { - miracle_server_shutdown( server ); - mlt_factory_close( ); + miracle_server_close( server ); } /** Report usage and exit. @@ -67,9 +67,16 @@ int main( int argc, char **argv ) int index = 0; int background = 1; struct timespec tm = { 5, 0 }; + struct sched_param scp; - // Construct the factory - mlt_factory_init( getenv( "MLT_REPOSITORY" ) ); + // Use realtime scheduling if possible + memset( &scp, '\0', sizeof( scp ) ); + scp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; +#ifndef __DARWIN__ + sched_setscheduler( 0, SCHED_FIFO, &scp ); +#endif + + mlt_factory_init( NULL ); server = miracle_server_init( argv[ 0 ] ); @@ -101,6 +108,9 @@ int main( int argc, char **argv ) atexit( main_cleanup ); + /* Set the config script */ + miracle_server_set_config( server, "/etc/miracle.conf" ); + /* Execute the server */ error = miracle_server_execute( server );