uvg266/src/nal.h
Ari Koivula f750c24948 Refactor: nal.c/.h full cleanup.
- Move constant from the signature of calc_checksum into a macro.
2013-09-19 16:03:02 +03:00

91 lines
1.7 KiB
C

#ifndef NAL_H_
#define NAL_H_
/**
* \file
* \brief Network Abstraction Layer (NAL) messages.
*
* \author Marko Viitanen ( fador@iki.fi ),
* Tampere University of Technology,
* Department of Pervasive Computing.
* \author Ari Koivula ( ari@koivu.la ),
* Tampere University of Technology,
* Department of Pervasive Computing.
*/
#include "global.h"
#include <stdio.h>
#include "picture.h"
//////////////////////////////////////////////////////////////////////////
// TYPES
/**
* \brief NAL unit type codes.
*
* These are the nal_unit_type codes from Table 7-1 ITU-T H.265 v1.0.
* The type codes have been prefixed with "NAL_".
*/
enum {
NAL_TRAIL_N = 0,
NAL_TRAIL_R = 1,
NAL_TSA_N = 2,
NAL_TSA_R = 3,
NAL_STSA_N = 4,
NAL_STSA_R = 5,
NAL_RADL_N = 6,
NAL_RADL_R = 7,
NAL_RASL_N = 8,
NAL_RASL_R = 9,
// Reserved RSV_VCL_ N/R 10-15
NAL_BLA_W_LP = 16,
NAL_BLA_W_RADL = 17,
NAL_BLA_N_LP = 18,
NAL_IDR_W_RADL = 19,
NAL_IDR_N_LP = 20,
NAL_CRA_NUT = 21,
// Reserved RSV_IRAP_VCL 22-23
NAL_RSV_IRAP_VCL23 = 23,
// Reserved RSV_VCL 24-31
NAL_VPS_NUT = 32,
NAL_SPS_NUT = 33,
NAL_PPS_NUT = 34,
AUD_NUT = 35,
EOS_NUT = 36,
EOB_NUT = 37,
FD_NUT = 38,
PREFIX_SEI_NUT = 39,
NAL_SUFFIT_SEI_NUT = 40,
// Reserved RSV_NVCL 41-47
// Unspecified UNSPEC 48-63
};
#define SEI_HASH_MAX_LENGTH 4
//////////////////////////////////////////////////////////////////////////
// FUNCTIONS
void nal_write(FILE *output, uint8_t *buffer, uint32_t buffer_len,
uint8_t nal_ref, uint8_t nal_type, uint8_t temporal_id);
void picture_checksum(const picture *pic,
unsigned char checksum_out[][SEI_HASH_MAX_LENGTH]);
#endif