/*
 * 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 <stdlib.h>
#include <stdint.h>

#ifndef __NALU_PARSER_H__
#define __NALU_PARSER_H__

#define NALU_SIGNATURE_SIZE 3

typedef struct Nalu {
  const uint8_t* data;
  size_t size;
} Nalu;

// Searches from start_pos to end_pos for the byte series: 0x00 0x00 0x01
// Returns the position of the first 0x00 if it is found, otherwise, returns
// NULL.
uint8_t* find_next_nalu(uint8_t* start_pos, uint8_t* end_pos);

// start_pos should start at an NALU. Determines the NALU size by searching for
// the next NALU.
Nalu tokenize_nalu(uint8_t* start_pos, uint8_t* end_pos);

#endif
