Blame ext/ogg/dirac_parse.h

Packit 971217
Packit 971217
#ifndef __DIRAC_PARSE_H__
Packit 971217
#define __DIRAC_PARSE_H__
Packit 971217
Packit 971217
#include <glib.h>
Packit 971217
Packit 971217
#ifdef __cplusplus
Packit 971217
extern "C" {
Packit 971217
#endif
Packit 971217
Packit 971217
#ifndef TRUE
Packit 971217
#define TRUE 1
Packit 971217
#endif
Packit 971217
#ifndef FALSE
Packit 971217
#define FALSE 0
Packit 971217
#endif
Packit 971217
Packit 971217
typedef enum _SchroParseCode {
Packit 971217
  SCHRO_PARSE_CODE_SEQUENCE_HEADER = 0x00,
Packit 971217
  SCHRO_PARSE_CODE_END_OF_SEQUENCE = 0x10,
Packit 971217
  SCHRO_PARSE_CODE_AUXILIARY_DATA = 0x20,
Packit 971217
  SCHRO_PARSE_CODE_PADDING = 0x30,
Packit 971217
Packit 971217
  SCHRO_PARSE_CODE_INTRA_REF = 0x0c,
Packit 971217
  SCHRO_PARSE_CODE_INTRA_NON_REF = 0x08,
Packit 971217
  SCHRO_PARSE_CODE_INTRA_REF_NOARITH = 0x4c,
Packit 971217
  SCHRO_PARSE_CODE_INTRA_NON_REF_NOARITH = 0x48,
Packit 971217
Packit 971217
  SCHRO_PARSE_CODE_INTER_REF_1 = 0x0d,
Packit 971217
  SCHRO_PARSE_CODE_INTER_REF_1_NOARITH = 0x4d,
Packit 971217
  SCHRO_PARSE_CODE_INTER_REF_2 = 0x0e,
Packit 971217
  SCHRO_PARSE_CODE_INTER_REF_2_NOARITH = 0x4e,
Packit 971217
Packit 971217
  SCHRO_PARSE_CODE_INTER_NON_REF_1 = 0x09,
Packit 971217
  SCHRO_PARSE_CODE_INTER_NON_REF_1_NOARITH = 0x49,
Packit 971217
  SCHRO_PARSE_CODE_INTER_NON_REF_2 = 0x0a,
Packit 971217
  SCHRO_PARSE_CODE_INTER_NON_REF_2_NOARITH = 0x4a,
Packit 971217
Packit 971217
  SCHRO_PARSE_CODE_LD_INTRA_REF = 0xcc,
Packit 971217
  SCHRO_PARSE_CODE_LD_INTRA_NON_REF = 0xc8
Packit 971217
} SchroParseCode;
Packit 971217
Packit 971217
#define SCHRO_PARSE_CODE_PICTURE(is_ref,n_refs,is_lowdelay,is_noarith) \
Packit 971217
  (8 | ((is_ref)<<2) | (n_refs) | ((is_lowdelay)<<7) | ((is_noarith)<<6))
Packit 971217
Packit 971217
#define SCHRO_PARSE_CODE_IS_SEQ_HEADER(x) ((x) == SCHRO_PARSE_CODE_SEQUENCE_HEADER)
Packit 971217
#define SCHRO_PARSE_CODE_IS_END_OF_SEQUENCE(x) ((x) == SCHRO_PARSE_CODE_END_OF_SEQUENCE)
Packit 971217
#define SCHRO_PARSE_CODE_IS_AUXILIARY_DATA(x) ((x) == SCHRO_PARSE_CODE_AUXILIARY_DATA)
Packit 971217
#define SCHRO_PARSE_CODE_IS_PADDING(x) ((x) == SCHRO_PARSE_CODE_PADDING)
Packit 971217
#define SCHRO_PARSE_CODE_IS_PICTURE(x) ((x) & 0x8)
Packit 971217
#define SCHRO_PARSE_CODE_IS_LOW_DELAY(x) (((x) & 0x88) == 0x88)
Packit 971217
#define SCHRO_PARSE_CODE_IS_CORE_SYNTAX(x) (((x) & 0x88) == 0x08)
Packit 971217
#define SCHRO_PARSE_CODE_USING_AC(x) (((x) & 0x48) == 0x08)
Packit 971217
#define SCHRO_PARSE_CODE_IS_REFERENCE(x) (((x) & 0xc) == 0x0c)
Packit 971217
#define SCHRO_PARSE_CODE_IS_NON_REFERENCE(x) (((x) & 0xc) == 0x08)
Packit 971217
#define SCHRO_PARSE_CODE_NUM_REFS(x) ((x) & 0x3)
Packit 971217
#define SCHRO_PARSE_CODE_IS_INTRA(x) (SCHRO_PARSE_CODE_IS_PICTURE(x) && SCHRO_PARSE_CODE_NUM_REFS(x) == 0)
Packit 971217
#define SCHRO_PARSE_CODE_IS_INTER(x) (SCHRO_PARSE_CODE_IS_PICTURE(x) && SCHRO_PARSE_CODE_NUM_REFS(x) > 0)
Packit 971217
Packit 971217
#define SCHRO_PARSE_HEADER_SIZE (4+1+4+4)
Packit 971217
Packit 971217
typedef enum _SchroVideoFormatEnum {
Packit 971217
  SCHRO_VIDEO_FORMAT_CUSTOM = 0,
Packit 971217
  SCHRO_VIDEO_FORMAT_QSIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_QCIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_SIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_CIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_4SIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_4CIF,
Packit 971217
  SCHRO_VIDEO_FORMAT_SD480I_60,
Packit 971217
  SCHRO_VIDEO_FORMAT_SD576I_50,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD720P_60,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD720P_50,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD1080I_60,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD1080I_50,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD1080P_60,
Packit 971217
  SCHRO_VIDEO_FORMAT_HD1080P_50,
Packit 971217
  SCHRO_VIDEO_FORMAT_DC2K_24,
Packit 971217
  SCHRO_VIDEO_FORMAT_DC4K_24
Packit 971217
} SchroVideoFormatEnum;
Packit 971217
Packit 971217
typedef enum _SchroChromaFormat {
Packit 971217
  SCHRO_CHROMA_444 = 0,
Packit 971217
  SCHRO_CHROMA_422,
Packit 971217
  SCHRO_CHROMA_420
Packit 971217
} SchroChromaFormat;
Packit 971217
Packit 971217
#define SCHRO_CHROMA_FORMAT_H_SHIFT(format) (((format) == SCHRO_CHROMA_444)?0:1)
Packit 971217
#define SCHRO_CHROMA_FORMAT_V_SHIFT(format) (((format) == SCHRO_CHROMA_420)?1:0)
Packit 971217
Packit 971217
typedef enum _SchroSignalRange {
Packit 971217
  SCHRO_SIGNAL_RANGE_CUSTOM = 0,
Packit 971217
  SCHRO_SIGNAL_RANGE_8BIT_FULL = 1,
Packit 971217
  SCHRO_SIGNAL_RANGE_8BIT_VIDEO = 2,
Packit 971217
  SCHRO_SIGNAL_RANGE_10BIT_VIDEO = 3,
Packit 971217
  SCHRO_SIGNAL_RANGE_12BIT_VIDEO = 4
Packit 971217
} SchroSignalRange;
Packit 971217
Packit 971217
typedef enum _SchroColourSpec {
Packit 971217
  SCHRO_COLOUR_SPEC_CUSTOM = 0,
Packit 971217
  SCHRO_COLOUR_SPEC_SDTV_525 = 1,
Packit 971217
  SCHRO_COLOUR_SPEC_SDTV_625 = 2,
Packit 971217
  SCHRO_COLOUR_SPEC_HDTV = 3,
Packit 971217
  SCHRO_COLOUR_SPEC_CINEMA = 4
Packit 971217
} SchroColourSpec;
Packit 971217
Packit 971217
typedef enum _SchroColourPrimaries {
Packit 971217
  SCHRO_COLOUR_PRIMARY_HDTV = 0,
Packit 971217
  SCHRO_COLOUR_PRIMARY_SDTV_525 = 1,
Packit 971217
  SCHRO_COLOUR_PRIMARY_SDTV_625 = 2,
Packit 971217
  SCHRO_COLOUR_PRIMARY_CINEMA = 3
Packit 971217
} SchroColourPrimaries;
Packit 971217
Packit 971217
typedef enum _SchroColourMatrix {
Packit 971217
  SCHRO_COLOUR_MATRIX_HDTV = 0,
Packit 971217
  SCHRO_COLOUR_MATRIX_SDTV = 1,
Packit 971217
  SCHRO_COLOUR_MATRIX_REVERSIBLE = 2
Packit 971217
}SchroColourMatrix;
Packit 971217
Packit 971217
typedef enum _SchroTransferFunction {
Packit 971217
  SCHRO_TRANSFER_CHAR_TV_GAMMA = 0,
Packit 971217
  SCHRO_TRANSFER_CHAR_EXTENDED_GAMUT = 1,
Packit 971217
  SCHRO_TRANSFER_CHAR_LINEAR = 2,
Packit 971217
  SCHRO_TRANSFER_CHAR_DCI_GAMMA = 3
Packit 971217
} SchroTransferFunction;
Packit 971217
Packit 971217
Packit 971217
Packit 971217
typedef struct _DiracSequenceHeader DiracSequenceHeader;
Packit 971217
Packit 971217
struct _DiracSequenceHeader {
Packit 971217
  int major_version;
Packit 971217
  int minor_version;
Packit 971217
  int profile;
Packit 971217
  int level;
Packit 971217
Packit 971217
  int index;
Packit 971217
  int width;
Packit 971217
  int height;
Packit 971217
  int chroma_format;
Packit 971217
  
Packit 971217
  int interlaced;
Packit 971217
  int top_field_first;
Packit 971217
  
Packit 971217
  int frame_rate_numerator;
Packit 971217
  int frame_rate_denominator;
Packit 971217
  int aspect_ratio_numerator;
Packit 971217
  int aspect_ratio_denominator;
Packit 971217
    
Packit 971217
  int clean_width;
Packit 971217
  int clean_height;
Packit 971217
  int left_offset;
Packit 971217
  int top_offset;
Packit 971217
    
Packit 971217
  int luma_offset;
Packit 971217
  int luma_excursion;
Packit 971217
  int chroma_offset;
Packit 971217
  int chroma_excursion;
Packit 971217
    
Packit 971217
  int colour_primaries;
Packit 971217
  int colour_matrix;
Packit 971217
  int transfer_function;
Packit 971217
Packit 971217
  int interlaced_coding;
Packit 971217
Packit 971217
  int unused0;
Packit 971217
  int unused1;
Packit 971217
  int unused2;
Packit 971217
};  
Packit 971217
Packit 971217
G_GNUC_INTERNAL
Packit 971217
int gst_dirac_sequence_header_parse (DiracSequenceHeader *header,
Packit 971217
    unsigned char *data, int length);
Packit 971217
Packit 971217
#ifdef __cplusplus
Packit 971217
}
Packit 971217
#endif
Packit 971217
Packit 971217
#endif
Packit 971217