| 
					
				 | 
			
			
				@@ -1,36 +1,60 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#!/usr/bin/env python3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cv2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import pygame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class Vopen(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __init__(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cap = cv2.VideoCapture('/home/user/Downloads/video.mp4') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #cap = cv2.VideoCapture('/home/user/Downloads/video.ogv') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cap = cv2.VideoCapture('/home/user/Downloads/bbb_sunflower_480x320.mp4') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.cap = cap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.fname = '/home/user/Downloads/video.mp4' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.fname = '/home/user/Downloads/video.ogv' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.fname = '/home/user/Downloads/bbb_sunflower_480x320.mp4' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.x = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.y = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.im = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def init(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        success, img = self.cap.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(self,"init()") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cap = cv2.VideoCapture(self.fname) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.cap = cap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.success, self.img = self.cap.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.img = cv2.cvtColor(self.img, cv2.COLOR_BGR2RGB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except:pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.shape = img.shape[1::-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #print( img.shape[0:10] ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return success,self.shape 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.shape = self.img.shape[1::-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def read(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        success, img = self.cap.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(self,"read()") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.success, self.img = self.cap.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(self.success) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.img = cv2.cvtColor(self.img, cv2.COLOR_BGR2RGB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print("exception 432",e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def next(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(self,"play",time.time()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        except: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #cv2.CvtColor(img, im, cv.CV_BGR2RGB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #print( img.shape[0:10] ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #print( self.shape ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return success,img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.im = pygame.image.frombuffer(self.img.tobytes(), self.shape, "RGB") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # wn.blit(im, (self.x, self.y)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except AttributeError as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print("except",e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            time.sleep(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.success,self.shape = v.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def draw(self,wn): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self.success: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            wn.blit(self.im, (self.x, self.y)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 v = Vopen() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-success,shape = v.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#success,shape = v.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+shape = [300,300] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if v.shape: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    shape  = v.shape 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-wn = pygame.display.set_mode(shape,pygame.RESIZABLE)#,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+wn = pygame.display.set_mode(v.shape,pygame.RESIZABLE)#,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #wn = pygame.display.set_mode(shape) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 window = wn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 clock = pygame.time.Clock() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,25 +70,24 @@ def grab(x=55,y=55,w=60,h=60): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     crop.blit(sub, (0,0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return crop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-while success: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    clock.tick(60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    success, img = v.read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+max_frame=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+success=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+while v.success and success: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for event in pygame.event.get(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if event.type == pygame.QUIT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             success = False 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        im = pygame.image.frombuffer(img.tobytes(), shape, "RGB") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        #im = pygame.image.frombuffer(img.tobytes(), shape, "BGR") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        wn.blit(im, (0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    except AttributeError as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print("except",e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        time.sleep(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        v = Vopen() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        success,shape = v.init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if max_frame < 300: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v.next() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        max_frame+=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #print(i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v.draw(wn) #,x=0,y=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sub = grab() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     window.blit(sub, (500,10)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     pygame.display.update() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    clock.tick(60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pygame.quit() 
			 |