Bell catchup

This commit is contained in:
philippe44
2023-07-26 13:19:20 -07:00
parent 859efdb954
commit 232afb948b
467 changed files with 77538 additions and 37137 deletions

View File

@@ -0,0 +1,36 @@
#pragma once
#include <stdint.h> // for uint32_t
#include <cstddef> // for byte, size_t
#include <istream> // for istream
#include <vector> // for vector
#include "AudioContainer.h" // for AudioContainer
#include "CodecType.h" // for AudioCodec, AudioCodec::AAC
namespace bell {
class ADTSContainer : public AudioContainer {
public:
~ADTSContainer(){};
ADTSContainer(std::istream& istr, const std::byte* headingBytes = nullptr);
std::byte* readSample(uint32_t& len) override;
bool resyncADTS();
void parseSetupData() override;
void consumeBytes(uint32_t len) override;
bell::AudioCodec getCodec() override { return bell::AudioCodec::AAC; }
private:
static constexpr auto AAC_MAX_FRAME_SIZE = 2100;
static constexpr auto BUFFER_SIZE = 1024 * 10;
std::vector<std::byte> buffer = std::vector<std::byte>(BUFFER_SIZE);
size_t bytesInBuffer = 0;
size_t dataOffset = 0;
bool protectionAbsent = false;
bool fillBuffer();
};
} // namespace bell