#pragma once
#include <cstddef>
#include <cstdint>
#include <span>
#include <string>
#include <vector>
namespace smartcut::media {
enum class Codec { h264, hevc };
struct NalUnit { std::size_t offset{}; std::size_t size{}; unsigned type{}; bool parameter_set{}; bool sei{}; bool random_access{}; bool dolby_vision_rpu{}; };
struct NalInventory { Codec codec{Codec::hevc}; std::size_t input_bytes{}; std::vector<NalUnit> units; };
NalInventory inventory_annex_b(Codec codec, std::span<const std::uint8_t> bytes);
std::string to_json(const NalInventory& inventory);
}

