-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.py
52 lines (42 loc) · 1.63 KB
/
player.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from SimpleCV import Image, Display
from glob import glob
import os
import time
from datetime import datetime
import re
def Run(cmdPipe):
steadyStateFPS = 10
desiredBuffer = 60*60 #1 minute * 60 seconds
numberOfFrames = steadyStateFPS*desiredBuffer;
fmt = '%Y-%m-%d %H:%M:%S'
disp = Display()
filelist = []
frameCounter = 101
sleepTime = .1
while disp.isNotDone():
# check command
if cmdPipe.poll():
cmd = cmdPipe.recv()
if cmd=='shutdown':
print('player', 0, "Shutting down.")
break
if frameCounter > 100 or len(filelist) == 0:
frameCounter = 0
filelist = glob("images/*.jpg")
if len(filelist)>numberOfFrames:
sleepTime = 1.0/steadyStateFPS
print("player", 0, "number of frames in buffer="+str(len(filelist))+" desired="+str(numberOfFrames)+" setting sleeptime to "+str(sleepTime))
else:
sleepTime = (1.0/steadyStateFPS)+.01
print("player", 0, "number of frames in buffer="+str(len(filelist))+" desired="+str(numberOfFrames)+" setting sleeptime to "+str(sleepTime))
filename = filelist.pop(0)
img = Image(filename)
matchObj = re.search(r'[0-9- :]+', filename)
d1_ts = time.mktime(datetime.strptime(matchObj.group(), fmt).timetuple())
d2_ts = time.mktime(datetime.utcnow().timetuple())
offset = int(d1_ts-d2_ts)/60
img.drawText(str(offset), x=600, y=470)
img.save(disp)
os.remove(filename)
frameCounter = frameCounter+1
time.sleep(sleepTime)