home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / gst-0.10 / gst / extend / utils.pyc (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  2.8 KB  |  80 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import gobject
  6. import gst
  7.  
  8. def gst_dump(bin):
  9.     dump_element(bin, 0)
  10.  
  11.  
  12. def dump_bin(bin, indent):
  13.     for child in bin.get_list():
  14.         dump_element(child, indent + 2)
  15.     
  16.  
  17.  
  18. def dump_element(element, indent):
  19.     states = {
  20.         1: 'NULL',
  21.         2: 'READY',
  22.         4: 'PAUSED',
  23.         8: 'PLAYING' }
  24.     state = 'UNKNOWN'
  25.     
  26.     try:
  27.         state = states[element.get_state()]
  28.     except KeyError:
  29.         state = 'UNKNOWN (%d)' % element.get_state()
  30.  
  31.     c = element.get_clock()
  32.     if c is None:
  33.         clock_str = 'clock - None'
  34.     else:
  35.         clock_str = 'clock - %s' % c.get_name()
  36.     out = '%s (%s): state %s, %s' % (element.get_name(), gobject.type_name(element.__gtype__), state, clock_str)
  37.     print out.rjust(len(out) + indent)
  38.     tmp = {
  39.         True: 'active',
  40.         False: 'inactive' }
  41.     for curpad in element.get_pad_list():
  42.         if curpad.get_direction() == gst.PAD_SRC:
  43.             if curpad.is_linked():
  44.                 peer = curpad.get_peer()
  45.                 out = ' - %s:%s (%s) => %s:%s (%s)' % (curpad.get_parent().get_name(), curpad.get_name(), tmp[curpad.is_active()], peer.get_parent().get_name(), peer.get_name(), tmp[peer.is_active()])
  46.                 print out.rjust(len(out) + indent)
  47.             
  48.         curpad.is_linked()
  49.     
  50.     if isinstance(element, gst.Bin):
  51.         dump_bin(element, indent + 2)
  52.     elif isinstance(element, gst.Queue):
  53.         out = ' - time_level: %ld' % element.get_property('current-level-time')
  54.         print out.rjust(len(out) + indent)
  55.         out = ' - bytes_level: %ld' % element.get_property('current-level-bytes')
  56.         print out.rjust(len(out) + indent)
  57.     
  58.  
  59.  
  60. def gc_collect(reason = None):
  61.     '''
  62.     Garbage-collect if GST_GC env var is set.
  63.     This helps in debugging object refcounting.
  64.     Sprinkle liberally around checkpoints.
  65.     '''
  66.     env = os.environ.get('GST_GC', None)
  67.     if not env:
  68.         return None
  69.     import gc
  70.     if env == 'DEBUG_LEAK':
  71.         gc.set_debug(gc.DEBUG_LEAK)
  72.     
  73.     gst.debug('collecting garbage')
  74.     if reason:
  75.         gst.debug('because of %s' % reason)
  76.     
  77.     count = gc.collect()
  78.     gst.debug('collected garbage, %d objects collected, %d left' % (count, len(gc.get_objects())))
  79.  
  80.