RFC: RDS Extensions to Video4Linux API

Frederick F. Gleason (fredg@wava.com)
Mon, 5 Apr 1999 21:50:24 -0400 (EDT)


I am in the process of adding RDS support to the ADS Cadet AM/FM radio
card driver, and would like to float some ideas for some (hopefully!)
sensible extensions to the V4L API to accomplish this.

RDS stands for the Radio Data System, an international standard for
transmitting data via a subsidiary channel over FM. In terms of
functionality, it is roughly analogous to the videotext and vbi systems
available in the video world. Further information, including the full
technical specification is available at http://www.rds.org.uk/.

The RDS spec itself is quite complex, but for purposes of the kernel
device, the data stream can be thought of simply as a series of blocks,
returned by read() after an open() of a /dev/radio device. These blocks,
which are the fundamental unit of data organization in RDS, consist of
three octets, packed as follows:

Octet 0: Least Siginificant Data Byte of Block
Octet 1: Most Siginificant Data Byte of Block
Octet 2: Error and Block Offset Data, as follows:
Bit 7: Error Bit. Bit set indicates an uncorrectable
error during reception of this data block
Bit 6: Corrected Bit. Bit set indicates received error
was corrected for this data block.
Bits 5-3: Received Offset. Indicates the block offset
received by the decoder hardware (used to
determine the location of the block in a RDS
group).
Bits 2-0: Offset Name. Indicates the block offset applied
by the decoder. (In some cases, the hardware may
try to second-guess the received values to try
to overcome poor reception conditions).

In addition to the data stream format shown above, I propose to add the
following two flags to the 'video_tuner' struct returned by the
VIDIOCGTUNER ioctl call:

VIDEO_TUNER_RDS_ON The tuner is synchronized to a RDS/MBS
subcarrier
VIDEO_TUNER_MBS_ON The tuner is sychronized via MBS
blocks rather than RDS blocks.

That's it. Please pick it apart...I'd welcome any suggestions for
improvements!

|Frederick F. Gleason, Jr.|WAVA Radio - 105 FM |Voice: 1-(703)-807-2266 |
| Chief Engineer |1901 N. Moore Street| FAX: 1-(703)-807-2248 |
| |Arlington, VA 22209 | Web: HTTP://www.wava.com|

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/