def scroll(clip, h=None, w=None, x_speed=0, y_speed=0, x_start=0, y_start=0, apply_to='mask'):
 if (h is None):
  h = clip.h
 if (w is None):
  w = clip.w
 xmax = ((clip.w - w) - 1)
 ymax = ((clip.h - h) - 1)
 def f(gf, t):
  x = max(0, min(xmax, (x_start + np.round((x_speed * t)))))
  y = max(0, min(ymax, (y_start + np.round((y_speed * t)))))
  return gf(t)[y:(y + h), x:(x + w)]
 return clip.fl(f, apply_to=apply_to)

def scroll ( clip , h = None , w = None , x_speed = 0 , y_speed = 0 , x_start = 0 , y_start = 0 , apply_to = 'mask' ) : if ( h is None ) : h = clip . h if ( w is None ) : w = clip . w xmax = ( ( clip . w - w ) - 1 ) ymax = ( ( clip . h - h ) - 1 ) def f ( gf , t ) : x = max ( 0 , min ( xmax , ( x_start + np . round ( ( x_speed * t ) ) ) ) ) y = max ( 0 , min ( ymax , ( y_start + np . round ( ( y_speed * t ) ) ) ) ) return gf ( t ) [ y : ( y + h ) , x : ( x + w ) ] return clip . fl ( f , apply_to = apply_to )
scrolls horizontally or vertically a clip .