Main Page | Modules | Data Structures | Data Fields | Related Pages | Examples

Error correction functions
[Raw VBI]

Helper functions to decode sliced VBI data. More...

Functions

void vbi_par (uint8_t *p, unsigned int n)
int vbi_unpar (uint8_t *p, unsigned int n)
void vbi_ham24p (uint8_t *p, unsigned int c)
int vbi_unham24p (const uint8_t *p)
_vbi_inline unsigned int vbi_rev8 (unsigned int c)
_vbi_inline unsigned int vbi_rev16 (unsigned int c)
_vbi_inline unsigned int vbi_rev16p (const uint8_t *p)
_vbi_inline unsigned int vbi_par8 (unsigned int c)
_vbi_inline int vbi_unpar8 (unsigned int c)
_vbi_inline unsigned int vbi_ham8 (unsigned int c)
_vbi_inline int vbi_unham8 (unsigned int c)
_vbi_inline int vbi_unham16p (const uint8_t *p)

Detailed Description

Helper functions to decode sliced VBI data.


Function Documentation

void vbi_par uint8_t *  p,
unsigned int  n
 

Parameters:
p Array of unsigned bytes.
n Size of array.
Of each byte of the array, changes the most significant bit to make the number of set bits odd.

Since:
0.2.12

int vbi_unpar uint8_t *  p,
unsigned int  n
 

Parameters:
p Array of unsigned bytes.
n Size of array.
Tests the parity and clears the most significant bit of each byte of the array.

Returns:
A negative value if any byte of the array had even parity (sum of bits modulo 2 is 0).
Since:
0.2.12

void vbi_ham24p uint8_t *  p,
unsigned int  c
 

Parameters:
p A Hamming 24/18 protected 24 bit word will be stored here, last significant byte first, lsb first transmitted.
c Integer between 0 ... 1 << 18 - 1.
Encodes an 18 bit word with Hamming 24/18 protection as specified in ETS 300 706, Section 8.3.

Since:
0.2.27

int vbi_unham24p const uint8_t *  p  ) 
 

Parameters:
p Pointer to a Hamming 24/18 protected 24 bit word, last significant byte first, lsb first transmitted.
Decodes a Hamming 24/18 protected byte triplet as specified in ETS 300 706, Section 8.3.

Returns:
Triplet data bits D18 [msb] ... D1 [lsb] or a negative value if the triplet contained incorrectable errors.
Since:
0.2.12

_vbi_inline unsigned int vbi_rev8 unsigned int  c  ) 
 

Parameters:
c Unsigned byte.
Reverses the bits of the argument.

Returns:
Data bits 0 [msb] ... 7 [lsb].
Since:
0.2.12

_vbi_inline unsigned int vbi_rev16 unsigned int  c  ) 
 

Parameters:
c Unsigned 16 bit word.
Reverses (or "reflects") the bits of the argument.

Returns:
Data bits 0 [msb] ... 15 [lsb].
Since:
0.2.12

_vbi_inline unsigned int vbi_rev16p const uint8_t *  p  ) 
 

Parameters:
p Pointer to a 16 bit word, last significant byte first.
Reverses (or "reflects") the bits of the argument.

Returns:
Data bits 0 [msb] ... 15 [lsb].
Since:
0.2.12

_vbi_inline unsigned int vbi_par8 unsigned int  c  ) 
 

Parameters:
c Unsigned byte.
Returns:
Changes the most significant bit of the byte to make the number of set bits odd.
Since:
0.2.12

_vbi_inline int vbi_unpar8 unsigned int  c  ) 
 

Parameters:
c Unsigned byte.
Returns:
If the byte has odd parity (sum of bits modulo 2 is 1) the byte AND 127, otherwise a negative value.
Since:
0.2.12

_vbi_inline unsigned int vbi_ham8 unsigned int  c  ) 
 

Parameters:
c Integer between 0 ... 15.
Encodes a nibble with Hamming 8/4 protection as specified in EN 300 706, Section 8.2.

Returns:
Hamming encoded unsigned byte, lsb first transmitted.
Since:
0.2.12

_vbi_inline int vbi_unham8 unsigned int  c  ) 
 

Parameters:
c Hamming 8/4 protected byte, lsb first transmitted.
Decodes a Hamming 8/4 protected byte as specified in EN 300 706, Section 8.2.

Returns:
Data bits (D4 [msb] ... D1 [lsb]) or a negative value if the byte contained incorrectable errors.
Since:
0.2.12

_vbi_inline int vbi_unham16p const uint8_t *  p  ) 
 

Parameters:
p Pointer to a Hamming 8/4 protected 16 bit word, last significant byte first, lsb first transmitted.
Decodes a Hamming 8/4 protected byte pair as specified in EN 300 706, Section 8.2.

Returns:
Data bits D4 [msb] ... D1 of first byte and D4 ... D1 [lsb] of second byte, or a negative value if any of the bytes contained incorrectable errors.
Since:
0.2.12


Generated on Mon Jun 9 21:44:14 2008 for ZVBI Library by doxygen 1.3.5