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

📄 coloracc.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    {        m_fpEnhanceUniform(yuv420in, inheight, inwidth, pitchSrc, Sharpness);    }}voidColorFuncAccess::ConvertRGB24toXRGB( UCHAR* pSrc, UCHAR* pDest, ULONG32 srcSize, ULONG32 destSize, INT32 nWidth, INT32 nHeight){    if (m_fpConvertRGB24ToXRGB)    {        m_fpConvertRGB24ToXRGB(pSrc,pDest,srcSize,destSize,nWidth,nHeight);    }}int ColorFuncAccess::I420andYUVA(    unsigned char *src1_ptr, int src1_pels,   int src1_lines,  int src1_pitch,    int src1_startx, int src1_starty,    unsigned char *src2_ptr, int src2_pels,   int src2_lines,  int src2_pitch,    int src2_startx, int src2_starty,    unsigned char *dest_ptr, int dest_pels,   int dest_lines,  int dest_pitch,    int dest_startx, int dest_starty,    int width,  int height,  int color_format){    if( m_fpI420andYUVA )    {        return m_fpI420andYUVA( src1_ptr, src1_pels, src1_lines, src1_pitch,                                src1_startx, src1_starty,                                src2_ptr, src2_pels, src2_lines, src2_pitch,                                src2_startx, src2_starty,                                dest_ptr, dest_pels, dest_lines, dest_pitch,                                dest_startx, dest_starty, width, height,                                color_format);    }    return HXR_FAIL;}int ColorFuncAccess::I420andI420toI420(    unsigned char *src1_ptr, int src1_pels,   int src1_lines,  int src1_pitch,    int src1_startx, int src1_starty,    unsigned char *src2_ptr, int src2_pels,   int src2_lines,  int src2_pitch,    int src2_startx, int src2_starty,    unsigned char *dest_ptr, int dest_pels,   int dest_lines,  int dest_pitch,    int dest_startx, int dest_starty,    int width,  int height,  int alpha ){    if( m_fpI420andI420toI420 )    {        return m_fpI420andI420toI420( src1_ptr, src1_pels, src1_lines, src1_pitch,                                      src1_startx, src1_starty,                                      src2_ptr, src2_pels, src2_lines, src2_pitch,                                      src2_startx, src2_starty,                                      dest_ptr, dest_pels, dest_lines, dest_pitch,                                      dest_startx, dest_starty, width, height,                                      alpha);    }    return HXR_FAIL;}LPHXCOLORCONVERTER ColorFuncAccess::GetColorConverter (INT32 cidIn, INT32 cidOut){#ifdef _WINDOWS    if (m_fpGetColorConverter2 && m_pContext)    {        LPHXCOLORCONVERTER colorConverter = m_fpGetColorConverter2(m_pContext, cidIn, cidOut);        if (!colorConverter)            m_fpUpgradeColorConverter(m_pContext,m_pPlayer, cidIn, cidOut);        else            return colorConverter;    }    else#endif        if (m_fpGetColorConverter)        {            return m_fpGetColorConverter(cidIn, cidOut);        }    return NULL;}LPHXCOLORCONVERTER2 ColorFuncAccess::GetColorConverter2 (INT32 cidIn, INT32 cidOut){#ifdef _WINDOWS    if (m_fpGetColorConverter2x && m_pContext)    {        LPHXCOLORCONVERTER2 colorConverter = m_fpGetColorConverter2x(m_pContext, cidIn, cidOut);        if (!colorConverter)            m_fpUpgradeColorConverter(m_pContext,m_pPlayer, cidIn, cidOut);        else            return colorConverter;    }    else#endif        if (m_fpGetColorConverterx)        {            return m_fpGetColorConverterx(cidIn, cidOut);        }    return NULL;}BOOL ColorFuncAccess::ScanCompatibleColorFormats(INT32 cidIn, INT32 cidOutMask, void *pParam,                                                 BOOL (*pfnTryIt) (void *pParam, INT32 cidOut, LPHXCOLORCONVERTER pfnCC)){    if (m_fpScanCompatibleColorFormats)    {        return m_fpScanCompatibleColorFormats(cidIn, cidOutMask, pParam, pfnTryIt);    }    return FALSE;}BOOL ColorFuncAccess::ScanAllCompatibleColorFormats(INT32 cidIn, void *pParam,                                                    BOOL (*pfnTryIt) (void *pParam, INT32 cidOut, LPHXCOLORCONVERTER pfnCC)){    if (m_fpScanAllCompatibleColorFormats)    {        return m_fpScanAllCompatibleColorFormats(cidIn, pParam, pfnTryIt);    }    return FALSE;}voidColorFuncAccess::LoadConversionFunctions(){    if (m_pDllAccess)    {        m_fpGetHXColorGUID                = (FPGETHXCOLORGUID) m_pDllAccess->getSymbol("GetHXColorGUID");        m_fpInitColorConverter            = (FPINITCOLORCONVERTER) m_pDllAccess->getSymbol("InitColorConverter");        m_fpSetColorAdjustments           = (FPSETCOLORADJUSTMENTS)  m_pDllAccess->getSymbol("SetColorAdjustments");        m_fpGetColorAdjustments           = (FPGETCOLORADJUSTMENTS) m_pDllAccess->getSymbol("GetColorAdjustments");        m_SuggestRGB8Palette              = (FPSUGGESTRGB8PALETTE) m_pDllAccess->getSymbol("SuggestRGB8Palette");        m_SetRGB8Palette                  = (FPSETRGB8PALETTE) m_pDllAccess->getSymbol("SetRGB8Palette");        m_fpSetSharpnessAdjustments       = (FPSETSHARPNESSADJUSTMENTS) m_pDllAccess->getSymbol("SetSharpnessAdjustments");        m_fpGetSharpnessAdjustments       = (FPGETSHARPNESSADJUSTMENTS) m_pDllAccess->getSymbol("GetSharpnessAdjustments");        m_fpConvertRGBtoYUV               = (FPCONVERTRGBTOYUV) m_pDllAccess->getSymbol("ConvertRGBtoYUV");        m_fpConvertYUVtoRGB               = (FPCONVERTYUVTORGB) m_pDllAccess->getSymbol("ConvertYUVtoRGB");        m_fpEnhance                       = (FPENHANCE) m_pDllAccess->getSymbol("Enhance");        m_fpEnhanceUniform                = (FPENHANCEUNIFORM) m_pDllAccess->getSymbol("EnhanceUniform");        m_fpConvertRGB24ToXRGB            = (FPCONVERTRGB24TOXRGB) m_pDllAccess->getSymbol("ConvertRGB24toXRGB");        m_fpScanCompatibleColorFormats    = (FPSCANCOMPATIBLECOLORFORMATS) m_pDllAccess->getSymbol("ScanCompatibleColorFormats");        m_fpScanAllCompatibleColorFormats = (FPSCANALLCOMPATIBLECOLORFORMATS) m_pDllAccess->getSymbol("ScanAllCompatibleColorFormats");        m_fpGetColorConverter             = (FPGETCOLORCONVERTER) m_pDllAccess->getSymbol("GetColorConverter");        m_fpGetColorConverterx            = (FPGETCOLORCONVERTERx) m_pDllAccess->getSymbol("GetColorConverter2");                m_fpI420andYUVA                   = (FPI420ANDYUVA) m_pDllAccess->getSymbol("I420andYUVA");        m_fpI420andI420toI420             = (FPI420ANDI420TOI420) m_pDllAccess->getSymbol("I420andI420toI420");#if _WINDOWS#if defined(XXXX_NEW_COLOR_CONVERTER)        m_fpInitColorConverter2 = (FPINITCOLORCONVERTER2)  m_pDllAccess->getSymbol("InitColorConverter");        m_fpGetColorConverter2  = (FPGETCOLORCONVERTER2) m_pDllAccess->getSymbol("GetColorConverter");        m_fpGetColorConverter2x = (FPGETCOLORCONVERTER2x) m_pDllAccess->getSymbol("GetColorConverter2x");        m_fpSetColorAdjustments2  = (FPSETCOLORADJUSTMENTS2) m_pDllAccess->getSymbol("SetColorAdjustments");        m_fpUpgradeColorConverter = (FPUPGRADECOLORCONVERTER) m_pDllAccess->getSymbol("UpgradeColorConverter");#endif#endif    }    if (!m_fpInitColorConverter  ||        !m_fpSetColorAdjustments ||        !m_fpSetSharpnessAdjustments ||        !m_fpEnhance ||        !m_fpEnhanceUniform ||#ifdef _WINDOWS         !m_fpGetColorAdjustments ||        !m_fpGetSharpnessAdjustments ||#endif        //!m_fpConvertRGB24ToXRGB ||        !m_fpScanAllCompatibleColorFormats ||        !m_fpGetColorConverter        )    {        WrongHXColorVersion();    }    else    {        if (!m_bLightColorConverter && (                !m_SuggestRGB8Palette    ||                !m_SetRGB8Palette        ||                !m_fpConvertRGBtoYUV     ||                !m_fpConvertYUVtoRGB)            )        {            WrongHXColorVersion();        }    }}void ColorFuncAccess::WrongHXColorVersion(){    m_fpInitColorConverter  = NULL;    m_fpSetColorAdjustments = NULL;    m_fpGetColorAdjustments = NULL;    m_SuggestRGB8Palette    = NULL;    m_SetRGB8Palette        = NULL;    m_fpSetSharpnessAdjustments = NULL;    m_fpGetSharpnessAdjustments = NULL;    m_fpConvertRGBtoYUV = NULL;    m_fpConvertYUVtoRGB = NULL;    m_fpEnhance=NULL;    m_fpEnhanceUniform=NULL;    m_fpConvertRGB24ToXRGB = NULL;    m_fpScanCompatibleColorFormats = NULL;    m_fpScanAllCompatibleColorFormats = NULL;    m_fpGetColorConverter = NULL;    delete m_pDllAccess;    m_pDllAccess = NULL;    hStatus = HXR_FAIL;    HX_ASSERT(WRONG_HXCOLOR_VERSION);}HX_RESULTColorFuncAccess::SetCodecDir(){#ifndef _VXWORKS    const char* pPath = NULL;    CHXString codecDir;    pPath = GetDLLAccessPath()->GetPath(DLLTYPE_PLUGIN);    HX_ASSERT(pPath && *pPath);    codecDir = pPath;#ifndef _MACINTOSH    if (strcmp((const char*)codecDir.Right(1), OS_SEPARATOR_STRING))    {        codecDir += OS_SEPARATOR_STRING;    }    codecDir += "Codecs";#endif    GetDLLAccessPath()->SetPath(DLLTYPE_CODEC, (const char*)codecDir);#endif // _VXWORKS    return HXR_OK;}#ifdef _WINDOWSvoidColorFuncAccess::SetPlayer(IHXPlayer* pPlayer){    if (m_pPlayer)    {        m_pPlayer->Release();    }    m_pPlayer = pPlayer;    if (m_pPlayer)    {        m_pPlayer->AddRef();    }}#endifBOOL ColorFuncAccess::CheckColorConverter (INT32 cidIn, INT32 cidOut){    LPHXCOLORCONVERTER fpConvert = GetColorConverter(cidIn, cidOut);    return fpConvert != NULL;}BOOL ColorFuncAccess::CheckColorConverter2 (INT32 cidIn, INT32 cidOut){    LPHXCOLORCONVERTER2 fpConvert = GetColorConverter2(cidIn, cidOut);    return fpConvert != NULL;}int ColorFuncAccess::ColorConvert(INT32 cidOut, unsigned char *dest_ptr,                                  int dest_width, int dest_height,                                  int dest_pitch, int dest_x, int dest_y,                                  int dest_dx, int dest_dy,                                  INT32 cidIn, unsigned char *src_ptr,                                  int src_width, int src_height,                                  int src_pitch, int src_x, int src_y,                                  int src_dx, int src_dy){    int nRet = -1;    LPHXCOLORCONVERTER fpConvert = GetColorConverter (cidIn, cidOut);    if (fpConvert)    {        nRet = fpConvert(dest_ptr, dest_width, dest_height,                         dest_pitch, dest_x, dest_y,                         dest_dx, dest_dy,                         src_ptr, src_width, src_height,                         src_pitch, src_x, src_y,                         src_dx, src_dy);    }    return nRet;}int ColorFuncAccess::ColorConvert2(INT32 cidOut, unsigned char *dest_ptr,                                   int dest_width, int dest_height,                                   int dest_pitch, int dest_x, int dest_y,                                   int dest_dx, int dest_dy,                                   INT32 cidIn, unsigned char *pY,                                   unsigned char *pU, unsigned char *pV,                                   int src_width, int src_height,                                   int yPitch, int uPitch, int vPitch,                                   int src_x, int src_y,                                   int src_dx, int src_dy){    int nRet = -1;    LPHXCOLORCONVERTER2 fpConvert = GetColorConverter2 (cidIn, cidOut);    if (fpConvert)    {        nRet = fpConvert(dest_ptr, dest_width, dest_height,                         dest_pitch, dest_x, dest_y,                         dest_dx, dest_dy,                         pY, pU, pV, src_width, src_height,                         yPitch, uPitch, vPitch,                         src_x, src_y,                         src_dx, src_dy);    }    return nRet;}

⌨️ 快捷键说明

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