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

📄 umc_dv_decoder.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
字号:
/*//              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-2005 Intel Corporation. All Rights Reserved.////*/#ifndef __UMC_DV_DECODER_H#define __UMC_DV_DECODER_H#include "umc_video_decoder.h"#include "umc_color_space_converter.h"namespace UMC{class STORE_DV_SEGMENT_INFO;class THREAD_ID;class DVVideoDecoder : public VideoDecoder{public:    // Default constructor    DVVideoDecoder();    // Destructor    ~DVVideoDecoder();    // Initialize DV decoder    virtual Status      Init            (BaseCodecParams *init);    // Close decoder    virtual Status      Close           ();    // Decode next frame    virtual Status      GetFrame        (MediaData *pInData, MediaData *pOutData);    // Get decoder performance    virtual Status      GetPerformance  (double *perf);    // Reset decoder into initial state    virtual Status      Reset           ();    // reset skip frame counter    virtual Status      ResetSkipCount  (){return UMC_NOT_IMPLEMENTED;};    // increment skip frame counter    virtual Status      SkipVideoFrame  (int){return UMC_NOT_IMPLEMENTED;};    // get skip frame counter statistic    virtual vm_var32    GetSkipedFrame  (){return 0;};protected:    // Decode DC only    void HuffmanDecodeSegment_DV_DC_only(vm_byte *lpbSource, vm_var16 *lpsDest);    // Decompress DV segment    virtual void DecompressSegment(vm_var32 nThreadNum);    // initialize DV dequantize table    int DVCreateADequantizeTable        ();    // Get real stream type    vm_var32 GetStreamType(void *lpv);    // Fill correspond dest & source pointers    void InitializeStoreDVSDInfo(STORE_DV_SEGMENT_INFO &PasteInfo, vm_var32 i, vm_var32 k, vm_var32 ThreadNum);    void InitializeStoreDV25Info(STORE_DV_SEGMENT_INFO &PasteInfo, vm_var32 i, vm_var32 k, vm_var32 ThreadNum);    // Store uncompressed DV segment    void StoreDVSDSegment(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDVSDSegment_2s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDVSDSegment_4s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDVSDSegment_8s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDV25Segment(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDV25Segment_2s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDV25Segment_4s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void StoreDV25Segment_8s(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    void (DVVideoDecoder::*StoreDVSegment)(vm_var32 i, vm_var32 k, vm_var32 nThreadNum);    // (void (*)(vm_var32, vm_var32, vm_var32) pointer to store function    vm_var32 m_nMaxNumberOfDIFSequences;                        // (vm_var32) maximum number of DIF sequences    static int              dvTable1[];                         // DV decoding table one    static int              dvTable2[];                         // DV decoding table two    static vm_var32         _INTERNAL_DEZIGZAG_TABLE_0[] ;      // zigzag table    vm_var16                **m_ppShortBlocks;                  // (vm_var16 **) pointer to array of pointers to working data    vm_byte                 *m_pShortBlocksNA;                  // (vm_byte) memory space for block data    vm_var32                *m_pHuffTable;                      // pointer to huffman table    vm_var16                *m_lpADequantizeTable;              // pointer to dequantize table    vm_var16                *m_lpBuffer2;                       // pointer to buffer    vm_var32                *m_lpADequantizeLineTable;          // pointer to line dequantize table    vm_byte                 *m_lpvInternalFrameBufferNotAligned;// not aligned internal frame buffer    vm_byte                 *m_lpvInternalFrameBuffer;          // aligned internal frame buffer    vm_byte                 *m_lpDestination;                   // (vm_byte *) pointer to destination buffer    vm_byte                 *m_lpSource;                        // (vm_byte *) pointer to compressed frame    vm_var32                m_nSystem;                          // (vm_var32) frame system type    vm_var32                m_nStream;                          // (vm_var32) stream type    bool                    m_bSecondPicture;                   // second picture desired    bool                    m_bDCOnly;                          // decode only DC    size_t                  m_nPitch;                           // pitch of internal buffer    vm_var32 m_nNumberOfThreads;                                // (vm_var32) number of threads    vm_event m_Quit;                                            // (vm_event) event to quit    vm_thread *m_lpThreads;                                     // (vm_thread *) pointer to array of thread(s)    vm_event *m_lpStartEvent;                                   // (vm_event *) pointer to array of event(s)    vm_event *m_lpStopEvent;                                    // (vm_event *) pointer to array of event(s)    THREAD_ID *m_lpThreadsID;                                   // (THREAD_ID *) pointer to array of thread's ID    // Additional thread working routine    static unsigned int ThreadWorkingRoutine(void *lpv);};} // end namespace UMC#endif // __UMC_DV_DECODER_H

⌨️ 快捷键说明

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