| | |
| | | #define _PL_QUEUE_H_
|
| | |
|
| | | #include "PipeLine.h"
|
| | | #include "MaterialBuffer.h"
|
| | |
|
| | | typedef bool (*plq_cache_pm_func_t)(const PipeMaterial& inPm, PipeMaterial& outPm, std::vector<MB_Frame>& outMbf, uint8_t* cacheData, size_t& cacheMaxSize);
|
| | |
|
| | | struct PL_Queue_Config
|
| | | {
|
| | |
| | |
|
| | | bool syncQueueFull;
|
| | | bool syncQueueEmpty;
|
| | | bool queueFullDropBlock;
|
| | | bool queueFullDropFrontBlock;
|
| | | bool copyData; //#todo not implement (copy ptr)
|
| | | bool dropBlockOnlyNextPayOK;
|
| | |
|
| | | plq_cache_pm_func_t cacheFrameListFunc;
|
| | |
|
| | | PL_Queue_Config() :
|
| | | maxBlockCount(100), maxBlockSize(300000), cacheEmptyBlock(false), |
| | | syncQueueFull(true), syncQueueEmpty(true), queueFullDropBlock(false), copyData(true)
|
| | | maxBlockCount(32), maxBlockSize(1920*1080*2), cacheEmptyBlock(false),
|
| | | syncQueueFull(true), syncQueueEmpty(true), queueFullDropFrontBlock(false), copyData(true), dropBlockOnlyNextPayOK(true),
|
| | | cacheFrameListFunc(nullptr)
|
| | | {
|
| | | }
|
| | | };
|
| | |
| | | virtual bool gain(PipeMaterial& pm);
|
| | |
|
| | | private:
|
| | | static void pm_deleter_qb(PipeMaterial* pm);
|
| | | static void pm_deleter_qb(PipeMaterial* pm, bool lastRet);
|
| | |
|
| | | void* internal;
|
| | | };
|