OpenGL.GL.APPLE.ycbcr_422
index
/home/mcfletch/pylive/OpenGL/GL/APPLE/ycbcr_422.py

OpenGL extension APPLE.ycbcr_422
 
This module customises the behaviour of the 
OpenGL.raw.GL.APPLE.ycbcr_422 to provide a more 
Python-friendly API
 
Overview (from the spec)
        
        This extension provides a method for GL to read, store and optionally
        process textures that are defined in Y'CbCr 422 video formats.  This
        extension supports the two common Y'CbCr 422 video formats (known by
        QuickTime FourCC as '2vuy' and 'yuvs'). These formats represent one of the
        most common 16 bit Y'CbCr formats in both standard and reverse byte
        ordering. From a client stand point these can be assumed to be decoded
        immediately (even though the implementation is free to optimize the data
        storage and keep it in the native format) and otherwise function as any
        other texture format.  The texture command <internalformat> parameter
        normally be should be specified as RGB, since Y'CbCr is just a form of RGB
        data.  This extension can be supported with either hardware or software
        decoding and it is up to the specific implementation to determine which is
        used.
        
        A new <format> is added, YCBCR_422_APPLE.  Additionally, to handle the
        difference in pixel size and byte ordering for 422 video, the pixel storage
        operations treat YCBCR_422_APPLE as a 2 component format using
        the UNSIGNED_SHORT_8_8_APPLE or UNSIGNED_SHORT_8_8_REV_APPLE <type>.
        
        The '2vuy' or k2vuyPixelFormat pixel format is an 8-bit 4:2:2 Component
        Y'CbCr format. Each 16 bit pixel is represented by an unsigned eight bit
        luminance component and two unsigned eight bit chroma components. Each pair
        of pixels shares a common set of chroma values. The components are ordered
        in memory; Cb, Y0, Cr, Y1. The luminance components have a range of [16,
        235], while the chroma value has a range of [16, 240]. This is consistent
        with the CCIR601 spec. This format is fairly prevalent on both Mac and Win32
        platforms. The equivalent Microsoft fourCC is OUYVYO.  This format is
        supported with the UNSIGNED_SHORT_8_8_REV_APPLE type for pixel storage
        operations.
        
        The 'yuvs' or kYUVSPixelFormat is an 8-bit 4:2:2 Component Y'CbCr format.
        Identical to the k2vuyPixelFormat except each 16 bit word has been byte
        swapped. This results in a component ordering of; Y0, Cb, Y1, Cr. This is
        most prevalent yuv 4:2:2 format on both Mac and Win32 platforms. The
        equivalent Microsoft fourCC is 'YUY2'.  This format is supported with the
        UNSIGNED_SHORT_8_8_APPLE type for pixel storage operations.
 
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt

 
Modules
       
OpenGL.arrays
OpenGL.constant
OpenGL.constants
ctypes
OpenGL.extensions
OpenGL.GL.glget
OpenGL.platform
OpenGL.wrapper

 
Data
        EXTENSION_NAME = 'GL_APPLE_ycbcr_422'
GL_UNSIGNED_SHORT_8_8_APPLE = GL_UNSIGNED_SHORT_8_8_APPLE
GL_UNSIGNED_SHORT_8_8_REV_APPLE = GL_UNSIGNED_SHORT_8_8_REV_APPLE
GL_YCBCR_422_APPLE = GL_YCBCR_422_APPLE
__file__ = '/home/mcfletch/pylive/OpenGL/GL/APPLE/ycbcr_422.pyc'
__name__ = 'OpenGL.GL.APPLE.ycbcr_422'
__package__ = 'OpenGL.GL.APPLE'