⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hantrodecoderutils.h

📁 Freescale ARM11系列CPU MX31的WINCE 5.0下的BSP
💻 H
字号:
/*------------------------------------------------------------------------------
--                                                                            --
--       This software is confidential and proprietary and may be used        --
--        only as expressly authorized by a licensing agreement from          --
--                                                                            --
--                            Hantro Products Oy.                             --
--                                                                            --
--      In the event of publication, the following notice is applicable:      --
--                                                                            --
--                   (C) COPYRIGHT 2005 HANTRO PRODUCTS OY                    --
--                            ALL RIGHTS RESERVED                             --
--                                                                            --
--         The entire notice above must be reproduced on all copies.          --
--                                                                            --
--------------------------------------------------------------------------------
--
--  Description : Hantro MPEG-4/H.263 Video Decoder DirectX Media Object 
--
------------------------------------------------------------------------------*/

#ifndef HANTRODECODERUTILS_H
#define HANTRODECODERUTILS_H

#include <windows.h>
#include <streams.h> // directshow structures

//#define HTR_DDRAW
#define HTR_PP

#ifdef HTR_PP
#include "yuvtorgbinit.h"
#include "yuvtorgb16.h"
#endif // HTR_PP

/*------------------------------------------------------------------------------
    1. BitsPerPixel function
------------------------------------------------------------------------------*/

ULONG BitsPerPixel(const GUID colorSpace);

/*------------------------------------------------------------------------------
    2. CHtrPostProc class
------------------------------------------------------------------------------*/
class CHtrPostProc
{
public:
    class QuantizationData
    {
    public:
        QuantizationData(DWORD* pQpData, DWORD qpDataSize) : 
            m_pQpData(pQpData), m_qpDataSize(qpDataSize){};

        DWORD*      m_pQpData;
        DWORD       m_qpDataSize;
    };

    class PostProcessorSurface
    {
    public:
        PostProcessorSurface(BYTE* pBuffer, 
                             LONG width, 
                             LONG height, 
                             GUID format) :
                             m_pBuffer(pBuffer),
                             m_width(width),
                             m_height(height),
                             m_format(format)
                             {};

        BYTE*   m_pBuffer;
        LONG    m_width;
        LONG    m_height;
        GUID    m_format;
    };

    CHtrPostProc(void)
#ifdef HTR_DDRAW
    : m_pDD(NULL) 
#endif // HTR_DDRAW
    {};
    ~CHtrPostProc(void){};
    HRESULT Initialize(void);
    HRESULT Process(PostProcessorSurface* pIn,
                    PostProcessorSurface* pOut,
                    QuantizationData* pQuantData);
    HRESULT Close(void);

private:
#ifdef HTR_DDRAW
    // DirectDraw handle
    IDirectDraw*    m_pDD;
#endif // HTR_DDRAW
#ifdef HTR_PP
    // Handle to the post-processor instance
    cct cctTable[YUVTORGB_CCT_SIZE];
#endif // HTR_PP
};

#endif // HANTRODECODERUTILS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -