Chromium Code Reviews| Index: media/filters/vp9_raw_bits_reader.cc |
| diff --git a/media/filters/vp9_raw_bits_reader.cc b/media/filters/vp9_raw_bits_reader.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a3d7353b90c412bc097af580a53b7204e823599c |
| --- /dev/null |
| +++ b/media/filters/vp9_raw_bits_reader.cc |
| @@ -0,0 +1,48 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "media/filters/vp9_raw_bits_reader.h" |
| + |
| +#include <limits.h> |
| + |
| +#include "base/logging.h" |
| +#include "media/base/bit_reader.h" |
| + |
| +namespace media { |
| + |
| +Vp9RawBitsReader::Vp9RawBitsReader() : out_of_buffer_(false) {} |
| + |
| +Vp9RawBitsReader::~Vp9RawBitsReader() {} |
| + |
| +void Vp9RawBitsReader::Initialize(const uint8_t* data, size_t size) { |
| + DCHECK(data); |
| + reader_.reset(new BitReader(data, size)); |
| + out_of_buffer_ = false; |
| +} |
| + |
| +int Vp9RawBitsReader::ReadBit() { |
| + DCHECK(reader_); |
| + int value = 0; |
| + out_of_buffer_ = !reader_->ReadBits(1, &value); |
| + return value; |
| +} |
| + |
| +int Vp9RawBitsReader::ReadLiteral(int bits) { |
| + DCHECK(reader_); |
| + int value = 0; |
| + out_of_buffer_ = !reader_->ReadBits(bits, &value); |
|
Owen Lin
2015/08/01 11:35:37
Use out_of_buffer |= !reader_->ReadBits ...
It loo
Pawel Osciak
2015/08/02 10:46:11
Good idea, and you could also instead of out_of_bu
kcwu
2015/08/03 07:10:13
Done.
|
| + return value; |
| +} |
| + |
| +int Vp9RawBitsReader::ReadSignedLiteral(int bits) { |
| + int value = ReadLiteral(bits); |
| + return ReadBit() ? -value : value; |
| +} |
| + |
| +size_t Vp9RawBitsReader::GetBytesRead() const { |
| + DCHECK(reader_); |
| + return (reader_->bits_read() + 7) / 8; |
| +} |
| + |
| +} // namespace media |