// Default of all consumers is real time
mlt_properties_set_int( properties, "real_time", 1 );
+ // Default to environment test card
+ mlt_properties_set( properties, "test_card", mlt_environment( "MLT_TEST_CARD" ) );
+
// Hmm - default all consumers to yuv422 :-/
this->format = mlt_image_yuv422;
}
if ( mlt_properties_get_data( properties, "test_card_producer", NULL ) == NULL )
{
// Create a test card producer
- // TODO: do we want to use fezzik here?
- mlt_producer producer = mlt_factory_producer( "fezzik", test_card );
+ mlt_producer producer = mlt_factory_producer( NULL, test_card );
// Do we have a producer
if ( producer != NULL )
mlt_properties_set_data( properties, "test_card_producer", NULL, 0, NULL, NULL );
}
+ // Set the real_time preference
+ this->real_time = mlt_properties_get_int( properties, "real_time" );
+
// Start the service
if ( this->start != NULL )
return this->start( this );
return 0;
}
-/** Protected method :-/ for consumer to get frames from connected service
+/** Protected method for consumer to get frames from connected service
*/
mlt_frame mlt_consumer_get_frame( mlt_consumer this )
static void consumer_read_ahead_start( mlt_consumer this )
{
+ pthread_attr_t thread_attributes;
+
// We're running now
this->ahead = 1;
// Create the condition
pthread_cond_init( &this->cond, NULL );
+ // Inherit the scheduling priority
+ pthread_attr_init( &thread_attributes );
+ pthread_attr_setinheritsched( &thread_attributes, PTHREAD_INHERIT_SCHED );
+
// Create the read ahead
- pthread_create( &this->ahead_thread, NULL, consumer_read_ahead_thread, this );
-
+ pthread_create( &this->ahead_thread, &thread_attributes, consumer_read_ahead_thread, this );
}
static void consumer_read_ahead_stop( mlt_consumer this )
mlt_properties properties = mlt_consumer_properties( this );
// Check if the user has requested real time or not
- if ( mlt_properties_get_int( properties, "real_time" ) )
+ if ( this->real_time )
{
int size = 1;