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

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

 



>But you know, in every proposal I've seen so far struct dvbs2_params
>changed a bit -- parameters were added, removed or changed.
>And I repeatedly asked for an explanation how the API works,
>i.e. how it would be used in practice by an application
>developer. Which parameters are necessary for tuning, and where
>do you get the values from? Which are only for querying
>some detail info for curious people? Which are for receiving
>simple HDTV and which are for some exotic DSNG or
>IP-via-DVB ACM stuff?
[snip]
>My impression is that all DVB-S2 proposals so far were immature
>and haven't even reached EXPERIMENTAL stage.
>(Where EXPERIMENTAL means: Not 100% ready, but good enough to
>include in mainline kernels and let people interested in
>the subject play with it. IOW it must *work*, and it must
>be documented or obvious *how* it works.)
>
>Look at it this way: If *I* don't understand the API,
>how can you expect someone like Klaus Schmidinger implement
>support for it in VDR?
>- how to do service scan for DVB-S2
>- what changes are necessary for channels.conf
>- which new ioctsl, and how to use them
>- how to maintain backwards compat with old kernels

-- Ok let's go through it step by step --

+/*
+ *	DVB-S2 parameters
+ */
+struct dvbs2_params {
+	__u32				symbol_rate;
+
+	enum dvbfe_modulation		modulation;
+	enum dvbfe_fec			fec;
+	enum dvbfe_obc_mode		obc_mode;
+	enum dvbfe_rolloff		rolloff;
+	enum dvbfe_sismis_flag		sismis;
+	__u8				stream_id;
+
+	__u8				pad[32];
+};

Those params are *all* needed for tuning (except the pad of course). Most
of them should be self-explanatory. Just a note to the following ones:

+	enum dvbfe_obc_mode		obc_mode;

Needed to indicate in which mode the transponder is sending. But don't worry,
this information is provided (see below).

+	enum dvbfe_sismis_flag		sismis;
+	__u8				stream_id;

If we set sismis to DVBFE_SISMIS_SINGLE, we have to specify which stream
should be read. If sismis is set to DVBFE_SISMIS_MULTIPLE the stream_id is
not used.

-- How to retrieve needed values --

The same way we do it for dvb-x / atsc right now. There is an initial tuning
file containing the values for a first tune.

Further channel data is retrieved from s2_satellite_delivery_system_descriptor.

Additionally the app has to set _only_ those fields:

+	enum dvbfe_sismis_flag		sismis;
+	__u8				stream_id;

Normally this is DVBFE_SISMIS_MULTIPLE as long as the app doesn't need special
behaviour.

-- Usage of this api --

>- how to do service scan for DVB-S2

Should be clear now. First do initial tune with the initial tuning file,
then get service data from the s2_satellite_delivery_system_descriptor.

>- what changes are necessary for channels.conf

Well that shouldn't matter at this stage, otherwise we have the "chicken
and egg" problem. But I think it's obvious: We add the params for modulation,
fec, obc_mode and rolloff to channels.conf.

>- which new ioctls, and how to use them

DVBFE_GET_DELSYS : get supported delivery systems (should be the first ioctl
used)
DVBFE_SET_PARAMS : tune

DVBFE_GET_PARAMS : get tuning parameters
DVBFE_GET_INFO : get supported modulations, fecs, ...

>- how to maintain backwards compat with old kernels

You mean between this proposed api and further ones?

Christoph


_______________________________________________

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