Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] some problems...



Hi,

last weekend I migrated my TV-server linux box from kernel 2.2.13 to 2.4.2
and noticed several problems regarding the different DVB versions, which
might interest someone who plans to upgrade as well. I started from
dvb_0.8.1 (on 2.2.13), slightly patched with the VES1893 and bitfilter
bugfixes of the DVB-0-8 branch. This worked stable for weeks without having
major problems. The only function I really missed was the ability to change
the language of encrypted channels (I reported this some time ago). After
installing the new kernel I tried dvb_0.8.1, but this didn't work. I
installed dvb_0.8.2 (CVS DVB-0-8), but this didn't work either, until I
noticed that I have to pull off the CAM(s) to get the driver booting (0.8.1
didn't have problems with that). When re-inserting the CAM(s) after startup,
the encrypted channels are displayed again. So far it went well, but when
switching channels a bit I noticed a problem with the videotext filtering. I
use a PES filter to feed the videotext stream of a channel to /dev/ost/dvr.
First time this filter is set up it works fine, but after switching a
channel (and shutting down the filter by DMX_STOP), it seems impossible to
get another filter working with a different PID (that of the videotext
stream of the new channel) on that device. The return value of the ioctl
call is -EPERM (-1), which does not make any sense to me. I tried using
DVB-0-9 (version of sunday morning), but my problems with videotext
filtering remained. I use the following piece of code:

//
//   OutputDevice->vbiDev contains filehandle of a formerly opened demux
device
//   InputDevice->FileHandle stores the resulting handle of dvr device
//

openVideoText (deviceName /* := "/dev/ost/dvr" */, tpid)
{ 
      struct dmxPesFilterParams pesFilterParamsT;

      if ((tpid)==0 || (tpid)==0xffff)
         ioctl(OutputDevice->vbiDev, DMX_STOP, 0);
      else
      {
         pesFilterParamsT.pid = tpid;
         pesFilterParamsT.input = DMX_IN_FRONTEND;
         pesFilterParamsT.output = DMX_OUT_TS_TAP;
         pesFilterParamsT.pesType = DMX_PES_TELETEXT;
         pesFilterParamsT.flags = DMX_IMMEDIATE_START;
         if (ioctl(OutputDevice->vbiDev, DMX_SET_PES_FILTER,
              &pesFilterParamsT) < 0)
            logPrintf (0, "set_tpid error\n");
      }
     InputDevice->FileHandle = open (deviceName, O_RDONLY);
}

Any suggestions to get a solution would be appreciated.

Best regards

Rolf HAkenes


--- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index