diff --git a/light9/vidref/main.py b/light9/vidref/main.py
--- a/light9/vidref/main.py
+++ b/light9/vidref/main.py
@@ -69,8 +69,9 @@ class VideoRecordSink(gst.Element):
gst.PAD_ALWAYS,
gst.caps_new_any())
- def __init__(self, musicTime):
+ def __init__(self, musicTime, updateRecordingTo):
gst.Element.__init__(self)
+ self.updateRecordingTo = updateRecordingTo
self.sinkpad = gst.Pad(self._sinkpadtemplate, "sink")
self.add_pad(self.sinkpad)
self.sinkpad.set_chain_function(self.chainfunc)
@@ -129,6 +130,7 @@ class VideoRecordSink(gst.Element):
outFilename,
(now - self.lastTime) * 1000,
(now - t1) * 1000)
+ self.updateRecordingTo(outDir)
self.lastTime = now
gobject.type_register(VideoRecordSink)
@@ -142,6 +144,8 @@ class Main(object):
mainwin.connect("destroy", gtk.main_quit)
wtree.connect_signals(self)
+ self.recordingTo = wtree.get_object('recordingTo')
+
# wtree.get_object("replayPanel").show() # demo only
rp = wtree.get_object("replayVbox")
self.replayViews = ReplayViews(rp)
@@ -186,7 +190,15 @@ class Main(object):
return e
sink = makeElem("xvimagesink")
- recSink = VideoRecordSink(self.musicTime)
+ def setRec(t):
+ # if you're selecting the text while gtk is updating it,
+ # you can get a crash in xcb_io
+ if getattr(self, '_lastRecText', None) == t:
+ return
+ with gtk.gdk.lock:
+ self.recordingTo.set_text(t)
+ self._lastRecText = t
+ recSink = VideoRecordSink(self.musicTime, setRec)
self.pipeline.add(recSink)
tee = makeElem("tee")
diff --git a/light9/vidref/replay.py b/light9/vidref/replay.py
--- a/light9/vidref/replay.py
+++ b/light9/vidref/replay.py
@@ -54,7 +54,12 @@ class ReplayViews(object):
v.destroy()
self.views[:] = []
- takes = sorted(os.listdir(songDir(song)))
+ d = songDir(song)
+ try:
+ takes = sorted(os.listdir(d))
+ except OSError:
+ return
+
for take in takes:
td = takeDir(songDir(song), take)
r = Replay(td)
diff --git a/light9/vidref/vidref.glade b/light9/vidref/vidref.glade
--- a/light9/vidref/vidref.glade
+++ b/light9/vidref/vidref.glade
@@ -74,9 +74,10 @@
75
20
True
- Frame rate
+ Frame rate:
+ False
0
@@ -106,9 +107,10 @@
85
20
True
- Input source
+ Input source:
+ False
0
@@ -127,6 +129,36 @@
2
+
+
+
+ 3
+
+
False
@@ -307,4 +339,7 @@
True
gtk-delete
+
+ /home/drewp/light9-vidref/play-light9.bigasterisk.com_show_dance2010_song6/1276582699
+