1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "media/base/bit_reader.h" 6 7namespace media { 8 9BitReader::BitReader(const uint8* data, int size) 10 : initial_size_(size), 11 data_(data), 12 bytes_left_(size), 13 bit_reader_core_(this) { 14 DCHECK(data != NULL); 15 DCHECK_GE(size, 0); 16} 17 18BitReader::~BitReader() {} 19 20int BitReader::GetBytes(int max_nbytes, const uint8** out) { 21 DCHECK_GE(max_nbytes, 0); 22 DCHECK(out); 23 24 int nbytes = max_nbytes; 25 if (nbytes > bytes_left_) 26 nbytes = bytes_left_; 27 28 *out = data_; 29 data_ += nbytes; 30 bytes_left_ -= nbytes; 31 return nbytes; 32} 33 34} // namespace media 35