[jokosher-devel] Possible workaround for last critical bug



Attached is a patch with a possible workaround for our last critical bug 
69714. I haven't committed it as it is a workaround and might not work for 
everyone (it does for me). It also ignores some gstreamer error messages 
which might be a bit dangerous so it probably needs a fair amount of testing.

Since the recording does actually still occur it just ignores the error 
message from the bus. The test in TransportManager that the pipeline is 
paused is also bypassed so that the playhead moves again. Since the 
query_position is in a try do we really need this test anyway?

-- 
John Green

john thegreens co uk
Index: TransportManager.py
===================================================================
--- TransportManager.py	(revision 937)
+++ TransportManager.py	(working copy)
@@ -241,10 +241,12 @@
 			self.SetPosition(self.position + self.SEEK_RATE/self.FPS)
 		elif self.isPlaying:
 			try:
+				#FIXME: This check commented out to get round bug 69714
 				#if pipeline should be playing and has not quite 
 				#yet started then ignore this time through
-				if self.pipeline.get_state(0)[1] == gst.STATE_PAUSED:
-					return True
+				#if self.pipeline.get_state(0)[1] == gst.STATE_PAUSED:
+				#	return True
+				#end FIXME:
 				self.QueryPosition()
 			except gst.QueryError:
 				pass
Index: Project.py
===================================================================
--- Project.py	(revision 937)
+++ Project.py	(working copy)
@@ -670,6 +670,10 @@
 		st = message.structure
 		error, debug = message.parse_error()
 		
+		#FIXME: ignore not-linked on audiotestsrc to get round bug 69714
+		if ("reason not-linked" in debug) and ("audiotestsrc" in debug):
+			return
+		#end FIXME:
 		Globals.debug("Gstreamer bus error:", str(error), str(debug))
 		if self.BusErrorCallback:
 			self.BusErrorCallback(str(error), str(debug))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]