def testPaVEVideo( filename, onlyFrameNumber=None, refLog=None ): f = open( filename, "rb" ) data = f.read(10000) pave = PaVE() cap = None total = 0 while len(data) > 0: pave.append( data ) header,payload = pave.extract() while payload: if isIFrame( header ) and (onlyFrameNumber == None or onlyFrameNumber==frameNumber( header )/FRAMES_PER_INDEX): tmpFile = open( "tmp.bin", "wb" ) tmpFile.write( payload ) tmpFile.flush() tmpFile.close() cap = cv2.VideoCapture( "tmp.bin" ) ret, frame = cap.read() assert ret if ret: global g_filename g_filename = "tmp_%04d.jpg" % (frameNumber( header )/FRAMES_PER_INDEX) result = processFrame( frame, debug=True ) if refLog != None: print refLog.readline().strip() (oldFrameNumber, oldTimestamp), oldResult = eval(refLog.readline().strip()) assert oldFrameNumber == frameNumber(header), (oldFrameNumber, frameNumber(header)) assert oldTimestamp == timestamp(header), (oldTimestamp, timestamp(header)) print ((frameNumber(header), timestamp(header)), result) # assert oldResult == result, oldResult # potential difference linux/windows else: print frameNumber( header )/FRAMES_PER_INDEX, result if onlyFrameNumber: cv2.waitKey(0) return header,payload = pave.extract() if cv2.waitKey(1) & 0xFF == ord('q'): break data = f.read(10000) if refLog != None: # complete termination line print refLog.readline().strip()
def wrapper( packet ): global g_pave if g_pave == None: g_pave = PaVE() g_pave.append( packet ) header,payload = g_pave.extract() while payload: if isIFrame( header ): tmpFile = open( "tmp.bin", "wb" ) tmpFile.write( payload ) tmpFile.flush() tmpFile.close() cap = cv2.VideoCapture( "tmp.bin" ) ret, frame = cap.read() assert ret if ret: return (frameNumber( header ), timestamp(header)), processFrame( frame, debug=False ) header,payload = g_pave.extract()
def wrapper(packet): global g_pave if g_pave == None: g_pave = PaVE() g_pave.append(packet) header, payload = g_pave.extract() while payload: if isIFrame(header): tmpFile = open("tmp.bin", "wb") tmpFile.write(payload) tmpFile.flush() tmpFile.close() cap = cv2.VideoCapture("tmp.bin") ret, frame = cap.read() assert ret if ret: return (frameNumber(header), timestamp(header)), processFrame(frame, debug=False) header, payload = g_pave.extract()
def wrapper(packet): global g_pave global g_img if g_pave == None: g_pave = PaVE() cvideo.init() g_img = np.zeros([360, 640, 3], dtype=np.uint8) g_pave.append(packet) header, payload = g_pave.extract() while payload: if isIFrame(header): w, h = frameEncodedWidth(header), frameEncodedHeight(header) if g_img.shape[0] != h or g_img.shape[1] != w: print g_img.shape, (w, h) g_img = np.zeros([h, w, 3], dtype=np.uint8) ret = cvideo.frame(g_img, isIFrame(header) and 1 or 0, payload) frame = g_img assert ret if ret: result = processAvoidGreen(frame, debug=False) return (frameNumber(header), timestamp(header)), result header, payload = g_pave.extract()
def wrapper( packet ): global g_pave global g_img if g_pave == None: g_pave = PaVE() cvideo.init() g_img = np.zeros([360,640,3], dtype=np.uint8) g_pave.append( packet ) header,payload = g_pave.extract() while payload: if isIFrame( header ): w,h = frameEncodedWidth(header), frameEncodedHeight(header) if g_img.shape[0] != h or g_img.shape[1] != w: print g_img.shape, (w,h) g_img = np.zeros([h,w,3], dtype=np.uint8) ret = cvideo.frame( g_img, isIFrame(header) and 1 or 0, payload ) frame = g_img assert ret if ret: result = processAvoidGreen( frame, debug=False ) return (frameNumber( header ), timestamp(header)), result header,payload = g_pave.extract()