Beispiel #1
0
 def setfreq(self, freq):
     freq = (freq * 16) / 1000
     try:
         val = struct.pack( FREQUENCY_ST, long(0), long(0), freq)
         r = ioctl.ioctl(self.devfd, long(SETFREQ_NO), val)
     except:
         val = struct.pack( "L", freq)
         r = ioctl.ioctl(self.devfd, long(SETFREQ_NO_V4L), val)
Beispiel #2
0
 def set_gop_end(self, gop=1):
     """
     End Encoding at GOP Ending Call 0=StopNOW, 1=GOPwait
     """
     r = ioctl(self.devfd, IVTV_IOC_S_GOP_END, 
               struct.pack(IVTV_IOC_S_GOP_END_ST, gop))
     if r < 0:
         log.error('ioctl: IVTV_IOC_S_GOP_END failed')
Beispiel #3
0
 def stop_encoding(self):
     """
     stop capture
     """
     r = ioctl(self.devfd, VIDIOC_STREAMOFF, 
               struct.pack(VIDIOC_STREAMOFF_ST, 0))
     if r < 0:
         log.error('ioctl: VIDIOC_STREAMOFF failed')
Beispiel #4
0
 def start_encoding(self):
     """
     start capture
     """
     r = ioctl(self.devfd, VIDIOC_STREAMON, 
               struct.pack(VIDIOC_STREAMON_ST, V4L2_BUF_TYPE_VIDEO_CAPTURE))
     if r < 0:
         log.error('ioctl: VIDIOC_STREAMON failed')
Beispiel #5
0
 def getfmt(self):
     val = struct.pack( FMT_ST, 1L,0,0,0,0,0,0,0)
     try:
         r = ioctl.ioctl(self.devfd,GET_FMT_NO,val)
         return struct.unpack( FMT_ST, r )
     except IOError:
         log.warn('Failed to get format, not supported by device?')
         return (-1, -1, -1, -1, -1, -1, -1, -1)
Beispiel #6
0
 def getfreq(self):
     val = struct.pack( FREQUENCY_ST, 0,0,0 )
     try:
         r = ioctl.ioctl(self.devfd, GETFREQ_NO, val)
         (junk,junk, freq, ) = struct.unpack(FREQUENCY_ST, r)
         return freq
     except IOError:
         log.warn('Failed to get frequency, not supported by device?')
         return -1
Beispiel #7
0
 def setCodecInfo(self, codec):
     val = struct.pack( CODEC_ST, 
                        codec.aspect,
                        codec.audio_bitmask,
                        codec.bframes,
                        codec.bitrate_mode,
                        codec.bitrate,
                        codec.bitrate_peak,
                        codec.dnr_mode,
                        codec.dnr_spatial,
                        codec.dnr_temporal,
                        codec.dnr_type,
                        codec.framerate,
                        codec.framespergop,
                        codec.gop_closure,
                        codec.pulldown,
                        codec.stream_type)
     r = ioctl(self.devfd, IVTV_IOC_S_CODEC, val)
