MAX_CARLINK_A270S/MXC_A27-PCB4.5-270T/lib/hx170dec/include/decppif.h

111 lines
3.9 KiB
C
Raw Permalink Normal View History

2025-01-21 16:49:37 +08:00
/*------------------------------------------------------------------------------
-- --
-- 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