## schrobitstream

schrobitstream

## Synopsis

    enum                SchroAuxiliaryDataID;
    enum                SchroParseCode;
    enum                SchroVideoFormatEnum;
    enum                SchroChromaFormat;
    enum                SchroColourMatrix;
    enum                SchroColourSpec;
    enum                SchroColourPrimaries;
    enum                SchroWaveletIndex;
    enum                SchroSignalRange;
    enum                SchroTransferFunction;
    #define             SCHRO_PARSE_HEADER_SIZE
    #define             SCHRO_PARSE_CODE_PICTURE            (is_ref,
                                                             n_refs,
                                                             is_lowdelay,
                                                             is_noarith)
    #define             SCHRO_PARSE_CODE_IS_INTER           (x)
    #define             SCHRO_PARSE_CODE_IS_INTRA           (x)
    #define             SCHRO_PARSE_CODE_IS_NON_REFERENCE   (x)
    #define             SCHRO_PARSE_CODE_IS_REFERENCE       (x)
    #define             SCHRO_PARSE_CODE_IS_LOW_DELAY       (x)
    #define             SCHRO_PARSE_CODE_IS_PICTURE         (x)
    #define             SCHRO_PARSE_CODE_NUM_REFS           (x)
    #define             SCHRO_PARSE_CODE_IS_AUXILIARY_DATA  (x)
    #define             SCHRO_PARSE_CODE_IS_CORE_SYNTAX     (x)
    #define             SCHRO_PARSE_CODE_IS_END_OF_SEQUENCE (x)
    #define             SCHRO_PARSE_CODE_IS_PADDING         (x)
    #define             SCHRO_PARSE_CODE_IS_SEQ_HEADER      (x)
    #define             SCHRO_PARSE_CODE_USING_AC           (x)

## Description

## Details

### enum SchroAuxiliaryDataID

    typedef enum {
      SCHRO_AUX_DATA_INVALID,
      SCHRO_AUX_DATA_ENCODER_STRING,
      SCHRO_AUX_DATA_SMPTE_12M_TIMECODE,
      SCHRO_AUX_DATA_MD5_CHECKSUM,
      SCHRO_AUX_DATA_BITRATE,
      SCHRO_AUX_DATA_USER = 0x80
    } SchroAuxiliaryDataID;

### enum SchroParseCode

    typedef enum {
      SCHRO_PARSE_CODE_SEQUENCE_HEADER = 0x00,
      SCHRO_PARSE_CODE_END_OF_SEQUENCE = 0x10,
      SCHRO_PARSE_CODE_AUXILIARY_DATA = 0x20,
      SCHRO_PARSE_CODE_PADDING = 0x30,

      SCHRO_PARSE_CODE_INTRA_REF = 0x0c,
      SCHRO_PARSE_CODE_INTRA_NON_REF = 0x08,
      SCHRO_PARSE_CODE_INTRA_REF_NOARITH = 0x4c,
      SCHRO_PARSE_CODE_INTRA_NON_REF_NOARITH = 0x48,

      SCHRO_PARSE_CODE_INTER_REF_1 = 0x0d,
      SCHRO_PARSE_CODE_INTER_REF_1_NOARITH = 0x4d,
      SCHRO_PARSE_CODE_INTER_REF_2 = 0x0e,
      SCHRO_PARSE_CODE_INTER_REF_2_NOARITH = 0x4e,

      SCHRO_PARSE_CODE_INTER_NON_REF_1 = 0x09,
      SCHRO_PARSE_CODE_INTER_NON_REF_1_NOARITH = 0x49,
      SCHRO_PARSE_CODE_INTER_NON_REF_2 = 0x0a,
      SCHRO_PARSE_CODE_INTER_NON_REF_2_NOARITH = 0x4a,

      SCHRO_PARSE_CODE_LD_INTRA_REF = 0xcc,
      SCHRO_PARSE_CODE_LD_INTRA_NON_REF = 0xc8
    } SchroParseCode;

### enum SchroVideoFormatEnum

    typedef enum {
      SCHRO_VIDEO_FORMAT_CUSTOM = 0,
      SCHRO_VIDEO_FORMAT_QSIF,
      SCHRO_VIDEO_FORMAT_QCIF,
      SCHRO_VIDEO_FORMAT_SIF,
      SCHRO_VIDEO_FORMAT_CIF,
      SCHRO_VIDEO_FORMAT_4SIF,
      SCHRO_VIDEO_FORMAT_4CIF,
      SCHRO_VIDEO_FORMAT_SD480I_60,
      SCHRO_VIDEO_FORMAT_SD576I_50,
      SCHRO_VIDEO_FORMAT_HD720P_60,
      SCHRO_VIDEO_FORMAT_HD720P_50,
      SCHRO_VIDEO_FORMAT_HD1080I_60,
      SCHRO_VIDEO_FORMAT_HD1080I_50,
      SCHRO_VIDEO_FORMAT_HD1080P_60,
      SCHRO_VIDEO_FORMAT_HD1080P_50,
      SCHRO_VIDEO_FORMAT_DC2K_24,
      SCHRO_VIDEO_FORMAT_DC4K_24,
      SCHRO_VIDEO_FORMAT_UHDTV_4K_60,
      SCHRO_VIDEO_FORMAT_UHDTV_4K_50,
      SCHRO_VIDEO_FORMAT_UHDTV_8K_60,
      SCHRO_VIDEO_FORMAT_UHDTV_8K_50
    } SchroVideoFormatEnum;

### enum SchroChromaFormat

    typedef enum {
      SCHRO_CHROMA_444 = 0,
      SCHRO_CHROMA_422,
      SCHRO_CHROMA_420
    } SchroChromaFormat;

