Skip to content

Commit 0cefff7

Browse files
committed
fix #155
1 parent 1c69018 commit 0cefff7

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

Diff for: api.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ def turn(data):
135135

136136
def exec(data):
137137
program = prog_engine.create(data["name"], data["code"])
138-
return json.dumps(program.execute())
138+
options = data["options"]
139+
return json.dumps(program.execute(options))
139140

140141
## System
141142

Diff for: cv/camera.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
class Camera(object):
3131

32-
FFMPEG_CMD = 'MP4Box'
32+
FFMPEG_CMD = 'ffmpeg'
3333
PHOTO_FILE_EXT = ".jpg"
3434
VIDEO_FILE_EXT = ".mp4"
3535
VIDEO_FILE_EXT_H264 = '.h264'
@@ -90,7 +90,10 @@ def video_stop(self):
9090
self.camera.stop_recording(2)
9191

9292
# pack in mp4 container
93-
params = " -fps " + str(self.camera.framerate) + " -add " + self.video_filename + self.VIDEO_FILE_EXT_H264 + " " + self.video_filename + self.VIDEO_FILE_EXT
93+
params = " -loglevel quiet -stats -framerate " + str(self.camera.framerate) + \
94+
" -i " + self.video_filename + self.VIDEO_FILE_EXT_H264 + \
95+
" -c copy " + self.video_filename + self.VIDEO_FILE_EXT
96+
9497
os.system(self.FFMPEG_CMD + params)
9598
# remove h264 file
9699
os.remove(self.video_filename + self.VIDEO_FILE_EXT_H264)

Diff for: program.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -148,21 +148,19 @@ def dom_code(self):
148148
return self._dom_code
149149

150150
def __init__(self, name, code=None, dom_code=None, default=False):
151-
#super(Program, self).__init__()
152151
self._thread = None
153152
self.name = name
154153
self._dom_code = dom_code
155154
self._code = code
156155
self._default = default
157156

158-
def execute(self):
157+
def execute(self, options={}):
159158
if self._running:
160159
raise RuntimeError('already running')
161160

162161
self._running = True
163-
164162
try:
165-
self._thread = threading.Thread(target=self.run)
163+
self._thread = threading.Thread(target=self.run, args=(options,))
166164
self._thread.start()
167165
except RuntimeError as re:
168166
logging.error("RuntimeError: %s", str(re))
@@ -187,15 +185,16 @@ def is_running(self):
187185
def is_default(self):
188186
return self._default
189187

190-
def run(self):
188+
def run(self, *args):
189+
options = args[0]
191190
try:
192191
program = self
193192
try:
194-
if config.Config.get().get("prog_video_rec") == "true":
195-
get_cam().video_rec(program.name)
193+
if options.get("autoRecVideo") == True:
194+
get_cam().video_rec(program.name.replace(" ", "_"))
196195
logging.debug("starting video")
197-
except Exception:
198-
logging.error("Camera not available")
196+
except Exception as e:
197+
logging.error("Camera not available: " + str(e))
199198

200199
self._log = "" #clear log
201200
imports = "import json\n"

0 commit comments

Comments
 (0)