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

📄 umc_avs_dec_slice.h

📁 audio-video-codecs.rar语音编解码器
💻 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) 2007 Intel Corporation. All Rights Reserved.
//
//
*/

#ifndef __UMC_AVS_DEC_SLICE_H
#define __UMC_AVS_DEC_SLICE_H

#include "ippdefs.h"
#include "umc_avs_dec_context.h"
#include "umc_avs_slice_header.h"
#include "umc_avs_dec_coeffs_buffer.h"

namespace UMC
{

// forward declaration of used types
class AVSPicture;

class AVSSlice
{
public:
    // Default constructor
    AVSSlice(void);
    // Destructor
    ~AVSSlice(void);

    // Initialize the slice
    Status Init(Ipp32u *pSrc, size_t srcSize, AVS_SEQUENCE_HEADER *pSeqHeader, AVS_PICTURE_HEADER *pPicHeader);

    // Initialize coefficient buffer
    Status InitCoeffsBuffer(Ipp32s iMinPieceToWrite, Ipp32s iNumPieces);
    // Get the size of initialized coeffs buffer
    size_t GetCoeffsBufferSize(void);

    // Obtain the pointer to the coeffs buffer to write
    inline
    Ipp16s *GetFree(void);
    // Obtain the pointer to the coeffs buffer to read
    inline
    Ipp16s *GetUsed(void);

    // Advance the pointer to the free space
    inline
    void AdvanceFree(size_t iAdvance);
    // Advance the pointer to the used space
    inline
    void AdvanceUsed(size_t iAdvance);

    AVSPicture *m_pPic;                                         // (AVSPicture *) pointer to owning picture

    AVS_SLICE_HEADER m_SlcHeader;                               // (AVS_SLICE_HEADER) slice's header

    AVS_DECODING_CONTEXT m_decCtx;                              // (AVS_DECODING_CONTEXT) slice's decoding state
    bool m_bDecVacant;                                          // (bool) is the slice being decoded

    AVS_RECONSTRUCTING_CONTEXT m_recCtx;                        // (AVS_RECONSTRUCTING_CONTEXT) slice's reconstruction state
    bool m_bRecVacant;                                          // (bool) is the slice being reconstructed

    AVS_DEBLOCKING_CONTEXT m_debCtx;                            // (AVS_DEBLOCKING_CONTEXT) slice's deblocking state
    bool m_bDebVacant;                                          // (bool) is the slice being de-blocked

    bool m_bError;                                              // (bool) can't continue decoding process

protected:

    AVSCoeffsBuffer m_coeffsBuf;                                // (AVSCoeffsBuffer) special coefficients buffer
};

inline
Ipp16s *AVSSlice::GetFree(void)
{
    return m_coeffsBuf.GetFree();

} // Ipp16s *AVSSlice::GetFree(void)

inline
Ipp16s *AVSSlice::GetUsed(void)
{
    return m_coeffsBuf.GetUsed();

} // Ipp16s *AVSSlice::GetUsed(void)

inline
void AVSSlice::AdvanceFree(size_t iAdvance)
{
    m_coeffsBuf.AdvanceFree(iAdvance);

} // void AVSSlice::AdvanceFree(size_t iAdvance)

inline
void AVSSlice::AdvanceUsed(size_t iAdvance)
{
    m_coeffsBuf.AdvanceUsed(iAdvance);

} // void AVSSlice::AdvanceUsed(size_t iAdvance)


} // namespace UMC

#endif // __UMC_AVS_DEC_SLICE_H

⌨️ 快捷键说明

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