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

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

 



Johannes Stezenbach wrote:
Hi,

thanks for your answer. I feel I'm getting closer, but
I still haven't figured it out completely ;-/
So, some more questions:

On Tue, May 23, 2006, christophpfister@xxxxxxxxxxx wrote:
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).

Where does it come from? Is it the value of the
backwards_compatibility_indicator from
the S2 satellite delivery system descriptor?

Yes.

I don't get the description in EN 300 468, which says
"set according to EN 302 307", but EN 302 307 doesn't
mention this flag at all...
(EN 302 307 contains a description of
"Backwards Compatible modes (optional)" in annex F,
however it's not obvious how it works and what
the relationship to the S2 descriptor is.)

In Backward Compatibility mode you need to select the HP/LP stream.
select the HP/LP stream (via sismis)

From a device point of view ..

SIS/MIS (1 bit): describes whether there is a single input stream or multiple input streams. If SIS/ MIS = multiple input stream, then the second byte is the input stream identifier (ISI), otherwise
the second byte is reserved.


+	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.

I don't want to upset you, but this answer is a bit lame -- I'll try to
explain below why it doesn't further my understanding of the matter.


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.

If the transmitter broadcasts MIS, I have to set a stream_id
(otherwise I'd get a garbage mix of multiple TS, right?).
Do I then have to set the sismis to DVBFE_SISMIS_MULTIPLE
(because it's MIS) or DVBFE_SISMIS_SINGLE (because I want
to filter out just one of them)?

You mean just to use Input Stream Identifier alone, If stream_id > 0, Multiple streams ?

EN 302 307 annex F talks about high and low priority streams
and hierarchical modulation. A previous version of
the API proposal consequently contained a way to select
the HP/LP stream. Has this been identified as unnecessary?

Annex F Backwards Compatible modes (optional)
says,

Hierarchial modulation, where two HP and LP Transport streams are synchronously combined at modulation symbol level on an asymmetric 8PSK constellation.

NOTE 1: Hierarchial modes are also used in EN 300 744

Now the device specs says, p 128, TSULSTKM
[6] LOWP_EN

Low priority Enable (1 bit)

p 129, TSSTATUS
[5] LOW_PRIORITY

Low priority is engaged (1 bit)

This we can use

(if (obc_mode && sismis))
select LP

The device will need the Input stream identifier as well. If stream_id = 0 is not a valid stream, we can even omit the sismis flag. But i am not very sure of this whether 0 is a valid for a stream or not. IMHO, it would be better if we have these two separated as it is right now, ie, STREAM_ID and SISMIS.

I don't understand why we should use FE_HIERARCHY_XX. Since this is in obc_mode and EN 300 468 says that way and it maps according to that. It looks exactly that way.

I don't see anywhere else where it says anything else otherwise.

-- 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.

OK, these questions were not very clear. Let me rephrase:

Assuming VDR only cares about broadcast services (TV + radio),
is the s2_satellite_delivery_system_descriptor relevant
for VDR? All of it or just parts? And why?

Most of it. (It is not specific to VDR .. we wouldn't be making the API VDR dependent rather rather application independent .. ;-) Some people say it has to platform independent too .. :-D)

According to EN 300 468 the relevant fields which are of are

scrambling_sequence_selector (1 bit)

A value of 0 specifies that the default DVB-S2 physical layer scrambling sequence of index n= 0 is used. A value of 1 means that the default scrambling sequence is not used and the sequence index n will be conveyed in the scrambling_sequence_index_field.


Now the device specs say p 39,

7.1.7 Physical layer descrambler and FEC interface
Descrambling

The descrambler applies the zeroth Gold code sequence to descramble the incoming sample stream starting with the sample immediately after the physical-layer header field. Two shifted and disjointed sequences of the Gold sequence are used as in the DVB-S2 specification to determine if the incoming sample is rotated 0, 90, 180, or -90 degrees.

EN 302 307 5.5.4 physical layer scrambling
Prior to modulation, each PLFRAME, excluding the PLHEADER, shall be randomized for energy dispersal by multiplying the (IQ) samples by a complex randomization sequence.

The scrambling code sequences shall be constructed by combining two real m-sequences (generated by means of two generator polynomials of degree 18) into a complex sequence. The resulting sequences thus constitute segments of a set of Gold sequences.

(After Figure 15)
In case of broadcasting services, n=0 shall be used as default sequence, to avoid manual receiver setting or synchronization delays.

So indeed the device supports descrambling with an index n=0.

In the implementation,

I can't see how i can set another scrambling_sequence_index. IMHO this field should be added only when new devices that make use of this field comes up.


multiple_input_stream_flag (1 bit)
backwards_compatibility_indicator (1 bit)

These two we just discussed , just above.
The stream filter is handled on the device by forcing the MATYPE register. The descrambled header (MATYPE) is found in the MATSTR register.

Now, you think that every time you select a different MODCOD, the device has to tune, but then the device could as well check whether it is already tuned to the same parameters. But this is device specific, of course.

EN 300 468 says: "This descriptor is only required if DVB-S2 is not used
in normative broadcast mode (NBC-BS). In normative broadcast
mode the satellite_delivery_system_descriptor is sufficient."

What does this mean?
- NBC-BS == "normative broadcast mode"?

Yes

- S2 descriptor only for BC or non-BS modes?


BC.


------------------------------------------------

OK, after reading through some parts of EN 302 307 and
EN 300 468 for the umpteenth time, here's how I currently
think it *might* work. Yeah, I'm still not sure, and there
are still holes for you to fill in, and hopefully you can
correct my mistakes:

1. DVB-S2 as used today: DVB-S2 is broadcast on dedicated
   transponders in NBC mode; thus no S2 descriptor is
   necessary, it is always SIS.

In NBC mode, it doesn't use the sismis flag, since there is no s2 descriptor.
But, TR 102 376, table 10 says

Broadcast Profile: Multiple Transport Streams (optional)
Interactive Profile: Multiple Transport Streams (optional)
Interactive Service Receivers shall implement CCM and Single Transport Stream

DSNG Profile: Multiple Transport Streams (optional)
Professional Profile: Multiple Transport Streams (optional)

In S2 NBC mode, i believe TR 102 376, 6.2.1 applies, which is handled by the device does this internally itself as the user sets the valid MODCOD. since it changes on a frame by frame basis. IT does TDM according to EN 302 307 page 66, Figure H.4, the MERGER does TDM

http://demo.astra-net.com/dvb-s2/
The information on the ASTRA demo confirms that, AFAICS.

   (NBC means an old DVB-S receiver cannot receive it.)

DVB-S2 is broadcast in 2 ways.

(1) Backwards Compatible modes (optional)
(2) Non Backwards Compatible mode

Ideally all broadcasters should do a migration process.

Backwards-compatible modes
The large number of DVB-S receivers already installed makes it very difficult for many established broadcasters to think of an abrupt change of technology in favour of DVB-S2 – especially where there is a receiver subsidy and for free-to-air public services. In such scenarios, backwards-compatibility may be required in the migration period, allowing legacy DVB-S receivers to continue operating, while providing additional capacity and services to new, advanced receivers. At the end of the migration process, when the complete receiver population has migrated to DVB-S2, the transmitted signal could be modified to the non-backward compatible mode, thus exploiting the full potential of DVB-S2. Optional backwards-compatible (BC) modes have therefore been defined in DVB-S2, intended to send two Transport Streams on a single satellite channel. The first (High Priority, HP) stream is compatible with DVB-S receivers (according to EN 300 421 [3]) as well as with DVB-S2 receivers, while the second (Low Priority, LP) stream is compatible with DVB-S2 receivers only.

Now,

There are some disadvantages to BC (Backwards Compatibility)

Backwards-compatible systems however suffer from two disadvantages:
• Compatibility will cause the overall performance to fall short of that achievable by non backwards-compatible systems.

• There will be some performance penalty in the behaviour of existing QPSK receivers. Note that some operators are reluctant to accept even a slight performance penalty, as this increases service call-outs and churn.


Since now, broadcasters want to take advantage of the new features, but yet they want to cut down operational costs (transponder bandwidth is paid monthly. Receiver cost is a small amount compared to that, in the fact that bandwidth costs are recurring)


Due to these reasons, Broadcaster's most of the prefer to go for NBC. Advantage they get benefits from STB vendors too, as this pushes the sales for new STB's immediately.


It all finally ends in revenue. :)

2. BC modes might be used, where a DVB-S and a DVB-S2
   transmission are mixed together on the same transponder;
   old DVB-S receivers will just see the DVB-S stream,
   but DVB-S2 receivers can select either the DVB-S
   or the DVB-S2 stream;
   - an S2 descriptor must be present

Yes

   - are there *multiple* S1 descriptors in the NIT for
     this frequency, one with modulation_system S1 and
     one for S2?

This i can tell you once i have parsed the stream. For this i have to get the device running. It is now a chicken and egg problem.

As far as i understood, there is only one for S1 and one for S2 in BC, and just S1 in NBC

   - do you select the HP/LP stream by passing the
     backwards_compatibility_indicator? Or rather
     by using DVBFE_DELSYS_DVBS vs. DVBFE_DELSYS_DVBS2?
     Or even by setting the stream_id?
     Or something else?


(if (obc_mode && sismis))
select LP

The device will need the Input stream identifier as well.


3. DVB-S2 also allows multiple streams in NBC-BS mode (I think)
   (e.g. two TS with different levels of error protection
   on the same transponder)

EN 302 307 H.3 says,

The DVB-S2 system may deliver services over multiple Transport Streams, providing error protection per MUX (VCM mode) A typical application is broadcasting of a highly protected MUX for SDTV, and of a less protected MUX for HDTV.

TR 102 376 6.2.1

Independent framing Issues

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.


   - contradicting EN 300 468 one needs the stream_id
     from the S2 descriptor to select one of them

Already explained this above, the one discussed just down is different from the earlier one.

   - are there multiple S2 descriptors for this
     frequency, one for each stream_id?

from http://www.ebu.ch/trev_300-morello.pdf
The DVB-S2 system may be used in “single-carrier-per-transponder” or in “multi-carriers-per-transponder”
(FDM) configurations.

TR 102 376 6.1.2 Multiple (Generic or Transport) Streams


There are 2 solutions possible

(1) IP datagrams can be encapsulated in Transport Streams (Multi protocol Encapsulation MPE) according to EN 301 192

(2) IP datagrams can be fragmented and encapsulated in variable or fixed length layer 2 packets or directly mapped in the transmitted TDM stream. MPE or other encapsulation protocols can be assumed.


but as we said discussed earlier, No MPE and or other stuff is worked upon such as the ACM modes and friends which are used in the other 3 modes of operation eventhough, the Multiple streams in NBC mode mean Professional applications, and Broadcast Applications, but these use VCM, ie, MODCOD info to handle them, as it changes on a frame by frame (TDM).



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