;; From gstcamerabin-enum.h

;; Original typedef:
;; typedef enum
;; {
;;   /* MODE_PREVIEW = 0, No use for this */
;;   MODE_IMAGE = 1,
;;   MODE_VIDEO = 2,
;; } GstCameraBinMode;

(define-enum-extended CameraBinMode
  (in-module "Gst")
  (c-name "GstCameraBinMode")
  (values
    '("image" "MODE_IMAGE" "1")
    '("video" "MODE_VIDEO" "2")
  )
)

;; From gsth264parser.h

;; Original typedef:
;; typedef enum {
;;   GST_H264_PROFILE_BASELINE             = 66,
;;   GST_H264_PROFILE_MAIN                 = 77,
;;   GST_H264_PROFILE_EXTENDED             = 88,
;;   GST_H264_PROFILE_HIGH                 = 100,
;;   GST_H264_PROFILE_HIGH10               = 110,
;;   GST_H264_PROFILE_HIGH_422             = 122,
;;   GST_H264_PROFILE_HIGH_444             = 244,
;;   GST_H264_PROFILE_MULTIVIEW_HIGH       = 118,
;;   GST_H264_PROFILE_STEREO_HIGH          = 128,
;;   GST_H264_PROFILE_SCALABLE_BASELINE    = 83,
;;   GST_H264_PROFILE_SCALABLE_HIGH        = 86
;; } GstH264Profile;

