[linux-dvb]%09Mantis%09VP-1027/VP-1033/VP-1034/VP-2033/VP-3033&In-Reply-To=op.tjqztsra8ok45w@imac

Manu Abraham abraham.manu at gmail.com
Sun Dec 3 04:29:25 CET 2006


Marko Ristola wrote:
> 
> @@ -231,7 +232,7 @@ void mantis_dma_xfer(unsigned long data)
>        dprintk(verbose, MANTIS_DEBUG, 1, "last block=[%d] finished
> block=[%d]",
>            mantis->last_block, mantis->finished_block);
> 
> -        (mantis->ts_size ? dvb_dmx_swfilter_204: dvb_dmx_swfilter)
> +        (mantis->ts_size ? dvb_dmx_swfilter: dvb_dmx_swfilter_204)
>        (&mantis->demux, &mantis->buf_cpu[mantis->last_block *
> MANTIS_BLOCK_BYTES], MANTIS_BLOCK_BYTES);
>        mantis->last_block = (mantis->last_block + 1) % MANTIS_BLOCK_COUNT;
>    }
> 
> The minus line might work for you on the old Alpha driver.
> 
> Maybe the difference is, that Reed Solomon 204 format is decoded into
> 188 bytes
> on some cards, in software and on other cards in hardware?
> 

You are correct. But we don't handle RS in Software in the DVB
framework. Some demodulators provide the additional parity information
which can be useful in some cases. Almost all demodulators can handle RS
in Hardware.

The MB86A16 provides a 204 byte long TS whereas the CU1216 provides a
188 byte long TS. So in the DMA transfer we just use the appropriate
software filter.

The TS can be depicted thus,

Packet Header 32 bits (4 words)
	Sync Byte (8 bits)
	Transport Error Indicator (1 bit)
	Rest of the header
Data Sec (156 bytes)

A total of 156 + 32 = 188 bytes


In the case of a 204 byte long stream


Frame Sync Byte (8 bits)
TS block  + parity (203 bytes)
------------------------------------------------ 1 packet
Packet Sync Byte (8 bits)
TS block  + parity (203 bytes)
Packet Sync Byte (8 bits)
TS block  + parity (203 bytes)
---
---
TS block  + parity (203 bytes)
----------------------------------------------- 8 packets
Frame Sync Byte (8 bits)
TS block  + parity (203 bytes)

--
--
	

Some demodulators do not strip away the parity information after the
Hardware RS decoder and hence a 204 byte stream.

> Yes, you are debugging mb86a16.c, not cu1216.c. mantis_dma.c
> is common for both. Same applies for dvb_frontend.c.
> 
> It's good to help Manu to get his new drivers to work.
> It's good also, if you can watch TV in the mean time.
> 
> Regards,
> Marko Ristola
> 

Regards,
Manu



More information about the linux-dvb mailing list