Author: duncan
Date: Wed May 9 18:51:50 2007
New Revision: 9553
Modified:
branches/rel-1/freevo/src/tv/v4l2.py
Log:
Fixed a struct size problem for 64bit machines, added some debugs
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 Wed May 9 18:51:50 2007
@@ -136,8 +136,8 @@
LOG_STATUS = _IO ('V', 70)
-EXT_CTRL_ST = "@L2Lq" # (id, res1, res2, s64)
-EXT_CTRLS_ST = "@LLL2LP" # (class, count, error_idx, res1, res2, ptr)
+EXT_CTRL_ST = "=I2Iq" # (id, res1, res2, s64)
+EXT_CTRLS_ST = "@III2IP" # (class, count, error_idx, res1, res2, ptr)
G_EXT_CTRLS_NO = _IOWR('V', 71, EXT_CTRLS_ST)
S_EXT_CTRLS_NO = _IOWR('V', 72, EXT_CTRLS_ST)
TRY_EXT_CTRLS_NO = _IOWR('V', 73, EXT_CTRLS_ST)
@@ -260,13 +260,11 @@
freq = config.FREQUENCY_TABLE.get(channel)
if freq:
if DEBUG:
- print 'USING CUSTOM FREQUENCY: chan="%s", freq="%s"' % \
- (channel, freq)
+ print 'Using custom frequency: chan="%s", freq="%s"' %
(channel, freq)
else:
freq = self.chanlist[str(channel)]
if DEBUG:
- print 'USING STANDARD FREQUENCY: chan="%s", freq="%s"' % \
- (channel, freq)
+ print 'Using standard frequency: chan="%s", freq="%s"' %
(channel, freq)
freq *= 16
@@ -431,7 +429,7 @@
if DEBUG >= 3: print "getextctrl: extctrl=%r, %d, extres=%s" %
(extctrl.tostring(), len(extctrl), extres)
except IOError, e:
extres = struct.unpack(EXT_CTRL_ST, extctrl.tostring())
- print 'getextctrl:', e
+ print 'getextctrl(%s)=%s' % (id, e)
return extres[3]
@@ -591,11 +589,12 @@
'''
set the control record by name
'''
- if DEBUG >= 1: print 'name=\"%s\", value=%d' % (name, value)
if not self.getcontrol(name):
+ print '\"%s\" not found' % (name)
return
oldvalue = self.getcontrol(name)
+ if DEBUG >= 1: print '\"%s\", value %d->%d' % (name, oldvalue, value)
if value == oldvalue:
return
@@ -667,7 +666,7 @@
if __name__ == '__main__':
- DEBUG = 4
+ DEBUG = 0
viddev=Videodev('/dev/video0')
print 'Driver = \"%s\"' % viddev.getdriver()
print 'Driver Version = %x' % viddev.getversion()
@@ -682,7 +681,22 @@
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))
@@ -692,9 +706,11 @@
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')
'''
+ viddev=Videodev('/dev/video0')
viddev.print_settings()
print
print viddev.querycap()
@@ -718,7 +734,7 @@
print viddev.setfreq(8948)
print viddev.getfreq()
print viddev.getfreq2()
- '''
+
DEBUG=0
viddev.listcontrols()
dict = viddev.getcontrols()
@@ -744,6 +760,7 @@
print '0x00990900 = %d' % viddev.getextctrl(0x00990900)
DEBUG=4
print 'getfreq:', viddev.getfreq()
+ '''
viddev.close()
-------------------------------------------------------------------------
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