Sliced vbi data

Name

Sliced vbi data -- Input to the vbi decoder.

Synopsis



#define     VBI_SLICED_NONE
#define     VBI_SLICED_TELETEXT_B_L10_625
#define     VBI_SLICED_TELETEXT_B_L25_625
#define     VBI_SLICED_TELETEXT_B
#define     VBI_SLICED_VPS
#define     VBI_SLICED_CAPTION_625_F1
#define     VBI_SLICED_CAPTION_625_F2
#define     VBI_SLICED_CAPTION_625
#define     VBI_SLICED_CAPTION_525_F1
#define     VBI_SLICED_CAPTION_525_F2
#define     VBI_SLICED_CAPTION_525
#define     VBI_SLICED_2xCAPTION_525
#define     VBI_SLICED_NABTS
#define     VBI_SLICED_TELETEXT_BD_525
#define     VBI_SLICED_WSS_625
#define     VBI_SLICED_WSS_CPR1204
#define     VBI_SLICED_VBI_625
#define     VBI_SLICED_VBI_525
typedef     vbi_sliced;
char*       vbi_sliced_name                 (unsigned int service);

Description

The vbi decoder accepts vbi data in binary format. This is the output of the libvbi raw vbi decoder and hardware interfaces, but also very similar to vbi transmitted with digital TV.

Details

VBI_SLICED_NONE

#define VBI_SLICED_NONE			0

No data service, blank vbi_sliced structure.


VBI_SLICED_TELETEXT_B_L10_625

#define VBI_SLICED_TELETEXT_B_L10_625	0x00000001


VBI_SLICED_TELETEXT_B_L25_625

#define VBI_SLICED_TELETEXT_B_L25_625	0x00000002


VBI_SLICED_TELETEXT_B

#define VBI_SLICED_TELETEXT_B		(VBI_SLICED_TELETEXT_B_L10_625 | VBI_SLICED_TELETEXT_B_L25_625)

Teletext System B.

Note this is separated into Level 1.0 and Level 2.5+ since the latter permits occupation of PAL/SECAM scan line 6 which is frequently out of range of VBI capture drivers. Clients should request decoding of both, may then verify Level 2.5 is covered. Also sliced data can be tagged as both Level 1.0 and 2.5+, i. e. VBI_SLICED_TELETEXT_B.

Reference: ETS 300 706 "Enhanced Teletext specification".

vbi_sliced payload: Last 42 of the 45 byte Teletext packet, that is without clock run-in and framing code, lsb first transmitted.


VBI_SLICED_VPS

#define VBI_SLICED_VPS			0x00000004

Video Program System.

Reference: ETS 300 231 "Specification of the domestic video Programme Delivery Control system (PDC)".

vbi_sliced payload: Byte number 3 to 15 according to Figure 9, lsb first transmitted.


VBI_SLICED_CAPTION_625_F1

#define VBI_SLICED_CAPTION_625_F1	0x00000008


VBI_SLICED_CAPTION_625_F2

#define VBI_SLICED_CAPTION_625_F2	0x00000010


VBI_SLICED_CAPTION_625

#define VBI_SLICED_CAPTION_625		(VBI_SLICED_CAPTION_625_F1 | VBI_SLICED_CAPTION_625_F2)

Closed Caption for 625 line systems (PAL, SECAM).

Note this is split into field one and two services since for basic caption decoding only field one is required. Clients should compare the vbi_sliced line number, not the type to determine the source field.

Reference: EIA 608 "Recommended Practice for Line 21 Data Service".

vbi_sliced payload: First and second byte including parity, lsb first transmitted.


VBI_SLICED_CAPTION_525_F1

#define VBI_SLICED_CAPTION_525_F1	0x00000020


VBI_SLICED_CAPTION_525_F2

#define VBI_SLICED_CAPTION_525_F2	0x00000040


VBI_SLICED_CAPTION_525

#define VBI_SLICED_CAPTION_525		(VBI_SLICED_CAPTION_525_F1 | VBI_SLICED_CAPTION_525_F2)

Closed Caption for 525 line systems (NTSC).

Note this is split into field one and two services since for basic caption decoding only field one is required. Clients should compare the vbi_sliced line number, not the type to determine the source field. VBI_SLICED_CAPTION_525 also covers XDS (Extended Data Service), V-Chip data and ITV data.

Reference: EIA 608 "Recommended Practice for Line 21 Data Service".

vbi_sliced payload: First and second byte including parity, lsb first transmitted.


VBI_SLICED_2xCAPTION_525

#define VBI_SLICED_2xCAPTION_525	0x00000080

Closed Caption at double bit rate.

Reference: ?

vbi_sliced payload: First to fourth byte including parity bit, lsb first transmitted.


VBI_SLICED_NABTS

#define VBI_SLICED_NABTS		0x00000100

North American Basic Teletext Specification.

(Supposedly this standard fell into disuse.)

Reference: EIA-516 "North American Basic Teletext Specification (NABTS)".

vbi_sliced payload: 33 bytes.


VBI_SLICED_TELETEXT_BD_525

#define VBI_SLICED_TELETEXT_BD_525	0x00000200

?

Reference: ?

vbi_sliced payload: 34 bytes.


VBI_SLICED_WSS_625

#define VBI_SLICED_WSS_625		0x00000400

Wide Screen Signalling for 625 line systems (PAL, SECAM)

Reference: EN 300 294 "625-line television Wide Screen Signalling (WSS)".

vbi_sliced payload:
Byte         0                  1
!     msb         lsb  msb             lsb
bit   7 6 5 4 3 2 1 0  x x 13 12 11 10 9 8
according to Table 1, lsb first transmitted.


VBI_SLICED_WSS_CPR1204

#define VBI_SLICED_WSS_CPR1204		0x00000800

Wide Screen Signalling for NTSC Japan

Reference: EIA-J CPR-1024 (?)

vbi_sliced payload:
Byte         0                    1                  2
!     msb         lsb  msb               lsb  msb             lsb
bit   7 6 5 4 3 2 1 0  15 14 13 12 11 10 9 8  x x x x 19 18 17 16


VBI_SLICED_VBI_625

#define VBI_SLICED_VBI_625		0x20000000

No actual data service. This symbol is used to request capturing of all PAL/SECAM VBI data lines, as opposed to just those lines used to transmit the requested data services.


VBI_SLICED_VBI_525

#define VBI_SLICED_VBI_525		0x40000000

No actual data service. This symbol is used to request capturing of all NTSC VBI data lines, as opposed to just those lines used to transmit the requested data services.


vbi_sliced

typedef struct vbi_sliced {
	uint32_t		id;
	uint32_t		line;
	uint8_t			data[56];
} vbi_sliced;

This structure holds one scan line of sliced vbi data, for example the contents of NTSC line 21, two bytes of Closed Caption data. Usually an array of vbi_sliced is used, covering all VBI lines.

id: A VBI_SLICED_ symbol. Under cirumstances (see VBI_SLICED_TELETEXT_B) this can be a logical 'or' of VBI_SLICED_ values.

line: Source line number according to the ITU-R line numbering scheme, a value of 0 if the exact line number is unknown. Note that some data services cannot be reliable decoded without line number.

data: The actual payload. See the VBI_SLICED_ documentation for details.


vbi_sliced_name ()

char*       vbi_sliced_name                 (unsigned int service);