Guest User

Untitled

a guest
Jun 20th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. -(void)setMovie:(QTMovie *)smovie
  2. {
  3. if (frameCache!=nil)
  4. [frameCache release];
  5.  
  6. frameCache=[[NSMutableArray array] retain];
  7.  
  8. QTTimeRange range=QTMakeTimeRange(QTMakeTime(0,600), [smovie duration]);
  9. QTMovie *copiedMovie=[[QTMovie alloc] initWithMovie:smovie timeRange:range error:nil];
  10. ILFrameGrabber *grabber=[[ILFrameGrabber alloc] initWithMovie:copiedMovie];
  11. ratio=grabber.width/grabber.height;
  12. NSRect screen=[[NSScreen mainScreen] frame];
  13. NSInteger frameCount=screen.size.width/[self bounds].size.height;
  14. NSInteger delta=grabber.frameCount/frameCount;
  15.  
  16. dispatch_queue_t frameQueue = dispatch_queue_create( "com.interfacelab.shave.frame", NULL );
  17. for (int i=0; i<frameCount; i++)
  18. dispatch_async(frameQueue,^{
  19. [frameCache addObject:[grabber nsImageAtFrame:i*delta]];
  20. dispatch_async(dispatch_get_main_queue(), ^{
  21. [self setNeedsDisplay:YES];
  22. NSLog(@"loaded frame %d",i*delta);
  23. });
  24. });
  25. }
Add Comment
Please, Sign In to add comment