blob: 4651cd8d46ae4ff41576e8890c515c176b313ede [file] [log] [blame]
/*******************************************************************************
*
* Copyright (C) 2017 Xilinx, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
*******************************************************************************/
/******************************************************************************/
/**
*
* @file xavbuf_videoformats.c
* @addtogroup xavbuf_v2_1
* @{
*
* Contains attributes of the video formats mapped to the hardware
*
* @note None.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ---- -------- -----------------------------------------------
* 1.0 aad 03/10/17 Initial release.
* 2.0 aad 02/22/18 Fixed scaling factors and bits per pixel
* </pre>
*
*******************************************************************************/
/******************************* Include Files ********************************/
#include "xavbuf.h"
/**************************** Variable Definitions ****************************/
#ifdef __cplusplus
extern "C"
#endif
const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED] =
{
/* Non - Live Video Formats */
{ CbY0CrY1, 0, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ CrY0CbY1, 1, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ Y0CrY1Cb, 2, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ Y0CbY1Cr, 3, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ YV16, 4, Planar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ YV24, 5, Planar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, FALSE, FALSE, 24},
{ YV16Ci, 6, SemiPlanar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ MONOCHROME, 7, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 8},
{ YV16Ci2, 8, SemiPlanar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, TRUE, 16},
{ YUV444, 9, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, FALSE, FALSE, 24},
{ RGB888, 10, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 24},
{ RGBA8880, 11, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 32},
{ RGB888_10BPC, 12, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
FALSE, TRUE, FALSE, 30},
{ YUV444_10BPC, 13, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
FALSE, FALSE, FALSE, 30},
{ YV16Ci2_10BPC, 14, SemiPlanar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, TRUE, 20},
{ YV16Ci_10BPC, 15, SemiPlanar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 20},
{ YV16_10BPC, 16, Planar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 20},
{ YV24_10BPC, 17, Planar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
FALSE, FALSE, FALSE, 30},
{ MONOCHROME_10BPC, 18, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 10},
{ YV16_420, 19, Planar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ YV16Ci_420, 20, SemiPlanar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 16},
{ YV16Ci2_420, 21, SemiPlanar,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, TRUE, 16},
{ YV16_420_10BPC, 22, Planar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 20},
{ YV16Ci_420_10BPC, 23, SemiPlanar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 20},
{ YV16Ci2_420_10BPC, 24, SemiPlanar,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, TRUE, 20},
/* Non-Live Graphics formats */
{ RGBA8888, 0, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 32},
{ ABGR8888, 1, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 32},
{ RGB888_GFX, 2, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 24},
{ BGR888, 3, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 24},
{ RGBA5551, 4, Interleaved,
{XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF},
FALSE, TRUE, FALSE, 16},
{ RGBA4444, 5, Interleaved,
{XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF},
FALSE, TRUE, FALSE, 16},
{ RGB565, 6, Interleaved,
{XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_5BIT_SF},
FALSE, TRUE, FALSE, 16},
{ BPP8, 7, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 8},
{ BPP4, 8, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 4},
{ BPP2, 9, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 2},
{ BPP1, 10, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 1},
{ YUV422, 11, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, FALSE, FALSE, 24},
/* Video Formats for Live Video/Graphics input and output sources */
{ RGB_6BPC, 0, Interleaved,
{XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF},
FALSE, TRUE, FALSE, 18},
{ RGB_8BPC, 0, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, TRUE, FALSE, 24},
{ RGB_10BPC, 0, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
FALSE, TRUE, FALSE, 30},
{ RGB_12BPC, 0, Interleaved,
{XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
FALSE, TRUE, FALSE, 36},
{ YCbCr444_6BPC, 1, Interleaved,
{XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF},
FALSE, FALSE, FALSE, 18},
{ YCbCr444_8BPC, 1, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
FALSE, FALSE, FALSE, 24},
{ YCbCr444_10BPC, 1, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
FALSE, FALSE, FALSE, 30},
{ YCbCr444_12BPC, 1, Interleaved,
{XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
FALSE, FALSE, FALSE, 36},
{ YCbCr422_8BPC, 2, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 24},
{ YCbCr422_10BPC, 2, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 30},
{ YCbCr422_12BPC, 2, Interleaved,
{XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
TRUE, FALSE, FALSE, 36},
{ YOnly_8BPC, 3, Interleaved,
{XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
TRUE, FALSE, FALSE, 24},
{ YOnly_10BPC, 3, Interleaved,
{XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
TRUE, FALSE, FALSE, 30},
{ YOnly_12BPC, 3, Interleaved,
{XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
TRUE, FALSE, FALSE, 36},
};
/** @} */