示例#1
0
 def on_webcam_frame(self, p2p, session, sender, frame):
     if int(session) != self.session:
         return
     if self.win is None:
         return
     try:
         width, height, data = libmimic.decode(self.decoder, frame)
         if self.errors > 0:
             self.errors = 0
         #print "self.errors: %d\n" % self.errors
     except:
         print "Decode error"
         self.errors += 1
         print "self.errors: %d\n" % self.errors
         if self.errors > 10:
             print "Too many errors, closing webcam"
             self.on_close()
         return
         
     if not self.init:
         print "Got first frame: %dx%d" % (width, height)
         self.win.set_size_request(width, height)
         self.win.show_all()
         self.init = True
     
     self.image.set_from_pixbuf(gtk.gdk.pixbuf_new_from_data(data,gtk.gdk.COLORSPACE_RGB,False,8,width,height,width*3))
     if self.win is not None:
         self.win.queue_draw()
         self.image.queue_draw()
示例#2
0
 def on_webcam_frame(self, p2p, session, sender, frame):
     try:
         width, height, data = libmimic.decode(self.decoder, frame)
     except:
         print "Decode error, stopping webcam"
         self.on_close()
         return
     if not self.init:
         print "Got first frame: %dx%d" % (width, height)
         self.win.set_size_request(width, height)
         self.win.show_all()
         self.gc = gtk.gdk.GC(self.win.window)
         self.pixmap = gtk.gdk.Pixmap(self.win.window, width, height, -1)
         self.init = True
     if self.win.window:
         self.win.window.draw_rgb_image(self.gc, 0, 0, width, height, \
             gtk.gdk.RGB_DITHER_NONE, data, width*3)
         self.win.queue_draw()