### enum SchroColourMatrix

    typedef enum {
      SCHRO_COLOUR_MATRIX_HDTV = 0,
      SCHRO_COLOUR_MATRIX_SDTV = 1,
      SCHRO_COLOUR_MATRIX_REVERSIBLE = 2
    } SchroColourMatrix;

### enum SchroColourSpec

    typedef enum {
      SCHRO_COLOUR_SPEC_CUSTOM = 0,
      SCHRO_COLOUR_SPEC_SDTV_525 = 1,
      SCHRO_COLOUR_SPEC_SDTV_625 = 2,
      SCHRO_COLOUR_SPEC_HDTV = 3,
      SCHRO_COLOUR_SPEC_CINEMA = 4
    } SchroColourSpec;

### enum SchroColourPrimaries

    typedef enum {
      SCHRO_COLOUR_PRIMARY_HDTV = 0,
      SCHRO_COLOUR_PRIMARY_SDTV_525 = 1,
      SCHRO_COLOUR_PRIMARY_SDTV_625 = 2,
      SCHRO_COLOUR_PRIMARY_CINEMA = 3
    } SchroColourPrimaries;

### enum SchroWaveletIndex

    typedef enum {
      SCHRO_WAVELET_DESLAURIERS_DUBUC_9_7,
      SCHRO_WAVELET_LE_GALL_5_3,
      SCHRO_WAVELET_DESLAURIERS_DUBUC_13_7,
      SCHRO_WAVELET_HAAR_0,
      SCHRO_WAVELET_HAAR_1,
      SCHRO_WAVELET_FIDELITY,
      SCHRO_WAVELET_DAUBECHIES_9_7
    } SchroWaveletIndex;

### enum SchroSignalRange

    typedef enum {
      SCHRO_SIGNAL_RANGE_CUSTOM = 0,
      SCHRO_SIGNAL_RANGE_8BIT_FULL = 1,
      SCHRO_SIGNAL_RANGE_8BIT_VIDEO = 2,
      SCHRO_SIGNAL_RANGE_10BIT_VIDEO = 3,
      SCHRO_SIGNAL_RANGE_12BIT_VIDEO = 4
    } SchroSignalRange;

### enum SchroTransferFunction

    typedef enum {
      SCHRO_TRANSFER_CHAR_TV_GAMMA = 0,
      SCHRO_TRANSFER_CHAR_EXTENDED_GAMUT = 1,
      SCHRO_TRANSFER_CHAR_LINEAR = 2,
      SCHRO_TRANSFER_CHAR_DCI_GAMMA = 3
    } SchroTransferFunction;

### SCHRO_PARSE_HEADER_SIZE

    #define SCHRO_PARSE_HEADER_SIZE (4+1+4+4)

### SCHRO_PARSE_CODE_PICTURE()

    #define             SCHRO_PARSE_CODE_PICTURE(is_ref,n_refs,is_lowdelay,is_noarith)

### SCHRO_PARSE_CODE_IS_INTER()

    #define SCHRO_PARSE_CODE_IS_INTER(x) (SCHRO_PARSE_CODE_IS_PICTURE(x) && SCHRO_PARSE_CODE_NUM_REFS(x) > 0)

### SCHRO_PARSE_CODE_IS_INTRA()

    #define SCHRO_PARSE_CODE_IS_INTRA(x) (SCHRO_PARSE_CODE_IS_PICTURE(x) && SCHRO_PARSE_CODE_NUM_REFS(x) == 0)

### SCHRO_PARSE_CODE_IS_NON_REFERENCE()

    #define SCHRO_PARSE_CODE_IS_NON_REFERENCE(x) (((x) & 0xc) == 0x08)

### SCHRO_PARSE_CODE_IS_REFERENCE()

    #define SCHRO_PARSE_CODE_IS_REFERENCE(x) (((x) & 0xc) == 0x0c)

### SCHRO_PARSE_CODE_IS_LOW_DELAY()

    #define SCHRO_PARSE_CODE_IS_LOW_DELAY(x) (((x) & 0x88) == 0x88)

### SCHRO_PARSE_CODE_IS_PICTURE()

    #define SCHRO_PARSE_CODE_IS_PICTURE(x) ((x) & 0x8)

### SCHRO_PARSE_CODE_NUM_REFS()

    #define SCHRO_PARSE_CODE_NUM_REFS(x) ((x) & 0x3)

### SCHRO_PARSE_CODE_IS_AUXILIARY_DATA()

    #define SCHRO_PARSE_CODE_IS_AUXILIARY_DATA(x) ((x) == SCHRO_PARSE_CODE_AUXILIARY_DATA)

### SCHRO_PARSE_CODE_IS_CORE_SYNTAX()

    #define SCHRO_PARSE_CODE_IS_CORE_SYNTAX(x) (((x) & 0x88) == 0x08)

### SCHRO_PARSE_CODE_IS_END_OF_SEQUENCE()

    #define SCHRO_PARSE_CODE_IS_END_OF_SEQUENCE(x) ((x) == SCHRO_PARSE_CODE_END_OF_SEQUENCE)

### SCHRO_PARSE_CODE_IS_PADDING()

    #define SCHRO_PARSE_CODE_IS_PADDING(x) ((x) == SCHRO_PARSE_CODE_PADDING)

### SCHRO_PARSE_CODE_IS_SEQ_HEADER()

    #define SCHRO_PARSE_CODE_IS_SEQ_HEADER(x) ((x) == SCHRO_PARSE_CODE_SEQUENCE_HEADER)

### SCHRO_PARSE_CODE_USING_AC()

    #define SCHRO_PARSE_CODE_USING_AC(x) (((x) & 0x48) == 0x08)