21#include <vrs/DataLayout.h>
22#include <vrs/DataLayoutConventions.h>
23#include <vrs/StreamPlayer.h>
24#include <vrs/VrsExport.h>
31class RecordFormatStreamPlayer;
32struct RecordFormatReader;
48 static unique_ptr<ContentBlockReader>
49 build(
const RecordFormat& recordFormat,
size_t blockIndex, unique_ptr<DataLayout>&& blockLayout);
61 : recordFormat_(recordFormat), blockIndex_(blockIndex) {}
67 const size_t blockIndex_;
68 unique_ptr<datalayout_conventions::NextContentBlockSpec> contentBlockSpec_;
85 unique_ptr<datalayout_conventions::VideoFrameSpec> videoFrameSpec_;
103 size_t indexUpperLimit,
104 size_t lastIndexToCheck,
105 bool& readNextBlock);
106 bool audioContentFromAudioSpec(
157 unique_ptr<DataLayout>&& blockLayout)
158 :
ContentBlockReader(recordFormat, blockIndex), blockLayout_{std::move(blockLayout)} {}
174 unique_ptr<DataLayout> blockLayout_;
Specialized version of ContentBlockReader to handle content blocks containing audio data.
Definition ContentBlockReader.h:90
Specification of a VRS record content block.
Definition RecordFormat.h:512
Abstract class to handle the interpretation of a record format's content block.
Definition ContentBlockReader.h:40
virtual ~ContentBlockReader()
Virtual destructor, since this is an abstract class.
virtual bool readBlock(const CurrentRecord &, RecordFormatStreamPlayer &)=0
Specialized version of ContentBlockReader to handle a content block containing custom data....
Definition ContentBlockReader.h:118
Specialized version of ContentBlockReader to handle DataLayout blocks.
Definition ContentBlockReader.h:152
bool mapToBlockLayout(DataLayout &desiredLayout)
Definition ContentBlockReader.h:165
The DataLayout class describes the data stored inside a DataLayoutContentBlock.
Definition DataLayout.h:211
bool mapLayout(DataLayout &targetLayout)
Definition DataLayout.cpp:130
Specialized version of ContentBlockReader to handle an empty content block.
Definition ContentBlockReader.h:142
Specialized version of ContentBlockReader to handle content blocks containing an image.
Definition ContentBlockReader.h:73
Specialized version of ContentBlockReader to handle data that could not be handled by another better ...
Definition ContentBlockReader.h:129
DataLayout definitions use to describe what's in an audio content block.
Definition DataLayoutConventions.h:145
DataLayout definitions use to describe what's in an image content block.
Definition DataLayoutConventions.h:65
Definition Compressor.cpp:113
Class describing which record is being read. Most fields are really self explanatory.
Definition StreamPlayer.h:28