chromium/media/parsers/h264_parser.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.
//
// This file contains an implementation of an H264 Annex-B video stream parser.

#ifndef MEDIA_PARSERS_H264_PARSER_H_
#define MEDIA_PARSERS_H264_PARSER_H_

#include <stddef.h>
#include <stdint.h>
#include <sys/types.h>

#include <map>
#include <memory>
#include <optional>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "media/base/media_export.h"
#include "media/base/ranges.h"
#include "media/base/video_codecs.h"
#include "media/base/video_color_space.h"
#include "media/base/video_types.h"
#include "media/parsers/h264_bit_reader.h"

namespace gfx {
class Rect;
class Size;
struct HdrMetadataSmpteSt2086;
struct HdrMetadataCta861_3;
}  // namespace gfx

namespace media {

struct SubsampleEntry;

// For explanations of each struct and its members, see H.264 specification
// at http://www.itu.int/rec/T-REC-H.264.
struct MEDIA_EXPORT H264NALU {};

enum {};

struct MEDIA_EXPORT H264SPS {};

struct MEDIA_EXPORT H264PPS {};

struct MEDIA_EXPORT H264ModificationOfPicNum {};

struct MEDIA_EXPORT H264WeightingFactors {};

struct MEDIA_EXPORT H264DecRefPicMarking {};

struct MEDIA_EXPORT H264SliceHeader {};

struct MEDIA_EXPORT H264SEIRecoveryPoint {};

struct MEDIA_EXPORT H264SEIMasteringDisplayInfo {};

struct MEDIA_EXPORT H264SEIContentLightLevelInfo {};

struct MEDIA_EXPORT H264SEIMessage {};

struct MEDIA_EXPORT H264SEI {};

// Class to parse an Annex-B H.264 stream,
// as specified in chapters 7 and Annex B of the H.264 spec.
class MEDIA_EXPORT H264Parser {};

}  // namespace media

#endif  // MEDIA_PARSERS_H264_PARSER_H_