Messages in this thread | | | Date | Mon, 5 Apr 1999 21:50:24 -0400 (EDT) | From | "Frederick F. Gleason" <> | Subject | RFC: RDS Extensions to Video4Linux API |
| |
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/
| |