#!/usr/bin/python
import sys
import struct
infile = "stream.yuv"
fp=[]
FH = open(infile, 'rb')
## read header (let's analyse it some day...)
pt=39
line = FH.read(pt)
lenY=640*480
lenUV = 320*240
frame_len=lenY+2*lenUV
## read "FRAME\n"
line = FH.read(6)
while line == 'FRAME\n':
newf = open(infile, 'rb')
newf.seek(pt+6)
fp.append(newf)
FH.seek(frame_len,1)
pt+=6+frame_len
line = FH.read(6)
print "P5\n640 720\n255"
output=[0]*frame_len
N=len(fp)/2
#for each pixel of each channel, read the vaues in every frame and perform the filtering
f=fp[-1]
for k in range(frame_len):
output[k]=f.read(1)
for k in range(lenY):
sys.stdout.write(output[k])
Sx=640
Sy=480
for k in range(Sy/2):
for j in range(Sx/2):
sys.stdout.write(output[lenY+ k*Sx/2 +j])
for j in range(Sx/2):
sys.stdout.write(output[lenY+lenUV+k*Sx/2 +j])