111 lines
3.9 KiB
C
111 lines
3.9 KiB
C
|
/*------------------------------------------------------------------------------
|
||
|
-- --
|
||
|
-- This software is confidential and proprietary and may be used --
|
||
|
-- only as expressly authorized by a licensing agreement from --
|
||
|
-- --
|
||
|
-- Hantro Products Oy. --
|
||
|
-- --
|
||
|
-- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
|
||
|
-- ALL RIGHTS RESERVED --
|
||
|
-- --
|
||
|
-- The entire notice above must be reproduced --
|
||
|
-- on all copies and should not be removed. --
|
||
|
-- --
|
||
|
--------------------------------------------------------------------------------
|
||
|
--
|
||
|
-- Abstract : interface between pp and decoder
|
||
|
--
|
||
|
--------------------------------------------------------------------------------
|
||
|
--
|
||
|
-- Version control information, please leave untouched.
|
||
|
--
|
||
|
-- $RCSfile: decppif.h,v $
|
||
|
-- $Date: 2010/12/02 10:53:50 $
|
||
|
-- $Revision: 1.16 $
|
||
|
--
|
||
|
------------------------------------------------------------------------------*/
|
||
|
#ifndef _PPDEC_H_
|
||
|
#define _PPDEC_H_
|
||
|
|
||
|
#include "basetype.h"
|
||
|
|
||
|
/* PP input types (picStruct) */
|
||
|
/* Frame or top field */
|
||
|
#define DECPP_PIC_FRAME_OR_TOP_FIELD 0U
|
||
|
/* Bottom field only */
|
||
|
#define DECPP_PIC_BOT_FIELD 1U
|
||
|
/* top and bottom is separate locations */
|
||
|
#define DECPP_PIC_TOP_AND_BOT_FIELD 2U
|
||
|
/* top and bottom interleaved */
|
||
|
#define DECPP_PIC_TOP_AND_BOT_FIELD_FRAME 3U
|
||
|
/* interleaved top only */
|
||
|
#define DECPP_PIC_TOP_FIELD_FRAME 4U
|
||
|
/* interleaved bottom only */
|
||
|
#define DECPP_PIC_BOT_FIELD_FRAME 5U
|
||
|
|
||
|
/* Control interface between decoder and pp */
|
||
|
/* decoder writes, pp read-only */
|
||
|
|
||
|
typedef struct DecPpInterface_
|
||
|
{
|
||
|
enum
|
||
|
{
|
||
|
DECPP_IDLE = 0,
|
||
|
DECPP_RUNNING, /* PP was started */
|
||
|
DECPP_PIC_READY, /* PP has finished a picture */
|
||
|
DECPP_PIC_NOT_FINISHED /* PP still processing a picture */
|
||
|
} ppStatus; /* Decoder keeps track of what it asked the pp to do */
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
MULTIBUFFER_UNINIT = 0, /* buffering mode not yet decided */
|
||
|
MULTIBUFFER_DISABLED, /* Single buffer legacy mode */
|
||
|
MULTIBUFFER_SEMIMODE, /* enabled but full pipel cannot be used */
|
||
|
MULTIBUFFER_FULLMODE /* enabled and full pipeline successful */
|
||
|
} multiBufStat;
|
||
|
|
||
|
u32 inputBusLuma;
|
||
|
u32 inputBusChroma;
|
||
|
u32 bottomBusLuma;
|
||
|
u32 bottomBusChroma;
|
||
|
u32 picStruct; /* structure of input picture */
|
||
|
u32 topField;
|
||
|
u32 inwidth;
|
||
|
u32 inheight;
|
||
|
u32 usePipeline;
|
||
|
u32 littleEndian;
|
||
|
u32 wordSwap;
|
||
|
u32 croppedW;
|
||
|
u32 croppedH;
|
||
|
|
||
|
u32 bufferIndex; /* multibuffer, where to put PP output */
|
||
|
u32 displayIndex; /* multibuffer, next picture in display order */
|
||
|
u32 prevAnchorDisplayIndex;
|
||
|
|
||
|
/* VC-1 */
|
||
|
u32 rangeRed;
|
||
|
u32 rangeMapYEnable;
|
||
|
u32 rangeMapYCoeff;
|
||
|
u32 rangeMapCEnable;
|
||
|
u32 rangeMapCCoeff;
|
||
|
|
||
|
u32 tiledMode;
|
||
|
} DecPpInterface;
|
||
|
|
||
|
/* Decoder asks with this struct information about pp setup */
|
||
|
/* pp writes, decoder read-only */
|
||
|
|
||
|
typedef struct DecPpQuery_
|
||
|
{
|
||
|
/* Dec-to-PP direction */
|
||
|
u32 tiledMode;
|
||
|
|
||
|
/* PP-to-Dec direction */
|
||
|
u32 pipelineAccepted; /* PP accepts pipeline */
|
||
|
u32 deinterlace; /* Deinterlace feature used */
|
||
|
u32 multiBuffer; /* multibuffer PP output enabled */
|
||
|
u32 ppConfigChanged; /* PP config changed after previous output */
|
||
|
} DecPpQuery;
|
||
|
|
||
|
#endif
|