Author: duncan
Date: Fri Jun 8 17:30:32 2007
New Revision: 9673
Modified:
branches/rel-1/freevo/src/tv/ivtv.py
branches/rel-1/freevo/src/tv/v4l2.py
Log:
Updated the debug messages to remove the trailing nulls
Fixed the not found control message
Commented out most of the debug code, this needs cleaning up
Modified: branches/rel-1/freevo/src/tv/ivtv.py
==============================================================================
--- branches/rel-1/freevo/src/tv/ivtv.py (original)
+++ branches/rel-1/freevo/src/tv/ivtv.py Fri Jun 8 17:30:32 2007
@@ -424,7 +424,7 @@
def __str__(self):
- res = 'aspect=%d, ' % self.aspect
+ res = 'aspect=%d, ' % self.aspect
res += 'audio_bitmask=0x%0X, ' % self.audio_bitmask
res += 'bframes=%d, ' % self.bframes
res += 'bitrate_mode=%d, ' % self.bitrate_mode
@@ -448,25 +448,25 @@
ivtv_dev = IVTV('/dev/video0')
ivtv_dev.init_settings()
- ivtv_dev.print_settings()
-
- print 'driver="%s"' % ivtv_dev.driver
- print 'version=%x' % ivtv_dev.version
- print config.TV_IVTV_OPTIONS
-
- print ivtv_dev.print_settings()
- #embed = ivtv_dev.getvbiembed()
- #print "current vbi embed=%s" % embed
- #ivtv_dev.setvbiembed(1)
- #print "set vbi embed=%s (%s)" % (ivtv_dev.getvbiembed(), 1)
- #ivtv_dev.setvbiembed(embed)
- #print "reset vbi embed=%s (%s)" % (ivtv_dev.getvbiembed(), embed)
+ #ivtv_dev.print_settings()
+ #print 'driver="%s"' % ivtv_dev.driver
+ #print 'version=%x' % ivtv_dev.version
+ #print config.TV_IVTV_OPTIONS
+
+ #print ivtv_dev.print_settings()
+ ##embed = ivtv_dev.getvbiembed()
+ ##print "current vbi embed=%s" % embed
+ ##ivtv_dev.setvbiembed(1)
+ ##print "set vbi embed=%s (%s)" % (ivtv_dev.getvbiembed(), 1)
+ ##ivtv_dev.setvbiembed(embed)
+ ##print "reset vbi embed=%s (%s)" % (ivtv_dev.getvbiembed(), embed)
+
+ ##print ivtv_dev.getCodecInfo()
+ #codec = IVTVCodec((2, 0x00e9, 3, 0, 8000000, 9600000, 0, 0, 8, 0, 0, 15,
1, 0, 10))
+ #print 'codec:', codec
+ #ivtv_dev.setCodecInfo(codec)
#print ivtv_dev.getCodecInfo()
- codec = IVTVCodec((2, 0x00e9, 3, 0, 8000000, 9600000, 0, 0, 8, 0, 0, 15,
1, 0, 10))
- print 'codec:', codec
- ivtv_dev.setCodecInfo(codec)
- print ivtv_dev.getCodecInfo()
'''
To run this as standalone use the following before running python ivtv.py
Modified: branches/rel-1/freevo/src/tv/v4l2.py
==============================================================================
--- branches/rel-1/freevo/src/tv/v4l2.py (original)
+++ branches/rel-1/freevo/src/tv/v4l2.py Fri Jun 8 17:30:32 2007
@@ -220,7 +220,7 @@
def getdriver(self):
- return self.driver
+ return self.driver.strip('\0')
def getversion(self):
@@ -482,6 +482,7 @@
def printcontrol(self, res):
(id, type, name, min, max, step, default, flags, value) = res
+ #name = self.ctrlname(name)
if flags & 0x0001:
return
if type == V4L2_CTRL_TYPE_CTRL_CLASS:
@@ -496,6 +497,12 @@
print 'index=%d, name=\"%s\"' % (index, name)
+ def ctrlname(self, name):
+ ''' converts a control to lowercase and replaces spaces with dashes
+ '''
+ return name.replace(' ', '-').lower()
+
+
def listcontrols(self):
id = V4L2_CTRL_FLAG_NEXT_CTRL
while 1:
@@ -528,6 +535,7 @@
if flags == V4L2_CTRL_FLAG_DISABLED:
id = res[0] | V4L2_CTRL_FLAG_NEXT_CTRL
continue
+ name = self.ctrlname(name)
self.controls[name] = res
id = res[0] | V4L2_CTRL_FLAG_NEXT_CTRL
except IOError, e:
@@ -540,10 +548,12 @@
try:
res = self.queryctrl(id)
(id, type, name, min, max, step, default, flags, value) = res
+ name = self.ctrlname(name)
if flags & V4L2_CTRL_FLAG_DISABLED:
continue
except IOError, e:
break
+ print '%r' % self.controls
return self.controls
@@ -561,6 +571,7 @@
'''
get the control record by name
'''
+ name = self.ctrlname(name)
if not self.controls.has_key(name):
print 'control \"%s\" does not exists' % (name)
return None
@@ -572,6 +583,7 @@
'''
get the control record by name
'''
+ name = self.ctrlname(name)
if not self.controls.has_key(name):
print 'control \"%s\" does not exists' % (name)
return None
@@ -586,15 +598,14 @@
def updatecontrol(self, name, value):
+ ''' set the control record by name
'''
- set the control record by name
- '''
- if not self.getcontrol(name):
- print '\"%s\" not found' % (name)
+ name = self.ctrlname(name)
+ if self.getcontrol(name) == None:
return
oldvalue = self.getcontrol(name)
- if DEBUG >= 1: print '\"%s\", value %d->%d' % (name, oldvalue, value)
+ if DEBUG >= 1: print '%-30s: value %d->%d' % ('"'+name+'"', oldvalue,
value)
if value == oldvalue:
return
@@ -603,6 +614,8 @@
def init_settings(self):
+ ''' initialise the IVTV setting
+ '''
(v_norm, v_input, v_clist, v_dev) = config.TV_SETTINGS.split()
v_norm = string.upper(v_norm)
self.setstd(NORMS.get(v_norm))
@@ -614,16 +627,16 @@
def print_settings(self):
- print 'Driver: %s' % self.driver
- print 'Card: %s' % self.card
- print 'Version: %x' % self.version
- print 'Capabilities: %s' % self.capabilities
+ print 'Driver: %s' % self.driver.strip('\0')
+ print 'Card: %s' % self.card.strip('\0')
+ print 'Version: %02d.%02d' % (self.version / 256, self.version % 256)
+ print 'Capabilities: 0x%08x' % int(self.capabilities)
print "Enumerating supported Standards."
try:
for i in range(0,255):
(index,id,name,junk,junk,junk) = self.enumstd(i)
- print " %i: 0x%x %s" % (index, id, name)
+ print " %i: 0x%x %s" % (index, id, name.strip('\0'))
except:
pass
print "Current Standard is: 0x%x" % self.getstd()
@@ -632,7 +645,7 @@
try:
for i in range(0,255):
(index,name,type,audioset,tuner,std,status) = self.enuminput(i)
- print " %i: %s" % (index, name)
+ print " %i: %s" % (index, name.strip('\0'))
except:
pass
print "Input: %i" % self.getinput()
@@ -667,112 +680,114 @@
if __name__ == '__main__':
DEBUG = 0
- viddev=Videodev('/dev/video0')
- print 'Driver = \"%s\"' % viddev.getdriver()
- print 'Driver Version = %x' % viddev.getversion()
- #print viddev.querycap()
- inp = viddev.getinput()
- viddev.setinput(inp)
- print 'querycap:', viddev.querycap()
- fmt = viddev.getstd()
- print 'fmt:', fmt
- std = viddev.getfmt()
- print 'std:', std
- viddev.setfmt(720, 576)
- std = viddev.getfmt()
- print 'std:', std
- print 'CONTROLS'
- viddev.listcontrols()
- dict = viddev.getcontrols()
- viddev.setextctrl(0x009909c9, 2)
- print '0x009909c9 = %d' % viddev.getextctrl(0x009909c9)
- viddev.setextctrl(0x009909cf, 7000000)
- print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
- print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
- try:
- bitrate = viddev.getcontrol('Video Bitrate')
- viddev.updatecontrol('Video Bitrate', bitrate+1)
- print 'Video Bitrate = %d' % viddev.getcontrol('Video Bitrate')
- except:
- pass
- print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
- print 'SIZES'
- print 'QUERYCAP_ST=%s %s' % (QUERYCAP_ST, struct.calcsize(QUERYCAP_ST))
- print 'FREQUENCY_ST=%s %s' % (FREQUENCY_ST, struct.calcsize(FREQUENCY_ST))
- print 'ENUMSTD_ST=%s %s' % (ENUMSTD_ST, struct.calcsize(ENUMSTD_ST))
- print 'STANDARD_ST=%s %s' % (STANDARD_ST, struct.calcsize(STANDARD_ST))
- print 'ENUMINPUT_ST=%s %s' % (ENUMINPUT_ST, struct.calcsize(ENUMINPUT_ST))
- print 'INPUT_ST=%s %s' % (INPUT_ST, struct.calcsize(INPUT_ST))
- print 'FMT_ST=%s %s' % (FMT_ST, struct.calcsize(FMT_ST))
- print 'TUNER_ST=%s %s' % (TUNER_ST, struct.calcsize(TUNER_ST))
- print 'AUDIO_ST=%s %s' % (AUDIO_ST, struct.calcsize(AUDIO_ST))
- print 'EXT_CTRL_ST=%s %s' % (EXT_CTRL_ST, struct.calcsize(EXT_CTRL_ST))
- print 'EXT_CTRLS_ST=%s %s' % (EXT_CTRLS_ST, struct.calcsize(EXT_CTRLS_ST))
- '''
viddev=Videodev('/dev/video0')
+ print 'Driver = \"%s\"' % viddev.getdriver()
+ print 'Driver Version = %02d.%02d' % (viddev.getversion() / 256,
viddev.getversion() % 256)
viddev.print_settings()
- print
- print viddev.querycap()
- inp = viddev.getinput()
- print 'viddev.getinput=%s' % (inp)
- viddev.setinput(inp)
- print 'viddev.setinput okay'
- fmt = viddev.getfmt()
- (buf_type, width, height, pixelformat, field, bytesperline,
- sizeimage, colorspace) = fmt
- print 'viddev.getfmt=%s' % (buf_type)
- print viddev.enuminput(inp)
- for i in range(0,99):
- try:
- print viddev.gettuner(i)
- except IOError:
- break
- print viddev.getaudio(0)
- print viddev.setfreq(2132)
- print viddev.getfreq()
- print viddev.setfreq(8948)
- print viddev.getfreq()
- print viddev.getfreq2()
-
- DEBUG=0
- viddev.listcontrols()
- dict = viddev.getcontrols()
- keys = list(dict)
- keys.sort()
- print keys
- for ctrl in keys:
- print dict[ctrl]
- viddev.setextctrl(0x009909c9, 2)
- print '0x009909c9 = %d' % viddev.getextctrl(0x009909c9)
- viddev.setextctrl(0x009909cf, 7000000)
- print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
- bitrate = viddev.getcontrol('Video Bitrate')
- viddev.updatecontrol('Video Bitrate', bitrate+1)
- print 'Video Bitrate = %d' % viddev.getcontrol('Video Bitrate')
- print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
-
- stream_type = 4
- viddev.updatecontrol('Stream Type', stream_type)
- #viddev.setcontrol('Stream Type', stream_type)
- #viddev.setextctrl(0x00990900, stream_type)
- print 'Stream Type = %d' % viddev.getcontrol('Stream Type')
- print '0x00990900 = %d' % viddev.getextctrl(0x00990900)
- DEBUG=4
- print 'getfreq:', viddev.getfreq()
- '''
+ #viddev.listcontrols()
+ #dict = viddev.getcontrols()
+ #keys = list(dict)
+ #keys.sort()
+ #print keys
+ #for ctrl in keys:
+ # print '%-28s : %r' % (ctrl, dict[ctrl],)
+
+ ##print viddev.querycap()
+ #inp = viddev.getinput()
+ #viddev.setinput(inp)
+ #print 'querycap:', viddev.querycap()
+ #fmt = viddev.getstd()
+ #print 'fmt:', fmt
+ #std = viddev.getfmt()
+ #print 'std:', std
+ #viddev.setfmt(720, 576)
+ #std = viddev.getfmt()
+ #print 'std:', std
+ #print 'CONTROLS'
+ #viddev.listcontrols()
+ #dict = viddev.getcontrols()
+ #viddev.setextctrl(0x009909c9, 2)
+ #print '0x009909c9 = %d' % viddev.getextctrl(0x009909c9)
+ #viddev.setextctrl(0x009909cf, 7000000)
+ #print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
+ #print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
+ #try:
+ #bitrate = viddev.getcontrol('Video Bitrate')
+ #viddev.updatecontrol('Video Bitrate', bitrate+1)
+ #print 'Video Bitrate = %d' % viddev.getcontrol('Video Bitrate')
+ #except:
+ #pass
+ #print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
+ #print 'SIZES'
+ #print 'QUERYCAP_ST=%s %s' % (QUERYCAP_ST, struct.calcsize(QUERYCAP_ST))
+ #print 'FREQUENCY_ST=%s %s' % (FREQUENCY_ST, struct.calcsize(FREQUENCY_ST))
+ #print 'ENUMSTD_ST=%s %s' % (ENUMSTD_ST, struct.calcsize(ENUMSTD_ST))
+ #print 'STANDARD_ST=%s %s' % (STANDARD_ST, struct.calcsize(STANDARD_ST))
+ #print 'ENUMINPUT_ST=%s %s' % (ENUMINPUT_ST, struct.calcsize(ENUMINPUT_ST))
+ #print 'INPUT_ST=%s %s' % (INPUT_ST, struct.calcsize(INPUT_ST))
+ #print 'FMT_ST=%s %s' % (FMT_ST, struct.calcsize(FMT_ST))
+ #print 'TUNER_ST=%s %s' % (TUNER_ST, struct.calcsize(TUNER_ST))
+ #print 'AUDIO_ST=%s %s' % (AUDIO_ST, struct.calcsize(AUDIO_ST))
+ #print 'EXT_CTRL_ST=%s %s' % (EXT_CTRL_ST, struct.calcsize(EXT_CTRL_ST))
+ #print 'EXT_CTRLS_ST=%s %s' % (EXT_CTRLS_ST, struct.calcsize(EXT_CTRLS_ST))
+
+ #'''
+ #viddev=Videodev('/dev/video0')
+ #print
+ #print viddev.querycap()
+ #inp = viddev.getinput()
+ #print 'viddev.getinput=%s' % (inp)
+ #viddev.setinput(inp)
+ #print 'viddev.setinput okay'
+ #fmt = viddev.getfmt()
+ #(buf_type, width, height, pixelformat, field, bytesperline,
+ #sizeimage, colorspace) = fmt
+ #print 'viddev.getfmt=%s' % (buf_type)
+ #print viddev.enuminput(inp)
+ #for i in range(0,99):
+ #try:
+ #print viddev.gettuner(i)
+ #except IOError:
+ #break
+ #print viddev.getaudio(0)
+ #print viddev.setfreq(2132)
+ #print viddev.getfreq()
+ #print viddev.setfreq(8948)
+ #print viddev.getfreq()
+ #print viddev.getfreq2()
+
+ #DEBUG=0
+ #viddev.setextctrl(0x009909c9, 2)
+ #print '0x009909c9 = %d' % viddev.getextctrl(0x009909c9)
+ #viddev.setextctrl(0x009909cf, 7000000)
+ #print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
+ #bitrate = viddev.getcontrol('Video Bitrate')
+ #viddev.updatecontrol('Video Bitrate', bitrate+1)
+ #print 'Video Bitrate = %d' % viddev.getcontrol('Video Bitrate')
+ #print '0x009909cf = %d' % viddev.getextctrl(0x009909cf)
+
+ #stream_type = 4
+ #viddev.updatecontrol('Stream Type', stream_type)
+ ##viddev.setcontrol('Stream Type', stream_type)
+ ##viddev.setextctrl(0x00990900, stream_type)
+ #print 'Stream Type = %d' % viddev.getcontrol('Stream Type')
+ #print '0x00990900 = %d' % viddev.getextctrl(0x00990900)
+ #DEBUG=4
+ #print 'getfreq:', viddev.getfreq()
+ #'''
viddev.close()
-'''
-To run this as standalone use the following before running python v4l2.py
-pythonversion=$(python -V 2>&1 | cut -d" " -f2 | cut -d"." -f1-2)
-export PYTHONPATH=/usr/lib/python${pythonversion}/site-packages/freevo
-export FREEVO_SHARE=/usr/share/freevo
-export FREEVO_CONFIG=/usr/share/freevo/freevo_config.py
-export FREEVO_CONTRIB=/usr/share/freevo/contrib
-export RUNAPP=""
-python v4l2.py
-OR
-freevo execute v4l2.py
-'''
+#'''
+#To run this as standalone use the following before running python v4l2.py
+#pythonversion=$(python -V 2>&1 | cut -d" " -f2 | cut -d"." -f1-2)
+#export PYTHONPATH=/usr/lib/python${pythonversion}/site-packages/freevo
+#export FREEVO_SHARE=/usr/share/freevo
+#export FREEVO_CONFIG=/usr/share/freevo/freevo_config.py
+#export FREEVO_CONTRIB=/usr/share/freevo/contrib
+#export RUNAPP=""
+#python v4l2.py
+#OR
+#freevo execute v4l2.py
+#'''
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog