7 #ifndef MEDIA_BASE_BUFFER_READER_H_
8 #define MEDIA_BASE_BUFFER_READER_H_
14 #include "packager/base/compiler_specific.h"
15 #include "packager/base/macros.h"
17 namespace edash_packager {
26 : buf_(buf), size_(size), pos_(0) {}
31 bool HasBytes(
size_t count) {
return pos() + count <= size(); }
37 bool Read1(uint8_t* v) WARN_UNUSED_RESULT;
38 bool Read2(uint16_t* v) WARN_UNUSED_RESULT;
39 bool Read2s(int16_t* v) WARN_UNUSED_RESULT;
40 bool Read4(uint32_t* v) WARN_UNUSED_RESULT;
41 bool Read4s(int32_t* v) WARN_UNUSED_RESULT;
42 bool Read8(uint64_t* v) WARN_UNUSED_RESULT;
43 bool Read8s(int64_t* v) WARN_UNUSED_RESULT;
52 bool ReadNBytesInto8s(int64_t* v,
size_t num_bytes) WARN_UNUSED_RESULT;
55 bool ReadToVector(std::vector<uint8_t>* t,
size_t count) WARN_UNUSED_RESULT;
59 bool SkipBytes(
size_t num_bytes) WARN_UNUSED_RESULT;
61 const uint8_t* data()
const {
return buf_; }
62 size_t size()
const {
return size_; }
63 void set_size(
size_t size) { size_ = size; }
64 size_t pos()
const {
return pos_; }
69 bool Read(T* t) WARN_UNUSED_RESULT;
71 bool ReadNBytes(T* t,
size_t num_bytes) WARN_UNUSED_RESULT;
83 #endif // MEDIA_BASE_BUFFER_READER_H_