7#include <packager/media/base/buffer_reader.h>
14#include <absl/log/check.h>
27bool BufferReader::Read2(uint16_t* v) {
30bool BufferReader::Read2s(int16_t* v) {
33bool BufferReader::Read4(uint32_t* v) {
36bool BufferReader::Read4s(int32_t* v) {
39bool BufferReader::Read8(uint64_t* v) {
42bool BufferReader::Read8s(int64_t* v) {
46 return ReadNBytes(v, num_bytes);
48bool BufferReader::ReadNBytesInto8s(int64_t* v,
size_t num_bytes) {
49 return ReadNBytes(v, num_bytes);
52bool BufferReader::ReadToVector(std::vector<uint8_t>* vec,
size_t count) {
56 vec->assign(buf_ + pos_, buf_ + pos_ + count);
61bool BufferReader::ReadToString(std::string* str,
size_t size) {
65 str->assign(buf_ + pos_, buf_ + pos_ + size);
72 for (
size_t count = 0; pos_ + count < size_; count++) {
73 if (buf_[pos_ + count] == 0) {
74 str->assign(buf_ + pos_, buf_ + pos_ + count);
90bool BufferReader::Read(T* v) {
91 return ReadNBytes(v,
sizeof(*v));
95bool BufferReader::ReadNBytes(T* v,
size_t num_bytes) {
97 DCHECK_LE(num_bytes,
sizeof(*v));
104 const bool sign_extension_required =
105 num_bytes < sizeof(*v) && static_cast<T>(-1) < 0;
108 T tmp = sign_extension_required ?
static_cast<int8_t
>(buf_[pos_++])
110 for (
size_t i = 1; i < num_bytes; ++i) {
All the methods that are virtual are virtual for mocking.