|
@@ -48,8 +48,8 @@ def gst_convert(mega_dir, out_file, use_jpeg):
|
|
|
return
|
|
|
t = audio.get_time()
|
|
|
#print("Audio: ", name, " need ", data, t)
|
|
|
- audio.pop()
|
|
|
buffer, caps = sa_read(name, t)
|
|
|
+ os.unlink(name)
|
|
|
appsrc.set_property("caps", caps)
|
|
|
appsrc.emit("push-buffer", buffer)
|
|
|
|
|
@@ -69,19 +69,23 @@ def gst_convert(mega_dir, out_file, use_jpeg):
|
|
|
class grwBase:
|
|
|
def init(m, dir):
|
|
|
m.dir = dir
|
|
|
- m.list = os.listdir(dir)
|
|
|
- m.list.sort()
|
|
|
m.slen = len(m.suffix)
|
|
|
m.start_time = 0
|
|
|
- m.length = len(m.list)
|
|
|
+ m.scan()
|
|
|
print("Movie", len(m.list))
|
|
|
|
|
|
+ def scan(m):
|
|
|
+ m.list = os.listdir(m.dir)
|
|
|
+ m.list.sort()
|
|
|
+ m.length = len(m.list)
|
|
|
+
|
|
|
def get_path(m):
|
|
|
s = m.get_name()
|
|
|
if s: return m.dir + s
|
|
|
return s
|
|
|
|
|
|
def get_name(m):
|
|
|
+ m.scan()
|
|
|
#print("Get path -- ")
|
|
|
while True:
|
|
|
if (len(m.list)) == 0:
|
|
@@ -95,15 +99,22 @@ def gst_convert(mega_dir, out_file, use_jpeg):
|
|
|
def get_time(m):
|
|
|
s = m.get_name()
|
|
|
s = s[:-m.slen]
|
|
|
- return int(s) * 1000 - m.start_time
|
|
|
+ t = int(s)
|
|
|
+ res = t * 1000 - m.start_time
|
|
|
+ t = t / (1000*1000.)
|
|
|
+ while (time.time() - t < 1):
|
|
|
+ print("Too fast: ", time.time(), t, file=sys.stderr)
|
|
|
+ print("Message: WA")
|
|
|
+ sys.stdout.flush()
|
|
|
+ time.sleep(.1)
|
|
|
+ return res
|
|
|
|
|
|
def pop(m):
|
|
|
m.list = m.list[1:]
|
|
|
|
|
|
def progress(m):
|
|
|
- i = len(m.list) / m.length
|
|
|
- i = 1-i
|
|
|
- print("Message: %.0f%%" % (100*i))
|
|
|
+ i = len(m.list)
|
|
|
+ print("Message: %d" % i)
|
|
|
sys.stdout.flush()
|
|
|
|
|
|
class grwVideo(grwBase):
|
|
@@ -164,8 +175,8 @@ def gst_convert(mega_dir, out_file, use_jpeg):
|
|
|
t = movie.get_time()
|
|
|
#print("Video: ", name, t)
|
|
|
movie.progress()
|
|
|
- movie.pop()
|
|
|
buffer, caps = grw_read(name, t)
|
|
|
+ os.unlink(name)
|
|
|
appsrc.set_property("caps", caps)
|
|
|
appsrc.emit("push-buffer", buffer)
|
|
|
|
|
@@ -213,8 +224,8 @@ def gst_convert(mega_dir, out_file, use_jpeg):
|
|
|
return
|
|
|
t = movie.get_time()
|
|
|
#print("Video: ", name, t)
|
|
|
- movie.pop()
|
|
|
buffer, caps = jpeg_read(name, t)
|
|
|
+ os.unlink(name)
|
|
|
appsrc.set_property("caps", caps)
|
|
|
appsrc.emit("push-buffer", buffer)
|
|
|
|
|
@@ -410,15 +421,37 @@ class Mpegize:
|
|
|
if len(argv) > 2:
|
|
|
m.base = argv[2]
|
|
|
mode = argv[1]
|
|
|
+ fps = argv[4]
|
|
|
+ ext = argv[5]
|
|
|
if mode == "start":
|
|
|
+ print("Phase 0: start, mode ", ext, file=sys.stderr)
|
|
|
+
|
|
|
+ if ext!="grw":
|
|
|
+ return
|
|
|
+ print("Phase 0: wait", file=sys.stderr)
|
|
|
+
|
|
|
+ print("Message: W1")
|
|
|
+ sys.stdout.flush()
|
|
|
+
|
|
|
+ time.sleep(1)
|
|
|
+
|
|
|
+ print("Phase 1: parallel fun", file=sys.stderr)
|
|
|
+
|
|
|
+ print("Message: proc")
|
|
|
+ sys.stdout.flush()
|
|
|
+ gst_convert(m.base, argv[3], argv[4]=="dng")
|
|
|
return
|
|
|
if mode == "convert" or mode == "stop":
|
|
|
- print("Phase 1: jpegize")
|
|
|
+ if ext=="grw":
|
|
|
+ # FIXME: need to wait for other mpegize!
|
|
|
+ time.sleep(200)
|
|
|
+ return
|
|
|
+ print("Phase 1: jpegize", file=sys.stderr)
|
|
|
print("Message: 0%%")
|
|
|
sys.stdout.flush()
|
|
|
m.prepare()
|
|
|
m.jpegize()
|
|
|
- print("Phase 2: mpegize -- ", argv[3])
|
|
|
+ print("Phase 2: mpegize -- ", argv[3], file=sys.stderr)
|
|
|
print("Message: enc")
|
|
|
sys.stdout.flush()
|
|
|
gst_convert(m.base, argv[3], argv[4]=="dng")
|