Re: [PATCH] Re: [PATCH] Multi protocol support (stage #1)

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

 



On Tue, 2 May 2006, Manu Abraham wrote:
> Trent Piepho wrote:
> > On Tue, 2 May 2006, Manu Abraham wrote:
> >> No, since it is part of the spec and not having anything to do with the
> >> driver as it is. Some drivers return this explicitly as part of register
> >> settings , not all drivers do comply.
> >>
> >
> > Why aren't there other enums for constants found in section data?  What makes
> > modcod special?
> >
> >
> Huh ? You want to add demux specific things into the frontend ?

I wouldn't.  frontend.h is describes the kernel -> user space interface,
right?  No ioctls or structures in that interface use the modcod enum.  So why
is it there?  It's part of the DVB-S2 spec, sure.  But there are tons of other
constants for DVB-S2 and ATSC that aren't defined in frontend.h.

For instance, "annex B" ATSC digital cable has a control word that encodes
which interleaver will be used.  It's in SCTE 07 2000, but nothing in the in
kernel DVB API uses it, so there is no enum for it.

Now if you planned to add a DVB-S2 specific ioctl that used modcod as a
parameter, then the definition of modcod in frontend.h is obviously necessary.
Absent such an ioctl, IMHO the definition of modcod in frontend.h serves no
purpose.

> >> The driver has to choose the relevant modulation. Modulation Auto is
> >> used in the case where the hardware can tell the driver whether it can
> >> support the same. Or the driver is capable. Current single standard
> >> (delivery system) drivers/hardware do not support this.
> >
> > So what you are saying is that the ability of some demodulators to
> > automatically detect the QAM constellation will no longer be supported?
> >
>
> No. You mean, you want to add QAM_AUTO, PSK_AUTO etc ? Ok, i will add
> MOD_"MODTYPE"_AUTO, if it is useful.

Without something extra, what should the or51132 specify in the caps?
With the spec as is, I would guess this:

caps.delsys.atsc.modulation = FE_MOD_VSB8 | FE_MOD_QAM64 |
                              FE_MOD_QAM256 | FE_MOD_AUTO;

So, when a program gets this information on the caps, what does it mean?
There is no API specification with a clear definition of what FE_MOD_AUTO
means, but I'll assume it means that the frontend can switch between
all of the other modulation types it supports.

So (FE_MOD_VSB8|FE_MOD_QAM64|FE_MOD_QAM256|FE_MOD_AUTO) means the
frontend can auto switch beteen 8-VSB, 64-QAM, and 256-QAM.  But this is
wrong!  That is not what the fronend can do!

In order to be able to define any auto abilities accurately, you would
probably need to make the modulation capabilities an array.  Like this:

caps.delsys.atsc.modulation[]={ FE_MOD_VSB8|FE_MOD_QAM64|FE_MOD_QAM256,
                                FE_MOD_QAM64|FE_MOD_QAM256|FE_MOD_AUTO,
				0 };

The first entry without, which doesn't have AUTO, specifies all the
individual modulations that can be set.  The second has just
64-QAM and 256-QAM, with the AUTO bit.  This means that the
frontend can auto switch between these modulations.  The final 0
indicates the end of the list.

This is probably much too complex to use.  So, I suggest just adding something
like FE_MOD_QAM_AUTO, that means the front-end supports auto switching between
all the QAM modulations it lists as supported.  This isn't as general.  You
couldn't describe a frontend than auto switch between 64-QAM and 256-QAM, OR
between 512-QAM and 1024-QAM, but not between all four.  You couldn't describe
a frontend than can auto switch between COFDM and 64-QAM, and also supports
Q-PSK but can't auto switch between Q-PSK and COFDM/64-QAM.

Of course all those unhandled possibilities are just possibilities, there may
never be any hardware that works that way.  FE_MOD_QAM_AUTO is enough to
handle real existing hardware abilities as well as the currect API.


> > I don't think ATSC supports multiple fec rates?  It only allows for 2/3.

I checked SCTE 07 2000, and ATSC digital cable uses different FEC rates.
QAM-64 uses 14/15 and QAM-256 is 19/20, but only these rates are supported.
So adding a fecrate field to the ATSC parameters is probably bad idea.  Only
once fec rates per modulation is supported, but it's different for each
modulation.  The unused 16-VSB high data rate mode specified in A/53 uses a
1/1 code ratio (it doesn't use Trellis coding).

_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux