- p_sys->i_angle = var_CreateGetIntegerCommand( p_filter,
- FILTER_PREFIX "angle" ) * 10;
- var_Create( p_filter, FILTER_PREFIX "deciangle",
- VLC_VAR_INTEGER|VLC_VAR_ISCOMMAND );
- var_AddCallback( p_filter, FILTER_PREFIX "angle", RotateCallback, p_sys );
- var_AddCallback( p_filter, FILTER_PREFIX "deciangle",
- PreciseRotateCallback, p_sys );
-
- cache_trigo( p_sys->i_angle, &p_sys->i_sin, &p_sys->i_cos );
+ if( var_InheritBool( p_filter, FILTER_PREFIX "use-motion" ) )
+ {
+ p_sys->p_motion = motion_create( VLC_OBJECT( p_filter ) );
+ if( p_sys->p_motion == NULL )
+ {
+ free( p_sys );
+ return VLC_EGENERIC;
+ }
+ }
+ else
+ {
+ float f_angle = var_CreateGetFloatCommand( p_filter,
+ FILTER_PREFIX "angle" );
+ store_trigo( p_sys, f_angle );
+ var_AddCallback( p_filter, FILTER_PREFIX "angle",
+ RotateCallback, p_sys );
+ p_sys->p_motion = NULL;
+ }