/*
 * Copyright 2022 The Chromium OS 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 <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#ifndef __H265_PARTIAL_PARSER_H__
#define __H265_PARTIAL_PARSER_H__

// NAL Unit types are taken from Table 7-1 of HEVC/H265 standard
// http://www.itu.int/rec/T-REC-H.265-201410-I/en
enum H265NaluType {
  kTrailN = 0,
  kTrailR = 1,
  kTsaN = 2,
  kTsaR = 3,
  kStsaN = 4,
  kStsaR = 5,
  kRadlN = 6,
  kRadlR = 7,
  kRaslN = 8,
  kRaslR = 9,
  kRsvVclN10 = 10,
  kRsvVclR11 = 11,
  kRsvVclN12 = 12,
  kRsvVclR13 = 13,
  kRsvVclN14 = 14,
  kRsvVclR15 = 15,
  kBlaWLp = 16,
  kBlaWRadl = 17,
  kBlaNLp = 18,
  kIdrWRadl = 19,
  kIdrNLp = 20,
  kCraNut = 21,
  kRsvIrapVcl22 = 22,
  kRsvIrapVcl23 = 23,
  kRsvVcl24 = 24,
  kRsvVcl25 = 25,
  kRsvVcl26 = 26,
  kRsvVcl27 = 27,
  kRsvVcl28 = 28,
  kRsvVcl29 = 29,
  kRsvVcl30 = 30,
  kRsvVcl31 = 31,
  kVpsNut = 32,
  kSpsNut = 33,
  kPpsNut = 34,
  kAudNut = 35,
  kEosNut = 36,
  kEobNut = 37,
  kFdNut = 38,
  kPrefixSeiNut = 39,
  kSuffixSeiNut = 40,
  kRsvNvcl41 = 41,
  kRsvNvcl42 = 42,
  kRsvNvcl43 = 43,
  kRsvNvcl44 = 44,
  kRsvNvcl45 = 45,
  kRsvNvcl46 = 46,
  kRsvNvcl47 = 47,
  kUnspec48 = 48,
  kUnspec49 = 49,
  kUnspec50 = 50,
  kUnspec51 = 51,
  kUnspec52 = 52,
  kUnspec53 = 53,
  kUnspec54 = 54,
  kUnspec55 = 55,
  kUnspec56 = 56,
  kUnspec57 = 57,
  kUnspec58 = 58,
  kUnspec59 = 59,
  kUnspec60 = 60,
  kUnspec61 = 61,
  kUnspec62 = 62,
  kUnspec63 = 63,
};

bool is_h265_nalu_slice_type(enum H265NaluType type);

typedef struct H265Nalu {
  const uint8_t* data;
  size_t size;

  uint8_t nal_unit_type;
  uint8_t nuh_layer_id;
  uint8_t nuh_temporal_id_plus1;
} H265Nalu;

H265Nalu parse_h265_nalu(uint8_t* curr_pos, uint8_t* end_pos);

bool is_h265_slice_first_in_picture(const H265Nalu *nalu);

#endif // __H265_PARTIAL_PARSER_H__
