double mlt_property_anim_get_double( mlt_property self, double fps, locale_t locale, int position, int length )
{
+ pthread_mutex_lock( &self->mutex );
double result;
if ( self->animation || ( ( self->types & mlt_prop_string ) && self->prop_string ) )
{
{
result = mlt_property_get_double( self, fps, locale );
}
+ pthread_mutex_unlock( &self->mutex );
return result;
}
int mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale, int position, int length )
{
+ pthread_mutex_lock( &self->mutex );
int result;
if ( self->animation || ( ( self->types & mlt_prop_string ) && self->prop_string ) )
{
{
result = mlt_property_get_int( self, fps, locale );
}
+ pthread_mutex_unlock( &self->mutex );
return result;
}
char* mlt_property_anim_get_string( mlt_property self, double fps, locale_t locale, int position, int length )
{
+ pthread_mutex_lock( &self->mutex );
char *result;
if ( self->animation || ( ( self->types & mlt_prop_string ) && self->prop_string ) )
{
refresh_animation( self, fps, locale, length );
mlt_animation_get_item( self->animation, &item, position );
- pthread_mutex_lock( &self->mutex );
if ( self->prop_string )
free( self->prop_string );
self->prop_string = mlt_property_get_string_l( item.property, locale );
if ( self->prop_string )
self->prop_string = strdup( self->prop_string );
self->types |= mlt_prop_string;
- pthread_mutex_unlock( &self->mutex );
result = self->prop_string;
mlt_property_close( item.property );
{
result = mlt_property_get_string_l( self, locale );
}
+ pthread_mutex_unlock( &self->mutex );
return result;
}
mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps, locale_t locale, int position, int length )
{
+ pthread_mutex_lock( &self->mutex );
mlt_rect result;
if ( self->animation || ( ( self->types & mlt_prop_string ) && self->prop_string ) )
{
{
result = mlt_property_get_rect( self, locale );
}
+ pthread_mutex_unlock( &self->mutex );
return result;
}