(define-enum-extended H264Profile
  (in-module "Gst")
  (c-name "GstH264Profile")
  (values
    '("baseline" "GST_H264_PROFILE_BASELINE" "66")
    '("main" "GST_H264_PROFILE_MAIN" "77")
    '("extended" "GST_H264_PROFILE_EXTENDED" "88")
    '("high" "GST_H264_PROFILE_HIGH" "100")
    '("high10" "GST_H264_PROFILE_HIGH10" "110")
    '("high-422" "GST_H264_PROFILE_HIGH_422" "122")
    '("high-444" "GST_H264_PROFILE_HIGH_444" "244")
    '("multiview-high" "GST_H264_PROFILE_MULTIVIEW_HIGH" "118")
    '("stereo-high" "GST_H264_PROFILE_STEREO_HIGH" "128")
    '("scalable-baseline" "GST_H264_PROFILE_SCALABLE_BASELINE" "83")
    '("scalable-high" "GST_H264_PROFILE_SCALABLE_HIGH" "86")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_NAL_UNKNOWN      = 0,
;;   GST_H264_NAL_SLICE        = 1,
;;   GST_H264_NAL_SLICE_DPA    = 2,
;;   GST_H264_NAL_SLICE_DPB    = 3,
;;   GST_H264_NAL_SLICE_DPC    = 4,
;;   GST_H264_NAL_SLICE_IDR    = 5,
;;   GST_H264_NAL_SEI          = 6,
;;   GST_H264_NAL_SPS          = 7,
;;   GST_H264_NAL_PPS          = 8,
;;   GST_H264_NAL_AU_DELIMITER = 9,
;;   GST_H264_NAL_SEQ_END      = 10,
;;   GST_H264_NAL_STREAM_END   = 11,
;;   GST_H264_NAL_FILLER_DATA  = 12,
;;   GST_H264_NAL_SPS_EXT      = 13,
;;   GST_H264_NAL_PREFIX_UNIT  = 14,
;;   GST_H264_NAL_SUBSET_SPS   = 15,
;;   GST_H264_NAL_DEPTH_SPS    = 16,
;;   GST_H264_NAL_SLICE_AUX    = 19,
;;   GST_H264_NAL_SLICE_EXT    = 20,
;;   GST_H264_NAL_SLICE_DEPTH  = 21
;; } GstH264NalUnitType;

(define-enum-extended H264NalUnitType
  (in-module "Gst")
  (c-name "GstH264NalUnitType")
  (values
    '("unknown" "GST_H264_NAL_UNKNOWN" "0")
    '("slice" "GST_H264_NAL_SLICE" "1")
    '("slice-dpa" "GST_H264_NAL_SLICE_DPA" "2")
    '("slice-dpb" "GST_H264_NAL_SLICE_DPB" "3")
    '("slice-dpc" "GST_H264_NAL_SLICE_DPC" "4")
    '("slice-idr" "GST_H264_NAL_SLICE_IDR" "5")
    '("sei" "GST_H264_NAL_SEI" "6")
    '("sps" "GST_H264_NAL_SPS" "7")
    '("pps" "GST_H264_NAL_PPS" "8")
    '("au-delimiter" "GST_H264_NAL_AU_DELIMITER" "9")
    '("seq-end" "GST_H264_NAL_SEQ_END" "10")
    '("stream-end" "GST_H264_NAL_STREAM_END" "11")
    '("filler-data" "GST_H264_NAL_FILLER_DATA" "12")
    '("sps-ext" "GST_H264_NAL_SPS_EXT" "13")
    '("prefix-unit" "GST_H264_NAL_PREFIX_UNIT" "14")
    '("subset-sps" "GST_H264_NAL_SUBSET_SPS" "15")
    '("depth-sps" "GST_H264_NAL_DEPTH_SPS" "16")
    '("slice-aux" "GST_H264_NAL_SLICE_AUX" "19")
    '("slice-ext" "GST_H264_NAL_SLICE_EXT" "20")
    '("slice-depth" "GST_H264_NAL_SLICE_DEPTH" "21")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_NAL_EXTENSION_NONE = 0,
;;   GST_H264_NAL_EXTENSION_SVC,
;;   GST_H264_NAL_EXTENSION_MVC,
;; } GstH264NalUnitExtensionType;

(define-enum-extended H264NalUnitExtensionType
  (in-module "Gst")
  (c-name "GstH264NalUnitExtensionType")
  (values
    '("none" "GST_H264_NAL_EXTENSION_NONE" "0")
    '("svc" "GST_H264_NAL_EXTENSION_SVC" "1")
    '("mvc" "GST_H264_NAL_EXTENSION_MVC" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_PARSER_OK,
;;   GST_H264_PARSER_BROKEN_DATA,
;;   GST_H264_PARSER_BROKEN_LINK,
;;   GST_H264_PARSER_ERROR,
;;   GST_H264_PARSER_NO_NAL,
;;   GST_H264_PARSER_NO_NAL_END
;; } GstH264ParserResult;

(define-enum-extended H264ParserResult
  (in-module "Gst")
  (c-name "GstH264ParserResult")
  (values
    '("ok" "GST_H264_PARSER_OK" "0")
    '("broken-data" "GST_H264_PARSER_BROKEN_DATA" "1")
    '("broken-link" "GST_H264_PARSER_BROKEN_LINK" "2")
    '("error" "GST_H264_PARSER_ERROR" "3")
    '("no-nal" "GST_H264_PARSER_NO_NAL" "4")
    '("no-nal-end" "GST_H264_PARSER_NO_NAL_END" "5")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_FRAME_PACKING_NONE                           = 6,
;;   GST_H264_FRAME_PACKING_CHECKERBOARD_INTERLEAVING      = 0,
;;   GST_H264_FRAME_PACKING_COLUMN_INTERLEAVING            = 1,
;;   GST_H264_FRAME_PACKING_ROW_INTERLEAVING               = 2,
;;   GST_H264_FRAME_PACKING_SIDE_BY_SIDE                   = 3,
;;   GST_H264_FRMAE_PACKING_TOP_BOTTOM                     = 4,
;;   GST_H264_FRAME_PACKING_TEMPORAL_INTERLEAVING          = 5
;; } GstH264FramePackingType;

(define-enum-extended H264FramePackingType
  (in-module "Gst")
  (c-name "GstH264FramePackingType")
  (values
    '("frame-packing-none" "GST_H264_FRAME_PACKING_NONE" "6")
    '("frame-packing-checkerboard-interleaving" "GST_H264_FRAME_PACKING_CHECKERBOARD_INTERLEAVING" "0")
    '("frame-packing-column-interleaving" "GST_H264_FRAME_PACKING_COLUMN_INTERLEAVING" "1")
    '("frame-packing-row-interleaving" "GST_H264_FRAME_PACKING_ROW_INTERLEAVING" "2")
    '("frame-packing-side-by-side" "GST_H264_FRAME_PACKING_SIDE_BY_SIDE" "3")
    '("frmae-packing-top-bottom" "GST_H264_FRMAE_PACKING_TOP_BOTTOM" "4")
    '("frame-packing-temporal-interleaving" "GST_H264_FRAME_PACKING_TEMPORAL_INTERLEAVING" "5")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_SEI_BUF_PERIOD = 0,
;;   GST_H264_SEI_PIC_TIMING = 1,
;;   GST_H264_SEI_RECOVERY_POINT = 6,
;;   GST_H264_SEI_STEREO_VIDEO_INFO = 21,
;;   GST_H264_SEI_FRAME_PACKING = 45
;;       /* and more...  */
;; } GstH264SEIPayloadType;

(define-enum-extended H264SEIPayloadType
  (in-module "Gst")
  (c-name "GstH264SEIPayloadType")
  (values
    '("buf-period" "GST_H264_SEI_BUF_PERIOD" "0")
    '("pic-timing" "GST_H264_SEI_PIC_TIMING" "1")
    '("recovery-point" "GST_H264_SEI_RECOVERY_POINT" "6")
    '("stereo-video-info" "GST_H264_SEI_STEREO_VIDEO_INFO" "21")
    '("frame-packing" "GST_H264_SEI_FRAME_PACKING" "45")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_SEI_PIC_STRUCT_FRAME             = 0,
;;   GST_H264_SEI_PIC_STRUCT_TOP_FIELD         = 1,
;;   GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD      = 2,
;;   GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM        = 3,
;;   GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP        = 4,
;;   GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP    = 5,
;;   GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6,
;;   GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING    = 7,
;;   GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING    = 8
;; } GstH264SEIPicStructType;

(define-enum-extended H264SEIPicStructType
  (in-module "Gst")
  (c-name "GstH264SEIPicStructType")
  (values
    '("frame" "GST_H264_SEI_PIC_STRUCT_FRAME" "0")
    '("top-field" "GST_H264_SEI_PIC_STRUCT_TOP_FIELD" "1")
    '("bottom-field" "GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD" "2")
    '("top-bottom" "GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM" "3")
    '("bottom-top" "GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP" "4")
    '("top-bottom-top" "GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP" "5")
    '("bottom-top-bottom" "GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM" "6")
    '("frame-doubling" "GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING" "7")
    '("frame-tripling" "GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING" "8")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H264_P_SLICE    = 0,
;;   GST_H264_B_SLICE    = 1,
;;   GST_H264_I_SLICE    = 2,
;;   GST_H264_SP_SLICE   = 3,
;;   GST_H264_SI_SLICE   = 4,
;;   GST_H264_S_P_SLICE  = 5,
;;   GST_H264_S_B_SLICE  = 6,
;;   GST_H264_S_I_SLICE  = 7,
;;   GST_H264_S_SP_SLICE = 8,
;;   GST_H264_S_SI_SLICE = 9
;; } GstH264SliceType;

(define-enum-extended H264SliceType
  (in-module "Gst")
  (c-name "GstH264SliceType")
  (values
    '("p-slice" "GST_H264_P_SLICE" "0")
    '("b-slice" "GST_H264_B_SLICE" "1")
    '("i-slice" "GST_H264_I_SLICE" "2")
    '("sp-slice" "GST_H264_SP_SLICE" "3")
    '("si-slice" "GST_H264_SI_SLICE" "4")
    '("s-p-slice" "GST_H264_S_P_SLICE" "5")
    '("s-b-slice" "GST_H264_S_B_SLICE" "6")
    '("s-i-slice" "GST_H264_S_I_SLICE" "7")
    '("s-sp-slice" "GST_H264_S_SP_SLICE" "8")
    '("s-si-slice" "GST_H264_S_SI_SLICE" "9")
  )
)

;; From gsth265parser.h

;; Original typedef:
;; typedef enum {
;;   GST_H265_PROFILE_MAIN                 = 1,
;;   GST_H265_PROFILE_MAIN_10              = 2,
;;   GST_H265_PROFILE_MAIN_STILL_PICTURE   = 3
;; } GstH265Profile;

(define-enum-extended H265Profile
  (in-module "Gst")
  (c-name "GstH265Profile")
  (values
    '("main" "GST_H265_PROFILE_MAIN" "1")
    '("main-10" "GST_H265_PROFILE_MAIN_10" "2")
    '("main-still-picture" "GST_H265_PROFILE_MAIN_STILL_PICTURE" "3")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_NAL_SLICE_TRAIL_N    = 0,
;;   GST_H265_NAL_SLICE_TRAIL_R    = 1,
;;   GST_H265_NAL_SLICE_TSA_N      = 2,
;;   GST_H265_NAL_SLICE_TSA_R      = 3,
;;   GST_H265_NAL_SLICE_STSA_N     = 4,
;;   GST_H265_NAL_SLICE_STSA_R     = 5,
;;   GST_H265_NAL_SLICE_RADL_N     = 6,
;;   GST_H265_NAL_SLICE_RADL_R     = 7,
;;   GST_H265_NAL_SLICE_RASL_N     = 8,
;;   GST_H265_NAL_SLICE_RASL_R     = 9,
;;   GST_H265_NAL_SLICE_BLA_W_LP   = 16,
;;   GST_H265_NAL_SLICE_BLA_W_RADL = 17,
;;   GST_H265_NAL_SLICE_BLA_N_LP   = 18,
;;   GST_H265_NAL_SLICE_IDR_W_RADL = 19,
;;   GST_H265_NAL_SLICE_IDR_N_LP   = 20,
;;   GST_H265_NAL_SLICE_CRA_NUT    = 21,
;;   GST_H265_NAL_VPS              = 32,
;;   GST_H265_NAL_SPS              = 33,
;;   GST_H265_NAL_PPS              = 34,
;;   GST_H265_NAL_AUD              = 35,
;;   GST_H265_NAL_EOS              = 36,
;;   GST_H265_NAL_EOB              = 37,
;;   GST_H265_NAL_FD               = 38,
;;   GST_H265_NAL_PREFIX_SEI       = 39,
;;   GST_H265_NAL_SUFFIX_SEI       = 40
;; } GstH265NalUnitType;

(define-enum-extended H265NalUnitType
  (in-module "Gst")
  (c-name "GstH265NalUnitType")
  (values
    '("slice-trail-n" "GST_H265_NAL_SLICE_TRAIL_N" "0")
    '("slice-trail-r" "GST_H265_NAL_SLICE_TRAIL_R" "1")
    '("slice-tsa-n" "GST_H265_NAL_SLICE_TSA_N" "2")
    '("slice-tsa-r" "GST_H265_NAL_SLICE_TSA_R" "3")
    '("slice-stsa-n" "GST_H265_NAL_SLICE_STSA_N" "4")
    '("slice-stsa-r" "GST_H265_NAL_SLICE_STSA_R" "5")
    '("slice-radl-n" "GST_H265_NAL_SLICE_RADL_N" "6")
    '("slice-radl-r" "GST_H265_NAL_SLICE_RADL_R" "7")
    '("slice-rasl-n" "GST_H265_NAL_SLICE_RASL_N" "8")
    '("slice-rasl-r" "GST_H265_NAL_SLICE_RASL_R" "9")
    '("slice-bla-w-lp" "GST_H265_NAL_SLICE_BLA_W_LP" "16")
    '("slice-bla-w-radl" "GST_H265_NAL_SLICE_BLA_W_RADL" "17")
    '("slice-bla-n-lp" "GST_H265_NAL_SLICE_BLA_N_LP" "18")
    '("slice-idr-w-radl" "GST_H265_NAL_SLICE_IDR_W_RADL" "19")
    '("slice-idr-n-lp" "GST_H265_NAL_SLICE_IDR_N_LP" "20")
    '("slice-cra-nut" "GST_H265_NAL_SLICE_CRA_NUT" "21")
    '("vps" "GST_H265_NAL_VPS" "32")
    '("sps" "GST_H265_NAL_SPS" "33")
    '("pps" "GST_H265_NAL_PPS" "34")
    '("aud" "GST_H265_NAL_AUD" "35")
    '("eos" "GST_H265_NAL_EOS" "36")
    '("eob" "GST_H265_NAL_EOB" "37")
    '("fd" "GST_H265_NAL_FD" "38")
    '("prefix-sei" "GST_H265_NAL_PREFIX_SEI" "39")
    '("suffix-sei" "GST_H265_NAL_SUFFIX_SEI" "40")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_PARSER_OK,
;;   GST_H265_PARSER_BROKEN_DATA,
;;   GST_H265_PARSER_BROKEN_LINK,
;;   GST_H265_PARSER_ERROR,
;;   GST_H265_PARSER_NO_NAL,
;;   GST_H265_PARSER_NO_NAL_END
;; } GstH265ParserResult;

(define-enum-extended H265ParserResult
  (in-module "Gst")
  (c-name "GstH265ParserResult")
  (values
    '("ok" "GST_H265_PARSER_OK" "0")
    '("broken-data" "GST_H265_PARSER_BROKEN_DATA" "1")
    '("broken-link" "GST_H265_PARSER_BROKEN_LINK" "2")
    '("error" "GST_H265_PARSER_ERROR" "3")
    '("no-nal" "GST_H265_PARSER_NO_NAL" "4")
    '("no-nal-end" "GST_H265_PARSER_NO_NAL_END" "5")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_SEI_BUF_PERIOD = 0,
;;   GST_H265_SEI_PIC_TIMING = 1
;;       /* and more...  */
;; } GstH265SEIPayloadType;

(define-enum-extended H265SEIPayloadType
  (in-module "Gst")
  (c-name "GstH265SEIPayloadType")
  (values
    '("buf-period" "GST_H265_SEI_BUF_PERIOD" "0")
    '("pic-timing" "GST_H265_SEI_PIC_TIMING" "1")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_SEI_PIC_STRUCT_FRAME                         = 0,
;;   GST_H265_SEI_PIC_STRUCT_TOP_FIELD                     = 1,
;;   GST_H265_SEI_PIC_STRUCT_BOTTOM_FIELD                  = 2,
;;   GST_H265_SEI_PIC_STRUCT_TOP_BOTTOM                    = 3,
;;   GST_H265_SEI_PIC_STRUCT_BOTTOM_TOP                    = 4,
;;   GST_H265_SEI_PIC_STRUCT_TOP_BOTTOM_TOP                = 5,
;;   GST_H265_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM             = 6,
;;   GST_H265_SEI_PIC_STRUCT_FRAME_DOUBLING                = 7,
;;   GST_H265_SEI_PIC_STRUCT_FRAME_TRIPLING                = 8,
;;   GST_H265_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM    = 9,
;;   GST_H265_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP    = 10,
;;   GST_H265_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM        = 11,
;;   GST_H265_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP        = 12
;; } GstH265SEIPicStructType;

(define-enum-extended H265SEIPicStructType
  (in-module "Gst")
  (c-name "GstH265SEIPicStructType")
  (values
    '("frame" "GST_H265_SEI_PIC_STRUCT_FRAME" "0")
    '("top-field" "GST_H265_SEI_PIC_STRUCT_TOP_FIELD" "1")
    '("bottom-field" "GST_H265_SEI_PIC_STRUCT_BOTTOM_FIELD" "2")
    '("top-bottom" "GST_H265_SEI_PIC_STRUCT_TOP_BOTTOM" "3")
    '("bottom-top" "GST_H265_SEI_PIC_STRUCT_BOTTOM_TOP" "4")
    '("top-bottom-top" "GST_H265_SEI_PIC_STRUCT_TOP_BOTTOM_TOP" "5")
    '("bottom-top-bottom" "GST_H265_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM" "6")
    '("frame-doubling" "GST_H265_SEI_PIC_STRUCT_FRAME_DOUBLING" "7")
    '("frame-tripling" "GST_H265_SEI_PIC_STRUCT_FRAME_TRIPLING" "8")
    '("top-paired-previous-bottom" "GST_H265_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM" "9")
    '("bottom-paired-previous-top" "GST_H265_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP" "10")
    '("top-paired-next-bottom" "GST_H265_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM" "11")
    '("bottom-paired-next-top" "GST_H265_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP" "12")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_B_SLICE    = 0,
;;   GST_H265_P_SLICE    = 1,
;;   GST_H265_I_SLICE    = 2
;; } GstH265SliceType;

(define-enum-extended H265SliceType
  (in-module "Gst")
  (c-name "GstH265SliceType")
  (values
    '("b-slice" "GST_H265_B_SLICE" "0")
    '("p-slice" "GST_H265_P_SLICE" "1")
    '("i-slice" "GST_H265_I_SLICE" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_H265_QUANT_MATIX_4X4   = 0,
;;   GST_H265_QUANT_MATIX_8X8   = 1,
;;   GST_H265_QUANT_MATIX_16X16 = 2,
;;   GST_H265_QUANT_MATIX_32X32 = 3
;; } GstH265QuantMatrixSize;

(define-enum-extended H265QuantMatrixSize
  (in-module "Gst")
  (c-name "GstH265QuantMatrixSize")
  (values
    '("4x4" "GST_H265_QUANT_MATIX_4X4" "0")
    '("8x8" "GST_H265_QUANT_MATIX_8X8" "1")
    '("16x16" "GST_H265_QUANT_MATIX_16X16" "2")
    '("32x32" "GST_H265_QUANT_MATIX_32X32" "3")
  )
)

;; From gstjpegparser.h

;; Original typedef:
;; typedef enum {
;;   GST_JPEG_MARKER_SOF0          = 0xC0,
;;   GST_JPEG_MARKER_SOF1          = 0xC1,
;;   GST_JPEG_MARKER_SOF2          = 0xC2,
;;   GST_JPEG_MARKER_SOF3          = 0xC3,
;;   /* 0xC4 = DHT see below */
;;   GST_JPEG_MARKER_SOF5          = 0xC5,
;;   GST_JPEG_MARKER_SOF6          = 0xC6,
;;   GST_JPEG_MARKER_SOF7          = 0xC7,
;;   /* 0xC8 = reserved */
;;   GST_JPEG_MARKER_SOF9          = 0xC9,
;;   GST_JPEG_MARKER_SOF10         = 0xCA,
;;   GST_JPEG_MARKER_SOF11         = 0xCB,
;;   /* 0xCC = DAC see below */
;;   GST_JPEG_MARKER_SOF13         = 0xCD,
;;   GST_JPEG_MARKER_SOF14         = 0xCE,
;;   GST_JPEG_MARKER_SOF15         = 0xCF,
;;   GST_JPEG_MARKER_DHT           = 0xC4,
;;   GST_JPEG_MARKER_DAC           = 0xCC,
;;   GST_JPEG_MARKER_RST0          = 0xD0,
;;   GST_JPEG_MARKER_RST1          = 0xD1,
;;   GST_JPEG_MARKER_RST2          = 0xD2,
;;   GST_JPEG_MARKER_RST3          = 0xD3,
;;   GST_JPEG_MARKER_RST4          = 0xD4,
;;   GST_JPEG_MARKER_RST5          = 0xD5,
;;   GST_JPEG_MARKER_RST6          = 0xD6,
;;   GST_JPEG_MARKER_RST7          = 0xD7,
;;   GST_JPEG_MARKER_SOI           = 0xD8,
;;   GST_JPEG_MARKER_EOI           = 0xD9,
;;   GST_JPEG_MARKER_SOS           = 0xDA,
;;   GST_JPEG_MARKER_DQT           = 0xDB,
;;   GST_JPEG_MARKER_DNL           = 0xDC,
;;   GST_JPEG_MARKER_DRI           = 0xDD,
;;   GST_JPEG_MARKER_APP0          = 0xE0,
;;   GST_JPEG_MARKER_APP1          = 0xE1,
;;   GST_JPEG_MARKER_APP2          = 0xE2,
;;   GST_JPEG_MARKER_APP3          = 0xE3,
;;   GST_JPEG_MARKER_APP4          = 0xE4,
;;   GST_JPEG_MARKER_APP5          = 0xE5,
;;   GST_JPEG_MARKER_APP6          = 0xE6,
;;   GST_JPEG_MARKER_APP7          = 0xE7,
;;   GST_JPEG_MARKER_APP8          = 0xE8,
;;   GST_JPEG_MARKER_APP9          = 0xE9,
;;   GST_JPEG_MARKER_APP10         = 0xEA,
;;   GST_JPEG_MARKER_APP11         = 0xEB,
;;   GST_JPEG_MARKER_APP12         = 0xEC,
;;   GST_JPEG_MARKER_APP13         = 0xED,
;;   GST_JPEG_MARKER_APP14         = 0xEE,
;;   GST_JPEG_MARKER_APP15         = 0xEF,
;;   GST_JPEG_MARKER_COM           = 0xFE,
;; } GstJpegMarker;

(define-flags-extended JpegMarker
  (in-module "Gst")
  (c-name "GstJpegMarker")
  (values
    '("sof0" "GST_JPEG_MARKER_SOF0" "0xC0")
    '("sof1" "GST_JPEG_MARKER_SOF1" "0xC1")
    '("sof2" "GST_JPEG_MARKER_SOF2" "0xC2")
    '("sof3" "GST_JPEG_MARKER_SOF3" "0xC3")
    '("sof5" "GST_JPEG_MARKER_SOF5" "0xC5")
    '("sof6" "GST_JPEG_MARKER_SOF6" "0xC6")
    '("sof7" "GST_JPEG_MARKER_SOF7" "0xC7")
    '("sof9" "GST_JPEG_MARKER_SOF9" "0xC9")
    '("sof10" "GST_JPEG_MARKER_SOF10" "0xCA")
    '("sof11" "GST_JPEG_MARKER_SOF11" "0xCB")
    '("sof13" "GST_JPEG_MARKER_SOF13" "0xCD")
    '("sof14" "GST_JPEG_MARKER_SOF14" "0xCE")
    '("sof15" "GST_JPEG_MARKER_SOF15" "0xCF")
    '("dht" "GST_JPEG_MARKER_DHT" "0xC4")
    '("dac" "GST_JPEG_MARKER_DAC" "0xCC")
    '("rst0" "GST_JPEG_MARKER_RST0" "0xD0")
    '("rst1" "GST_JPEG_MARKER_RST1" "0xD1")
    '("rst2" "GST_JPEG_MARKER_RST2" "0xD2")
    '("rst3" "GST_JPEG_MARKER_RST3" "0xD3")
    '("rst4" "GST_JPEG_MARKER_RST4" "0xD4")
    '("rst5" "GST_JPEG_MARKER_RST5" "0xD5")
    '("rst6" "GST_JPEG_MARKER_RST6" "0xD6")
    '("rst7" "GST_JPEG_MARKER_RST7" "0xD7")
    '("soi" "GST_JPEG_MARKER_SOI" "0xD8")
    '("eoi" "GST_JPEG_MARKER_EOI" "0xD9")
    '("sos" "GST_JPEG_MARKER_SOS" "0xDA")
    '("dqt" "GST_JPEG_MARKER_DQT" "0xDB")
    '("dnl" "GST_JPEG_MARKER_DNL" "0xDC")
    '("dri" "GST_JPEG_MARKER_DRI" "0xDD")
    '("app0" "GST_JPEG_MARKER_APP0" "0xE0")
    '("app1" "GST_JPEG_MARKER_APP1" "0xE1")
    '("app2" "GST_JPEG_MARKER_APP2" "0xE2")
    '("app3" "GST_JPEG_MARKER_APP3" "0xE3")
    '("app4" "GST_JPEG_MARKER_APP4" "0xE4")
    '("app5" "GST_JPEG_MARKER_APP5" "0xE5")
    '("app6" "GST_JPEG_MARKER_APP6" "0xE6")
    '("app7" "GST_JPEG_MARKER_APP7" "0xE7")
    '("app8" "GST_JPEG_MARKER_APP8" "0xE8")
    '("app9" "GST_JPEG_MARKER_APP9" "0xE9")
    '("app10" "GST_JPEG_MARKER_APP10" "0xEA")
    '("app11" "GST_JPEG_MARKER_APP11" "0xEB")
    '("app12" "GST_JPEG_MARKER_APP12" "0xEC")
    '("app13" "GST_JPEG_MARKER_APP13" "0xED")
    '("app14" "GST_JPEG_MARKER_APP14" "0xEE")
    '("app15" "GST_JPEG_MARKER_APP15" "0xEF")
    '("com" "GST_JPEG_MARKER_COM" "0xFE")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_JPEG_PROFILE_BASELINE     = 0x00,
;;   GST_JPEG_PROFILE_EXTENDED     = 0x01,
;;   GST_JPEG_PROFILE_PROGRESSIVE  = 0x02,
;;   GST_JPEG_PROFILE_LOSSLESS     = 0x03,
;; } GstJpegProfile;

(define-flags-extended JpegProfile
  (in-module "Gst")
  (c-name "GstJpegProfile")
  (values
    '("baseline" "GST_JPEG_PROFILE_BASELINE" "0x00")
    '("extended" "GST_JPEG_PROFILE_EXTENDED" "0x01")
    '("progressive" "GST_JPEG_PROFILE_PROGRESSIVE" "0x02")
    '("lossless" "GST_JPEG_PROFILE_LOSSLESS" "0x03")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_JPEG_ENTROPY_CODING_HUFFMAN       = 0x00,
;;   GST_JPEG_ENTROPY_CODING_ARITHMETIC    = 0x08
;; } GstJpegEntropyCodingMode;

(define-flags-extended JpegEntropyCodingMode
  (in-module "Gst")
  (c-name "GstJpegEntropyCodingMode")
  (values
    '("huffman" "GST_JPEG_ENTROPY_CODING_HUFFMAN" "0x00")
    '("arithmetic" "GST_JPEG_ENTROPY_CODING_ARITHMETIC" "0x08")
  )
)

;; From gstmpeg4parser.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_MPEG4_VIDEO_OBJ_FIRST      = 0x00,
;;   GST_MPEG4_VIDEO_OBJ_LAST       = 0x1f,
;;   GST_MPEG4_VIDEO_LAYER_FIRST    = 0x20,
;;   GST_MPEG4_VIDEO_LAYER_LAST     = 0x2f,
;;   GST_MPEG4_VISUAL_OBJ_SEQ_START = 0xb0,
;;   GST_MPEG4_VISUAL_OBJ_SEQ_END   = 0xb1,
;;   GST_MPEG4_USER_DATA            = 0xb2,
;;   GST_MPEG4_GROUP_OF_VOP         = 0xb3,
;;   GST_MPEG4_VIDEO_SESSION_ERR    = 0xb4,
;;   GST_MPEG4_VISUAL_OBJ           = 0xb5,
;;   GST_MPEG4_VIDEO_OBJ_PLANE      = 0xb6,
;;   GST_MPEG4_FBA                  = 0xba,
;;   GST_MPEG4_FBA_PLAN             = 0xbb,
;;   GST_MPEG4_MESH                 = 0xbc,
;;   GST_MPEG4_MESH_PLAN            = 0xbd,
;;   GST_MPEG4_STILL_TEXTURE_OBJ    = 0xbe,
;;   GST_MPEG4_TEXTURE_SPATIAL      = 0xbf,
;;   GST_MPEG4_TEXTURE_SNR_LAYER    = 0xc0,
;;   GST_MPEG4_TEXTURE_TILE         = 0xc1,
;;   GST_MPEG4_SHAPE_LAYER          = 0xc2,
;;   GST_MPEG4_STUFFING             = 0xc3,
;;   GST_MPEG4_SYSTEM_FIRST         = 0xc6,
;;   GST_MPEG4_SYSTEM_LAST          = 0xff,
;;   GST_MPEG4_RESYNC               = 0xfff
;; } GstMpeg4StartCode;

(define-flags-extended Mpeg4StartCode
  (in-module "Gst")
  (c-name "GstMpeg4StartCode")
  (values
    '("video-obj-first" "GST_MPEG4_VIDEO_OBJ_FIRST" "0x00")
    '("video-obj-last" "GST_MPEG4_VIDEO_OBJ_LAST" "0x1f")
    '("video-layer-first" "GST_MPEG4_VIDEO_LAYER_FIRST" "0x20")
    '("video-layer-last" "GST_MPEG4_VIDEO_LAYER_LAST" "0x2f")
    '("visual-obj-seq-start" "GST_MPEG4_VISUAL_OBJ_SEQ_START" "0xb0")
    '("visual-obj-seq-end" "GST_MPEG4_VISUAL_OBJ_SEQ_END" "0xb1")
    '("user-data" "GST_MPEG4_USER_DATA" "0xb2")
    '("group-of-vop" "GST_MPEG4_GROUP_OF_VOP" "0xb3")
    '("video-session-err" "GST_MPEG4_VIDEO_SESSION_ERR" "0xb4")
    '("visual-obj" "GST_MPEG4_VISUAL_OBJ" "0xb5")
    '("video-obj-plane" "GST_MPEG4_VIDEO_OBJ_PLANE" "0xb6")
    '("fba" "GST_MPEG4_FBA" "0xba")
    '("fba-plan" "GST_MPEG4_FBA_PLAN" "0xbb")
    '("mesh" "GST_MPEG4_MESH" "0xbc")
    '("mesh-plan" "GST_MPEG4_MESH_PLAN" "0xbd")
    '("still-texture-obj" "GST_MPEG4_STILL_TEXTURE_OBJ" "0xbe")
    '("texture-spatial" "GST_MPEG4_TEXTURE_SPATIAL" "0xbf")
    '("texture-snr-layer" "GST_MPEG4_TEXTURE_SNR_LAYER" "0xc0")
    '("texture-tile" "GST_MPEG4_TEXTURE_TILE" "0xc1")
    '("shape-layer" "GST_MPEG4_SHAPE_LAYER" "0xc2")
    '("stuffing" "GST_MPEG4_STUFFING" "0xc3")
    '("system-first" "GST_MPEG4_SYSTEM_FIRST" "0xc6")
    '("system-last" "GST_MPEG4_SYSTEM_LAST" "0xff")
    '("resync" "GST_MPEG4_RESYNC" "0xfff")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_VIDEO_ID         = 0x01,
;;   GST_MPEG4_STILL_TEXTURE_ID = 0x02,
;;   GST_MPEG4_STILL_MESH_ID    = 0x03,
;;   GST_MPEG4_STILL_FBA_ID     = 0x04,
;;   GST_MPEG4_STILL_3D_MESH_ID = 0x05,
;;   /*... reserved */
;; 
;; } GstMpeg4VisualObjectType;

(define-flags-extended Mpeg4VisualObjectType
  (in-module "Gst")
  (c-name "GstMpeg4VisualObjectType")
  (values
    '("video-id" "GST_MPEG4_VIDEO_ID" "0x01")
    '("still-texture-id" "GST_MPEG4_STILL_TEXTURE_ID" "0x02")
    '("still-mesh-id" "GST_MPEG4_STILL_MESH_ID" "0x03")
    '("still-fba-id" "GST_MPEG4_STILL_FBA_ID" "0x04")
    '("still-3d-mesh-id" "GST_MPEG4_STILL_3D_MESH_ID" "0x05")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_SQUARE        = 0x01,
;;   GST_MPEG4_625_TYPE_4_3  = 0x02,
;;   GST_MPEG4_525_TYPE_4_3  = 0x03,
;;   GST_MPEG4_625_TYPE_16_9 = 0x04,
;;   GST_MPEG4_525_TYPE_16_9 = 0x05,
;;   GST_MPEG4_EXTENDED_PAR  = 0x0f,
;; } GstMpeg4AspectRatioInfo;

(define-flags-extended Mpeg4AspectRatioInfo
  (in-module "Gst")
  (c-name "GstMpeg4AspectRatioInfo")
  (values
    '("square" "GST_MPEG4_SQUARE" "0x01")
    '("625-type-4-3" "GST_MPEG4_625_TYPE_4_3" "0x02")
    '("525-type-4-3" "GST_MPEG4_525_TYPE_4_3" "0x03")
    '("625-type-16-9" "GST_MPEG4_625_TYPE_16_9" "0x04")
    '("525-type-16-9" "GST_MPEG4_525_TYPE_16_9" "0x05")
    '("extended-par" "GST_MPEG4_EXTENDED_PAR" "0x0f")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_PARSER_OK,
;;   GST_MPEG4_PARSER_BROKEN_DATA,
;;   GST_MPEG4_PARSER_NO_PACKET,
;;   GST_MPEG4_PARSER_NO_PACKET_END,
;;   GST_MPEG4_PARSER_ERROR,
;; } GstMpeg4ParseResult;

(define-enum-extended Mpeg4ParseResult
  (in-module "Gst")
  (c-name "GstMpeg4ParseResult")
  (values
    '("ok" "GST_MPEG4_PARSER_OK" "0")
    '("broken-data" "GST_MPEG4_PARSER_BROKEN_DATA" "1")
    '("no-packet" "GST_MPEG4_PARSER_NO_PACKET" "2")
    '("no-packet-end" "GST_MPEG4_PARSER_NO_PACKET_END" "3")
    '("error" "GST_MPEG4_PARSER_ERROR" "4")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_I_VOP = 0x0,
;;   GST_MPEG4_P_VOP = 0x1,
;;   GST_MPEG4_B_VOP = 0x2,
;;   GST_MPEG4_S_VOP = 0x3
;; } GstMpeg4VideoObjectCodingType;

(define-flags-extended Mpeg4VideoObjectCodingType
  (in-module "Gst")
  (c-name "GstMpeg4VideoObjectCodingType")
  (values
    '("i-vop" "GST_MPEG4_I_VOP" "0x0")
    '("p-vop" "GST_MPEG4_P_VOP" "0x1")
    '("b-vop" "GST_MPEG4_B_VOP" "0x2")
    '("s-vop" "GST_MPEG4_S_VOP" "0x3")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* Other value are reserved */
;;   GST_MPEG4_CHROMA_4_2_0 = 0x01
;; } GstMpeg4ChromaFormat;

(define-flags-extended Mpeg4ChromaFormat
  (in-module "Gst")
  (c-name "GstMpeg4ChromaFormat")
  (values
    '("4-2-0" "GST_MPEG4_CHROMA_4_2_0" "0x01")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_RECTANGULAR,
;;   GST_MPEG4_BINARY,
;;   GST_MPEG4_BINARY_ONLY,
;;   GST_MPEG4_GRAYSCALE
;; } GstMpeg4VideoObjectLayerShape;

(define-enum-extended Mpeg4VideoObjectLayerShape
  (in-module "Gst")
  (c-name "GstMpeg4VideoObjectLayerShape")
  (values
    '("rectangular" "GST_MPEG4_RECTANGULAR" "0")
    '("binary" "GST_MPEG4_BINARY" "1")
    '("binary-only" "GST_MPEG4_BINARY_ONLY" "2")
    '("grayscale" "GST_MPEG4_GRAYSCALE" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_SPRITE_UNUSED,
;;   GST_MPEG4_SPRITE_STATIC,
;;   GST_MPEG4_SPRITE_GMG
;; } GstMpeg4SpriteEnable;

(define-enum-extended Mpeg4SpriteEnable
  (in-module "Gst")
  (c-name "GstMpeg4SpriteEnable")
  (values
    '("unused" "GST_MPEG4_SPRITE_UNUSED" "0")
    '("static" "GST_MPEG4_SPRITE_STATIC" "1")
    '("gmg" "GST_MPEG4_SPRITE_GMG" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_PROFILE_CORE,
;;   GST_MPEG4_PROFILE_MAIN,
;;   GST_MPEG4_PROFILE_N_BIT,
;;   GST_MPEG4_PROFILE_SIMPLE,
;;   GST_MPEG4_PROFILE_HYBRID,
;;   GST_MPEG4_PROFILE_RESERVED,
;;   GST_MPEG4_PROFILE_SIMPLE_FBA,
;;   GST_MPEG4_PROFILE_CORE_STUDIO,
;;   GST_MPEG4_PROFILE_SIMPLE_STUDIO,
;;   GST_MPEG4_PROFILE_CORE_SCALABLE,
;;   GST_MPEG4_PROFILE_ADVANCED_CORE,
;;   GST_MPEG4_PROFILE_ADVANCED_SIMPLE,
;;   GST_MPEG4_PROFILE_SIMPLE_SCALABLE,
;;   GST_MPEG4_PROFILE_SCALABLE_TEXTURE,
;;   GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION,
;;   GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE,
;;   GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE,
;;   GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE,
;;   GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE,
;;   GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY
;; } GstMpeg4Profile;

(define-enum-extended Mpeg4Profile
  (in-module "Gst")
  (c-name "GstMpeg4Profile")
  (values
    '("core" "GST_MPEG4_PROFILE_CORE" "0")
    '("main" "GST_MPEG4_PROFILE_MAIN" "1")
    '("n-bit" "GST_MPEG4_PROFILE_N_BIT" "2")
    '("simple" "GST_MPEG4_PROFILE_SIMPLE" "3")
    '("hybrid" "GST_MPEG4_PROFILE_HYBRID" "4")
    '("reserved" "GST_MPEG4_PROFILE_RESERVED" "5")
    '("simple-fba" "GST_MPEG4_PROFILE_SIMPLE_FBA" "6")
    '("core-studio" "GST_MPEG4_PROFILE_CORE_STUDIO" "7")
    '("simple-studio" "GST_MPEG4_PROFILE_SIMPLE_STUDIO" "8")
    '("core-scalable" "GST_MPEG4_PROFILE_CORE_SCALABLE" "9")
    '("advanced-core" "GST_MPEG4_PROFILE_ADVANCED_CORE" "10")
    '("advanced-simple" "GST_MPEG4_PROFILE_ADVANCED_SIMPLE" "11")
    '("simple-scalable" "GST_MPEG4_PROFILE_SIMPLE_SCALABLE" "12")
    '("scalable-texture" "GST_MPEG4_PROFILE_SCALABLE_TEXTURE" "13")
    '("simple-face-animation" "GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION" "14")
    '("basic-animated-texture" "GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE" "15")
    '("advanced-realtime-simple" "GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE" "16")
    '("advanced-scalable-texture" "GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE" "17")
    '("fine-granularity-scalable" "GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE" "18")
    '("advanced-coding-efficiency" "GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY" "19")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG4_LEVEL0,
;;   GST_MPEG4_LEVEL1,
;;   GST_MPEG4_LEVEL2,
;;   GST_MPEG4_LEVEL3,
;;   GST_MPEG4_LEVEL3b,
;;   GST_MPEG4_LEVEL4,
;;   GST_MPEG4_LEVEL5,
;;   GST_MPEG4_LEVEL_RESERVED
;; } GstMpeg4Level;

(define-enum-extended Mpeg4Level
  (in-module "Gst")
  (c-name "GstMpeg4Level")
  (values
    '("level0" "GST_MPEG4_LEVEL0" "0")
    '("level1" "GST_MPEG4_LEVEL1" "1")
    '("level2" "GST_MPEG4_LEVEL2" "2")
    '("level3" "GST_MPEG4_LEVEL3" "3")
    '("level3b" "GST_MPEG4_LEVEL3b" "4")
    '("level4" "GST_MPEG4_LEVEL4" "5")
    '("level5" "GST_MPEG4_LEVEL5" "6")
    '("level-reserved" "GST_MPEG4_LEVEL_RESERVED" "7")
  )
)

;; From gstmpegvideoparser.h

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_PACKET_PICTURE      = 0x00,
;;   GST_MPEG_VIDEO_PACKET_SLICE_MIN    = 0x01,
;;   GST_MPEG_VIDEO_PACKET_SLICE_MAX    = 0xaf,
;;   GST_MPEG_VIDEO_PACKET_USER_DATA    = 0xb2,
;;   GST_MPEG_VIDEO_PACKET_SEQUENCE     = 0xb3,
;;   GST_MPEG_VIDEO_PACKET_EXTENSION    = 0xb5,
;;   GST_MPEG_VIDEO_PACKET_SEQUENCE_END = 0xb7,
;;   GST_MPEG_VIDEO_PACKET_GOP          = 0xb8,
;;   GST_MPEG_VIDEO_PACKET_NONE         = 0xff
;; } GstMpegVideoPacketTypeCode;

(define-flags-extended MpegVideoPacketTypeCode
  (in-module "Gst")
  (c-name "GstMpegVideoPacketTypeCode")
  (values
    '("picture" "GST_MPEG_VIDEO_PACKET_PICTURE" "0x00")
    '("slice-min" "GST_MPEG_VIDEO_PACKET_SLICE_MIN" "0x01")
    '("slice-max" "GST_MPEG_VIDEO_PACKET_SLICE_MAX" "0xaf")
    '("user-data" "GST_MPEG_VIDEO_PACKET_USER_DATA" "0xb2")
    '("sequence" "GST_MPEG_VIDEO_PACKET_SEQUENCE" "0xb3")
    '("extension" "GST_MPEG_VIDEO_PACKET_EXTENSION" "0xb5")
    '("sequence-end" "GST_MPEG_VIDEO_PACKET_SEQUENCE_END" "0xb7")
    '("gop" "GST_MPEG_VIDEO_PACKET_GOP" "0xb8")
    '("none" "GST_MPEG_VIDEO_PACKET_NONE" "0xff")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE          = 0x01,
;;   GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY  = 0x02,
;;   GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX      = 0x03,
;;   GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_SCALABLE = 0x05,
;;   GST_MPEG_VIDEO_PACKET_EXT_PICTURE           = 0x08
;; } GstMpegVideoPacketExtensionCode;

(define-flags-extended MpegVideoPacketExtensionCode
  (in-module "Gst")
  (c-name "GstMpegVideoPacketExtensionCode")
  (values
    '("sequence" "GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE" "0x01")
    '("sequence-display" "GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY" "0x02")
    '("quant-matrix" "GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX" "0x03")
    '("sequence-scalable" "GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_SCALABLE" "0x05")
    '("picture" "GST_MPEG_VIDEO_PACKET_EXT_PICTURE" "0x08")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_DATA_PARTITIONING  = 0x00,
;;   GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_SPATIAL            = 0x01,
;;   GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_SNR                = 0x02,
;;   GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_TEMPORAL           = 0x03
;; } GstMpegVideoSequenceScalableMode;

(define-flags-extended MpegVideoSequenceScalableMode
  (in-module "Gst")
  (c-name "GstMpegVideoSequenceScalableMode")
  (values
    '("data-partitioning" "GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_DATA_PARTITIONING" "0x00")
    '("spatial" "GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_SPATIAL" "0x01")
    '("snr" "GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_SNR" "0x02")
    '("temporal" "GST_MPEG_VIDEO_SEQ_SCALABLE_MODE_TEMPORAL" "0x03")
  )
)

;; Original typedef:
;; typedef enum {
;;  GST_MPEG_VIDEO_LEVEL_HIGH      = 0x04,
;;  GST_MPEG_VIDEO_LEVEL_HIGH_1440 = 0x06,
;;  GST_MPEG_VIDEO_LEVEL_MAIN      = 0x08,
;;  GST_MPEG_VIDEO_LEVEL_LOW       = 0x0a
;; } GstMpegVideoLevel;

(define-flags-extended MpegVideoLevel
  (in-module "Gst")
  (c-name "GstMpegVideoLevel")
  (values
    '("high" "GST_MPEG_VIDEO_LEVEL_HIGH" "0x04")
    '("high-1440" "GST_MPEG_VIDEO_LEVEL_HIGH_1440" "0x06")
    '("main" "GST_MPEG_VIDEO_LEVEL_MAIN" "0x08")
    '("low" "GST_MPEG_VIDEO_LEVEL_LOW" "0x0a")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_PROFILE_422                 = 0x00,
;;   GST_MPEG_VIDEO_PROFILE_HIGH                = 0x01,
;;   GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE  = 0x02,
;;   GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE        = 0x03,
;;   GST_MPEG_VIDEO_PROFILE_MAIN                = 0x04,
;;   GST_MPEG_VIDEO_PROFILE_SIMPLE              = 0x05
;; } GstMpegVideoProfile;

(define-flags-extended MpegVideoProfile
  (in-module "Gst")
  (c-name "GstMpegVideoProfile")
  (values
    '("422" "GST_MPEG_VIDEO_PROFILE_422" "0x00")
    '("high" "GST_MPEG_VIDEO_PROFILE_HIGH" "0x01")
    '("spatially-scalable" "GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE" "0x02")
    '("snr-scalable" "GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE" "0x03")
    '("main" "GST_MPEG_VIDEO_PROFILE_MAIN" "0x04")
    '("simple" "GST_MPEG_VIDEO_PROFILE_SIMPLE" "0x05")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_CHROMA_RES = 0x00,
;;   GST_MPEG_VIDEO_CHROMA_420 = 0x01,
;;   GST_MPEG_VIDEO_CHROMA_422 = 0x02,
;;   GST_MPEG_VIDEO_CHROMA_444 = 0x03,
;; } GstMpegVideoChromaFormat;

(define-flags-extended MpegVideoChromaFormat
  (in-module "Gst")
  (c-name "GstMpegVideoChromaFormat")
  (values
    '("res" "GST_MPEG_VIDEO_CHROMA_RES" "0x00")
    '("420" "GST_MPEG_VIDEO_CHROMA_420" "0x01")
    '("422" "GST_MPEG_VIDEO_CHROMA_422" "0x02")
    '("444" "GST_MPEG_VIDEO_CHROMA_444" "0x03")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEG_VIDEO_PICTURE_TYPE_I = 0x01,
;;   GST_MPEG_VIDEO_PICTURE_TYPE_P = 0x02,
;;   GST_MPEG_VIDEO_PICTURE_TYPE_B = 0x03,
;;   GST_MPEG_VIDEO_PICTURE_TYPE_D = 0x04
;; } GstMpegVideoPictureType;

(define-flags-extended MpegVideoPictureType
  (in-module "Gst")
  (c-name "GstMpegVideoPictureType")
  (values
    '("i" "GST_MPEG_VIDEO_PICTURE_TYPE_I" "0x01")
    '("p" "GST_MPEG_VIDEO_PICTURE_TYPE_P" "0x02")
    '("b" "GST_MPEG_VIDEO_PICTURE_TYPE_B" "0x03")
    '("d" "GST_MPEG_VIDEO_PICTURE_TYPE_D" "0x04")
  )
)

;; Original typedef:
;; typedef enum {
;;     GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD    = 0x01,
;;     GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD = 0x02,
;;     GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME        = 0x03
;; } GstMpegVideoPictureStructure;

(define-flags-extended MpegVideoPictureStructure
  (in-module "Gst")
  (c-name "GstMpegVideoPictureStructure")
  (values
    '("top-field" "GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD" "0x01")
    '("bottom-field" "GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD" "0x02")
    '("frame" "GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME" "0x03")
  )
)

;; From gstvc1parser.h

;; Original typedef:
;; typedef enum {
;;   GST_VC1_END_OF_SEQ       = 0x0A,
;;   GST_VC1_SLICE            = 0x0B,
;;   GST_VC1_FIELD            = 0x0C,
;;   GST_VC1_FRAME            = 0x0D,
;;   GST_VC1_ENTRYPOINT       = 0x0E,
;;   GST_VC1_SEQUENCE         = 0x0F,
;;   GST_VC1_SLICE_USER       = 0x1B,
;;   GST_VC1_FIELD_USER       = 0x1C,
;;   GST_VC1_FRAME_USER       = 0x1D,
;;   GST_VC1_ENTRY_POINT_USER = 0x1E,
;;   GST_VC1_SEQUENCE_USER    = 0x1F
;; } GstVC1StartCode;

(define-flags-extended VC1StartCode
  (in-module "Gst")
  (c-name "GstVC1StartCode")
  (values
    '("end-of-seq" "GST_VC1_END_OF_SEQ" "0x0A")
    '("slice" "GST_VC1_SLICE" "0x0B")
    '("field" "GST_VC1_FIELD" "0x0C")
    '("frame" "GST_VC1_FRAME" "0x0D")
    '("entrypoint" "GST_VC1_ENTRYPOINT" "0x0E")
    '("sequence" "GST_VC1_SEQUENCE" "0x0F")
    '("slice-user" "GST_VC1_SLICE_USER" "0x1B")
    '("field-user" "GST_VC1_FIELD_USER" "0x1C")
    '("frame-user" "GST_VC1_FRAME_USER" "0x1D")
    '("entry-point-user" "GST_VC1_ENTRY_POINT_USER" "0x1E")
    '("sequence-user" "GST_VC1_SEQUENCE_USER" "0x1F")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VC1_PROFILE_SIMPLE,
;;   GST_VC1_PROFILE_MAIN,
;;   GST_VC1_PROFILE_RESERVED,
;;   GST_VC1_PROFILE_ADVANCED
;; } GstVC1Profile;

(define-enum-extended VC1Profile
  (in-module "Gst")
  (c-name "GstVC1Profile")
  (values
    '("simple" "GST_VC1_PROFILE_SIMPLE" "0")
    '("main" "GST_VC1_PROFILE_MAIN" "1")
    '("reserved" "GST_VC1_PROFILE_RESERVED" "2")
    '("advanced" "GST_VC1_PROFILE_ADVANCED" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VC1_PARSER_OK,
;;   GST_VC1_PARSER_BROKEN_DATA,
;;   GST_VC1_PARSER_NO_BDU,
;;   GST_VC1_PARSER_NO_BDU_END,
;;   GST_VC1_PARSER_ERROR,
;; } GstVC1ParserResult;

(define-enum-extended VC1ParserResult
  (in-module "Gst")
  (c-name "GstVC1ParserResult")
  (values
    '("ok" "GST_VC1_PARSER_OK" "0")
    '("broken-data" "GST_VC1_PARSER_BROKEN_DATA" "1")
    '("no-bdu" "GST_VC1_PARSER_NO_BDU" "2")
    '("no-bdu-end" "GST_VC1_PARSER_NO_BDU_END" "3")
    '("error" "GST_VC1_PARSER_ERROR" "4")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_VC1_PICTURE_TYPE_P,
;;   GST_VC1_PICTURE_TYPE_B,
;;   GST_VC1_PICTURE_TYPE_I,
;;   GST_VC1_PICTURE_TYPE_BI,
;;   GST_VC1_PICTURE_TYPE_SKIPPED
;; } GstVC1PictureType;

(define-enum-extended VC1PictureType
  (in-module "Gst")
  (c-name "GstVC1PictureType")
  (values
    '("p" "GST_VC1_PICTURE_TYPE_P" "0")
    '("b" "GST_VC1_PICTURE_TYPE_B" "1")
    '("i" "GST_VC1_PICTURE_TYPE_I" "2")
    '("bi" "GST_VC1_PICTURE_TYPE_BI" "3")
    '("skipped" "GST_VC1_PICTURE_TYPE_SKIPPED" "4")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;     GST_VC1_LEVEL_LOW    = 0,    /* Simple/Main profile low level */
;;     GST_VC1_LEVEL_MEDIUM = 2,    /* Simple/Main profile medium level */
;;     GST_VC1_LEVEL_HIGH   = 4,   /* Main profile high level */
;; 
;;     GST_VC1_LEVEL_L0    = 0,    /* Advanced profile level 0 */
;;     GST_VC1_LEVEL_L1    = 1,    /* Advanced profile level 1 */
;;     GST_VC1_LEVEL_L2    = 2,    /* Advanced profile level 2 */
;;     GST_VC1_LEVEL_L3    = 3,    /* Advanced profile level 3 */
;;     GST_VC1_LEVEL_L4    = 4,    /* Advanced profile level 4 */
;; 
;;     /* 5 to 7 reserved */
;;     GST_VC1_LEVEL_UNKNOWN = 255  /* Unknown profile */
;; } GstVC1Level;

(define-enum-extended VC1Level
  (in-module "Gst")
  (c-name "GstVC1Level")
  (values
    '("low" "GST_VC1_LEVEL_LOW" "0")
    '("medium" "GST_VC1_LEVEL_MEDIUM" "2")
    '("high" "GST_VC1_LEVEL_HIGH" "4")
    '("l0" "GST_VC1_LEVEL_L0" "0")
    '("l1" "GST_VC1_LEVEL_L1" "1")
    '("l2" "GST_VC1_LEVEL_L2" "2")
    '("l3" "GST_VC1_LEVEL_L3" "3")
    '("l4" "GST_VC1_LEVEL_L4" "4")
    '("unknown" "GST_VC1_LEVEL_UNKNOWN" "255")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_VC1_QUANTIZER_IMPLICITLY,
;;   GST_VC1_QUANTIZER_EXPLICITLY,
;;   GST_VC1_QUANTIZER_NON_UNIFORM,
;;   GST_VC1_QUANTIZER_UNIFORM
;; } GstVC1QuantizerSpec;

(define-enum-extended VC1QuantizerSpec
  (in-module "Gst")
  (c-name "GstVC1QuantizerSpec")
  (values
    '("implicitly" "GST_VC1_QUANTIZER_IMPLICITLY" "0")
    '("explicitly" "GST_VC1_QUANTIZER_EXPLICITLY" "1")
    '("non-uniform" "GST_VC1_QUANTIZER_NON_UNIFORM" "2")
    '("uniform" "GST_VC1_QUANTIZER_UNIFORM" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VC1_DQPROFILE_FOUR_EDGES,
;;   GST_VC1_DQPROFILE_DOUBLE_EDGES,
;;   GST_VC1_DQPROFILE_SINGLE_EDGE,
;;   GST_VC1_DQPROFILE_ALL_MBS
;; } GstVC1DQProfile;

(define-enum-extended VC1DQProfile
  (in-module "Gst")
  (c-name "GstVC1DQProfile")
  (values
    '("four-edges" "GST_VC1_DQPROFILE_FOUR_EDGES" "0")
    '("double-edges" "GST_VC1_DQPROFILE_DOUBLE_EDGES" "1")
    '("single-edge" "GST_VC1_DQPROFILE_SINGLE_EDGE" "2")
    '("all-mbs" "GST_VC1_DQPROFILE_ALL_MBS" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VC1_CONDOVER_NONE,
;;   GST_VC1_CONDOVER_ALL,
;;   GST_VC1_CONDOVER_SELECT
;; } GstVC1Condover;

(define-enum-extended VC1Condover
  (in-module "Gst")
  (c-name "GstVC1Condover")
  (values
    '("none" "GST_VC1_CONDOVER_NONE" "0")
    '("all" "GST_VC1_CONDOVER_ALL" "1")
    '("select" "GST_VC1_CONDOVER_SELECT" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_VC1_MVMODE_1MV_HPEL_BILINEAR,
;;   GST_VC1_MVMODE_1MV,
;;   GST_VC1_MVMODE_1MV_HPEL,
;;   GST_VC1_MVMODE_MIXED_MV,
;;   GST_VC1_MVMODE_INTENSITY_COMP
;; } GstVC1MvMode;

(define-enum-extended VC1MvMode
  (in-module "Gst")
  (c-name "GstVC1MvMode")
  (values
    '("1mv-hpel-bilinear" "GST_VC1_MVMODE_1MV_HPEL_BILINEAR" "0")
    '("1mv" "GST_VC1_MVMODE_1MV" "1")
    '("1mv-hpel" "GST_VC1_MVMODE_1MV_HPEL" "2")
    '("mixed-mv" "GST_VC1_MVMODE_MIXED_MV" "3")
    '("intensity-comp" "GST_VC1_MVMODE_INTENSITY_COMP" "4")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_VC1_FRAME_PROGRESSIVE = 0x0,
;;   GST_VC1_FRAME_INTERLACE   = 0x10,
;;   GST_VC1_FIELD_INTERLACE   = 0x11
;; } GstVC1FrameCodingMode;

(define-flags-extended VC1FrameCodingMode
  (in-module "Gst")
  (c-name "GstVC1FrameCodingMode")
  (values
    '("frame-progressive" "GST_VC1_FRAME_PROGRESSIVE" "0x0")
    '("frame-interlace" "GST_VC1_FRAME_INTERLACE" "0x10")
    '("field-interlace" "GST_VC1_FIELD_INTERLACE" "0x11")
  )
)

;; From gstvp8parser.h

;; Original typedef:
;; typedef enum {
;;   GST_VP8_PARSER_OK,
;;   GST_VP8_PARSER_BROKEN_DATA,
;;   GST_VP8_PARSER_ERROR,
;; } GstVp8ParserResult;

(define-enum-extended Vp8ParserResult
  (in-module "Gst")
  (c-name "GstVp8ParserResult")
  (values
    '("ok" "GST_VP8_PARSER_OK" "0")
    '("broken-data" "GST_VP8_PARSER_BROKEN_DATA" "1")
    '("error" "GST_VP8_PARSER_ERROR" "2")
  )
)

;; From gstvp9parser.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_VP9_PARSER_OK,
;;   GST_VP9_PARSER_BROKEN_DATA,
;;   GST_VP9_PARSER_ERROR,
;; } GstVp9ParserResult;

(define-enum-extended Vp9ParserResult
  (in-module "Gst")
  (c-name "GstVp9ParserResult")
  (values
    '("ok" "GST_VP9_PARSER_OK" "0")
    '("broken-data" "GST_VP9_PARSER_BROKEN_DATA" "1")
    '("error" "GST_VP9_PARSER_ERROR" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_PROFILE_0,
;;   GST_VP9_PROFILE_1,
;;   GST_VP9_PROFILE_2,
;;   GST_VP9_PROFILE_3,
;;   GST_VP9_PROFILE_UNDEFINED
;; } GstVP9Profile;

(define-enum-extended VP9Profile
  (in-module "Gst")
  (c-name "GstVP9Profile")
  (values
    '("0" "GST_VP9_PROFILE_0" "0")
    '("1" "GST_VP9_PROFILE_1" "1")
    '("2" "GST_VP9_PROFILE_2" "2")
    '("3" "GST_VP9_PROFILE_3" "3")
    '("undefined" "GST_VP9_PROFILE_UNDEFINED" "4")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_KEY_FRAME   = 0,
;;   GST_VP9_INTER_FRAME = 1
;; } GstVp9FrameType;

(define-enum-extended Vp9FrameType
  (in-module "Gst")
  (c-name "GstVp9FrameType")
  (values
    '("key-frame" "GST_VP9_KEY_FRAME" "0")
    '("inter-frame" "GST_VP9_INTER_FRAME" "1")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_BIT_DEPTH_8  = 8,
;;   GST_VP9_BIT_DEPTH_10 = 10,
;;   GST_VP9_BIT_DEPTH_12 = 12
;; } GstVp9BitDepth;

(define-enum-extended Vp9BitDepth
  (in-module "Gst")
  (c-name "GstVp9BitDepth")
  (values
    '("8" "GST_VP9_BIT_DEPTH_8" "8")
    '("10" "GST_VP9_BIT_DEPTH_10" "10")
    '("12" "GST_VP9_BIT_DEPTH_12" "12")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_CS_UNKNOWN               = 0,
;;   GST_VP9_CS_BT_601                = 1,
;;   GST_VP9_CS_BT_709                = 2,
;;   GST_VP9_CS_SMPTE_170             = 3,
;;   GST_VP9_CS_SMPTE_240             = 4,
;;   GST_VP9_CS_BT_2020               = 5,
;;   GST_VP9_CS_RESERVED_2            = 6,
;;   GST_VP9_CS_SRGB                  = 7
;; } GstVp9ColorSpace;

(define-enum-extended Vp9ColorSpace
  (in-module "Gst")
  (c-name "GstVp9ColorSpace")
  (values
    '("unknown" "GST_VP9_CS_UNKNOWN" "0")
    '("bt-601" "GST_VP9_CS_BT_601" "1")
    '("bt-709" "GST_VP9_CS_BT_709" "2")
    '("smpte-170" "GST_VP9_CS_SMPTE_170" "3")
    '("smpte-240" "GST_VP9_CS_SMPTE_240" "4")
    '("bt-2020" "GST_VP9_CS_BT_2020" "5")
    '("reserved-2" "GST_VP9_CS_RESERVED_2" "6")
    '("srgb" "GST_VP9_CS_SRGB" "7")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_CR_LIMITED,
;;   GST_VP9_CR_FULL
;; } GstVp9ColorRange;

(define-enum-extended Vp9ColorRange
  (in-module "Gst")
  (c-name "GstVp9ColorRange")
  (values
    '("limited" "GST_VP9_CR_LIMITED" "0")
    '("full" "GST_VP9_CR_FULL" "1")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_INTERPOLATION_FILTER_EIGHTTAP        = 0,
;;   GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
;;   GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP  = 2,
;;   GST_VP9_INTERPOLATION_FILTER_BILINEAR        = 3,
;;   GST_VP9_INTERPOLATION_FILTER_SWITCHABLE      = 4
;; } GstVp9InterpolationFilter;

(define-enum-extended Vp9InterpolationFilter
  (in-module "Gst")
  (c-name "GstVp9InterpolationFilter")
  (values
    '("eighttap" "GST_VP9_INTERPOLATION_FILTER_EIGHTTAP" "0")
    '("eighttap-smooth" "GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH" "1")
    '("eighttap-sharp" "GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP" "2")
    '("bilinear" "GST_VP9_INTERPOLATION_FILTER_BILINEAR" "3")
    '("switchable" "GST_VP9_INTERPOLATION_FILTER_SWITCHABLE" "4")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_VP9_REF_FRAME_INTRA  = 0,
;;   GST_VP9_REF_FRAME_LAST   = 1,
;;   GST_VP9_REF_FRAME_GOLDEN = 2,
;;   GST_VP9_REF_FRAME_ALTREF = 3,
;;   GST_VP9_REF_FRAME_MAX    = 4
;; } GstVp9RefFrameType;

(define-enum-extended Vp9RefFrameType
  (in-module "Gst")
  (c-name "GstVp9RefFrameType")
  (values
    '("intra" "GST_VP9_REF_FRAME_INTRA" "0")
    '("last" "GST_VP9_REF_FRAME_LAST" "1")
    '("golden" "GST_VP9_REF_FRAME_GOLDEN" "2")
    '("altref" "GST_VP9_REF_FRAME_ALTREF" "3")
    '("max" "GST_VP9_REF_FRAME_MAX" "4")
  )
)

;; From gstglapi.h

;; Original typedef:
;; typedef enum {
;;   GST_GL_API_NONE = 0,
;;   GST_GL_API_OPENGL = (1 << 0),
;;   GST_GL_API_OPENGL3 = (1 << 1),
;;   GST_GL_API_GLES1 = (1 << 15),
;;   GST_GL_API_GLES2 = (1 << 16),
;; 
;;   GST_GL_API_ANY = G_MAXUINT32
;; } GstGLAPI;

(define-flags-extended GLAPI
  (in-module "Gst")
  (c-name "GstGLAPI")
  (values
    '("none" "GST_GL_API_NONE" "0x0")
    '("opengl" "GST_GL_API_OPENGL" "(1 << 0)")
    '("opengl3" "GST_GL_API_OPENGL3" "(1 << 1)")
    '("gles1" "GST_GL_API_GLES1" "(1 << 15)")
    '("gles2" "GST_GL_API_GLES2" "(1 << 16)")
    '("any" "GST_GL_API_ANY" "G_MAXUINT32")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_PLATFORM_NONE = 0,
;;   GST_GL_PLATFORM_EGL = (1 << 0),
;;   GST_GL_PLATFORM_GLX = (1 << 1),
;;   GST_GL_PLATFORM_WGL = (1 << 2),
;;   GST_GL_PLATFORM_CGL = (1 << 3),
;;   GST_GL_PLATFORM_EAGL = (1 << 4),
;; 
;;   GST_GL_PLATFORM_ANY = G_MAXUINT32
;; } GstGLPlatform;

(define-flags-extended GLPlatform
  (in-module "Gst")
  (c-name "GstGLPlatform")
  (values
    '("none" "GST_GL_PLATFORM_NONE" "0x0")
    '("egl" "GST_GL_PLATFORM_EGL" "(1 << 0)")
    '("glx" "GST_GL_PLATFORM_GLX" "(1 << 1)")
    '("wgl" "GST_GL_PLATFORM_WGL" "(1 << 2)")
    '("cgl" "GST_GL_PLATFORM_CGL" "(1 << 3)")
    '("eagl" "GST_GL_PLATFORM_EAGL" "(1 << 4)")
    '("any" "GST_GL_PLATFORM_ANY" "G_MAXUINT32")
  )
)

;; From gstglbasememory.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_BASE_MEMORY_ERROR_FAILED,
;;   GST_GL_BASE_MEMORY_ERROR_OLD_LIBS,
;;   GST_GL_BASE_MEMORY_ERROR_RESOURCE_UNAVAILABLE,
;; } GstGLBaseMemoryError;

(define-enum-extended GLBaseMemoryError
  (in-module "Gst")
  (c-name "GstGLBaseMemoryError")
  (values
    '("failed" "GST_GL_BASE_MEMORY_ERROR_FAILED" "0")
    '("old-libs" "GST_GL_BASE_MEMORY_ERROR_OLD_LIBS" "1")
    '("resource-unavailable" "GST_GL_BASE_MEMORY_ERROR_RESOURCE_UNAVAILABLE" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_BASE_MEMORY_TRANSFER_NEED_DOWNLOAD   = (GST_MEMORY_FLAG_LAST << 0),
;;   GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD     = (GST_MEMORY_FLAG_LAST << 1)
;; } GstGLBaseMemoryTransfer;

(define-flags-extended GLBaseMemoryTransfer
  (in-module "Gst")
  (c-name "GstGLBaseMemoryTransfer")
  (values
    '("download" "GST_GL_BASE_MEMORY_TRANSFER_NEED_DOWNLOAD" "(GST_MEMORY_FLAG_LAST << 0)")
    '("upload" "GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD" "(GST_MEMORY_FLAG_LAST << 1)")
  )
)

;; From gstglcontext.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_CONTEXT_ERROR_FAILED,
;;   GST_GL_CONTEXT_ERROR_WRONG_CONFIG,
;;   GST_GL_CONTEXT_ERROR_WRONG_API,
;;   GST_GL_CONTEXT_ERROR_OLD_LIBS,
;;   GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
;;   GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE,
;; } GstGLContextError;

(define-enum-extended GLContextError
  (in-module "Gst")
  (c-name "GstGLContextError")
  (values
    '("failed" "GST_GL_CONTEXT_ERROR_FAILED" "0")
    '("wrong-config" "GST_GL_CONTEXT_ERROR_WRONG_CONFIG" "1")
    '("wrong-api" "GST_GL_CONTEXT_ERROR_WRONG_API" "2")
    '("old-libs" "GST_GL_CONTEXT_ERROR_OLD_LIBS" "3")
    '("create-context" "GST_GL_CONTEXT_ERROR_CREATE_CONTEXT" "4")
    '("resource-unavailable" "GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE" "5")
  )
)

;; From gstgldisplay.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_DISPLAY_TYPE_NONE = 0,
;;   GST_GL_DISPLAY_TYPE_X11 = (1 << 0),
;;   GST_GL_DISPLAY_TYPE_WAYLAND = (1 << 1),
;;   GST_GL_DISPLAY_TYPE_COCOA = (1 << 2),
;;   GST_GL_DISPLAY_TYPE_WIN32 = (1 << 3),
;;   GST_GL_DISPLAY_TYPE_DISPMANX = (1 << 4),
;;   GST_GL_DISPLAY_TYPE_EGL = (1 << 5),
;; 
;;   GST_GL_DISPLAY_TYPE_ANY = G_MAXUINT32
;; } GstGLDisplayType;

(define-flags-extended GLDisplayType
  (in-module "Gst")
  (c-name "GstGLDisplayType")
  (values
    '("none" "GST_GL_DISPLAY_TYPE_NONE" "0x0")
    '("x11" "GST_GL_DISPLAY_TYPE_X11" "(1 << 0)")
    '("wayland" "GST_GL_DISPLAY_TYPE_WAYLAND" "(1 << 1)")
    '("cocoa" "GST_GL_DISPLAY_TYPE_COCOA" "(1 << 2)")
    '("win32" "GST_GL_DISPLAY_TYPE_WIN32" "(1 << 3)")
    '("dispmanx" "GST_GL_DISPLAY_TYPE_DISPMANX" "(1 << 4)")
    '("egl" "GST_GL_DISPLAY_TYPE_EGL" "(1 << 5)")
    '("any" "GST_GL_DISPLAY_TYPE_ANY" "G_MAXUINT32")
  )
)

;; From gstgl_enums.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_TEXTURE_TARGET_NONE,
;;   GST_GL_TEXTURE_TARGET_2D,
;;   GST_GL_TEXTURE_TARGET_RECTANGLE,
;;   GST_GL_TEXTURE_TARGET_EXTERNAL_OES,
;; } GstGLTextureTarget;

(define-enum-extended GLTextureTarget
  (in-module "Gst")
  (c-name "GstGLTextureTarget")
  (values
    '("none" "GST_GL_TEXTURE_TARGET_NONE" "0")
    '("2d" "GST_GL_TEXTURE_TARGET_2D" "1")
    '("rectangle" "GST_GL_TEXTURE_TARGET_RECTANGLE" "2")
    '("external-oes" "GST_GL_TEXTURE_TARGET_EXTERNAL_OES" "3")
  )
)

;; From gstglquery.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_QUERY_NONE,
;;   GST_GL_QUERY_TIME_ELAPSED,
;;   GST_GL_QUERY_TIMESTAMP,
;; } GstGLQueryType;

(define-enum-extended GLQueryType
  (in-module "Gst")
  (c-name "GstGLQueryType")
  (values
    '("none" "GST_GL_QUERY_NONE" "0")
    '("time-elapsed" "GST_GL_QUERY_TIME_ELAPSED" "1")
    '("timestamp" "GST_GL_QUERY_TIMESTAMP" "2")
  )
)

;; From gstglsl.h

;; Original typedef:
;; typedef enum {
;;   GST_GLSL_ERROR_COMPILE,
;;   GST_GLSL_ERROR_LINK,
;;   GST_GLSL_ERROR_PROGRAM,
;; } GstGLSLError;

(define-enum-extended GLSLError
  (in-module "Gst")
  (c-name "GstGLSLError")
  (values
    '("compile" "GST_GLSL_ERROR_COMPILE" "0")
    '("link" "GST_GLSL_ERROR_LINK" "1")
    '("program" "GST_GLSL_ERROR_PROGRAM" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_GLSL_VERSION_NONE = 0,
;; 
;;   GST_GLSL_VERSION_100 = 100, /* ES */
;;   GST_GLSL_VERSION_110 = 110, /* GL */
;;   GST_GLSL_VERSION_120 = 120, /* GL */
;;   GST_GLSL_VERSION_130 = 130, /* GL */
;;   GST_GLSL_VERSION_140 = 140, /* GL */
;;   GST_GLSL_VERSION_150 = 150, /* GL */
;;   GST_GLSL_VERSION_300 = 300, /* ES */
;;   GST_GLSL_VERSION_310 = 310, /* ES */
;;   GST_GLSL_VERSION_320 = 320, /* ES */
;;   GST_GLSL_VERSION_330 = 330, /* GL */
;;   GST_GLSL_VERSION_400 = 400, /* GL */
;;   GST_GLSL_VERSION_410 = 410, /* GL */
;;   GST_GLSL_VERSION_420 = 420, /* GL */
;;   GST_GLSL_VERSION_430 = 430, /* GL */
;;   GST_GLSL_VERSION_440 = 440, /* GL */
;;   GST_GLSL_VERSION_450 = 450, /* GL */
;; 
;;   GST_GLSL_VERSION_ANY = -1,
;; } GstGLSLVersion;

(define-enum-extended GLSLVersion
  (in-module "Gst")
  (c-name "GstGLSLVersion")
  (values
    '("none" "GST_GLSL_VERSION_NONE" "0")
    '("100" "GST_GLSL_VERSION_100" "100")
    '("110" "GST_GLSL_VERSION_110" "110")
    '("120" "GST_GLSL_VERSION_120" "120")
    '("130" "GST_GLSL_VERSION_130" "130")
    '("140" "GST_GLSL_VERSION_140" "140")
    '("150" "GST_GLSL_VERSION_150" "150")
    '("300" "GST_GLSL_VERSION_300" "300")
    '("310" "GST_GLSL_VERSION_310" "310")
    '("320" "GST_GLSL_VERSION_320" "320")
    '("330" "GST_GLSL_VERSION_330" "330")
    '("400" "GST_GLSL_VERSION_400" "400")
    '("410" "GST_GLSL_VERSION_410" "410")
    '("420" "GST_GLSL_VERSION_420" "420")
    '("430" "GST_GLSL_VERSION_430" "430")
    '("440" "GST_GLSL_VERSION_440" "440")
    '("450" "GST_GLSL_VERSION_450" "450")
    '("any" "GST_GLSL_VERSION_ANY" "-1")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   /* XXX: maybe make GstGLAPI instead */
;;   GST_GLSL_PROFILE_NONE = 0,
;; 
;;   GST_GLSL_PROFILE_ES = (1 << 0),
;;   GST_GLSL_PROFILE_CORE = (1 << 1),
;;   GST_GLSL_PROFILE_COMPATIBILITY = (1 << 2),
;; 
;;   GST_GLSL_PROFILE_ANY = -1,
;; } GstGLSLProfile;

(define-flags-extended GLSLProfile
  (in-module "Gst")
  (c-name "GstGLSLProfile")
  (values
    '("none" "GST_GLSL_PROFILE_NONE" "0x0")
    '("es" "GST_GLSL_PROFILE_ES" "(1 << 0)")
    '("core" "GST_GLSL_PROFILE_CORE" "(1 << 1)")
    '("compatibility" "GST_GLSL_PROFILE_COMPATIBILITY" "(1 << 2)")
    '("any" "GST_GLSL_PROFILE_ANY" "0xFFFFFFFFFFFFFFFF")
  )
)

;; From gstglupload.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_UPLOAD_DONE = 1,
;; 
;;   GST_GL_UPLOAD_ERROR = -1,
;;   GST_GL_UPLOAD_UNSUPPORTED = -2,
;;   /* <private> */
;;   GST_GL_UPLOAD_UNSHARED_GL_CONTEXT = -3,
;; } GstGLUploadReturn;

(define-enum-extended GLUploadReturn
  (in-module "Gst")
  (c-name "GstGLUploadReturn")
  (values
    '("done" "GST_GL_UPLOAD_DONE" "1")
    '("error" "GST_GL_UPLOAD_ERROR" "-1")
    '("unsupported" "GST_GL_UPLOAD_UNSUPPORTED" "-2")
    '("unshared-gl-context" "GST_GL_UPLOAD_UNSHARED_GL_CONTEXT" "-3")
  )
)

;; From gstglutils.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_DISPLAY_PROJECTION_ORTHO2D,
;;   GST_GL_DISPLAY_PROJECTION_PERSPECTIVE
;; } GstGLDisplayProjection;

(define-enum-extended GLDisplayProjection
  (in-module "Gst")
  (c-name "GstGLDisplayProjection")
  (values
    '("ortho2d" "GST_GL_DISPLAY_PROJECTION_ORTHO2D" "0")
    '("perspective" "GST_GL_DISPLAY_PROJECTION_PERSPECTIVE" "1")
  )
)

;; From gstglviewconvert.h

;; Original typedef:
;; typedef enum _GstGLStereoDownmix GstGLStereoDownmix;
;; 
;; struct _GstGLViewConvert
;; {
;;   GstObject object;
;; 
;;   GstGLContext *context;
;; 
;;   GstGLShader *shader;
;; 
;;   GstVideoMultiviewMode input_mode_override;
;;   GstVideoMultiviewFlags input_flags_override;
;;   GstVideoMultiviewMode output_mode_override;
;;   GstVideoMultiviewFlags output_flags_override;
;; 
;;   GstGLStereoDownmix downmix_mode;
;; 
;;   GstVideoInfo in_info;
;;   GstVideoInfo out_info;
;; 
;;   GstGLTextureTarget from_texture_target;
;;   GstGLTextureTarget to_texture_target;
;;   gboolean caps_passthrough;
;; 
;;   gboolean initted;
;;   gboolean reconfigure;
;; 
;;   GLuint fbo;
;;   GLuint depth_buffer;
;; 
;;   GstGLViewConvertPrivate *priv;
;; };

(define-flags-extended 
  (in-module "Gst")
  (c-name "")
  (values
  )
)

;; From gstglwindow.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_GL_WINDOW_ERROR_FAILED,
;;   GST_GL_WINDOW_ERROR_OLD_LIBS,
;;   GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE,
;; } GstGLWindowError;

(define-enum-extended GLWindowError
  (in-module "Gst")
  (c-name "GstGLWindowError")
  (values
    '("failed" "GST_GL_WINDOW_ERROR_FAILED" "0")
    '("old-libs" "GST_GL_WINDOW_ERROR_OLD_LIBS" "1")
    '("resource-unavailable" "GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE" "2")
  )
)

;; From photography.h

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER = ( 1<<0 ),
;;   GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC = ( 1<<1 ),
;;   GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL= ( 1<< 2),
;;   GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED = (1 << 3),
;;   GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA = (1 << 4)
;; } GstPhotographyNoiseReduction;

(define-flags-extended PhotographyNoiseReduction
  (in-module "Gst")
  (c-name "GstPhotographyNoiseReduction")
  (values
    '("bayer" "GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER" "( 1<<0 )")
    '("ycc" "GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC" "( 1<<1 )")
    '("temporal=" "GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL=" "( 1<< 2)")
    '("fixed" "GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED" "(1 << 3)")
    '("extra" "GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA" "(1 << 4)")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_WB_MODE_AUTO = 0,
;;   GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT,
;;   GST_PHOTOGRAPHY_WB_MODE_CLOUDY,
;;   GST_PHOTOGRAPHY_WB_MODE_SUNSET,
;;   GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN,
;;   GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT,
;;   GST_PHOTOGRAPHY_WB_MODE_MANUAL,
;;   GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT,
;;   GST_PHOTOGRAPHY_WB_MODE_SHADE
;; } GstPhotographyWhiteBalanceMode;

(define-enum-extended PhotographyWhiteBalanceMode
  (in-module "Gst")
  (c-name "GstPhotographyWhiteBalanceMode")
  (values
    '("auto" "GST_PHOTOGRAPHY_WB_MODE_AUTO" "0")
    '("daylight" "GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT" "1")
    '("cloudy" "GST_PHOTOGRAPHY_WB_MODE_CLOUDY" "2")
    '("sunset" "GST_PHOTOGRAPHY_WB_MODE_SUNSET" "3")
    '("tungsten" "GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN" "4")
    '("fluorescent" "GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT" "5")
    '("manual" "GST_PHOTOGRAPHY_WB_MODE_MANUAL" "6")
    '("warm-fluorescent" "GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT" "7")
    '("shade" "GST_PHOTOGRAPHY_WB_MODE_SHADE" "8")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL = 0,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD,
;;   GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA
;; } GstPhotographyColorToneMode;

(define-enum-extended PhotographyColorToneMode
  (in-module "Gst")
  (c-name "GstPhotographyColorToneMode")
  (values
    '("normal" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL" "0")
    '("sepia" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA" "1")
    '("negative" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE" "2")
    '("grayscale" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE" "3")
    '("natural" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL" "4")
    '("vivid" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID" "5")
    '("colorswap" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP" "6")
    '("solarize" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE" "7")
    '("out-of-focus" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS" "8")
    '("sky-blue" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE" "9")
    '("grass-green" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN" "10")
    '("skin-whiten" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN" "11")
    '("posterize" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE" "12")
    '("whiteboard" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD" "13")
    '("blackboard" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD" "14")
    '("aqua" "GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA" "15")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_SCENE_MODE_MANUAL = 0,
;;   GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP,
;;   GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT,
;;   GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE,
;;   GST_PHOTOGRAPHY_SCENE_MODE_SPORT,
;;   GST_PHOTOGRAPHY_SCENE_MODE_NIGHT,
;;   GST_PHOTOGRAPHY_SCENE_MODE_AUTO,
;;   GST_PHOTOGRAPHY_SCENE_MODE_ACTION,
;;   GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT,
;;   GST_PHOTOGRAPHY_SCENE_MODE_THEATRE,
;;   GST_PHOTOGRAPHY_SCENE_MODE_BEACH,
;;   GST_PHOTOGRAPHY_SCENE_MODE_SNOW,
;;   GST_PHOTOGRAPHY_SCENE_MODE_SUNSET,
;;   GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO,
;;   GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS,
;;   GST_PHOTOGRAPHY_SCENE_MODE_PARTY,
;;   GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT,
;;   GST_PHOTOGRAPHY_SCENE_MODE_BARCODE
;; } GstPhotographySceneMode;

(define-enum-extended PhotographySceneMode
  (in-module "Gst")
  (c-name "GstPhotographySceneMode")
  (values
    '("manual" "GST_PHOTOGRAPHY_SCENE_MODE_MANUAL" "0")
    '("closeup" "GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP" "1")
    '("portrait" "GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT" "2")
    '("landscape" "GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE" "3")
    '("sport" "GST_PHOTOGRAPHY_SCENE_MODE_SPORT" "4")
    '("night" "GST_PHOTOGRAPHY_SCENE_MODE_NIGHT" "5")
    '("auto" "GST_PHOTOGRAPHY_SCENE_MODE_AUTO" "6")
    '("action" "GST_PHOTOGRAPHY_SCENE_MODE_ACTION" "7")
    '("night-portrait" "GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT" "8")
    '("theatre" "GST_PHOTOGRAPHY_SCENE_MODE_THEATRE" "9")
    '("beach" "GST_PHOTOGRAPHY_SCENE_MODE_BEACH" "10")
    '("snow" "GST_PHOTOGRAPHY_SCENE_MODE_SNOW" "11")
    '("sunset" "GST_PHOTOGRAPHY_SCENE_MODE_SUNSET" "12")
    '("steady-photo" "GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO" "13")
    '("fireworks" "GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS" "14")
    '("party" "GST_PHOTOGRAPHY_SCENE_MODE_PARTY" "15")
    '("candlelight" "GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT" "16")
    '("barcode" "GST_PHOTOGRAPHY_SCENE_MODE_BARCODE" "17")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_FLASH_MODE_AUTO = 0,
;;   GST_PHOTOGRAPHY_FLASH_MODE_OFF,
;;   GST_PHOTOGRAPHY_FLASH_MODE_ON,
;;   GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN,
;;   GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE
;; } GstPhotographyFlashMode;

(define-enum-extended PhotographyFlashMode
  (in-module "Gst")
  (c-name "GstPhotographyFlashMode")
  (values
    '("auto" "GST_PHOTOGRAPHY_FLASH_MODE_AUTO" "0")
    '("off" "GST_PHOTOGRAPHY_FLASH_MODE_OFF" "1")
    '("on" "GST_PHOTOGRAPHY_FLASH_MODE_ON" "2")
    '("fill-in" "GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN" "3")
    '("red-eye" "GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE" "4")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0,
;;   GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING,
;;   GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL,
;;   GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS
;; } GstPhotographyFocusStatus;

(define-enum-extended PhotographyFocusStatus
  (in-module "Gst")
  (c-name "GstPhotographyFocusStatus")
  (values
    '("none" "GST_PHOTOGRAPHY_FOCUS_STATUS_NONE" "0")
    '("running" "GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING" "1")
    '("fail" "GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL" "2")
    '("success" "GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS" "3")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_CAPS_NONE = (0 << 0),
;;   GST_PHOTOGRAPHY_CAPS_EV_COMP = (1 << 0),
;;   GST_PHOTOGRAPHY_CAPS_ISO_SPEED = (1 << 1),
;;   GST_PHOTOGRAPHY_CAPS_WB_MODE = (1 << 2),
;;   GST_PHOTOGRAPHY_CAPS_TONE = (1 << 3),
;;   GST_PHOTOGRAPHY_CAPS_SCENE = (1 << 4),
;;   GST_PHOTOGRAPHY_CAPS_FLASH = (1 << 5),
;;   GST_PHOTOGRAPHY_CAPS_ZOOM = (1 << 6),
;;   GST_PHOTOGRAPHY_CAPS_FOCUS = (1 << 7),
;;   GST_PHOTOGRAPHY_CAPS_APERTURE = (1 << 8),
;;   GST_PHOTOGRAPHY_CAPS_EXPOSURE = (1 << 9),
;;   GST_PHOTOGRAPHY_CAPS_SHAKE = (1 << 10),
;;   GST_PHOTOGRAPHY_CAPS_WHITE_BALANCE = (1 << 11),
;;   GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION = (1 << 12),
;;   GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION = (1 << 13),
;;   GST_PHOTOGRAPHY_CAPS_ALL = (~0)
;; } GstPhotographyCaps;

(define-flags-extended PhotographyCaps
  (in-module "Gst")
  (c-name "GstPhotographyCaps")
  (values
    '("none" "GST_PHOTOGRAPHY_CAPS_NONE" "(0 << 0)")
    '("ev-comp" "GST_PHOTOGRAPHY_CAPS_EV_COMP" "(1 << 0)")
    '("iso-speed" "GST_PHOTOGRAPHY_CAPS_ISO_SPEED" "(1 << 1)")
    '("wb-mode" "GST_PHOTOGRAPHY_CAPS_WB_MODE" "(1 << 2)")
    '("tone" "GST_PHOTOGRAPHY_CAPS_TONE" "(1 << 3)")
    '("scene" "GST_PHOTOGRAPHY_CAPS_SCENE" "(1 << 4)")
    '("flash" "GST_PHOTOGRAPHY_CAPS_FLASH" "(1 << 5)")
    '("zoom" "GST_PHOTOGRAPHY_CAPS_ZOOM" "(1 << 6)")
    '("focus" "GST_PHOTOGRAPHY_CAPS_FOCUS" "(1 << 7)")
    '("aperture" "GST_PHOTOGRAPHY_CAPS_APERTURE" "(1 << 8)")
    '("exposure" "GST_PHOTOGRAPHY_CAPS_EXPOSURE" "(1 << 9)")
    '("shake" "GST_PHOTOGRAPHY_CAPS_SHAKE" "(1 << 10)")
    '("white-balance" "GST_PHOTOGRAPHY_CAPS_WHITE_BALANCE" "(1 << 11)")
    '("noise-reduction" "GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION" "(1 << 12)")
    '("flicker-reduction" "GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION" "(1 << 13)")
    '("all" "GST_PHOTOGRAPHY_CAPS_ALL" "0x0")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0,
;;   GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM,
;;   GST_PHOTOGRAPHY_SHAKE_RISK_HIGH,
;; } GstPhotographyShakeRisk;

(define-enum-extended PhotographyShakeRisk
  (in-module "Gst")
  (c-name "GstPhotographyShakeRisk")
  (values
    '("low" "GST_PHOTOGRAPHY_SHAKE_RISK_LOW" "0")
    '("medium" "GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM" "1")
    '("high" "GST_PHOTOGRAPHY_SHAKE_RISK_HIGH" "2")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0,
;;   GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ,
;;   GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ,
;;   GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO,
;; } GstPhotographyFlickerReductionMode;

(define-enum-extended PhotographyFlickerReductionMode
  (in-module "Gst")
  (c-name "GstPhotographyFlickerReductionMode")
  (values
    '("off" "GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF" "0")
    '("50hz" "GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ" "1")
    '("60hz" "GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ" "2")
    '("auto" "GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;     GST_PHOTOGRAPHY_FOCUS_MODE_AUTO = 0,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_MACRO,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED,
;;     GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL
;; } GstPhotographyFocusMode;

(define-enum-extended PhotographyFocusMode
  (in-module "Gst")
  (c-name "GstPhotographyFocusMode")
  (values
    '("auto" "GST_PHOTOGRAPHY_FOCUS_MODE_AUTO" "0")
    '("macro" "GST_PHOTOGRAPHY_FOCUS_MODE_MACRO" "1")
    '("portrait" "GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT" "2")
    '("infinity" "GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY" "3")
    '("hyperfocal" "GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL" "4")
    '("extended" "GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED" "5")
    '("continuous-normal" "GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL" "6")
    '("continuous-extended" "GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED" "7")
    '("manual" "GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL" "8")
  )
)

;; Original typedef:
;; typedef enum {
;;     GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO = 0,
;;     GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL
;; } GstPhotographyExposureMode;

(define-enum-extended PhotographyExposureMode
  (in-module "Gst")
  (c-name "GstPhotographyExposureMode")
  (values
    '("auto" "GST_PHOTOGRAPHY_EXPOSURE_MODE_AUTO" "0")
    '("manual" "GST_PHOTOGRAPHY_EXPOSURE_MODE_MANUAL" "1")
  )
)

;; From gst-atsc-section.h

;; Original typedef:
;; typedef enum {
;; 
;; 
;;   /* ATSC (A/65) */
;;   GST_MTS_TABLE_ID_ATSC_MASTER_GUIDE                    = 0xC7,
;;   GST_MTS_TABLE_ID_ATSC_TERRESTRIAL_VIRTUAL_CHANNEL     = 0xC8,
;;   GST_MTS_TABLE_ID_ATSC_CABLE_VIRTUAL_CHANNEL           = 0xC9,
;;   GST_MTS_TABLE_ID_ATSC_RATING_REGION                   = 0xCA,
;;   GST_MTS_TABLE_ID_ATSC_EVENT_INFORMATION               = 0xCB,
;;   GST_MTS_TABLE_ID_ATSC_CHANNEL_OR_EVENT_EXTENDED_TEXT  = 0xCC,
;;   GST_MTS_TABLE_ID_ATSC_SYSTEM_TIME                     = 0xCD,
;;   /* ATSC (A/90) */
;;   GST_MTS_TABLE_ID_ATSC_DATA_EVENT                      = 0xCE,
;;   GST_MTS_TABLE_ID_ATSC_DATA_SERVICE                    = 0xCF,
;;   /* 0xD0 ?? */
;;   GST_MTS_TABLE_ID_ATSC_NETWORK_RESOURCE                = 0xD1,
;;   GST_MTS_TABLE_ID_ATSC_LONG_TERM_SERVICE               = 0xD2,
;;   GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE         = 0xD3,
;;   GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE_SECTION_CODE = 0xD4,
;;   /* 0xD5 ?? */
;;   GST_MTS_TABLE_ID_ATSC_AGGREGATE_EVENT_INFORMATION     = 0xD6,
;;   GST_MTS_TABLE_ID_ATSC_AGGREGATE_EXTENDED_TEXT         = 0xD7,
;;   /* 0xD8 ?? */
;;   GST_MTS_TABLE_ID_ATSC_AGGREGATE_DATA_EVENT            = 0xD9,
;;   GST_MTS_TABLE_ID_ATSC_SATELLITE_VIRTUAL_CHANNEL       = 0xDA,
;; } GstMpegtsSectionATSCTableID;

(define-flags-extended MpegtsSectionATSCTableID
  (in-module "Gst")
  (c-name "GstMpegtsSectionATSCTableID")
  (values
    '("master-guide" "GST_MTS_TABLE_ID_ATSC_MASTER_GUIDE" "0xC7")
    '("terrestrial-virtual-channel" "GST_MTS_TABLE_ID_ATSC_TERRESTRIAL_VIRTUAL_CHANNEL" "0xC8")
    '("cable-virtual-channel" "GST_MTS_TABLE_ID_ATSC_CABLE_VIRTUAL_CHANNEL" "0xC9")
    '("rating-region" "GST_MTS_TABLE_ID_ATSC_RATING_REGION" "0xCA")
    '("event-information" "GST_MTS_TABLE_ID_ATSC_EVENT_INFORMATION" "0xCB")
    '("channel-or-event-extended-text" "GST_MTS_TABLE_ID_ATSC_CHANNEL_OR_EVENT_EXTENDED_TEXT" "0xCC")
    '("system-time" "GST_MTS_TABLE_ID_ATSC_SYSTEM_TIME" "0xCD")
    '("data-event" "GST_MTS_TABLE_ID_ATSC_DATA_EVENT" "0xCE")
    '("data-service" "GST_MTS_TABLE_ID_ATSC_DATA_SERVICE" "0xCF")
    '("network-resource" "GST_MTS_TABLE_ID_ATSC_NETWORK_RESOURCE" "0xD1")
    '("long-term-service" "GST_MTS_TABLE_ID_ATSC_LONG_TERM_SERVICE" "0xD2")
    '("directed-channel-change" "GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE" "0xD3")
    '("directed-channel-change-section-code" "GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE_SECTION_CODE" "0xD4")
    '("aggregate-event-information" "GST_MTS_TABLE_ID_ATSC_AGGREGATE_EVENT_INFORMATION" "0xD6")
    '("aggregate-extended-text" "GST_MTS_TABLE_ID_ATSC_AGGREGATE_EXTENDED_TEXT" "0xD7")
    '("aggregate-data-event" "GST_MTS_TABLE_ID_ATSC_AGGREGATE_DATA_EVENT" "0xD9")
    '("satellite-virtual-channel" "GST_MTS_TABLE_ID_ATSC_SATELLITE_VIRTUAL_CHANNEL" "0xDA")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0 = 0x0100,
;;   GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127 = 0x017F,
;;   GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0 = 0x0200,
;;   GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127 = 0x027F
;; } GstMpegtsAtscMGTTableType;

(define-flags-extended MpegtsAtscMGTTableType
  (in-module "Gst")
  (c-name "GstMpegtsAtscMGTTableType")
  (values
    '("eit0" "GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0" "0x0100")
    '("eit127" "GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127" "0x017F")
    '("ett0" "GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0" "0x0200")
    '("ett127" "GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127" "0x027F")
  )
)

;; From gst-dvb-descriptor.h

;; Original typedef:
;; typedef enum {
;;   /* 64-127 DVB tags ETSI EN 300 468
;;    * (Specification for Service Information (SI) in DVB systems)
;;    */
;;   GST_MTS_DESC_DVB_NETWORK_NAME                 = 0x40,
;;   GST_MTS_DESC_DVB_SERVICE_LIST                 = 0x41,
;;   GST_MTS_DESC_DVB_STUFFING                     = 0x42,
;;   GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM    = 0x43,
;;   GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM        = 0x44,
;;   GST_MTS_DESC_DVB_VBI_DATA                     = 0x45,
;;   GST_MTS_DESC_DVB_VBI_TELETEXT                 = 0x46,
;;   GST_MTS_DESC_DVB_BOUQUET_NAME                 = 0x47,
;;   GST_MTS_DESC_DVB_SERVICE                      = 0x48,
;;   GST_MTS_DESC_DVB_COUNTRY_AVAILABILITY         = 0x49,
;;   GST_MTS_DESC_DVB_LINKAGE                      = 0x4A,
;;   GST_MTS_DESC_DVB_NVOD_REFERENCE               = 0x4B,
;;   GST_MTS_DESC_DVB_TIME_SHIFTED_SERVICE         = 0x4C,
;;   GST_MTS_DESC_DVB_SHORT_EVENT                  = 0x4D,
;;   GST_MTS_DESC_DVB_EXTENDED_EVENT               = 0x4E,
;;   GST_MTS_DESC_DVB_TIME_SHIFTED_EVENT           = 0x4F,
;;   GST_MTS_DESC_DVB_COMPONENT                    = 0x50,
;;   GST_MTS_DESC_DVB_MOSAIC                       = 0x51,
;;   GST_MTS_DESC_DVB_STREAM_IDENTIFIER            = 0x52,
;;   GST_MTS_DESC_DVB_CA_IDENTIFIER                = 0x53,
;;   GST_MTS_DESC_DVB_CONTENT                      = 0x54,
;;   GST_MTS_DESC_DVB_PARENTAL_RATING              = 0x55,
;;   GST_MTS_DESC_DVB_TELETEXT                     = 0x56,
;;   GST_MTS_DESC_DVB_TELEPHONE                    = 0x57,
;;   GST_MTS_DESC_DVB_LOCAL_TIME_OFFSET            = 0x58,
;;   GST_MTS_DESC_DVB_SUBTITLING                   = 0x59,
;;   GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM  = 0x5A,
;;   GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME    = 0x5B,
;;   GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME    = 0x5C,
;;   GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME    = 0x5D,
;;   GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT       = 0x5E,
;;   GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER       = 0x5F,
;;   GST_MTS_DESC_DVB_SERVICE_MOVE                 = 0x60,
;;   GST_MTS_DESC_DVB_SHORT_SMOOTHING_BUFFER       = 0x61,
;;   GST_MTS_DESC_DVB_FREQUENCY_LIST               = 0x62,
;;   GST_MTS_DESC_DVB_PARTIAL_TRANSPORT_STREAM     = 0x63,
;;   GST_MTS_DESC_DVB_DATA_BROADCAST               = 0x64,
;;   GST_MTS_DESC_DVB_SCRAMBLING                   = 0x65,
;;   GST_MTS_DESC_DVB_DATA_BROADCAST_ID            = 0x66,
;;   GST_MTS_DESC_DVB_TRANSPORT_STREAM             = 0x67,
;;   GST_MTS_DESC_DVB_DSNG                         = 0x68,
;;   GST_MTS_DESC_DVB_PDC                          = 0x69,
;;   GST_MTS_DESC_DVB_AC3                          = 0x6A,
;;   GST_MTS_DESC_DVB_ANCILLARY_DATA               = 0x6B,
;;   GST_MTS_DESC_DVB_CELL_LIST                    = 0x6C,
;;   GST_MTS_DESC_DVB_CELL_FREQUENCY_LINK          = 0x6D,
;;   GST_MTS_DESC_DVB_ANNOUNCEMENT_SUPPORT         = 0x6E,
;;   GST_MTS_DESC_DVB_APPLICATION_SIGNALLING       = 0x6F,
;;   GST_MTS_DESC_DVB_ADAPTATION_FIELD_DATA        = 0x70,
;;   GST_MTS_DESC_DVB_SERVICE_IDENTIFIER           = 0x71,
;;   GST_MTS_DESC_DVB_SERVICE_AVAILABILITY         = 0x72,
;;   GST_MTS_DESC_DVB_DEFAULT_AUTHORITY            = 0x73,
;;   GST_MTS_DESC_DVB_RELATED_CONTENT              = 0x74,
;;   GST_MTS_DESC_DVB_TVA_ID                       = 0x75,
;;   GST_MTS_DESC_DVB_CONTENT_IDENTIFIER           = 0x76,
;;   GST_MTS_DESC_DVB_TIMESLICE_FEC_IDENTIFIER     = 0x77,
;;   GST_MTS_DESC_DVB_ECM_REPETITION_RATE          = 0x78,
;;   GST_MTS_DESC_DVB_S2_SATELLITE_DELIVERY_SYSTEM = 0x79,
;;   GST_MTS_DESC_DVB_ENHANCED_AC3                 = 0x7A,
;;   GST_MTS_DESC_DVB_DTS                          = 0x7B,
;;   GST_MTS_DESC_DVB_AAC                          = 0x7C,
;;   GST_MTS_DESC_DVB_XAIT_LOCATION                = 0x7D,
;;   GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT       = 0x7E,
;;   GST_MTS_DESC_DVB_EXTENSION                    = 0x7F,
;; } GstMpegtsDVBDescriptorType;

(define-flags-extended MpegtsDVBDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsDVBDescriptorType")
  (values
    '("network-name" "GST_MTS_DESC_DVB_NETWORK_NAME" "0x40")
    '("service-list" "GST_MTS_DESC_DVB_SERVICE_LIST" "0x41")
    '("stuffing" "GST_MTS_DESC_DVB_STUFFING" "0x42")
    '("satellite-delivery-system" "GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM" "0x43")
    '("cable-delivery-system" "GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM" "0x44")
    '("vbi-data" "GST_MTS_DESC_DVB_VBI_DATA" "0x45")
    '("vbi-teletext" "GST_MTS_DESC_DVB_VBI_TELETEXT" "0x46")
    '("bouquet-name" "GST_MTS_DESC_DVB_BOUQUET_NAME" "0x47")
    '("service" "GST_MTS_DESC_DVB_SERVICE" "0x48")
    '("country-availability" "GST_MTS_DESC_DVB_COUNTRY_AVAILABILITY" "0x49")
    '("linkage" "GST_MTS_DESC_DVB_LINKAGE" "0x4A")
    '("nvod-reference" "GST_MTS_DESC_DVB_NVOD_REFERENCE" "0x4B")
    '("time-shifted-service" "GST_MTS_DESC_DVB_TIME_SHIFTED_SERVICE" "0x4C")
    '("short-event" "GST_MTS_DESC_DVB_SHORT_EVENT" "0x4D")
    '("extended-event" "GST_MTS_DESC_DVB_EXTENDED_EVENT" "0x4E")
    '("time-shifted-event" "GST_MTS_DESC_DVB_TIME_SHIFTED_EVENT" "0x4F")
    '("component" "GST_MTS_DESC_DVB_COMPONENT" "0x50")
    '("mosaic" "GST_MTS_DESC_DVB_MOSAIC" "0x51")
    '("stream-identifier" "GST_MTS_DESC_DVB_STREAM_IDENTIFIER" "0x52")
    '("ca-identifier" "GST_MTS_DESC_DVB_CA_IDENTIFIER" "0x53")
    '("content" "GST_MTS_DESC_DVB_CONTENT" "0x54")
    '("parental-rating" "GST_MTS_DESC_DVB_PARENTAL_RATING" "0x55")
    '("teletext" "GST_MTS_DESC_DVB_TELETEXT" "0x56")
    '("telephone" "GST_MTS_DESC_DVB_TELEPHONE" "0x57")
    '("local-time-offset" "GST_MTS_DESC_DVB_LOCAL_TIME_OFFSET" "0x58")
    '("subtitling" "GST_MTS_DESC_DVB_SUBTITLING" "0x59")
    '("terrestrial-delivery-system" "GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM" "0x5A")
    '("multilingual-network-name" "GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME" "0x5B")
    '("multilingual-bouquet-name" "GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME" "0x5C")
    '("multilingual-service-name" "GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME" "0x5D")
    '("multilingual-component" "GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT" "0x5E")
    '("private-data-specifier" "GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER" "0x5F")
    '("service-move" "GST_MTS_DESC_DVB_SERVICE_MOVE" "0x60")
    '("short-smoothing-buffer" "GST_MTS_DESC_DVB_SHORT_SMOOTHING_BUFFER" "0x61")
    '("frequency-list" "GST_MTS_DESC_DVB_FREQUENCY_LIST" "0x62")
    '("partial-transport-stream" "GST_MTS_DESC_DVB_PARTIAL_TRANSPORT_STREAM" "0x63")
    '("data-broadcast" "GST_MTS_DESC_DVB_DATA_BROADCAST" "0x64")
    '("scrambling" "GST_MTS_DESC_DVB_SCRAMBLING" "0x65")
    '("data-broadcast-id" "GST_MTS_DESC_DVB_DATA_BROADCAST_ID" "0x66")
    '("transport-stream" "GST_MTS_DESC_DVB_TRANSPORT_STREAM" "0x67")
    '("dsng" "GST_MTS_DESC_DVB_DSNG" "0x68")
    '("pdc" "GST_MTS_DESC_DVB_PDC" "0x69")
    '("ac3" "GST_MTS_DESC_DVB_AC3" "0x6A")
    '("ancillary-data" "GST_MTS_DESC_DVB_ANCILLARY_DATA" "0x6B")
    '("cell-list" "GST_MTS_DESC_DVB_CELL_LIST" "0x6C")
    '("cell-frequency-link" "GST_MTS_DESC_DVB_CELL_FREQUENCY_LINK" "0x6D")
    '("announcement-support" "GST_MTS_DESC_DVB_ANNOUNCEMENT_SUPPORT" "0x6E")
    '("application-signalling" "GST_MTS_DESC_DVB_APPLICATION_SIGNALLING" "0x6F")
    '("adaptation-field-data" "GST_MTS_DESC_DVB_ADAPTATION_FIELD_DATA" "0x70")
    '("service-identifier" "GST_MTS_DESC_DVB_SERVICE_IDENTIFIER" "0x71")
    '("service-availability" "GST_MTS_DESC_DVB_SERVICE_AVAILABILITY" "0x72")
    '("default-authority" "GST_MTS_DESC_DVB_DEFAULT_AUTHORITY" "0x73")
    '("related-content" "GST_MTS_DESC_DVB_RELATED_CONTENT" "0x74")
    '("tva-id" "GST_MTS_DESC_DVB_TVA_ID" "0x75")
    '("content-identifier" "GST_MTS_DESC_DVB_CONTENT_IDENTIFIER" "0x76")
    '("timeslice-fec-identifier" "GST_MTS_DESC_DVB_TIMESLICE_FEC_IDENTIFIER" "0x77")
    '("ecm-repetition-rate" "GST_MTS_DESC_DVB_ECM_REPETITION_RATE" "0x78")
    '("s2-satellite-delivery-system" "GST_MTS_DESC_DVB_S2_SATELLITE_DELIVERY_SYSTEM" "0x79")
    '("enhanced-ac3" "GST_MTS_DESC_DVB_ENHANCED_AC3" "0x7A")
    '("dts" "GST_MTS_DESC_DVB_DTS" "0x7B")
    '("aac" "GST_MTS_DESC_DVB_AAC" "0x7C")
    '("xait-location" "GST_MTS_DESC_DVB_XAIT_LOCATION" "0x7D")
    '("fta-content-management" "GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT" "0x7E")
    '("extension" "GST_MTS_DESC_DVB_EXTENSION" "0x7F")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* 00 - 0x7F DVB extended tags ETSI EN 300 468
;;    * (Specification for Service Information (SI) in DVB systems)
;;    */
;;   GST_MTS_DESC_EXT_DVB_IMAGE_ICON               = 0x00,
;;   /* TS/TR 102 825 */
;;   GST_MTS_DESC_EXT_DVB_CPCM_DELIVERY_SIGNALLING = 0x01,
;;   GST_MTS_DESC_EXT_DVB_CP                       = 0x02,
;;   GST_MTS_DESC_EXT_DVB_CP_IDENTIFIER            = 0x03,
;;   GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM       = 0x04,
;;   GST_MTS_DESC_EXT_DVB_SH_DELIVERY_SYSTEM       = 0x05,
;;   GST_MTS_DESC_EXT_DVB_SUPPLEMENTARY_AUDIO      = 0x06,
;;   GST_MTS_DESC_EXT_DVB_NETWORK_CHANGE_NOTIFY    = 0x07,
;;   GST_MTS_DESC_EXT_DVB_MESSAGE                  = 0x08,
;;   GST_MTS_DESC_EXT_DVB_TARGET_REGION            = 0x09,
;;   GST_MTS_DESC_EXT_DVB_TARGET_REGION_NAME       = 0x0A,
;;   GST_MTS_DESC_EXT_DVB_SERVICE_RELOCATED        = 0x0B,
;;   GST_MTS_DESC_EXT_DVB_XAIT_PID                 = 0x0C,
;;   GST_MTS_DESC_EXT_DVB_C2_DELIVERY_SYSTEM       = 0x0D,
;;   GST_MTS_DESC_EXT_DVB_DTS_HD_AUDIO_STREAM      = 0x0E,
;;   GST_MTS_DESC_EXT_DVB_DTS_NEUTRAL              = 0x0F,
;;   GST_MTS_DESC_EXT_DVB_VIDEO_DEPTH_RANGE        = 0x10,
;;   GST_MTS_DESC_EXT_DVB_T2MI                     = 0x11,
;;   GST_MTS_DESC_EXT_DVB_URI_LINKAGE              = 0x13,
;; } GstMpegtsDVBExtendedDescriptorType;

(define-flags-extended MpegtsDVBExtendedDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsDVBExtendedDescriptorType")
  (values
    '("image-icon" "GST_MTS_DESC_EXT_DVB_IMAGE_ICON" "0x00")
    '("cpcm-delivery-signalling" "GST_MTS_DESC_EXT_DVB_CPCM_DELIVERY_SIGNALLING" "0x01")
    '("cp" "GST_MTS_DESC_EXT_DVB_CP" "0x02")
    '("cp-identifier" "GST_MTS_DESC_EXT_DVB_CP_IDENTIFIER" "0x03")
    '("t2-delivery-system" "GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM" "0x04")
    '("sh-delivery-system" "GST_MTS_DESC_EXT_DVB_SH_DELIVERY_SYSTEM" "0x05")
    '("supplementary-audio" "GST_MTS_DESC_EXT_DVB_SUPPLEMENTARY_AUDIO" "0x06")
    '("network-change-notify" "GST_MTS_DESC_EXT_DVB_NETWORK_CHANGE_NOTIFY" "0x07")
    '("message" "GST_MTS_DESC_EXT_DVB_MESSAGE" "0x08")
    '("target-region" "GST_MTS_DESC_EXT_DVB_TARGET_REGION" "0x09")
    '("target-region-name" "GST_MTS_DESC_EXT_DVB_TARGET_REGION_NAME" "0x0A")
    '("service-relocated" "GST_MTS_DESC_EXT_DVB_SERVICE_RELOCATED" "0x0B")
    '("xait-pid" "GST_MTS_DESC_EXT_DVB_XAIT_PID" "0x0C")
    '("c2-delivery-system" "GST_MTS_DESC_EXT_DVB_C2_DELIVERY_SYSTEM" "0x0D")
    '("dts-hd-audio-stream" "GST_MTS_DESC_EXT_DVB_DTS_HD_AUDIO_STREAM" "0x0E")
    '("dts-neutral" "GST_MTS_DESC_EXT_DVB_DTS_NEUTRAL" "0x0F")
    '("video-depth-range" "GST_MTS_DESC_EXT_DVB_VIDEO_DEPTH_RANGE" "0x10")
    '("t2mi" "GST_MTS_DESC_EXT_DVB_T2MI" "0x11")
    '("uri-linkage" "GST_MTS_DESC_EXT_DVB_URI_LINKAGE" "0x13")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_MODULATION_QPSK    = 0,
;;   GST_MPEGTS_MODULATION_QAM_16,
;;   GST_MPEGTS_MODULATION_QAM_32,
;;   GST_MPEGTS_MODULATION_QAM_64,
;;   GST_MPEGTS_MODULATION_QAM_128,
;;   GST_MPEGTS_MODULATION_QAM_256,
;;   GST_MPEGTS_MODULATION_QAM_AUTO,
;;   GST_MPEGTS_MODULATION_VSB_8,
;;   GST_MPEGTS_MODULATION_VSB_16,
;;   GST_MPEGTS_MODULATION_PSK_8,
;;   GST_MPEGTS_MODULATION_APSK_16,
;;   GST_MPEGTS_MODULATION_APSK_32,
;;   GST_MPEGTS_MODULATION_DQPSK,
;;   GST_MPEGTS_MODULATION_QAM_4_NR_,
;;   GST_MPEGTS_MODULATION_NONE
;; } GstMpegtsModulationType;

(define-enum-extended MpegtsModulationType
  (in-module "Gst")
  (c-name "GstMpegtsModulationType")
  (values
    '("qpsk" "GST_MPEGTS_MODULATION_QPSK" "0")
    '("qam-16" "GST_MPEGTS_MODULATION_QAM_16" "1")
    '("qam-32" "GST_MPEGTS_MODULATION_QAM_32" "2")
    '("qam-64" "GST_MPEGTS_MODULATION_QAM_64" "3")
    '("qam-128" "GST_MPEGTS_MODULATION_QAM_128" "4")
    '("qam-256" "GST_MPEGTS_MODULATION_QAM_256" "5")
    '("qam-auto" "GST_MPEGTS_MODULATION_QAM_AUTO" "6")
    '("vsb-8" "GST_MPEGTS_MODULATION_VSB_8" "7")
    '("vsb-16" "GST_MPEGTS_MODULATION_VSB_16" "8")
    '("psk-8" "GST_MPEGTS_MODULATION_PSK_8" "9")
    '("apsk-16" "GST_MPEGTS_MODULATION_APSK_16" "10")
    '("apsk-32" "GST_MPEGTS_MODULATION_APSK_32" "11")
    '("dqpsk" "GST_MPEGTS_MODULATION_DQPSK" "12")
    '("qam-4-nr-" "GST_MPEGTS_MODULATION_QAM_4_NR_" "13")
    '("none" "GST_MPEGTS_MODULATION_NONE" "14")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_FEC_NONE = 0,
;;   GST_MPEGTS_FEC_1_2,
;;   GST_MPEGTS_FEC_2_3,
;;   GST_MPEGTS_FEC_3_4,
;;   GST_MPEGTS_FEC_4_5,
;;   GST_MPEGTS_FEC_5_6,
;;   GST_MPEGTS_FEC_6_7,
;;   GST_MPEGTS_FEC_7_8,
;;   GST_MPEGTS_FEC_8_9,
;;   GST_MPEGTS_FEC_AUTO,
;;   GST_MPEGTS_FEC_3_5,
;;   GST_MPEGTS_FEC_9_10,
;;   GST_MPEGTS_FEC_2_5
;; } GstMpegtsDVBCodeRate;

(define-enum-extended MpegtsDVBCodeRate
  (in-module "Gst")
  (c-name "GstMpegtsDVBCodeRate")
  (values
    '("none" "GST_MPEGTS_FEC_NONE" "0")
    '("1-2" "GST_MPEGTS_FEC_1_2" "1")
    '("2-3" "GST_MPEGTS_FEC_2_3" "2")
    '("3-4" "GST_MPEGTS_FEC_3_4" "3")
    '("4-5" "GST_MPEGTS_FEC_4_5" "4")
    '("5-6" "GST_MPEGTS_FEC_5_6" "5")
    '("6-7" "GST_MPEGTS_FEC_6_7" "6")
    '("7-8" "GST_MPEGTS_FEC_7_8" "7")
    '("8-9" "GST_MPEGTS_FEC_8_9" "8")
    '("auto" "GST_MPEGTS_FEC_AUTO" "9")
    '("3-5" "GST_MPEGTS_FEC_3_5" "10")
    '("9-10" "GST_MPEGTS_FEC_9_10" "11")
    '("2-5" "GST_MPEGTS_FEC_2_5" "12")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_ROLLOFF_35 = 0,
;;   GST_MPEGTS_ROLLOFF_20,
;;   GST_MPEGTS_ROLLOFF_25,
;;   GST_MPEGTS_ROLLOFF_RESERVED,
;;   GST_MPEGTS_ROLLOFF_AUTO
;; } GstMpegtsSatelliteRolloff;

(define-enum-extended MpegtsSatelliteRolloff
  (in-module "Gst")
  (c-name "GstMpegtsSatelliteRolloff")
  (values
    '("35" "GST_MPEGTS_ROLLOFF_35" "0")
    '("20" "GST_MPEGTS_ROLLOFF_20" "1")
    '("25" "GST_MPEGTS_ROLLOFF_25" "2")
    '("reserved" "GST_MPEGTS_ROLLOFF_RESERVED" "3")
    '("auto" "GST_MPEGTS_ROLLOFF_AUTO" "4")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL = 0,
;;   GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL,
;;   GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT,
;;   GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT
;; } GstMpegtsSatellitePolarizationType;

(define-enum-extended MpegtsSatellitePolarizationType
  (in-module "Gst")
  (c-name "GstMpegtsSatellitePolarizationType")
  (values
    '("linear-horizontal" "GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL" "0")
    '("linear-vertical" "GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL" "1")
    '("circular-left" "GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT" "2")
    '("circular-right" "GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT" "3")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED = 0,
;;   GST_MPEGTS_CABLE_OUTER_FEC_NONE,
;;   GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188,
;; } GstMpegtsCableOuterFECScheme;

(define-enum-extended MpegtsCableOuterFECScheme
  (in-module "Gst")
  (c-name "GstMpegtsCableOuterFECScheme")
  (values
    '("undefined" "GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED" "0")
    '("none" "GST_MPEGTS_CABLE_OUTER_FEC_NONE" "1")
    '("rs-204-188" "GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_DVB_SERVICE_RESERVED_00               = 0x00,
;;   GST_DVB_SERVICE_DIGITAL_TELEVISION,
;;   GST_DVB_SERVICE_DIGITAL_RADIO_SOUND,
;;   GST_DVB_SERVICE_TELETEXT,
;;   GST_DVB_SERVICE_NVOD_REFERENCE,
;;   GST_DVB_SERVICE_NVOD_TIME_SHIFTED,
;;   GST_DVB_SERVICE_MOSAIC,
;;   GST_DVB_SERVICE_FM_RADIO,
;;   GST_DVB_SERVICE_DVB_SRM,
;;   GST_DVB_SERVICE_RESERVED_09,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_DIGITAL_RADIO_SOUND,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_MOSAIC,
;;   GST_DVB_SERVICE_DATA_BROADCAST,
;;   GST_DVB_SERVICE_RESERVED_0D_COMMON_INTERFACE,
;;   GST_DVB_SERVICE_RCS_MAP,
;;   GST_DVB_SERVICE_RCS_FLS,
;;   GST_DVB_SERVICE_DVB_MHP,
;;   GST_DVB_SERVICE_MPEG2_HD_DIGITAL_TELEVISION,
;;   /* 0x12 - 015 Reserved for future use */
;;   GST_DVB_SERVICE_ADVANCED_CODEC_SD_DIGITAL_TELEVISION = 0x16,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_TIME_SHIFTED,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_REFERENCE,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_HD_DIGITAL_TELEVISION,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_TIME_SHIFTED,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_REFERENCE,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_DIGITAL_TELEVISION,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_TIME_SHIFTED,
;;   GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_REFERENCE,
;;   /* 0x1F - 0x7f Reserved for future use */
;;   /* 0x80 - 0xfe user defined */
;;   /* 0xff Reserved for future use */
;;   GST_DVB_SERVICE_RESERVED_FF
;; } GstMpegtsDVBServiceType;

(define-enum-extended MpegtsDVBServiceType
  (in-module "Gst")
  (c-name "GstMpegtsDVBServiceType")
  (values
    '("reserved-00" "GST_DVB_SERVICE_RESERVED_00" "0x00")
    '("digital-television" "GST_DVB_SERVICE_DIGITAL_TELEVISION" "1")
    '("digital-radio-sound" "GST_DVB_SERVICE_DIGITAL_RADIO_SOUND" "2")
    '("teletext" "GST_DVB_SERVICE_TELETEXT" "3")
    '("nvod-reference" "GST_DVB_SERVICE_NVOD_REFERENCE" "4")
    '("nvod-time-shifted" "GST_DVB_SERVICE_NVOD_TIME_SHIFTED" "5")
    '("mosaic" "GST_DVB_SERVICE_MOSAIC" "6")
    '("fm-radio" "GST_DVB_SERVICE_FM_RADIO" "7")
    '("dvb-srm" "GST_DVB_SERVICE_DVB_SRM" "8")
    '("reserved-09" "GST_DVB_SERVICE_RESERVED_09" "9")
    '("advanced-codec-digital-radio-sound" "GST_DVB_SERVICE_ADVANCED_CODEC_DIGITAL_RADIO_SOUND" "10")
    '("advanced-codec-mosaic" "GST_DVB_SERVICE_ADVANCED_CODEC_MOSAIC" "11")
    '("data-broadcast" "GST_DVB_SERVICE_DATA_BROADCAST" "12")
    '("reserved-0d-common-interface" "GST_DVB_SERVICE_RESERVED_0D_COMMON_INTERFACE" "13")
    '("rcs-map" "GST_DVB_SERVICE_RCS_MAP" "14")
    '("rcs-fls" "GST_DVB_SERVICE_RCS_FLS" "15")
    '("dvb-mhp" "GST_DVB_SERVICE_DVB_MHP" "16")
    '("mpeg2-hd-digital-television" "GST_DVB_SERVICE_MPEG2_HD_DIGITAL_TELEVISION" "17")
    '("advanced-codec-sd-digital-television" "GST_DVB_SERVICE_ADVANCED_CODEC_SD_DIGITAL_TELEVISION" "0x16")
    '("advanced-codec-sd-nvod-time-shifted" "GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_TIME_SHIFTED" "23")
    '("advanced-codec-sd-nvod-reference" "GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_REFERENCE" "24")
    '("advanced-codec-hd-digital-television" "GST_DVB_SERVICE_ADVANCED_CODEC_HD_DIGITAL_TELEVISION" "25")
    '("advanced-codec-hd-nvod-time-shifted" "GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_TIME_SHIFTED" "26")
    '("advanced-codec-hd-nvod-reference" "GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_REFERENCE" "27")
    '("advanced-codec-stereo-hd-digital-television" "GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_DIGITAL_TELEVISION" "28")
    '("advanced-codec-stereo-hd-nvod-time-shifted" "GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_TIME_SHIFTED" "29")
    '("advanced-codec-stereo-hd-nvod-reference" "GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_REFERENCE" "30")
    '("reserved-ff" "GST_DVB_SERVICE_RESERVED_FF" "31")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* 0x00, 0x0F-0x7F reserved for future use */
;;   GST_MPEGTS_DVB_LINKAGE_RESERVED_00               = 0x00,
;;   GST_MPEGTS_DVB_LINKAGE_INFORMATION               = 0x01,
;;   GST_MPEGTS_DVB_LINKAGE_EPG                       = 0x02,
;;   GST_MPEGTS_DVB_LINKAGE_CA_REPLACEMENT            = 0x03,
;;   GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_COMPLETE_SI = 0x04,
;;   GST_MPEGTS_DVB_LINKAGE_SERVICE_REPLACEMENT       = 0x05,
;;   GST_MPEGTS_DVB_LINKAGE_DATA_BROADCAST            = 0x06,
;;   GST_MPEGTS_DVB_LINKAGE_RCS_MAP                   = 0x07,
;;   GST_MPEGTS_DVB_LINKAGE_MOBILE_HAND_OVER          = 0x08,
;;   GST_MPEGTS_DVB_LINKAGE_SYSTEM_SOFTWARE_UPDATE    = 0x09,
;;   GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_SSU         = 0x0A,
;;   GST_MPEGTS_DVB_LINKAGE_IP_MAC_NOTIFICATION       = 0x0B,
;;   GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_INT         = 0x0C,
;;   GST_MPEGTS_DVB_LINKAGE_EVENT                     = 0x0D,
;;   GST_MPEGTS_DVB_LINKAGE_EXTENDED_EVENT            = 0x0E,
;; } GstMpegtsDVBLinkageType;

(define-flags-extended MpegtsDVBLinkageType
  (in-module "Gst")
  (c-name "GstMpegtsDVBLinkageType")
  (values
    '("reserved-00" "GST_MPEGTS_DVB_LINKAGE_RESERVED_00" "0x00")
    '("information" "GST_MPEGTS_DVB_LINKAGE_INFORMATION" "0x01")
    '("epg" "GST_MPEGTS_DVB_LINKAGE_EPG" "0x02")
    '("ca-replacement" "GST_MPEGTS_DVB_LINKAGE_CA_REPLACEMENT" "0x03")
    '("ts-containing-complete-si" "GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_COMPLETE_SI" "0x04")
    '("service-replacement" "GST_MPEGTS_DVB_LINKAGE_SERVICE_REPLACEMENT" "0x05")
    '("data-broadcast" "GST_MPEGTS_DVB_LINKAGE_DATA_BROADCAST" "0x06")
    '("rcs-map" "GST_MPEGTS_DVB_LINKAGE_RCS_MAP" "0x07")
    '("mobile-hand-over" "GST_MPEGTS_DVB_LINKAGE_MOBILE_HAND_OVER" "0x08")
    '("system-software-update" "GST_MPEGTS_DVB_LINKAGE_SYSTEM_SOFTWARE_UPDATE" "0x09")
    '("ts-containing-ssu" "GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_SSU" "0x0A")
    '("ip-mac-notification" "GST_MPEGTS_DVB_LINKAGE_IP_MAC_NOTIFICATION" "0x0B")
    '("ts-containing-int" "GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_INT" "0x0C")
    '("event" "GST_MPEGTS_DVB_LINKAGE_EVENT" "0x0D")
    '("extended-event" "GST_MPEGTS_DVB_LINKAGE_EXTENDED_EVENT" "0x0E")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_DVB_LINKAGE_HAND_OVER_RESERVED        = 0x00,
;;   GST_MPEGTS_DVB_LINKAGE_HAND_OVER_IDENTICAL       = 0x01,
;;   GST_MPEGTS_DVB_LINKAGE_HAND_OVER_LOCAL_VARIATION = 0x02,
;;   GST_MPEGTS_DVB_LINKAGE_HAND_OVER_ASSOCIATED      = 0x03,
;; } GstMpegtsDVBLinkageHandOverType;

(define-flags-extended MpegtsDVBLinkageHandOverType
  (in-module "Gst")
  (c-name "GstMpegtsDVBLinkageHandOverType")
  (values
    '("reserved" "GST_MPEGTS_DVB_LINKAGE_HAND_OVER_RESERVED" "0x00")
    '("identical" "GST_MPEGTS_DVB_LINKAGE_HAND_OVER_IDENTICAL" "0x01")
    '("local-variation" "GST_MPEGTS_DVB_LINKAGE_HAND_OVER_LOCAL_VARIATION" "0x02")
    '("associated" "GST_MPEGTS_DVB_LINKAGE_HAND_OVER_ASSOCIATED" "0x03")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_STREAM_CONTENT_MPEG2_VIDEO          = 0x01,
;;   GST_MPEGTS_STREAM_CONTENT_MPEG1_LAYER2_AUDIO   = 0x02,
;;   GST_MPEGTS_STREAM_CONTENT_TELETEXT_OR_SUBTITLE = 0x03,
;;   GST_MPEGTS_STREAM_CONTENT_AC_3                 = 0x04,
;;   GST_MPEGTS_STREAM_CONTENT_AVC                  = 0x05,
;;   GST_MPEGTS_STREAM_CONTENT_AAC                  = 0x06,
;;   GST_MPEGTS_STREAM_CONTENT_DTS                  = 0x07,
;;   GST_MPEGTS_STREAM_CONTENT_SRM_CPCM             = 0x08
;; } GstMpegtsComponentStreamContent;

(define-flags-extended MpegtsComponentStreamContent
  (in-module "Gst")
  (c-name "GstMpegtsComponentStreamContent")
  (values
    '("mpeg2-video" "GST_MPEGTS_STREAM_CONTENT_MPEG2_VIDEO" "0x01")
    '("mpeg1-layer2-audio" "GST_MPEGTS_STREAM_CONTENT_MPEG1_LAYER2_AUDIO" "0x02")
    '("teletext-or-subtitle" "GST_MPEGTS_STREAM_CONTENT_TELETEXT_OR_SUBTITLE" "0x03")
    '("ac-3" "GST_MPEGTS_STREAM_CONTENT_AC_3" "0x04")
    '("avc" "GST_MPEGTS_STREAM_CONTENT_AVC" "0x05")
    '("aac" "GST_MPEGTS_STREAM_CONTENT_AAC" "0x06")
    '("dts" "GST_MPEGTS_STREAM_CONTENT_DTS" "0x07")
    '("srm-cpcm" "GST_MPEGTS_STREAM_CONTENT_SRM_CPCM" "0x08")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_CONTENT_MOVIE_DRAMA                = 0x01,
;;   GST_MPEGTS_CONTENT_NEWS_CURRENT_AFFAIRS       = 0x02,
;;   GST_MPEGTS_CONTENT_SHOW_GAME_SHOW             = 0x03,
;;   GST_MPEGTS_CONTENT_SPORTS                     = 0x04,
;;   GST_MPEGTS_CONTENT_CHILDREN_YOUTH_PROGRAM     = 0x05,
;;   GST_MPEGTS_CONTENT_MUSIC_BALLET_DANCE         = 0x06,
;;   GST_MPEGTS_CONTENT_ARTS_CULTURE               = 0x07,
;;   GST_MPEGTS_CONTENT_SOCIAL_POLITICAL_ECONOMICS = 0x08,
;;   GST_MPEGTS_CONTENT_EDUCATION_SCIENCE_FACTUAL  = 0x09,
;;   GST_MPEGTS_CONTENT_LEISURE_HOBBIES            = 0x0A,
;;   GST_MPEGTS_CONTENT_SPECIAL_CHARACTERISTICS    = 0x0B
;; } GstMpegtsContentNibbleHi;

(define-flags-extended MpegtsContentNibbleHi
  (in-module "Gst")
  (c-name "GstMpegtsContentNibbleHi")
  (values
    '("movie-drama" "GST_MPEGTS_CONTENT_MOVIE_DRAMA" "0x01")
    '("news-current-affairs" "GST_MPEGTS_CONTENT_NEWS_CURRENT_AFFAIRS" "0x02")
    '("show-game-show" "GST_MPEGTS_CONTENT_SHOW_GAME_SHOW" "0x03")
    '("sports" "GST_MPEGTS_CONTENT_SPORTS" "0x04")
    '("children-youth-program" "GST_MPEGTS_CONTENT_CHILDREN_YOUTH_PROGRAM" "0x05")
    '("music-ballet-dance" "GST_MPEGTS_CONTENT_MUSIC_BALLET_DANCE" "0x06")
    '("arts-culture" "GST_MPEGTS_CONTENT_ARTS_CULTURE" "0x07")
    '("social-political-economics" "GST_MPEGTS_CONTENT_SOCIAL_POLITICAL_ECONOMICS" "0x08")
    '("education-science-factual" "GST_MPEGTS_CONTENT_EDUCATION_SCIENCE_FACTUAL" "0x09")
    '("leisure-hobbies" "GST_MPEGTS_CONTENT_LEISURE_HOBBIES" "0x0A")
    '("special-characteristics" "GST_MPEGTS_CONTENT_SPECIAL_CHARACTERISTICS" "0x0B")
  )
)

;; Original typedef:
;; typedef enum {
;;   INITIAL_PAGE = 0x01,
;;   SUBTITLE_PAGE,
;;   ADDITIONAL_INFO_PAGE,
;;   PROGRAMME_SCHEDULE_PAGE,
;;   HEARING_IMPAIRED_PAGE
;; } GstMpegtsDVBTeletextType;

(define-enum-extended MpegtsDVBTeletextType
  (in-module "Gst")
  (c-name "GstMpegtsDVBTeletextType")
  (values
    '("initial-page" "INITIAL_PAGE" "0x01")
    '("subtitle-page" "SUBTITLE_PAGE" "2")
    '("additional-info-page" "ADDITIONAL_INFO_PAGE" "3")
    '("programme-schedule-page" "PROGRAMME_SCHEDULE_PAGE" "4")
    '("hearing-impaired-page" "HEARING_IMPAIRED_PAGE" "5")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_TRANSMISSION_MODE_2K = 0,
;;   GST_MPEGTS_TRANSMISSION_MODE_8K,
;;   GST_MPEGTS_TRANSMISSION_MODE_AUTO,
;;   GST_MPEGTS_TRANSMISSION_MODE_4K,
;;   GST_MPEGTS_TRANSMISSION_MODE_1K,
;;   GST_MPEGTS_TRANSMISSION_MODE_16K,
;;   GST_MPEGTS_TRANSMISSION_MODE_32K,
;;   GST_MPEGTS_TRANSMISSION_MODE_C1,
;;   GST_MPEGTS_TRANSMISSION_MODE_C3780
;; } GstMpegtsTerrestrialTransmissionMode;

(define-enum-extended MpegtsTerrestrialTransmissionMode
  (in-module "Gst")
  (c-name "GstMpegtsTerrestrialTransmissionMode")
  (values
    '("2k" "GST_MPEGTS_TRANSMISSION_MODE_2K" "0")
    '("8k" "GST_MPEGTS_TRANSMISSION_MODE_8K" "1")
    '("auto" "GST_MPEGTS_TRANSMISSION_MODE_AUTO" "2")
    '("4k" "GST_MPEGTS_TRANSMISSION_MODE_4K" "3")
    '("1k" "GST_MPEGTS_TRANSMISSION_MODE_1K" "4")
    '("16k" "GST_MPEGTS_TRANSMISSION_MODE_16K" "5")
    '("32k" "GST_MPEGTS_TRANSMISSION_MODE_32K" "6")
    '("c1" "GST_MPEGTS_TRANSMISSION_MODE_C1" "7")
    '("c3780" "GST_MPEGTS_TRANSMISSION_MODE_C3780" "8")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_GUARD_INTERVAL_1_32 = 0,
;;   GST_MPEGTS_GUARD_INTERVAL_1_16,
;;   GST_MPEGTS_GUARD_INTERVAL_1_8,
;;   GST_MPEGTS_GUARD_INTERVAL_1_4,
;;   GST_MPEGTS_GUARD_INTERVAL_AUTO,
;;   GST_MPEGTS_GUARD_INTERVAL_1_128,
;;   GST_MPEGTS_GUARD_INTERVAL_19_128,
;;   GST_MPEGTS_GUARD_INTERVAL_19_256,
;;   GST_MPEGTS_GUARD_INTERVAL_PN420,
;;   GST_MPEGTS_GUARD_INTERVAL_PN595,
;;   GST_MPEGTS_GUARD_INTERVAL_PN945
;; } GstMpegtsTerrestrialGuardInterval;

(define-enum-extended MpegtsTerrestrialGuardInterval
  (in-module "Gst")
  (c-name "GstMpegtsTerrestrialGuardInterval")
  (values
    '("1-32" "GST_MPEGTS_GUARD_INTERVAL_1_32" "0")
    '("1-16" "GST_MPEGTS_GUARD_INTERVAL_1_16" "1")
    '("1-8" "GST_MPEGTS_GUARD_INTERVAL_1_8" "2")
    '("1-4" "GST_MPEGTS_GUARD_INTERVAL_1_4" "3")
    '("auto" "GST_MPEGTS_GUARD_INTERVAL_AUTO" "4")
    '("1-128" "GST_MPEGTS_GUARD_INTERVAL_1_128" "5")
    '("19-128" "GST_MPEGTS_GUARD_INTERVAL_19_128" "6")
    '("19-256" "GST_MPEGTS_GUARD_INTERVAL_19_256" "7")
    '("pn420" "GST_MPEGTS_GUARD_INTERVAL_PN420" "8")
    '("pn595" "GST_MPEGTS_GUARD_INTERVAL_PN595" "9")
    '("pn945" "GST_MPEGTS_GUARD_INTERVAL_PN945" "10")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_HIERARCHY_NONE = 0,
;;   GST_MPEGTS_HIERARCHY_1,
;;   GST_MPEGTS_HIERARCHY_2,
;;   GST_MPEGTS_HIERARCHY_4,
;;   GST_MPEGTS_HIERARCHY_AUTO
;; } GstMpegtsTerrestrialHierarchy;

(define-enum-extended MpegtsTerrestrialHierarchy
  (in-module "Gst")
  (c-name "GstMpegtsTerrestrialHierarchy")
  (values
    '("none" "GST_MPEGTS_HIERARCHY_NONE" "0")
    '("1" "GST_MPEGTS_HIERARCHY_1" "1")
    '("2" "GST_MPEGTS_HIERARCHY_2" "2")
    '("4" "GST_MPEGTS_HIERARCHY_4" "3")
    '("auto" "GST_MPEGTS_HIERARCHY_AUTO" "4")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_RESERVED              = 0x00,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA1                  = 0x01,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA2                  = 0x02,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_STANDARD         = 0x03,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_MINIMAL_ENHANCED = 0x04,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_FULL_ENHANCED    = 0x05,
;;   /* 0x06 - 0x0f reserved for future use */
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_CISSA                 = 0x10,
;;   /* 0x11 - 0x1f reserved for future DVB-CISSA versions */
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_0                = 0x70,
;;   GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_F                = 0x7f,
;; } GstMpegtsDVBScramblingModeType;

(define-flags-extended MpegtsDVBScramblingModeType
  (in-module "Gst")
  (c-name "GstMpegtsDVBScramblingModeType")
  (values
    '("reserved" "GST_MPEGTS_DVB_SCRAMBLING_MODE_RESERVED" "0x00")
    '("csa1" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA1" "0x01")
    '("csa2" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA2" "0x02")
    '("csa3-standard" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_STANDARD" "0x03")
    '("csa3-minimal-enhanced" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_MINIMAL_ENHANCED" "0x04")
    '("csa3-full-enhanced" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_FULL_ENHANCED" "0x05")
    '("cissa" "GST_MPEGTS_DVB_SCRAMBLING_MODE_CISSA" "0x10")
    '("atis-0" "GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_0" "0x70")
    '("atis-f" "GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_F" "0x7f")
  )
)

;; From gst-dvb-section.h

;; Original typedef:
;; typedef enum {
;;   /* EN 300 468 (DVB) v 1.12.1 */
;;   GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK	= 0x40,
;;   GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK	= 0x41,
;;   GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS	= 0x42,
;;   GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS		= 0x46,
;;   GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION			= 0x4A,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT	= 0x4E,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT	= 0x4F,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1	= 0x50,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N	= 0x5F,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1	= 0x60,
;;   GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N	= 0x6F,
;;   GST_MTS_TABLE_ID_TIME_DATE				= 0x70,
;;   GST_MTS_TABLE_ID_RUNNING_STATUS			= 0x71,
;;   GST_MTS_TABLE_ID_STUFFING				= 0x72,
;;   GST_MTS_TABLE_ID_TIME_OFFSET				= 0x73,
;; 
;;   /* TS 102 812 (MHP v1.1.3) */
;;   GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE	= 0x74,
;; 
;;   /* TS 102 323 (DVB TV Anytime v1.5.1) */
;;   GST_MTS_TABLE_ID_CONTAINER				= 0x75,
;;   GST_MTS_TABLE_ID_RELATED_CONTENT			= 0x76,
;;   GST_MTS_TABLE_ID_CONTENT_IDENTIFIER			= 0x77,
;;   
;;   /* EN 301 192 (DVB specification for data broadcasting) */
;;   GST_MTS_TABLE_ID_MPE_FEC				= 0x78,
;; 
;;   /* TS 102 323 (DVB TV Anytime v1.5.1) */
;;   GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION		= 0x79,
;; 
;;   /* TS 102 772 (DVB-SH Multi-Protocol Encapsulation) */
;;   GST_MTS_TABLE_ID_MPE_IFEC				= 0x7A,
;;   
;;   /* EN 300 468 (DVB) v 1.12.1 */
;;   GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION		= 0x7E,
;;   GST_MTS_TABLE_ID_SELECTION_INFORMATION		= 0x7F,
;; 
;;   /* ETR 289 (DVB Support for use of scrambling and CA) */
;;   GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0			= 0x80,
;;   GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1			= 0x81,
;;   GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1		= 0x82,
;;   GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N		= 0x8F,
;; 
;;   /* ... */
;; 
;;   /* EN 301 790 (DVB interaction channel for satellite distribution channels) */
;;   GST_MTS_TABLE_ID_SCT					= 0xA0,
;;   GST_MTS_TABLE_ID_FCT					= 0xA1,
;;   GST_MTS_TABLE_ID_TCT					= 0xA2,
;;   GST_MTS_TABLE_ID_SPT					= 0xA3,
;;   GST_MTS_TABLE_ID_CMT					= 0xA4,
;;   GST_MTS_TABLE_ID_TBTP					= 0xA5,
;;   GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD			= 0xA6,
;;   GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD	= 0xAA,
;;   GST_MTS_TABLE_ID_TIM					= 0xB0,
;;   GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE		= 0xB1
;; 
;; } GstMpegtsSectionDVBTableID;

(define-flags-extended MpegtsSectionDVBTableID
  (in-module "Gst")
  (c-name "GstMpegtsSectionDVBTableID")
  (values
    '("network-information-actual-network" "GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK" "0x40")
    '("network-information-other-network" "GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK" "0x41")
    '("service-description-actual-ts" "GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS" "0x42")
    '("service-description-other-ts" "GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS" "0x46")
    '("bouquet-association" "GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION" "0x4A")
    '("event-information-actual-ts-present" "GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT" "0x4E")
    '("event-information-other-ts-present" "GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT" "0x4F")
    '("event-information-actual-ts-schedule-1" "GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1" "0x50")
    '("event-information-actual-ts-schedule-n" "GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N" "0x5F")
    '("event-information-other-ts-schedule-1" "GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1" "0x60")
    '("event-information-other-ts-schedule-n" "GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N" "0x6F")
    '("time-date" "GST_MTS_TABLE_ID_TIME_DATE" "0x70")
    '("running-status" "GST_MTS_TABLE_ID_RUNNING_STATUS" "0x71")
    '("stuffing" "GST_MTS_TABLE_ID_STUFFING" "0x72")
    '("time-offset" "GST_MTS_TABLE_ID_TIME_OFFSET" "0x73")
    '("application-information-table" "GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE" "0x74")
    '("container" "GST_MTS_TABLE_ID_CONTAINER" "0x75")
    '("related-content" "GST_MTS_TABLE_ID_RELATED_CONTENT" "0x76")
    '("content-identifier" "GST_MTS_TABLE_ID_CONTENT_IDENTIFIER" "0x77")
    '("mpe-fec" "GST_MTS_TABLE_ID_MPE_FEC" "0x78")
    '("resolution-notification" "GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION" "0x79")
    '("mpe-ifec" "GST_MTS_TABLE_ID_MPE_IFEC" "0x7A")
    '("discontinuity-information" "GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION" "0x7E")
    '("selection-information" "GST_MTS_TABLE_ID_SELECTION_INFORMATION" "0x7F")
    '("ca-message-ecm-0" "GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0" "0x80")
    '("ca-message-ecm-1" "GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1" "0x81")
    '("ca-message-system-private-1" "GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1" "0x82")
    '("ca-message-system-private-n" "GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N" "0x8F")
    '("sct" "GST_MTS_TABLE_ID_SCT" "0xA0")
    '("fct" "GST_MTS_TABLE_ID_FCT" "0xA1")
    '("tct" "GST_MTS_TABLE_ID_TCT" "0xA2")
    '("spt" "GST_MTS_TABLE_ID_SPT" "0xA3")
    '("cmt" "GST_MTS_TABLE_ID_CMT" "0xA4")
    '("tbtp" "GST_MTS_TABLE_ID_TBTP" "0xA5")
    '("pcr-packet-payload" "GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD" "0xA6")
    '("transmission-mode-support-payload" "GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD" "0xAA")
    '("tim" "GST_MTS_TABLE_ID_TIM" "0xB0")
    '("ll-fec-parity-data-table" "GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE" "0xB1")
  )
)

;; Original typedef:
;; typedef enum
;; {
;;   GST_MPEGTS_RUNNING_STATUS_UNDEFINED = 0,
;;   GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING,
;;   GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS,
;;   GST_MPEGTS_RUNNING_STATUS_PAUSING,
;;   GST_MPEGTS_RUNNING_STATUS_RUNNING,
;;   GST_MPEGTS_RUNNING_STATUS_OFF_AIR
;; } GstMpegtsRunningStatus;

(define-enum-extended MpegtsRunningStatus
  (in-module "Gst")
  (c-name "GstMpegtsRunningStatus")
  (values
    '("undefined" "GST_MPEGTS_RUNNING_STATUS_UNDEFINED" "0")
    '("not-running" "GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING" "1")
    '("starts-in-few-seconds" "GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS" "2")
    '("pausing" "GST_MPEGTS_RUNNING_STATUS_PAUSING" "3")
    '("running" "GST_MPEGTS_RUNNING_STATUS_RUNNING" "4")
    '("off-air" "GST_MPEGTS_RUNNING_STATUS_OFF_AIR" "5")
  )
)

;; From gstmpegtsdescriptor.h

;; Original typedef:
;; typedef enum {
;;   /* 0-18 ISO/IEC 13818-1 (H222.0 06/2012) */
;;   GST_MTS_DESC_RESERVED_00                      = 0x00,
;;   GST_MTS_DESC_RESERVED_01                      = 0x01,
;;   GST_MTS_DESC_VIDEO_STREAM                     = 0x02,
;;   GST_MTS_DESC_AUDIO_STREAM                     = 0x03,
;;   GST_MTS_DESC_HIERARCHY                        = 0x04,
;;   GST_MTS_DESC_REGISTRATION                     = 0x05,
;;   GST_MTS_DESC_DATA_STREAM_ALIGNMENT            = 0x06,
;;   GST_MTS_DESC_TARGET_BACKGROUND_GRID           = 0x07,
;;   GST_MTS_DESC_VIDEO_WINDOW                     = 0x08,
;;   GST_MTS_DESC_CA                               = 0x09,
;;   GST_MTS_DESC_ISO_639_LANGUAGE                 = 0x0A,
;;   GST_MTS_DESC_SYSTEM_CLOCK                     = 0x0B,
;;   GST_MTS_DESC_MULTIPLEX_BUFFER_UTILISATION     = 0x0C,
;;   GST_MTS_DESC_COPYRIGHT                        = 0x0D,
;;   GST_MTS_DESC_MAXIMUM_BITRATE                  = 0x0E,
;;   GST_MTS_DESC_PRIVATE_DATA_INDICATOR           = 0x0F,
;;   GST_MTS_DESC_SMOOTHING_BUFFER                 = 0x10,
;;   GST_MTS_DESC_STD                              = 0x11,
;;   GST_MTS_DESC_IBP                              = 0x12,
;; 
;;   /* 19-26 Defined in ISO/IEC 13818-6 (Extensions for DSM-CC) */
;;   GST_MTS_DESC_DSMCC_CAROUSEL_IDENTIFIER        = 0x13,
;;   GST_MTS_DESC_DSMCC_ASSOCIATION_TAG            = 0x14,
;;   GST_MTS_DESC_DSMCC_DEFERRED_ASSOCIATION_TAG   = 0x15,
;;   /* 0x16 is reserved (so far) */
;;   GST_MTS_DESC_DSMCC_NPT_REFERENCE              = 0x17,
;;   GST_MTS_DESC_DSMCC_NPT_ENDPOINT               = 0x18,
;;   GST_MTS_DESC_DSMCC_STREAM_MODE                = 0x19,
;;   GST_MTS_DESC_DSMCC_STREAM_EVENT               = 0x1A,
;; 
;;   /* 27-54 Later additions to ISO/IEC 13818-1 (H222.0 06/2012) */
;;   GST_MTS_DESC_MPEG4_VIDEO                      = 0x1B,
;;   GST_MTS_DESC_MPEG4_AUDIO                      = 0x1C,
;;   GST_MTS_DESC_IOD                              = 0x1D,
;;   GST_MTS_DESC_SL                               = 0x1E,
;;   GST_MTS_DESC_FMC                              = 0x1F,
;;   GST_MTS_DESC_EXTERNAL_ES_ID                   = 0x20,
;;   GST_MTS_DESC_MUX_CODE                         = 0x21,
;;   GST_MTS_DESC_FMX_BUFFER_SIZE                  = 0x22,
;;   GST_MTS_DESC_MULTIPLEX_BUFFER                 = 0x23,
;;   GST_MTS_DESC_CONTENT_LABELING                 = 0x24,
;;   GST_MTS_DESC_METADATA_POINTER                 = 0x25,
;;   GST_MTS_DESC_METADATA                         = 0x26,
;;   GST_MTS_DESC_METADATA_STD                     = 0x27,
;;   GST_MTS_DESC_AVC_VIDEO                        = 0x28,
;;   /* defined in ISO/IEC 13818-11, MPEG-2 IPMP */
;;   GST_MTS_DESC_IPMP                             = 0x29,
;;   GST_MTS_DESC_AVC_TIMING_AND_HRD               = 0x2A,
;;   GST_MTS_DESC_MPEG2_AAC_AUDIO                  = 0x2B,
;;   GST_MTS_DESC_FLEX_MUX_TIMING                  = 0x2C,
;;   GST_MTS_DESC_MPEG4_TEXT                       = 0x2D,
;;   GST_MTS_DESC_MPEG4_AUDIO_EXTENSION            = 0x2E,
;;   GST_MTS_DESC_AUXILIARY_VIDEO_STREAM           = 0x2F,
;;   GST_MTS_DESC_SVC_EXTENSION                    = 0x30,
;;   GST_MTS_DESC_MVC_EXTENSION                    = 0x31,
;;   GST_MTS_DESC_J2K_VIDEO                        = 0x32,
;;   GST_MTS_DESC_MVC_OPERATION_POINT              = 0x33,
;;   GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT  = 0x34,
;;   GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO        = 0x35,
;;   GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO          = 0x36,
;; 
;;   /* 55-63 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved */
;; } GstMpegtsDescriptorType;

(define-flags-extended MpegtsDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsDescriptorType")
  (values
    '("reserved-00" "GST_MTS_DESC_RESERVED_00" "0x00")
    '("reserved-01" "GST_MTS_DESC_RESERVED_01" "0x01")
    '("video-stream" "GST_MTS_DESC_VIDEO_STREAM" "0x02")
    '("audio-stream" "GST_MTS_DESC_AUDIO_STREAM" "0x03")
    '("hierarchy" "GST_MTS_DESC_HIERARCHY" "0x04")
    '("registration" "GST_MTS_DESC_REGISTRATION" "0x05")
    '("data-stream-alignment" "GST_MTS_DESC_DATA_STREAM_ALIGNMENT" "0x06")
    '("target-background-grid" "GST_MTS_DESC_TARGET_BACKGROUND_GRID" "0x07")
    '("video-window" "GST_MTS_DESC_VIDEO_WINDOW" "0x08")
    '("ca" "GST_MTS_DESC_CA" "0x09")
    '("iso-639-language" "GST_MTS_DESC_ISO_639_LANGUAGE" "0x0A")
    '("system-clock" "GST_MTS_DESC_SYSTEM_CLOCK" "0x0B")
    '("multiplex-buffer-utilisation" "GST_MTS_DESC_MULTIPLEX_BUFFER_UTILISATION" "0x0C")
    '("copyright" "GST_MTS_DESC_COPYRIGHT" "0x0D")
    '("maximum-bitrate" "GST_MTS_DESC_MAXIMUM_BITRATE" "0x0E")
    '("private-data-indicator" "GST_MTS_DESC_PRIVATE_DATA_INDICATOR" "0x0F")
    '("smoothing-buffer" "GST_MTS_DESC_SMOOTHING_BUFFER" "0x10")
    '("std" "GST_MTS_DESC_STD" "0x11")
    '("ibp" "GST_MTS_DESC_IBP" "0x12")
    '("dsmcc-carousel-identifier" "GST_MTS_DESC_DSMCC_CAROUSEL_IDENTIFIER" "0x13")
    '("dsmcc-association-tag" "GST_MTS_DESC_DSMCC_ASSOCIATION_TAG" "0x14")
    '("dsmcc-deferred-association-tag" "GST_MTS_DESC_DSMCC_DEFERRED_ASSOCIATION_TAG" "0x15")
    '("dsmcc-npt-reference" "GST_MTS_DESC_DSMCC_NPT_REFERENCE" "0x17")
    '("dsmcc-npt-endpoint" "GST_MTS_DESC_DSMCC_NPT_ENDPOINT" "0x18")
    '("dsmcc-stream-mode" "GST_MTS_DESC_DSMCC_STREAM_MODE" "0x19")
    '("dsmcc-stream-event" "GST_MTS_DESC_DSMCC_STREAM_EVENT" "0x1A")
    '("mpeg4-video" "GST_MTS_DESC_MPEG4_VIDEO" "0x1B")
    '("mpeg4-audio" "GST_MTS_DESC_MPEG4_AUDIO" "0x1C")
    '("iod" "GST_MTS_DESC_IOD" "0x1D")
    '("sl" "GST_MTS_DESC_SL" "0x1E")
    '("fmc" "GST_MTS_DESC_FMC" "0x1F")
    '("external-es-id" "GST_MTS_DESC_EXTERNAL_ES_ID" "0x20")
    '("mux-code" "GST_MTS_DESC_MUX_CODE" "0x21")
    '("fmx-buffer-size" "GST_MTS_DESC_FMX_BUFFER_SIZE" "0x22")
    '("multiplex-buffer" "GST_MTS_DESC_MULTIPLEX_BUFFER" "0x23")
    '("content-labeling" "GST_MTS_DESC_CONTENT_LABELING" "0x24")
    '("metadata-pointer" "GST_MTS_DESC_METADATA_POINTER" "0x25")
    '("metadata" "GST_MTS_DESC_METADATA" "0x26")
    '("metadata-std" "GST_MTS_DESC_METADATA_STD" "0x27")
    '("avc-video" "GST_MTS_DESC_AVC_VIDEO" "0x28")
    '("ipmp" "GST_MTS_DESC_IPMP" "0x29")
    '("avc-timing-and-hrd" "GST_MTS_DESC_AVC_TIMING_AND_HRD" "0x2A")
    '("mpeg2-aac-audio" "GST_MTS_DESC_MPEG2_AAC_AUDIO" "0x2B")
    '("flex-mux-timing" "GST_MTS_DESC_FLEX_MUX_TIMING" "0x2C")
    '("mpeg4-text" "GST_MTS_DESC_MPEG4_TEXT" "0x2D")
    '("mpeg4-audio-extension" "GST_MTS_DESC_MPEG4_AUDIO_EXTENSION" "0x2E")
    '("auxiliary-video-stream" "GST_MTS_DESC_AUXILIARY_VIDEO_STREAM" "0x2F")
    '("svc-extension" "GST_MTS_DESC_SVC_EXTENSION" "0x30")
    '("mvc-extension" "GST_MTS_DESC_MVC_EXTENSION" "0x31")
    '("j2k-video" "GST_MTS_DESC_J2K_VIDEO" "0x32")
    '("mvc-operation-point" "GST_MTS_DESC_MVC_OPERATION_POINT" "0x33")
    '("mpeg2-stereoscopic-video-format" "GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT" "0x34")
    '("stereoscopic-program-info" "GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO" "0x35")
    '("stereoscopic-video-info" "GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO" "0x36")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* 0x80 - 0xFE are user defined */
;;   GST_MTS_DESC_AC3_AUDIO_STREAM                 = 0x81,
;;   GST_MTS_DESC_DTG_LOGICAL_CHANNEL              = 0x83,    /* from DTG D-Book */
;; } GstMpegtsMiscDescriptorType;

(define-flags-extended MpegtsMiscDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsMiscDescriptorType")
  (values
    '("ac3-audio-stream" "GST_MTS_DESC_AC3_AUDIO_STREAM" "0x81")
    '("dtg-logical-channel" "GST_MTS_DESC_DTG_LOGICAL_CHANNEL" "0x83")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* ATSC A/65 2009 */
;;   GST_MTS_DESC_ATSC_STUFFING                    = 0x80,
;;   GST_MTS_DESC_ATSC_AC3                         = 0x83,
;;   GST_MTS_DESC_ATSC_CAPTION_SERVICE             = 0x86,
;;   GST_MTS_DESC_ATSC_CONTENT_ADVISORY            = 0x87,
;;   GST_MTS_DESC_ATSC_EXTENDED_CHANNEL_NAME       = 0xA0,
;;   GST_MTS_DESC_ATSC_SERVICE_LOCATION            = 0xA1,
;;   GST_MTS_DESC_ATSC_TIME_SHIFTED_SERVICE        = 0xA2,
;;   GST_MTS_DESC_ATSC_COMPONENT_NAME              = 0xA3,
;;   GST_MTS_DESC_ATSC_DCC_DEPARTING_REQUEST       = 0xA8,
;;   GST_MTS_DESC_ATSC_DCC_ARRIVING_REQUEST        = 0xA9,
;;   GST_MTS_DESC_ATSC_REDISTRIBUTION_CONTROL      = 0xAA,
;;   GST_MTS_DESC_ATSC_GENRE                       = 0xAB,
;;   GST_MTS_DESC_ATSC_PRIVATE_INFORMATION         = 0xAD,
;; 
;;   /* ATSC A/53:3 2009 */
;;   GST_MTS_DESC_ATSC_ENHANCED_SIGNALING          = 0xB2,
;; 
;;   /* ATSC A/90 */
;;   GST_MTS_DESC_ATSC_DATA_SERVICE                = 0xA4,
;;   GST_MTS_DESC_ATSC_PID_COUNT                   = 0xA5,
;;   GST_MTS_DESC_ATSC_DOWNLOAD_DESCRIPTOR         = 0xA6,
;;   GST_MTS_DESC_ATSC_MULTIPROTOCOL_ENCAPSULATION = 0xA7,
;;   GST_MTS_DESC_ATSC_MODULE_LINK                 = 0xB4,
;;   GST_MTS_DESC_ATSC_CRC32                       = 0xB5,
;;   GST_MTS_DESC_ATSC_GROUP_LINK                  = 0xB8,
;; } GstMpegtsATSCDescriptorType;

(define-flags-extended MpegtsATSCDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsATSCDescriptorType")
  (values
    '("stuffing" "GST_MTS_DESC_ATSC_STUFFING" "0x80")
    '("ac3" "GST_MTS_DESC_ATSC_AC3" "0x83")
    '("caption-service" "GST_MTS_DESC_ATSC_CAPTION_SERVICE" "0x86")
    '("content-advisory" "GST_MTS_DESC_ATSC_CONTENT_ADVISORY" "0x87")
    '("extended-channel-name" "GST_MTS_DESC_ATSC_EXTENDED_CHANNEL_NAME" "0xA0")
    '("service-location" "GST_MTS_DESC_ATSC_SERVICE_LOCATION" "0xA1")
    '("time-shifted-service" "GST_MTS_DESC_ATSC_TIME_SHIFTED_SERVICE" "0xA2")
    '("component-name" "GST_MTS_DESC_ATSC_COMPONENT_NAME" "0xA3")
    '("dcc-departing-request" "GST_MTS_DESC_ATSC_DCC_DEPARTING_REQUEST" "0xA8")
    '("dcc-arriving-request" "GST_MTS_DESC_ATSC_DCC_ARRIVING_REQUEST" "0xA9")
    '("redistribution-control" "GST_MTS_DESC_ATSC_REDISTRIBUTION_CONTROL" "0xAA")
    '("genre" "GST_MTS_DESC_ATSC_GENRE" "0xAB")
    '("private-information" "GST_MTS_DESC_ATSC_PRIVATE_INFORMATION" "0xAD")
    '("enhanced-signaling" "GST_MTS_DESC_ATSC_ENHANCED_SIGNALING" "0xB2")
    '("data-service" "GST_MTS_DESC_ATSC_DATA_SERVICE" "0xA4")
    '("pid-count" "GST_MTS_DESC_ATSC_PID_COUNT" "0xA5")
    '("download-descriptor" "GST_MTS_DESC_ATSC_DOWNLOAD_DESCRIPTOR" "0xA6")
    '("multiprotocol-encapsulation" "GST_MTS_DESC_ATSC_MULTIPROTOCOL_ENCAPSULATION" "0xA7")
    '("module-link" "GST_MTS_DESC_ATSC_MODULE_LINK" "0xB4")
    '("crc32" "GST_MTS_DESC_ATSC_CRC32" "0xB5")
    '("group-link" "GST_MTS_DESC_ATSC_GROUP_LINK" "0xB8")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* ISDB ARIB B10 v4.6 */
;;   GST_MTS_DESC_ISDB_HIERARCHICAL_TRANSMISSION   = 0xC0,
;;   GST_MTS_DESC_ISDB_DIGITAL_COPY_CONTROL        = 0xC1,
;;   GST_MTS_DESC_ISDB_NETWORK_IDENTIFICATION      = 0xC2,
;;   GST_MTS_DESC_ISDB_PARTIAL_TS_TIME             = 0xc3,
;;   GST_MTS_DESC_ISDB_AUDIO_COMPONENT             = 0xc4,
;;   GST_MTS_DESC_ISDB_HYPERLINK                   = 0xc5,
;;   GST_MTS_DESC_ISDB_TARGET_REGION               = 0xc6,
;;   GST_MTS_DESC_ISDB_DATA_CONTENT                = 0xc7,
;;   GST_MTS_DESC_ISDB_VIDEO_DECODE_CONTROL        = 0xc8,
;;   GST_MTS_DESC_ISDB_DOWNLOAD_CONTENT            = 0xc9,
;;   GST_MTS_DESC_ISDB_CA_EMM_TS                   = 0xca,
;;   GST_MTS_DESC_ISDB_CA_CONTRACT_INFORMATION     = 0xcb,
;;   GST_MTS_DESC_ISDB_CA_SERVICE                  = 0xcc,
;;   GST_MTS_DESC_ISDB_TS_INFORMATION              = 0xcd,
;;   GST_MTS_DESC_ISDB_EXTENDED_BROADCASTER        = 0xce,
;;   GST_MTS_DESC_ISDB_LOGO_TRANSMISSION           = 0xcf,
;;   GST_MTS_DESC_ISDB_BASIC_LOCAL_EVENT           = 0xd0,
;;   GST_MTS_DESC_ISDB_REFERENCE                   = 0xd1,
;;   GST_MTS_DESC_ISDB_NODE_RELATION               = 0xd2,
;;   GST_MTS_DESC_ISDB_SHORT_NODE_INFORMATION      = 0xd3,
;;   GST_MTS_DESC_ISDB_STC_REFERENCE               = 0xd4,
;;   GST_MTS_DESC_ISDB_SERIES                      = 0xd5,
;;   GST_MTS_DESC_ISDB_EVENT_GROUP                 = 0xd6,
;;   GST_MTS_DESC_ISDB_SI_PARAMETER                = 0xd7,
;;   GST_MTS_DESC_ISDB_BROADCASTER_NAME            = 0xd8,
;;   GST_MTS_DESC_ISDB_COMPONENT_GROUP             = 0xd9,
;;   GST_MTS_DESC_ISDB_SI_PRIME_TS                 = 0xda,
;;   GST_MTS_DESC_ISDB_BOARD_INFORMATION           = 0xdb,
;;   GST_MTS_DESC_ISDB_LDT_LINKAGE                 = 0xdc,
;;   GST_MTS_DESC_ISDB_CONNECTED_TRANSMISSION      = 0xdd,
;;   GST_MTS_DESC_ISDB_CONTENT_AVAILABILITY        = 0xde,
;;   /* ... */
;;   GST_MTS_DESC_ISDB_SERVICE_GROUP               = 0xe0
;;   
;; } GstMpegtsISDBDescriptorType;

(define-flags-extended MpegtsISDBDescriptorType
  (in-module "Gst")
  (c-name "GstMpegtsISDBDescriptorType")
  (values
    '("hierarchical-transmission" "GST_MTS_DESC_ISDB_HIERARCHICAL_TRANSMISSION" "0xC0")
    '("digital-copy-control" "GST_MTS_DESC_ISDB_DIGITAL_COPY_CONTROL" "0xC1")
    '("network-identification" "GST_MTS_DESC_ISDB_NETWORK_IDENTIFICATION" "0xC2")
    '("partial-ts-time" "GST_MTS_DESC_ISDB_PARTIAL_TS_TIME" "0xc3")
    '("audio-component" "GST_MTS_DESC_ISDB_AUDIO_COMPONENT" "0xc4")
    '("hyperlink" "GST_MTS_DESC_ISDB_HYPERLINK" "0xc5")
    '("target-region" "GST_MTS_DESC_ISDB_TARGET_REGION" "0xc6")
    '("data-content" "GST_MTS_DESC_ISDB_DATA_CONTENT" "0xc7")
    '("video-decode-control" "GST_MTS_DESC_ISDB_VIDEO_DECODE_CONTROL" "0xc8")
    '("download-content" "GST_MTS_DESC_ISDB_DOWNLOAD_CONTENT" "0xc9")
    '("ca-emm-ts" "GST_MTS_DESC_ISDB_CA_EMM_TS" "0xca")
    '("ca-contract-information" "GST_MTS_DESC_ISDB_CA_CONTRACT_INFORMATION" "0xcb")
    '("ca-service" "GST_MTS_DESC_ISDB_CA_SERVICE" "0xcc")
    '("ts-information" "GST_MTS_DESC_ISDB_TS_INFORMATION" "0xcd")
    '("extended-broadcaster" "GST_MTS_DESC_ISDB_EXTENDED_BROADCASTER" "0xce")
    '("logo-transmission" "GST_MTS_DESC_ISDB_LOGO_TRANSMISSION" "0xcf")
    '("basic-local-event" "GST_MTS_DESC_ISDB_BASIC_LOCAL_EVENT" "0xd0")
    '("reference" "GST_MTS_DESC_ISDB_REFERENCE" "0xd1")
    '("node-relation" "GST_MTS_DESC_ISDB_NODE_RELATION" "0xd2")
    '("short-node-information" "GST_MTS_DESC_ISDB_SHORT_NODE_INFORMATION" "0xd3")
    '("stc-reference" "GST_MTS_DESC_ISDB_STC_REFERENCE" "0xd4")
    '("series" "GST_MTS_DESC_ISDB_SERIES" "0xd5")
    '("event-group" "GST_MTS_DESC_ISDB_EVENT_GROUP" "0xd6")
    '("si-parameter" "GST_MTS_DESC_ISDB_SI_PARAMETER" "0xd7")
    '("broadcaster-name" "GST_MTS_DESC_ISDB_BROADCASTER_NAME" "0xd8")
    '("component-group" "GST_MTS_DESC_ISDB_COMPONENT_GROUP" "0xd9")
    '("si-prime-ts" "GST_MTS_DESC_ISDB_SI_PRIME_TS" "0xda")
    '("board-information" "GST_MTS_DESC_ISDB_BOARD_INFORMATION" "0xdb")
    '("ldt-linkage" "GST_MTS_DESC_ISDB_LDT_LINKAGE" "0xdc")
    '("connected-transmission" "GST_MTS_DESC_ISDB_CONNECTED_TRANSMISSION" "0xdd")
    '("content-availability" "GST_MTS_DESC_ISDB_CONTENT_AVAILABILITY" "0xde")
    '("service-group" "GST_MTS_DESC_ISDB_SERVICE_GROUP" "0xe0")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_AUDIO_TYPE_UNDEFINED = 0,
;;   GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS,
;;   GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED,
;;   GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY
;; } GstMpegtsIso639AudioType;

(define-enum-extended MpegtsIso639AudioType
  (in-module "Gst")
  (c-name "GstMpegtsIso639AudioType")
  (values
    '("undefined" "GST_MPEGTS_AUDIO_TYPE_UNDEFINED" "0")
    '("clean-effects" "GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS" "1")
    '("hearing-impaired" "GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED" "2")
    '("visual-impaired-commentary" "GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY" "3")
  )
)

;; From gstmpegtssection.h

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_SECTION_UNKNOWN           = 0,
;;   GST_MPEGTS_SECTION_PAT, 
;;   GST_MPEGTS_SECTION_PMT, 
;;   GST_MPEGTS_SECTION_CAT, 
;;   GST_MPEGTS_SECTION_TSDT,
;;   GST_MPEGTS_SECTION_EIT, 
;;   GST_MPEGTS_SECTION_NIT, 
;;   GST_MPEGTS_SECTION_BAT, 
;;   GST_MPEGTS_SECTION_SDT, 
;;   GST_MPEGTS_SECTION_TDT, 
;;   GST_MPEGTS_SECTION_TOT,
;;   GST_MPEGTS_SECTION_ATSC_TVCT,
;;   GST_MPEGTS_SECTION_ATSC_CVCT,
;;   GST_MPEGTS_SECTION_ATSC_MGT,
;;   GST_MPEGTS_SECTION_ATSC_ETT,
;;   GST_MPEGTS_SECTION_ATSC_EIT,
;;   GST_MPEGTS_SECTION_ATSC_STT
;; } GstMpegtsSectionType;

(define-enum-extended MpegtsSectionType
  (in-module "Gst")
  (c-name "GstMpegtsSectionType")
  (values
    '("unknown" "GST_MPEGTS_SECTION_UNKNOWN" "0")
    '("pat" "GST_MPEGTS_SECTION_PAT" "1")
    '("pmt" "GST_MPEGTS_SECTION_PMT" "2")
    '("cat" "GST_MPEGTS_SECTION_CAT" "3")
    '("tsdt" "GST_MPEGTS_SECTION_TSDT" "4")
    '("eit" "GST_MPEGTS_SECTION_EIT" "5")
    '("nit" "GST_MPEGTS_SECTION_NIT" "6")
    '("bat" "GST_MPEGTS_SECTION_BAT" "7")
    '("sdt" "GST_MPEGTS_SECTION_SDT" "8")
    '("tdt" "GST_MPEGTS_SECTION_TDT" "9")
    '("tot" "GST_MPEGTS_SECTION_TOT" "10")
    '("atsc-tvct" "GST_MPEGTS_SECTION_ATSC_TVCT" "11")
    '("atsc-cvct" "GST_MPEGTS_SECTION_ATSC_CVCT" "12")
    '("atsc-mgt" "GST_MPEGTS_SECTION_ATSC_MGT" "13")
    '("atsc-ett" "GST_MPEGTS_SECTION_ATSC_ETT" "14")
    '("atsc-eit" "GST_MPEGTS_SECTION_ATSC_EIT" "15")
    '("atsc-stt" "GST_MPEGTS_SECTION_ATSC_STT" "16")
  )
)

;; Original typedef:
;; typedef enum {
;;   /* ITU H.222.0 / IEC 13818-1 */
;;   GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION		= 0x00,
;;   GST_MTS_TABLE_ID_CONDITIONAL_ACCESS		= 0x01,
;;   GST_MTS_TABLE_ID_TS_PROGRAM_MAP		= 0x02,
;;   GST_MTS_TABLE_ID_TS_DESCRIPTION		= 0x03,
;;   GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION	= 0x04,
;;   GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR	= 0x05,
;;   GST_MTS_TABLE_ID_METADATA			= 0x06,
;;   GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION	= 0x07,
;; 
;;   /* 0x08 - 0x39 : ITU H.222.0 | ISO/IEC 13818-1 reserved */
;; 
;;   /* IEC 13818-6 (DSM-CC) */
;;   GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA	= 0x3A,
;;   GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES			= 0x3B,
;;   GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES	= 0x3C,
;;   GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS		= 0x3D,
;;   GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA			= 0x3E,
;;   GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS		= 0x3F,
;; 
;;   /* Unset */
;;   GST_MTS_TABLE_ID_UNSET = 0xFF
;;   
;; } GstMpegtsSectionTableID;

(define-flags-extended MpegtsSectionTableID
  (in-module "Gst")
  (c-name "GstMpegtsSectionTableID")
  (values
    '("program-association" "GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION" "0x00")
    '("conditional-access" "GST_MTS_TABLE_ID_CONDITIONAL_ACCESS" "0x01")
    '("ts-program-map" "GST_MTS_TABLE_ID_TS_PROGRAM_MAP" "0x02")
    '("ts-description" "GST_MTS_TABLE_ID_TS_DESCRIPTION" "0x03")
    '("14496-scene-description" "GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION" "0x04")
    '("14496-objet-descriptor" "GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR" "0x05")
    '("metadata" "GST_MTS_TABLE_ID_METADATA" "0x06")
    '("ipmp-control-information" "GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION" "0x07")
    '("dsm-cc-multiproto-encapsulated-data" "GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA" "0x3A")
    '("dsm-cc-u-n-messages" "GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES" "0x3B")
    '("dsm-cc-download-data-messages" "GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES" "0x3C")
    '("dsm-cc-stream-descriptors" "GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS" "0x3D")
    '("dsm-cc-private-data" "GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA" "0x3E")
    '("dsm-cc-addressable-sections" "GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS" "0x3F")
    '("unset" "GST_MTS_TABLE_ID_UNSET" "0xFF")
  )
)

;; Original typedef:
;; typedef enum {
;;   GST_MPEGTS_STREAM_TYPE_RESERVED_00                  = 0x00,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1                  = 0x01,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2                  = 0x02,
;;   GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1                  = 0x03,
;;   GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2                  = 0x04,
;;   GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS             = 0x05,
;;   GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS          = 0x06,
;;   GST_MPEGTS_STREAM_TYPE_MHEG                         = 0x07,
;;   GST_MPEGTS_STREAM_TYPE_DSM_CC                       = 0x08,
;;   GST_MPEGTS_STREAM_TYPE_H_222_1                      = 0x09,
;;   GST_MPEGTS_STREAM_TYPE_DSMCC_A                      = 0x0a,
;;   GST_MPEGTS_STREAM_TYPE_DSMCC_B                      = 0x0b,
;;   GST_MPEGTS_STREAM_TYPE_DSMCC_C                      = 0x0c,
;;   GST_MPEGTS_STREAM_TYPE_DSMCC_D                      = 0x0d,
;;   GST_MPEGTS_STREAM_TYPE_AUXILIARY                    = 0x0e,
;;   GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS               = 0x0f,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4                  = 0x10,
;;   GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM               = 0x11,
;;   GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS       = 0x12,
;;   GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS          = 0x13,
;;   GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD        = 0x14,
;;   GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS         = 0x15,
;;   GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS            = 0x16,
;;   GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL       = 0x17,
;;   GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL     = 0x18,
;;   GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD  = 0x19,
;;   GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP                   = 0x1a,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_H264                   = 0x1b,
;;   GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN              = 0x1c,
;;   GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT             = 0x1d,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_RVC                    = 0x1e,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM = 0x1f,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM = 0x20,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K                   = 0x21,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW  = 0x23,
;;   GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC                   = 0x24,
;;   /* 0x24 - 0x7e : Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved */
;;   GST_MPEGTS_STREAM_TYPE_IPMP_STREAM                  = 0x7f
;;   /* 0x80 - 0xff : User Private (or defined in other specs) */
;; } GstMpegtsStreamType;

(define-flags-extended MpegtsStreamType
  (in-module "Gst")
  (c-name "GstMpegtsStreamType")
  (values
    '("reserved-00" "GST_MPEGTS_STREAM_TYPE_RESERVED_00" "0x00")
    '("video-mpeg1" "GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1" "0x01")
    '("video-mpeg2" "GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2" "0x02")
    '("audio-mpeg1" "GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1" "0x03")
    '("audio-mpeg2" "GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2" "0x04")
    '("private-sections" "GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS" "0x05")
    '("private-pes-packets" "GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS" "0x06")
    '("mheg" "GST_MPEGTS_STREAM_TYPE_MHEG" "0x07")
    '("dsm-cc" "GST_MPEGTS_STREAM_TYPE_DSM_CC" "0x08")
    '("h-222-1" "GST_MPEGTS_STREAM_TYPE_H_222_1" "0x09")
    '("dsmcc-a" "GST_MPEGTS_STREAM_TYPE_DSMCC_A" "0x0a")
    '("dsmcc-b" "GST_MPEGTS_STREAM_TYPE_DSMCC_B" "0x0b")
    '("dsmcc-c" "GST_MPEGTS_STREAM_TYPE_DSMCC_C" "0x0c")
    '("dsmcc-d" "GST_MPEGTS_STREAM_TYPE_DSMCC_D" "0x0d")
    '("auxiliary" "GST_MPEGTS_STREAM_TYPE_AUXILIARY" "0x0e")
    '("audio-aac-adts" "GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS" "0x0f")
    '("video-mpeg4" "GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4" "0x10")
    '("audio-aac-latm" "GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM" "0x11")
    '("sl-flexmux-pes-packets" "GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS" "0x12")
    '("sl-flexmux-sections" "GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS" "0x13")
    '("synchronized-download" "GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD" "0x14")
    '("metadata-pes-packets" "GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS" "0x15")
    '("metadata-sections" "GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS" "0x16")
    '("metadata-data-carousel" "GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL" "0x17")
    '("metadata-object-carousel" "GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL" "0x18")
    '("metadata-synchronized-download" "GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD" "0x19")
    '("mpeg2-ipmp" "GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP" "0x1a")
    '("video-h264" "GST_MPEGTS_STREAM_TYPE_VIDEO_H264" "0x1b")
    '("audio-aac-clean" "GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN" "0x1c")
    '("mpeg4-timed-text" "GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT" "0x1d")
    '("video-rvc" "GST_MPEGTS_STREAM_TYPE_VIDEO_RVC" "0x1e")
    '("video-h264-svc-sub-bitstream" "GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM" "0x1f")
    '("video-h264-mvc-sub-bitstream" "GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM" "0x20")
    '("video-jp2k" "GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K" "0x21")
    '("video-mpeg2-stereo-additional-view" "GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW" "0x22")
    '("video-h264-stereo-additional-view" "GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW" "0x23")
    '("video-hevc" "GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC" "0x24")
    '("ipmp-stream" "GST_MPEGTS_STREAM_TYPE_IPMP_STREAM" "0x7f")
  )
)

;; From gst-scte-section.h

;; Original typedef:
;; typedef enum {
;; 
;;   /* 0x01 - 0x82 : defined in other specs */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING = 0x82,   /* Subtitling data */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA = 0x83,   /* Isochronous data */
;;   /* 0x84 - 0x94 : defined in other specs */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT    = 0x95,   /* DST / NRT data */
;;   /* 0x96 - 0xaf : defined in other specs */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB  = 0xb0,   /* Data Carousel Type B */
;;   /* 0xb1 - 0xbf : User Private (or defined in other specs) */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING  = 0xc0,   /* EBIF Signaling */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA  = 0xc2,   /* Synchronous data */
;;   GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA = 0xc3,   /* Asynchronous data */
;;   /* 0xc4 - 0xff : User Private (or defined in other specs) */
;; 
;; } GstMpegtsScteStreamType;

(define-flags-extended MpegtsScteStreamType
  (in-module "Gst")
  (c-name "GstMpegtsScteStreamType")
  (values
    '("subtitling" "GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING" "0x82")
    '("isoch-data" "GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA" "0x83")
    '("dst-nrt" "GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT" "0x95")
    '("dsmcc-dcb" "GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB" "0xb0")
    '("signaling" "GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING" "0xc0")
    '("sync-data" "GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA" "0xc2")
    '("async-data" "GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA" "0xc3")
  )
)

;; Original typedef:
;; typedef enum {
;; 
;;   /* 0x01 - 0xd7 : defined in other specs */
;;   GST_MTS_TABLE_ID_SCTE_EAS      = 0xd8,     /* emergency alert information */
;;   /* 0xd8 - 0xdf : defined in other specs */
;;   GST_MTS_TABLE_ID_SCTE_EBIF     = 0xE0,     /* EBIF message */
;;   GST_MTS_TABLE_ID_SCTE_RESERVED = 0xE1,
;;   GST_MTS_TABLE_ID_SCTE_EISS     = 0xE2,     /* EBIF Int. Signaling Sect. */
;;   GST_MTS_TABLE_ID_SCTE_DII      = 0xE3,     /* DSMCC DII message */
;;   GST_MTS_TABLE_ID_SCTE_DDB      = 0xE4,     /* DSMCC Data Download Block */
;;   /* 0xe5 - 0xfb : defined in other specs */
;;   GST_MTS_TABLE_ID_SCTE_SPLICE   = 0xfc,     /* splice information table */
;; 
;; } GstMpegtsSectionSCTETableID;

(define-flags-extended MpegtsSectionSCTETableID
  (in-module "Gst")
  (c-name "GstMpegtsSectionSCTETableID")
  (values
    '("eas" "GST_MTS_TABLE_ID_SCTE_EAS" "0xd8")
    '("ebif" "GST_MTS_TABLE_ID_SCTE_EBIF" "0xE0")
    '("reserved" "GST_MTS_TABLE_ID_SCTE_RESERVED" "0xE1")
    '("eiss" "GST_MTS_TABLE_ID_SCTE_EISS" "0xE2")
    '("dii" "GST_MTS_TABLE_ID_SCTE_DII" "0xE3")
    '("ddb" "GST_MTS_TABLE_ID_SCTE_DDB" "0xE4")
    '("splice" "GST_MTS_TABLE_ID_SCTE_SPLICE" "0xfc")
  )
)

