Size: 817
Comment:
|
Size: 1527
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
The ioctl(2) interface is provided by /usr/local/include/cx88/cx88_video_ioctl.h, and works in a similar fashion to the [[Overview/TransportStream|MPEG TS]] ioctl interface. | The ioctl(2) interface is provided by /usr/local/include/cx88/cx88_video_ioctl.h, and works in a similar fashion to the [[Overview/TransportStream|MPEG TS]] ioctl interface. The video stream does expose a richer set of controls than MPEG TS, because raw video is fundamentally more flexible from a hardware standpoint. Besides using an actual hardware decoder, there are few meaningful transformations that can be made in hardware to an MPEG stream. The buffering scheme for raw video works in a slightly different way than for MPEG--the CX88_VIDEO_CONFIGURE ioctl requires the number of frames, and each buffer that is allocated by the driver (or provided by the application) will constitute a single frame for its color or VBI channel. Additionally, the CX88_VIDEO_FORMAT ioctl should be issued before CX88_VIDEO_CONFIGURE in order to obtain buffer geometry for each channel. |
Raw Video
The CX2388x video stream (function 0) allows for raw pixel data to be transferred either from an analog frontend or VIP-compliant device into host memory. The raw video stream supports a variety of pixel formats, and can utilize either packed or planar color formats. One DMA channel is used to transfer either packed pixel data or the Y color plane, while two additional channels are provided to transfer the U and V color planes (obviously for planar formats only). A fourth DMA channel can be used to transfer vertical blanking interval (VBI) data, which is typically used to convey teletext or closed captioning.
The ioctl(2) interface is provided by /usr/local/include/cx88/cx88_video_ioctl.h, and works in a similar fashion to the MPEG TS ioctl interface. The video stream does expose a richer set of controls than MPEG TS, because raw video is fundamentally more flexible from a hardware standpoint. Besides using an actual hardware decoder, there are few meaningful transformations that can be made in hardware to an MPEG stream.
The buffering scheme for raw video works in a slightly different way than for MPEG--the CX88_VIDEO_CONFIGURE ioctl requires the number of frames, and each buffer that is allocated by the driver (or provided by the application) will constitute a single frame for its color or VBI channel. Additionally, the CX88_VIDEO_FORMAT ioctl should be issued before CX88_VIDEO_CONFIGURE in order to obtain buffer geometry for each channel.