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

📄 umc_dv_store_2s.cpp

📁 audio-video-codecs.rar语音编解码器
💻 CPP
字号:
/*
//              INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license  agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in  accordance  with the terms of that agreement.
//    Copyright (c) 2003-2007 Intel Corporation. All Rights Reserved.
//
//
*/
#include "umc_defs.h"
#if defined (UMC_ENABLE_DV_VIDEO_DECODER)

#include <ippvc.h>
#include "umc_dv_decoder.h"
#include "umc_dv_internal.h"

namespace UMC
{

void DVVideoDecoder::StoreDVSDSegment_2s(Ipp32u i, Ipp32u k, Ipp32u nThreadNum)
{
    STORE_DV_SEGMENT_INFO RealStoreInfo;

    // reset pointers
    InitializeStoreDVSDInfo(RealStoreInfo, i, k, nThreadNum);

    // Store system 525 DV segment
    if (SYSTEM_525 == m_nSystem)
    {
        if (24 <= k)
        {
            ippiYCrCb411ToYCbCr422_8x8MB_DV_16s8u_P3C2R((Ipp16s *) RealStoreInfo.m_lpsSource[4],
                                                        RealStoreInfo.m_lpbDestination[4],
                                                        (Ipp32u) RealStoreInfo.m_lPitch);
            RealStoreInfo.m_lpbDestination[4] = NULL;
            RealStoreInfo.m_lpsSource[4] = NULL;
        }
        ippiYCrCb411ToYCbCr422_16x4x5MB_DV_16s8u_P3C2R((const Ipp16s **) RealStoreInfo.m_lpsSource,
                                                       RealStoreInfo.m_lpbDestination,
                                                       (Ipp32u) RealStoreInfo.m_lPitch);
    }
    else
    {
        ippiYCrCb420ToYCbCr422_8x8x5MB_DV_16s8u_P3C2R((const Ipp16s **) RealStoreInfo.m_lpsSource,
                                                      RealStoreInfo.m_lpbDestination,
                                                      (Ipp32u) RealStoreInfo.m_lPitch);
    }

} // void DVVideoDecoder::StoreDVSDSegment_2s(Ipp32u i, Ipp32u k, Ipp32u nThreadNum)

void DVVideoDecoder::StoreDV25Segment_2s(Ipp32u i, Ipp32u k, Ipp32u nThreadNum)
{
    STORE_DV_SEGMENT_INFO RealStoreInfo;

    // reset pointers
    InitializeStoreDV25Info(RealStoreInfo, i, k, nThreadNum);

    // Store system 525 DV segment (system 625 has equal storing structure)
    if (24 <= k)
    {
        ippiYCrCb411ToYCbCr422_8x8MB_DV_16s8u_P3C2R((Ipp16s *) RealStoreInfo.m_lpsSource[4],
                                                    RealStoreInfo.m_lpbDestination[4],
                                                    (Ipp32u) RealStoreInfo.m_lPitch);
        RealStoreInfo.m_lpbDestination[4] = NULL;
        RealStoreInfo.m_lpsSource[4] = NULL;
    }
    ippiYCrCb411ToYCbCr422_16x4x5MB_DV_16s8u_P3C2R((const Ipp16s **) RealStoreInfo.m_lpsSource,
                                                   RealStoreInfo.m_lpbDestination,
                                                   (Ipp32u) RealStoreInfo.m_lPitch);
} // void DVVideoDecoder::StoreDV25Segment_2s(Ipp32u i, Ipp32u k, Ipp32u nThreadNum)

} // end namespace UMC

#endif //(UMC_ENABLE_DV_VIDEO_DECODER)

⌨️ 快捷键说明

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