1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**********************************************************************************
- *
- * Copyright (c) 2019-2020 Beijing AXera Technology Co., Ltd. All Rights Reserved.
- *
- * This source file is the property of Beijing AXera Technology Co., Ltd. and
- * may not be copied or distributed in any isomorphic form without the prior
- * written consent of Beijing AXera Technology Co., Ltd.
- *
- **********************************************************************************/
- #ifndef __AXFRAMEDSOURCE_H__
- #define __AXFRAMEDSOURCE_H__
- #include "FramedSource.hh"
- #include "AXRingBuffer.h"
- #define COMM_RTSP_PRT(fmt...) \
- do {\
- printf("[RTSP][%s]: ", __FUNCTION__);\
- printf(fmt);\
- printf("\n");\
- }while(0)
- class AXFramedSource: public FramedSource {
- public:
- static AXFramedSource* createNew(UsageEnvironment& env);
- public:
- static EventTriggerId eventTriggerId;
- // Note that this is defined here to be a static class variable, because this code is intended to illustrate how to
- // encapsulate a *single* device - not a set of devices.
- // You can, however, redefine this to be a non-static member variable.
- void AddFrameBuff(AX_U8 nChn, const AX_U8* pBuf, AX_U32 nLen, AX_U64 nPts=0, AX_BOOL bIFrame=AX_FALSE);
- virtual unsigned maxFrameSize() const;
- protected:
- AXFramedSource(UsageEnvironment& env);
- // called only by createNew(), or by subclass constructors
- virtual ~AXFramedSource();
- private:
- // redefined virtual functions:
- virtual void doGetNextFrame();
- //virtual void doStopGettingFrames(); // optional
- private:
- static void deliverFrame(void* clientData);
- void _deliverFrame();
- private:
- static unsigned referenceCount; // used to count how many instances of this class currently exist
- CAXRingBuffer* m_pRingBuf;
- u_int32_t m_nTriggerID;
- };
- #endif /*__AXFRAMEDSOURCE_H__*/
|