chromium/media/formats/mp4/box_reader.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_FORMATS_MP4_BOX_READER_H_
#define MEDIA_FORMATS_MP4_BOX_READER_H_

#include <stdint.h>

#include <limits>
#include <map>
#include <memory>
#include <vector>

#include "base/containers/span.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/raw_span.h"
#include "base/numerics/safe_conversions.h"
#include "media/base/media_export.h"
#include "media/base/media_log.h"
#include "media/formats/mp4/fourccs.h"
#include "media/formats/mp4/parse_result.h"
#include "media/formats/mp4/rcheck.h"

namespace media {
namespace mp4 {

enum DisplayMatrixSize {};

DisplayMatrix;

class BoxReader;

struct MEDIA_EXPORT Box {};

class MEDIA_EXPORT BufferReader {};

class MEDIA_EXPORT BoxReader : public BufferReader {};

// Template definitions
template <typename T>
bool BoxReader::ReadChildren(std::vector<T>* children) {}

template <typename T>
bool BoxReader::MaybeReadChildren(std::vector<T>* children) {}

template <typename T>
bool BoxReader::ReadAllChildren(std::vector<T>* children) {}

template <typename T>
bool BoxReader::ReadAllChildrenAndCheckFourCC(std::vector<T>* children) {}

template <typename T>
bool BoxReader::ReadAllChildrenInternal(std::vector<T>* children,
                                        bool check_box_type) {}

}  // namespace mp4
}  // namespace media

#endif  // MEDIA_FORMATS_MP4_BOX_READER_H_