/*
 * Copyright 2010 Trident Microsystems (Far East) Ltd. All rights reserved.
 * All prior copyright rights in this work and the accompanying software
 * products transferred to Trident Microsystems (Far East) Ltd. by written
 * agreement.
 */
/*****************************************************************************/
/* Copyright (c) 2010 NXP B.V.  All rights are reserved.                     */
/*                                                                           */
/* Redistribution and use in source and binary forms, with or without        */
/* modification, are permitted provided that the following conditions        */
/* are met:                                                                  */
/*                                                                           */
/* Redistributions of source code must retain the above copyright            */
/* notice, this list of conditions and the following disclaimer.             */
/*                                                                           */
/* Redistributions in binary form must reproduce the above copyright         */
/* notice, this list of conditions and the following disclaimer in the       */
/* documentation and/or other materials provided with the distribution.      */
/*                                                                           */
/* Neither the name of NXP nor the names of its                              */
/* contributors may be used to endorse or promote products derived from      */
/* this software without specific prior written permission.                  */
/*                                                                           */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS       */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT         */
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR     */
/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,     */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT          */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,     */
/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     */
/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       */
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE         */
/* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH          */
/* DAMAGE.                                                                   */
/*                                                                           */
/*****************************************************************************/
/**
    @file   phStbVideoTypes.h
    @brief  Common Video Types.

@b  Component:  IphStbVideoTypes

*//*

Rev Date        Author      Comments
--------------------------------------------------------------------------------
  1 02062005     Laird       First Revision
  2 20062005     laird       Added videotypes strings to solve ip&s issues.
  3 22062005     laird       Added MAx length.
  4 27062005     laird       XCheck rework.
  5 14072005     mpage       Adding pixel formats.
  6 05102005     laird       Adding more pixel formats
  7 17102005     laird       Adding even more pixel formats
  8 09112005     laird       Adding different Frame Rate defines
  9 20060124    batelaan     Add extern "C" for use with C++
 10 20060308     neill       Add support for PAL60
-----------------------------STB225---------------------------------------------
 10 20070112     laird       Moving to STB225
 11 20070327     neill       Modify format names
 12 20070524     neill       Modify PAL name
 13 20070726     neill       Add more 50 Hz display mdoes
 14 20080405     neill       Add 59.94 Hz display mdoes
 15 20080410     neill       Add 1920x1080p mode
 16 20080805     neill       Add VGA support
 17 20081219     neill       Add support for more graphics modes
 18 20090120     batelaan    Update file copyright/license text
--------------------------------------------------------------------------------
    For consistency and standardisation retain the Section Separators.
*/

#ifndef PHSTBVIDEOTYPES_H
#define PHSTBVIDEOTYPES_H

/*******************
* INCLUDE FILES    *
********************/
#include <phStbCommon.h>

