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

📄 umc_fifo_buf.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 __FIFO_BUFFER_CLASS_H__#define __FIFO_BUFFER_CLASS_H__#include <string.h> //  for memset function#include "vm_debug.h"#include "vm_types.h"#include "umc_semaphore.h"#include "umc_mutex.h"#include "umc_structures.h"#include "umc_dynamic_cast.h"namespace UMC{    class FifoBuffer    {        DYNAMIC_CAST_DECL_BASE(FifoBuffer)   protected:        vm_byte* m_pcBuffers;        vm_var32 m_uiBufSize;        vm_var32 m_uiBufNum;        vm_var32 m_uiHead;        vm_var32 m_uiTail;        vm_var32 m_uiBufInFifo;        Semaphore m_InBufSema;        Semaphore m_OutBufSema;        Mutex m_AccessMut;        bool m_bInBufLocked;        bool m_bOutBufLocked;        struct sFrmHdr{            vm_var32 uiSize;            vm_sizet ullIndex;        };    public:        FifoBuffer():            m_pcBuffers(NULL),            m_uiBufSize(0),            m_uiBufNum(0),            m_uiHead(0),            m_uiTail(0),            m_uiBufInFifo(0),            m_bInBufLocked(false),            m_bOutBufLocked(false)        {}        ~FifoBuffer();        Status Init( const vm_var32 uiBufSize, const vm_var32 uiBufNum );        Status GetInBuf(vm_byte** ppucHead);        Status ReleaseInBuf(vm_var32 uiBufSize, vm_sizet ullIndex);        Status GetOutBuf(vm_byte** ppucTail,                             vm_var32& ruiDataSize,                             vm_sizet& rullIndex);        Status ReleaseOutBuf();        inline vm_var32 GetBufSize();        inline vm_var32 GetFreeBufNum();        inline vm_var32 GetFilledBufNum();        void Close();        Status Reset();    };}  //  namespace UMCvm_var32UMC::FifoBuffer::GetBufSize(){    return m_uiBufSize - sizeof(vm_var32);    }vm_var32UMC::FifoBuffer::GetFreeBufNum(){    m_AccessMut.Lock();    vm_var32 uiRes = m_uiBufNum - m_uiBufInFifo - 2;    m_AccessMut.Unlock();    return uiRes;}vm_var32UMC::FifoBuffer::GetFilledBufNum(){    m_AccessMut.Lock();    vm_var32 uiRes = m_uiBufInFifo;    m_AccessMut.Unlock();    return uiRes;}#endif    //    __FIFO_BUFFER_CLASS_H__

⌨️ 快捷键说明

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