Beispiel #8
0
def get_devices():
    global _devices
    if _devices is not None:
        return _devices
    _devices = {}
    for adapter in range(5):
        frontend = "/dev/dvb/adapter%s/frontend0" % adapter
        if not os.path.exists(frontend):
            continue
        # read frontend0 for aditional information
        INFO_ST = "128s10i"
        val = ioctl.pack(INFO_ST, "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
        devfd = os.open(frontend, os.O_TRUNC)
        r = ioctl.ioctl(devfd, ioctl.IOR("o", 61, INFO_ST), val)
        os.close(devfd)
        val = ioctl.unpack(INFO_ST, r)
        name = val[0].strip()
        if val[1] == 2:
            _devices["dvb%s" % adapter] = DVB_T(adapter)
    return _devices
Beispiel #9
0
 def __init__(self, number):
     super(DVBCard, self).__init__('dvb', number)
     # get adapter based on number
     self.adapter = '/dev/dvb/adapter%s' % number
     # read frontend0 for aditional information
     INFO_ST = '128s10i'
     val = pack( INFO_ST, "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )
     devfd = os.open(self.adapter + '/frontend0', os.O_TRUNC)
     r = ioctl(devfd, IOR('o', 61, INFO_ST), val)
     os.close(devfd)
     val = unpack( INFO_ST, r )
     name = val[0]
     if val[1] == 0:
         self.type = 'DVB-S'
         self._cfg_set_default('priority', 10)
     elif val[1] == 1:
         self.type = 'DVB-C'
         self._cfg_set_default('priority', 9)
     elif val[1] == 2:
         self.type = 'DVB-T'
         self._cfg_set_default('priority', 8)
     elif val[1] == 3:
         self.type = 'ATSC'
         self._cfg_set_default('priority', 7)
     else:
         # What is that?
         raise SystemError('unknown (%s)' % val[1])
     # special dvb config
     plugin = 'mplayer'
     if kaa.utils.which('dvbstreamer'):
         plugin = 'dvbstreamer'
     self._cfg_add(
         Var(name='plugin', default=plugin,
             desc='plugin to use for this device'))
     # fix name
     if name.find('\0') > 0:
         name = name[:name.find('\0')]
     self.name = name
     log.debug('register dvb device %s' % self.adapter)
Beispiel #10
0
 def setfmt(self, width, height):
     val = struct.pack( FMT_ST, 1L, width, height, 0L, 4L, 0L, 131072L, 0L)
     r = ioctl.ioctl(self.devfd,SET_FMT_NO,val)
Beispiel #11
0
 def enuminput(self,index):
     val = struct.pack( ENUMINPUT_ST, index, "", 0,0,0,0,0)
     r = ioctl.ioctl(self.devfd,ENUMINPUT_NO,val)
     return struct.unpack( ENUMINPUT_ST, r )
Beispiel #12
0
 def setstd(self, value):
     val = struct.pack( STANDARD_ST, value )
     r = ioctl.ioctl(self.devfd,SETSTD_NO, val)
Beispiel #13
0
 def getstd(self):
     val = struct.pack( STANDARD_ST, 0 )
     r = ioctl.ioctl(self.devfd,GETSTD_NO, val)
     return struct.unpack( STANDARD_ST, r )[0]
Beispiel #14
0
 def enumstd(self, no):
     val = struct.pack( ENUMSTD_ST, no, 0, "", 0, 0, 0)
     r = ioctl.ioctl(self.devfd,ENUMSTD_NO,val)
     return struct.unpack( ENUMSTD_ST, r )
Beispiel #15
0
 def querycap(self):
     val = struct.pack( QUERYCAP_ST, "", "", "", 0, 0 )
     r = ioctl.ioctl(self.devfd, QUERYCAP_NO, val)
     return struct.unpack( QUERYCAP_ST, r )
Beispiel #16
0
 def setfreq(self, freq):
     val = struct.pack( FREQUENCY_ST, long(0), long(0), freq)
     r = ioctl(self.devfd, long(SETFREQ_NO), val)
Beispiel #17
0
 def getaudio(self,index):
     val = struct.pack( AUDIO_ST, index, "", 0,0)
     r = ioctl.ioctl(self.devfd,GET_AUDIO_NO,val)
     return struct.unpack( AUDIO_ST, r )
Beispiel #18
0
 def gettuner(self, index):
     val = struct.pack( TUNER_ST, index, "", 0,0,0,0,0,0,0,0)
     r = ioctl.ioctl(self.devfd,GET_TUNER_NO,val)
     return unpack_dict( TUNER_ST, TUNER_VARS, r)
Beispiel #19
0
 def getvbifmt(self):
     val = struct.pack( FMT_VBI_ST, 3L,0,0,0,0,0,0,0,0,0,0,0)
     r = ioctl.ioctl(self.devfd,GET_FMT_NO,val)
     return unpack_dict(FMT_VBI_ST, FMT_VBI_VARS, r)
Beispiel #20
0
    def mspSetMatrix(self, input=None, output=None):
        if not input: input = 3
        if not output: output = 1

        val = struct.pack(MSP_MATRIX_ST, input, output)
        r = ioctl(self.devfd, IVTV_IOC_S_MSP_MATRIX, val)
Beispiel #21
0
 def getCodecInfo(self):
     val = struct.pack( CODEC_ST, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 )
     r = ioctl(self.devfd, IVTV_IOC_G_CODEC, val)
     codec_list = struct.unpack(CODEC_ST, r)
     return IVTVCodec(codec_list)
Beispiel #22
0
 def setvbifmt(self, d):
     val = pack_dict( FMT_VBI_ST, FMT_VBI_VARS, d)
     r = ioctl.ioctl(self.devfd,GET_FMT_NO,val)
     return unpack_dict(FMT_VBI_ST, FMT_VBI_VARS, r)
Beispiel #23
0
 def getinput(self):
     r = ioctl.ioctl(self.devfd, GETINPUT_NO, struct.pack(INPUT_ST,0))
     return struct.unpack(INPUT_ST,r)[0]
Beispiel #24
0
 def settuner(self,index,audmode):
     val = struct.pack( TUNER_ST, index, "", 0,0,0,0,0,audmode,0,0)
     r = ioctl.ioctl(self.devfd,SET_TUNER_NO,val)
Beispiel #25
0
 def setinput(self,value):
     r = ioctl.ioctl(self.devfd, SETINPUT_NO, struct.pack(INPUT_ST,value))
Beispiel #26
0
 def setaudio(self,index,mode):
     val = struct.pack( AUDIO_ST, index, "", mode, 0)
     r = ioctl.ioctl(self.devfd,SET_AUDIO_NO,val)
Beispiel #27
0
 def setfreq_old(self, freq):
     val = struct.pack( "L", freq)
     r = ioctl(self.devfd, long(SETFREQ_NO_V4L), val)