/*
* libdatachannel streamer example
* Copyright (c) 2020 Filip Klembara (in2core)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; If not, see .
*/
#ifndef fileparser_hpp
#define fileparser_hpp
#include
#include
#include "stream.hpp"
class FileParser: public StreamSource {
std::string directory;
std::string extension;
uint64_t sampleDuration_us;
uint64_t sampleTime_us = 0;
uint32_t counter = -1;
bool loop;
uint64_t loopTimestampOffset = 0;
protected:
rtc::binary sample = {};
public:
FileParser(std::string directory, std::string extension, uint32_t samplesPerSecond, bool loop);
virtual ~FileParser();
virtual void start() override;
virtual void stop() override;
virtual void loadNextSample() override;
rtc::binary getSample() override;
uint64_t getSampleTime_us() override;
uint64_t getSampleDuration_us() override;
};
#endif /* fileparser_hpp */