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

📄 uncachedbuffer.cpp

📁 C++封装的视频采集代码
💻 CPP
字号:
#include "UnCachedBuffer.h"namespace oxsemi{    UnCachedBuffer::UnCachedBuffer(        unsigned long bufferSizeBytes,        unsigned char alignmentPowerOf2) :        uncachedAlignedMemory_(0),        rawMemory_(0),        rawSize_(0),        requestedSize_(bufferSizeBytes)    {        // Calculate the alignment step size        int alignmentBoundary = 1 << alignmentPowerOf2;        // Create a mask for the l.s. bits of the address which correspond to        // the alignment boundary        unsigned long alignmentBoundaryMask = ~0UL << alignmentPowerOf2;        // Allocate sufficient memory to allow for adjustment to an alignment        // boundary        rawSize_ = bufferSizeBytes + alignmentBoundary - 1;        rawMemory_ = new unsigned char[rawSize_];        if (rawMemory_)        {            // Pointer to memory area which satisfies the alignment requirements            unsigned char* alignedMemory;            // Check the alignment of the allocated memory            if ((reinterpret_cast<unsigned long>(rawMemory_) & ~alignmentBoundaryMask) == 0)            {                // Base of allocated memory is already on an alignment boundary                alignedMemory = rawMemory_;            }            else            {                // Adjust memory base to an alignment boundary                alignedMemory =                    reinterpret_cast<unsigned char*>((reinterpret_cast<unsigned long>(rawMemory_) & alignmentBoundaryMask)) +                    alignmentBoundary;            }            // Convert pointer to aligned cached memory to an uncached pointer#ifdef NO_UNCACHED_BUFFERS            uncachedAlignedMemory_ = alignedMemory;#else            uncachedAlignedMemory_ = TranslateCachedToUncached(alignedMemory);#endif        }        SetIsComplete(rawMemory_);    }    UnCachedBuffer::~UnCachedBuffer()    {        delete[] rawMemory_;    }}

⌨️ 快捷键说明

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