Re: SYS_DVBS vs. SYS_DVBS2

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

 



Em Wed, 19 Dec 2018 13:16:49 +0100
Josef Wolf <jw@xxxxxxxxxxxxx> escreveu:

> Thanks for your response, Mauro!
> 
> On Wed, Dec 19, 2018 at 09:22:11AM -0200, Mauro Carvalho Chehab wrote:
> > Em Wed, 19 Dec 2018 11:28:46 +0100
> > Josef Wolf <jw@xxxxxxxxxxxxx> escreveu:  
> 
> > > I would like to know how to know whether for a specific program SYS_DVBS or
> > > SYS_DVBS2 should be specified to the FE_SET_PROPERTY ioctl() call.  
> > 
> > This is not specific to a program. It affects the hole transponder. Either
> > the transponder is DVB-S or DVB-S2.  
> 
> Yes, I'm aware of it. In my question I meant: when I want to tune to some
> program, I need to set the SYS_DVBx property in addition to the other tuning
> parameters (like frequency, polarization, FEC etc/pp)
> 
> > > Is this somehow broadcasted in some PAT/PMT tables?  
> > 
> > It is at the NAT tables. They contain all needed information to properly
> > tune into the transponders. There are different tables, depending if the
> > transponder is -S or -S2.  
> 
> OK.
> 
> > > Or is it possible to simple always specify SYS_DVBS2 and the kernel will
> > > manage the backwards compatibilities when a DVB-S transponder is specified in
> > > the tuning parameters?  
> > 
> > The Kernel can't and shouldn't guess the tuning parameters. It depends
> > on userspace to parse the NAT tables and get it right.  
> 
> It is pretty much obvois to me that the kernel can't guess tuning parameters
> like diseqc-sequence, polarity, frequency and symrate. This is because the
> kernel needs those parameters to get a signal at all.
> 
> But, on the other side, there are lots of parameters that the kernel (or
> hardware?) _can_ guess: INVERSION_AUTO, FEC_AUTO, QAM_AUTO just to name some.

The Kernel implements only INVERSION_AUTO. The rest is implemented by
the device itself, if it has support for it.

> So what' so special about SYS_DVBS/SYS_DVBS2 that it has to be handled
> differently from those other parameters?

DVB-S2 adds a lot more parameters, including the possibility of using
different modulations (QPSK, 8PSK, 16APSK, 32APSK). DVB-S was just QPSK.

The rolloff parameter also can be changed. DVB-S was just 0.35. On
DVB-S2 it can also be 0.20 and 0.25. That affects frequency filtering.

It even allows to have multiple MPEG-TS streams inside a physical
transponder, each with a separate ID. 

If, for example, there are multiple streams, neither the device nor 
the Kernel could know what ID would contain the MPEG stream that
the user wants.

It may also use a scrambling code, with requires userspace to
pass the gold code, in order to de-scramble it.

So, if the transponder is using those extra features provided by
DVB-S2, the device has to know how to properly tune transponder and 
how filter/de-scramble the transport stream that contains the program
the user wants.

It is worth to say that DVB-S2 is a superset of DVB-S. If your
tuner can do DVB-S2 and you want to tune to a DVB-S transponder,
provided that you properly fill all DVB-S2 properties to match
a DVB-S channel (rollback, modulation, ...), in thesis[1] you could
use SYS_DVBS2 as delivery system.

[1] In practice, I'm not so sure, as this is something that
developers don't usually test. Both userspace apps and Kernelspace
don't assume that. So, it is not warranted to work.
I guess that, if one uses SYS_DVBS2 to tune, the results will vary
from driver to driver. Things like gold code and PLS ID, if set wrong,
could prevent the channel to tune.

Thanks,
Mauro



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux