10 #ifndef hifi_Recording_Impl_PointerClip_h
11 #define hifi_Recording_Impl_PointerClip_h
13 #include "ArrayClip.h"
17 #include <QtCore/QJsonDocument>
23 struct PointerFrameHeader :
public FrameHeader {
25 Frame::Time timeOffset;
30 using PointerFrameHeaderList = std::list<PointerFrameHeader>;
32 class PointerClip :
public ArrayClip<PointerFrameHeader> {
34 using Pointer = std::shared_ptr<PointerClip>;
37 PointerClip(uchar* data,
size_t size) { init(data, size); }
39 void init(uchar* data,
size_t size);
40 virtual void addFrame(FrameConstPointer)
override;
41 const QJsonDocument& getHeader()
const {
46 static const qint64 MINIMUM_FRAME_SIZE =
sizeof(FrameType) +
sizeof(Frame::Time) +
sizeof(FrameSize);
48 void reset()
override;
49 virtual FrameConstPointer readFrame(
size_t index)
const override;
50 QJsonDocument _header;
51 uchar* _data {
nullptr };
53 bool _compressed {
true };