#ifdef __cplusplus
extern "C"
{
#endif

/**************************************************************
* EXPORTED MACROS         PH[<LNX|TM|NONE>]_IPSTBVIDEOTYPES_<_WORD>+        *
***************************************************************/

/**************************************************************
* EXPORTED TYPEDEFS       [p]ph[<lnx|tm|NONE>]StbVideoTypes_<Word>+_t  *
***************************************************************/

/** @brief Enum detailing pixel formats.
 */
typedef enum
{
    phStbVideoTypes_PixelFormatNone = 0,
    phStbVideoTypes_PixelFormatYUV420,
    phStbVideoTypes_PixelFormatYUY2,
    phStbVideoTypes_PixelFormatUYVY,
    /** 32 bit graphics 8 bits RGB and alpha*/
    phStbVideoTypes_PixelFormatARGB8888,
    /** 16 bit graphics 4 bits RGB and alpha*/
    phStbVideoTypes_PixelFormatARGB4444,
    /** 32 bit graphics 8 bits RGB but ignore alpha*/
    phStbVideoTypes_PixelFormatXRGB8888,
    /** 32 bit graphics 4 bits RGB but ignore alpha*/
    phStbVideoTypes_PixelFormatXRGB4444,
    /** 16 bit graphics 5 bits RGB and 1 bit alpha*/
    phStbVideoTypes_PixelFormatARGB1555,
    /** 16 bit graphics 5 bits RGB but ignore alpha*/
    phStbVideoTypes_PixelFormatXRGB1555,
    /** 16 bit graphics 5 bits R, 6 bits G, 5 bits B no alpha*/
    phStbVideoTypes_PixelFormatRGB565,
    /** 8 bit graphics 256 entry CLUT*/
    phStbVideoTypes_PixelFormatClut256,
    phStbVideoTypes_PixelFormatCount
} phStbVideoTypes_PixelFormat_t;

/** @brief Structure detailing the video format.

    Structure used to define a video format.  Used to
    set the input and output format for the scaler.
 */
typedef struct phStbVideoTypes_VideoFormat
{
    UInt32 dummy;
} phStbVideoTypes_VideoFormat_t;

/**
 * @brief defined video formats that we support.  Must map to tmVideoMode/cfg/tmVideoMode_Cfg.c.
 */
#define PH_STBVIDEOTYPES_NTSC               "NTSC"
#define PH_STBVIDEOTYPES_PAL                "PAL"
#define PH_STBVIDEOTYPES_SECAM              "SECAM"
#define PH_STBVIDEOTYPES_PAL_60             "PAL-M"
#define PH_STBVIDEOTYPES_640_480_60P        "640x480x60p"
#define PH_STBVIDEOTYPES_800_600_75P        "800x600x75p"
#define PH_STBVIDEOTYPES_1024_768_60P       "1024x768x60p"
#define PH_STBVIDEOTYPES_1024_768_75P       "1024x768x75p"
#define PH_STBVIDEOTYPES_800_600_60P        "800x600x60p"
#define PH_STBVIDEOTYPES_720_480_60P        "720x480x60p"
#define PH_STBVIDEOTYPES_720_480_59_94P     "720x480x59.94p"
#define PH_STBVIDEOTYPES_1920_1080_60i      "1920x1080x60i"
#define PH_STBVIDEOTYPES_1920_1080_59_94i   "1920x1080x59.94i"
#define PH_STBVIDEOTYPES_1920_1080_50i      "1920x1080x50i"
#define PH_STBVIDEOTYPES_1920_1080_29_97p   "1920x1080x29.97p"
#define PH_STBVIDEOTYPES_1920_1080_60p      "1920x1080x60p"
#define PH_STBVIDEOTYPES_1920_1080_59_94p   "1920x1080x59.94p"
#define PH_STBVIDEOTYPES_1920_1080_50p      "1920x1080x50p"
#define PH_STBVIDEOTYPES_960_1080_60i       "960x1080x60i"
#define PH_STBVIDEOTYPES_1440_1080_60i      "1440x1080x60i"
#define PH_STBVIDEOTYPES_1280_768_60P       "1280x768x60p"
#define PH_STBVIDEOTYPES_1280_768_60P_LCD   "1280x768x60p_lcd"
#define PH_STBVIDEOTYPES_1280_768_50P       "1280x768x50p"
#define PH_STBVIDEOTYPES_1280_768_50P_LCD   "1280x768x50p_lcd"
#define PH_STBVIDEOTYPES_720_576_50P        "720x576x50p"
#define PH_STBVIDEOTYPES_720_576_60P        "720x576x60p"
#define PH_STBVIDEOTYPES_1024_576_50P       "1024x576x50p"
#define PH_STBVIDEOTYPES_720_960_60i        "720x960x60i"
#define PH_STBVIDEOTYPES_1280_720_60P       "1280x720x60p"
#define PH_STBVIDEOTYPES_1280_720_59_94P    "1280x720x59.94p"
#define PH_STBVIDEOTYPES_1280_720_50P       "1280x720x50p"
#define PH_STBVIDEOTYPES_1280_768_60P       "1280x768x60p"
#define PH_STBVIDEOTYPES_1280_800_60P       "1280x800x60p"
#define PH_STBVIDEOTYPES_1360_768_60P       "1360x768x60p"
#define PH_STBVIDEOTYPES_640_720_60P        "640x720x60p"
#define PH_STBVIDEOTYPES_720_240_60P        "720x240x60p"
#define PH_STBVIDEOTYPES_720_288_50P        "720x288x50p"
#define PH_STBVIDEOTYPES_800_480_60P        "800x480x60p"

/**
 * The maximum length of the video types string.
 */
#define PH_STBVIDEOTYPES_MAXIMUMNAMELENGTH  20

/**
 * @brief value for the different Frame rates.
 */
#define PH_STBVIDEOTYPES_25_HZ     (25)
#define PH_STBVIDEOTYPES_29_97_HZ  (29.97)
#define PH_STBVIDEOTYPES_50_HZ     (50)
#define PH_STBVIDEOTYPES_59_94_HZ  (59.94)
#define PH_STBVIDEOTYPES_60_HZ     (60)
#define PH_STBVIDEOTYPES_75_HZ     (75)

#ifdef __cplusplus
}
#endif

#endif /* PHSTBVIDEOTYPES_H      Do not add any thing below this line */
