ADTF File Library
Loading...
Searching...
No Matches
sample.h
Go to the documentation of this file.
1
16
17#ifndef ADTF_FILE_SAMPLE
18#define ADTF_FILE_SAMPLE
19
20#include "stream_item.h"
21
22#include <a_util/variant.h>
23#include <functional>
24#include <string>
25#include <chrono>
26
27namespace adtf_file
28{
29
33enum class DataType
34{
35 uint8,
36 int8,
37 uint16,
38 int16,
39 uint32,
40 int32,
41 uint64,
42 int64,
43 float32,
44 float64
45};
46
50enum SampleInfoKeys: uint32_t
51{
52 sai_device_original_time = 1851393682,
53 sai_counter = 1660111993
54};
55
61uint32_t createSampleInfoHashKey(const std::string& name);
67uint32_t createAdtf2SampleInfoHashKey(uint32_t info_index);
68
74{
75 public:
80 virtual void setTimeStamp(std::chrono::nanoseconds time_stamp) = 0;
85 virtual void setFlags(uint32_t flags) = 0;
90 virtual void setSubStreamId(uint32_t substream_id) = 0;
97 virtual void* beginBufferWrite(size_t size) = 0;
101 virtual void endBufferWrite() = 0;
108 virtual void addInfo(uint32_t key, DataType type, uint64_t raw_bytes) = 0;
109};
110
116{
117 public:
122 virtual std::chrono::nanoseconds getTimeStamp() const = 0;
127 virtual uint32_t getFlags() const = 0;
132 virtual uint32_t getSubStreamId() const = 0;
138 virtual std::pair<const void*, size_t> beginBufferRead() const = 0;
142 virtual void endBufferRead() const = 0;
147 virtual void iterateInfo(std::function<void(uint32_t key, DataType type, uint64_t raw_bytes)> functor) const = 0;
148
149};
150
155{
156 public:
163 virtual void setRawSampleInfo(const void* data, size_t data_size, uint8_t layout_version) = 0;
164};
165
170{
171 public:
176 virtual void getRawSampleInfo(std::function<void(const void*, size_t, uint8_t)> handler) const = 0;
177};
178
183{
184 public:
189 virtual void CopyFrom(const std::shared_ptr<const Sample>& sample) = 0;
190};
191
197void copy_sample(adtf_file::Sample& destination, const std::shared_ptr<const Sample>& source);
198
199}
200
201#endif
interface class for reading sample information.
Definition sample.h:155
virtual void setRawSampleInfo(const void *data, size_t data_size, uint8_t layout_version)=0
Set the Raw Sample Info.
Interface class for samples that are read from a Reader.
Definition sample.h:74
virtual void * beginBufferWrite(size_t size)=0
allocates the memory buffer for sample data
virtual void endBufferWrite()=0
ends writing to the memory allocated with beginBufferWrite
virtual void setFlags(uint32_t flags)=0
Set the Flags.
virtual void setTimeStamp(std::chrono::nanoseconds time_stamp)=0
Set the Time Stamp.
virtual void addInfo(uint32_t key, DataType type, uint64_t raw_bytes)=0
Adds a additional sample information.
virtual void setSubStreamId(uint32_t substream_id)=0
Set the Sub Stream Id, if needed.
interface for copying the contents of one sample into another, probably sharing resources (such as th...
Definition sample.h:183
virtual void CopyFrom(const std::shared_ptr< const Sample > &sample)=0
Sample base class.
Definition stream_item.h:55
interface class for writing sample information.
Definition sample.h:170
virtual void getRawSampleInfo(std::function< void(const void *, size_t, uint8_t)> handler) const =0
Get the Raw Sample Info.
Interface class for samples that are written.
Definition sample.h:116
virtual void endBufferRead() const =0
Ends reading from memory buffer retruned by beginBufferRead.
virtual std::chrono::nanoseconds getTimeStamp() const =0
Get the Time Stamp.
virtual uint32_t getSubStreamId() const =0
Get the Sub Stream Id if set.
virtual uint32_t getFlags() const =0
Get the Flags.
virtual std::pair< const void *, size_t > beginBufferRead() const =0
Retrieve a pointer to the memory buffer for user data and size in bytes.
virtual void iterateInfo(std::function< void(uint32_t key, DataType type, uint64_t raw_bytes)> functor) const =0
iterates all additional data information (if any) by calling the functor
namespace for ADTF File library
Definition adtf2_adtf_core_media_sample_deserializer.h:25
uint32_t createAdtf2SampleInfoHashKey(uint32_t info_index)
Create a Adtf2 Sample Info Hash Key.
DataType
data type id for the adtf_file::ReadSample::addInfo call.
Definition sample.h:34
void copy_sample(adtf_file::Sample &destination, const std::shared_ptr< const Sample > &source)
uint32_t createSampleInfoHashKey(const std::string &name)
Create a Sample Info Hash Key.
SampleInfoKeys
predefefined keys for the adtf_file::ReadSample::addInfo call.
Definition sample.h:51