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 );
}
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;