Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
Frame.h
1#pragma once
2#include <boost/asio.hpp>
3#include "CommonDefs.h"
4
5using namespace std;
6
7class FrameFactory;
8class ApraData;
9
10class Frame :public boost::asio::mutable_buffer {
11public:
12 Frame(void *buff, size_t size, boost::shared_ptr<FrameFactory> mother);
13 virtual ~Frame();
15 uint64_t mFStart, mFEnd;
16 uint64_t fIndex;
17 uint64_t fIndex2; // added for fileReaderModule to propagate currentIndex
18 uint64_t timestamp;
19 int pictureType; // used for H264 Encoder
21 virtual bool isEoP() { return false; }
22 virtual bool isEOS() { return false; }
23 virtual bool isMp4ErrorFrame() { return false; }
24 virtual bool isEmpty() { return false; }
25 virtual bool isPropsChange();
26 virtual bool isPausePlay();
27 virtual bool isCommand();
28 framemetadata_sp getMetadata() { return mMetadata; }
29 // Make it private
30 // If someone wants to use it, make that class a friend class
31 void setMetadata(framemetadata_sp& _metadata) { mMetadata = _metadata; }
32 virtual void* data() const BOOST_ASIO_NOEXCEPT;
33 virtual std::size_t size() const BOOST_ASIO_NOEXCEPT;
34protected:
35 Frame();
36 framemetadata_sp mMetadata;
37private:
38 void setDefaultValues();
39 void resetMemory();
40 void *myOrig;
41 friend class FrameFactory;
42 boost::shared_ptr<FrameFactory> myMother; //so that the mother does not get destroyed before children
43};
44
45class EoPFrame : public Frame
46{
47public:
48 EoPFrame();
49 virtual ~EoPFrame() {}
50 virtual bool isEoP();
51};
52
53class EoSFrame : public Frame {
54public:
56 {
57 GENERAL = 0,
60 };
61 EoSFrame();
62 virtual ~EoSFrame() {}
63 virtual bool isEOS();
64 EoSFrameType getEoSFrameType();
65 EoSFrame(EoSFrameType eosType, uint64_t mp4TS);
66private:
68 uint64_t mp4TS;
69};
70
71class EmptyFrame :public Frame {
72public:
73 EmptyFrame();
74 virtual ~EmptyFrame() {}
75 virtual bool isEmpty();
76};
77
78class ExternalFrame : public Frame
79{
80public:
82 virtual ~ExternalFrame();
83
84 void* data() const BOOST_ASIO_NOEXCEPT;
85 std::size_t size() const BOOST_ASIO_NOEXCEPT;
86
87private:
89};
Definition ApraData.h:9
Definition Frame.h:71
virtual ~EmptyFrame()
Definition Frame.h:74
Definition Frame.h:46
virtual ~EoPFrame()
Definition Frame.h:49
Definition Frame.h:53
EoSFrameType
Definition Frame.h:56
@ MP4_SEEK_EOS
Definition Frame.h:59
@ MP4_PLYB_EOS
Definition Frame.h:58
virtual ~EoSFrame()
Definition Frame.h:62
EoSFrameType type
Definition Frame.h:67
uint64_t mp4TS
Definition Frame.h:68
Definition Frame.h:79
ApraData * mData
Definition Frame.h:88
Definition FrameFactory.h:13
Definition Frame.h:10
int m_den
Definition Frame.h:20
virtual bool isCommand()
Definition Frame.cpp:50
uint64_t mFEnd
Definition Frame.h:15
uint64_t mFStart
Definition Frame.h:15
virtual std::size_t size() const BOOST_ASIO_NOEXCEPT
Definition Frame.cpp:35
virtual bool isEOS()
Definition Frame.h:22
uint64_t timestamp
Definition Frame.h:18
virtual void * data() const BOOST_ASIO_NOEXCEPT
Definition Frame.cpp:30
uint64_t fIndex
Definition Frame.h:16
int pictureType
Definition Frame.h:19
int m_num
Definition Frame.h:20
virtual bool isEoP()
Definition Frame.h:21
framemetadata_sp getMetadata()
Definition Frame.h:28
boost::shared_ptr< FrameFactory > myMother
Definition Frame.h:42
void setDefaultValues()
Definition Frame.cpp:19
void * myOrig
Definition Frame.h:40
virtual bool isPausePlay()
Definition Frame.cpp:45
uint64_t fIndex2
Definition Frame.h:17
framemetadata_sp mMetadata
Definition Frame.h:36
virtual bool isMp4ErrorFrame()
Definition Frame.h:23
virtual ~Frame()
Definition Frame.cpp:15
void resetMemory()
Definition Frame.cpp:55
short mFrameType
Definition Frame.h:14
Frame()
Definition Frame.cpp:7
void setMetadata(framemetadata_sp &_metadata)
Definition Frame.h:31
virtual bool isPropsChange()
Definition Frame.cpp:40
virtual bool isEmpty()
Definition Frame.h:24