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

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

 



Johannes Stezenbach wrote:
On Mon, May 08, 2006, Manu Abraham wrote:
Updated Patch.

I hope it addresses a lot of small things here and there .. I will attach the STB0899's interface to the API in another mail.
Hope i haven't missed out anything that was mentioned.

I worked my way though your patch and changed coding style
the way *I* like it; maybe it'll upset you, but I think
it is more Linuxy this way.

Well i am not too happy about the Linuxy way .. According to Linus, well Linux is not supposed to follow any standards and or specifications, but yet we are all looking at specifications and datasheets .. ;-)

Relevant changes:
- consistent dvb_ naming for all new enums; looks better and avoids
  name clashes with the old types (e.g. fe_bandwidth vs. fe_bandwidths)

Ok

- removed useless _RESERVEDs from the enums


but it is now _RESERVED changed to _UNKNOWN. Just a name change. It is not removed.


- make sure all new enums have a (1 << 31) value so they are
  32bit sized even on strange ARM architecturs

Looks nice.

- moved all legacy cruft at the bottom


This will cause all drivers to be changed at the same time. will cause broken drivers. We haven't completely recovered from the earlier changes, still !


- shrunk comments
- moved modcod to dvb_frontend.h -- I'm relatively convinced
  there's no use for this in the API
  (dvbs2_params takes mod + fec instead)

TR 102 376 v 1.1.1 page 41 IP Unicast Services

6 Interactive applications

Interactive data services may take advantage of the possibility offered by DVB-S2 to change the modulation format and error protection level, by using the ACM functionality, thus allowing to differentiate service levels (priority in the delivery queues, minimum bit rate etc)

6.1.1 Single generic Stream and ACM command

According to this system configuration, the DVB-S2 ACM modulator receives 2 input signals. The first is the data stream continuous or packetized. The second is the ACM command, carring the MODCOD information used by the modulator for encoding and mapping each specific portion of the input data stream.

..

From a different perspective, the data for filling a specific frame need to be selected taking into account the physical layer mode requested by the Satellite terminals to whom they are addressed. This is the reason why the MODCOD information is generated at the same time of the user data selection and sent as an input to the DVB-S2 ACM modulator.


6.2.1 Independant framing issues (MPEG - TS)

In ACM or VCM applications, MODCOD may change on a frame by frame basis, therefore some PL frames may use MODCOD configurations that some receivers cannot demodulate.



Under the said opinions, i can think of 2 ways

(Option #1)
Move modcod to the dvb_frontend , since it is of no use in the API as Johannes said. The bad sides of it are
(a) we will need dvbs_modcod_encoder convenience function as well
(b) apps still use a different strategy than what is specified in the specs

(Option #2)
Leave modcod as it is, and be happy. It is according to the standards and no additional convenience functions are needed.


I personally vote for Option #2.



- removed coderate_LP and modcod from dvbs2_params -- not needed
- added flags field to dvbs2_params (future use, e.g. to add
  ISI stream filter)
- deprecate FE_GET_EVENT and add FE_ACK_EVENTS

TODO:

- DVB-S2 has physical layer signalling, which I think is
  similar to DVB-T TPS. I.e. the demod can figure out
  modulation and fec all by itself. Similarly, roll-off
  is part fo base-band signalling. So maybe we don't
  need to set these for tuning and just need the fields
  for FE_GET_PARAMS (for informational purposes).



The demod uses pilot tones to detect the PL signalling.


- FE_GET_PARAMS semantics are still not clear:
  when calling it, the current delsys is unknow, thus
  it is not possible to set specific fields to *_IGNORE
  or != *_IGNORE; one could memset() the
  struct dvb_frontend_params to zero, then call FE_GET_PARAMS
  once to find out the current delsys, and then set the
  interesting fields to != *_IGNORE
  That's somehow ugly...


Ok, i will try to add in some comments. I was under the belief that it was pretty clear.

- I'm still unhappy witht he capabilites; IMHO it doesn't
  make sense to put full struct foo_params in there.
  E.g. a DVB-S frontend is usually 100% compliant (I don't know
  any which isn't), so why have capability flags for e.g. each
  FEC required by the DVB-S standard?


Well, i did add it because of all those "if" conditions put forward. IMHO it should be there, since it will at least pacify the people who are saying otherwise.

We all spent too much time on this discussing this without any progress, just discussing only the cosmetic stuff. I hope it can go ahead .. :-(

I hope incorporating the changes outlined here as you said and with the issues that i meant it can go into v4l-dvb, being marked as EXPERIMENTAL ?


Thanks,
Manu


_______________________________________________

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