// Generated by TOOLS/matroska.py, do not edit manually

#define EBML_ID_EBML                             0x1a45dfa3
#define EBML_ID_EBMLVERSION                      0x4286
#define EBML_ID_EBMLREADVERSION                  0x42f7
#define EBML_ID_EBMLMAXIDLENGTH                  0x42f2
#define EBML_ID_EBMLMAXSIZELENGTH                0x42f3
#define EBML_ID_DOCTYPE                          0x4282
#define EBML_ID_DOCTYPEVERSION                   0x4287
#define EBML_ID_DOCTYPEREADVERSION               0x4285
#define EBML_ID_CRC32                            0xbf
#define EBML_ID_VOID                             0xec
#define MATROSKA_ID_SEGMENT                      0x18538067
#define MATROSKA_ID_SEEKHEAD                     0x114d9b74
#define MATROSKA_ID_SEEK                         0x4dbb
#define MATROSKA_ID_SEEKID                       0x53ab
#define MATROSKA_ID_SEEKPOSITION                 0x53ac
#define MATROSKA_ID_INFO                         0x1549a966
#define MATROSKA_ID_SEGMENTUID                   0x73a4
#define MATROSKA_ID_PREVUID                      0x3cb923
#define MATROSKA_ID_NEXTUID                      0x3eb923
#define MATROSKA_ID_TIMECODESCALE                0x2ad7b1
#define MATROSKA_ID_DATEUTC                      0x4461
#define MATROSKA_ID_TITLE                        0x7ba9
#define MATROSKA_ID_MUXINGAPP                    0x4d80
#define MATROSKA_ID_WRITINGAPP                   0x5741
#define MATROSKA_ID_DURATION                     0x4489
#define MATROSKA_ID_CLUSTER                      0x1f43b675
#define MATROSKA_ID_TIMECODE                     0xe7
#define MATROSKA_ID_BLOCKGROUP                   0xa0
#define MATROSKA_ID_BLOCK                        0xa1
#define MATROSKA_ID_BLOCKDURATION                0x9b
#define MATROSKA_ID_REFERENCEBLOCK               0xfb
#define MATROSKA_ID_DISCARDPADDING               0x75a2
#define MATROSKA_ID_BLOCKADDITIONS               0x75a1
#define MATROSKA_ID_BLOCKMORE                    0xa6
#define MATROSKA_ID_BLOCKADDID                   0xee
#define MATROSKA_ID_BLOCKADDITIONAL              0xa5
#define MATROSKA_ID_SIMPLEBLOCK                  0xa3
#define MATROSKA_ID_TRACKS                       0x1654ae6b
#define MATROSKA_ID_TRACKENTRY                   0xae
#define MATROSKA_ID_TRACKNUMBER                  0xd7
#define MATROSKA_ID_TRACKUID                     0x73c5
#define MATROSKA_ID_TRACKTYPE                    0x83
#define MATROSKA_ID_FLAGENABLED                  0xb9
#define MATROSKA_ID_FLAGDEFAULT                  0x88
#define MATROSKA_ID_FLAGFORCED                   0x55aa
#define MATROSKA_ID_FLAGHEARINGIMPAIRED          0x55ab
#define MATROSKA_ID_FLAGVISUALIMPAIRED           0x55ac
#define MATROSKA_ID_FLAGLACING                   0x9c
#define MATROSKA_ID_MINCACHE                     0x6de7
#define MATROSKA_ID_MAXCACHE                     0x6df8
#define MATROSKA_ID_DEFAULTDURATION              0x23e383
#define MATROSKA_ID_TRACKTIMECODESCALE           0x23314f
#define MATROSKA_ID_MAXBLOCKADDITIONID           0x55ee
#define MATROSKA_ID_NAME                         0x536e
#define MATROSKA_ID_LANGUAGE                     0x22b59c
#define MATROSKA_ID_LANGUAGEBCP47                0x22b59d
#define MATROSKA_ID_CODECID                      0x86
#define MATROSKA_ID_CODECPRIVATE                 0x63a2
#define MATROSKA_ID_CODECNAME                    0x258688
#define MATROSKA_ID_CODECDECODEALL               0xaa
#define MATROSKA_ID_CODECDELAY                   0x56aa
#define MATROSKA_ID_SEEKPREROLL                  0x56bb
#define MATROSKA_ID_VIDEO                        0xe0
#define MATROSKA_ID_FLAGINTERLACED               0x9a
#define MATROSKA_ID_PIXELWIDTH                   0xb0
#define MATROSKA_ID_PIXELHEIGHT                  0xba
#define MATROSKA_ID_DISPLAYWIDTH                 0x54b0
#define MATROSKA_ID_DISPLAYHEIGHT                0x54ba
#define MATROSKA_ID_DISPLAYUNIT                  0x54b2
#define MATROSKA_ID_PIXELCROPTOP                 0x54bb
#define MATROSKA_ID_PIXELCROPLEFT                0x54cc
#define MATROSKA_ID_PIXELCROPRIGHT               0x54dd
#define MATROSKA_ID_PIXELCROPBOTTOM              0x54aa
#define MATROSKA_ID_FRAMERATE                    0x2383e3
#define MATROSKA_ID_COLOURSPACE                  0x2eb524
#define MATROSKA_ID_STEREOMODE                   0x53b8
#define MATROSKA_ID_COLOUR                       0x55b0
#define MATROSKA_ID_MATRIXCOEFFICIENTS           0x55b1
#define MATROSKA_ID_BITSPERCHANNEL               0x55b2
#define MATROSKA_ID_CHROMASUBSAMPLINGHORZ        0x55b3
#define MATROSKA_ID_CHROMASUBSAMPLINGVERT        0x55b4
#define MATROSKA_ID_CBSUBSAMPLINGHORZ            0x55b5
#define MATROSKA_ID_CBSUBSAMPLINGVERT            0x55b6
#define MATROSKA_ID_CHROMASITINGHORZ             0x55b7
#define MATROSKA_ID_CHROMASITINGVERT             0x55b8
#define MATROSKA_ID_RANGE                        0x55b9
#define MATROSKA_ID_TRANSFERCHARACTERISTICS      0x55ba
#define MATROSKA_ID_PRIMARIES                    0x55bb
#define MATROSKA_ID_MAXCLL                       0x55bc
#define MATROSKA_ID_MAXFALL                      0x55bd
#define MATROSKA_ID_MASTERINGMETADATA            0x55d0
#define MATROSKA_ID_PRIMARYRCHROMATICITYX        0x55d1
#define MATROSKA_ID_PRIMARYRCHROMATICITYY        0x55d2
#define MATROSKA_ID_PRIMARYGCHROMATICITYX        0x55d3
#define MATROSKA_ID_PRIMARYGCHROMATICITYY        0x55d4
#define MATROSKA_ID_PRIMARYBCHROMATICITYX        0x55d5
#define MATROSKA_ID_PRIMARYBCHROMATICITYY        0x55d6
#define MATROSKA_ID_WHITEPOINTCHROMATICITYX      0x55d7
#define MATROSKA_ID_WHITEPOINTCHROMATICITYY      0x55d8
#define MATROSKA_ID_LUMINANCEMAX                 0x55d9
#define MATROSKA_ID_LUMINANCEMIN                 0x55da
#define MATROSKA_ID_PROJECTION                   0x7670
#define MATROSKA_ID_PROJECTIONTYPE               0x7671
#define MATROSKA_ID_PROJECTIONPRIVATE            0x7672
#define MATROSKA_ID_PROJECTIONPOSEYAW            0x7673
#define MATROSKA_ID_PROJECTIONPOSEPITCH          0x7674
#define MATROSKA_ID_PROJECTIONPOSEROLL           0x7675
#define MATROSKA_ID_AUDIO                        0xe1
#define MATROSKA_ID_SAMPLINGFREQUENCY            0xb5
#define MATROSKA_ID_OUTPUTSAMPLINGFREQUENCY      0x78b5
#define MATROSKA_ID_CHANNELS                     0x9f
#define MATROSKA_ID_BITDEPTH                     0x6264
#define MATROSKA_ID_CONTENTENCODINGS             0x6d80
#define MATROSKA_ID_CONTENTENCODING              0x6240
#define MATROSKA_ID_CONTENTENCODINGORDER         0x5031
#define MATROSKA_ID_CONTENTENCODINGSCOPE         0x5032
#define MATROSKA_ID_CONTENTENCODINGTYPE          0x5033
#define MATROSKA_ID_CONTENTCOMPRESSION           0x5034
#define MATROSKA_ID_CONTENTCOMPALGO              0x4254
#define MATROSKA_ID_CONTENTCOMPSETTINGS          0x4255
#define MATROSKA_ID_BLOCKADDITIONMAPPING         0x41e4
#define MATROSKA_ID_BLOCKADDIDVALUE              0x41f0
#define MATROSKA_ID_BLOCKADDIDNAME               0x41a4
#define MATROSKA_ID_BLOCKADDIDTYPE               0x41e7
#define MATROSKA_ID_BLOCKADDIDEXTRADATA          0x41ed
#define MATROSKA_ID_CUES                         0x1c53bb6b
#define MATROSKA_ID_CUEPOINT                     0xbb
#define MATROSKA_ID_CUETIME                      0xb3
#define MATROSKA_ID_CUETRACKPOSITIONS            0xb7
#define MATROSKA_ID_CUETRACK                     0xf7
#define MATROSKA_ID_CUECLUSTERPOSITION           0xf1
#define MATROSKA_ID_CUERELATIVEPOSITION          0xf0
#define MATROSKA_ID_CUEDURATION                  0xb2
#define MATROSKA_ID_ATTACHMENTS                  0x1941a469
#define MATROSKA_ID_ATTACHEDFILE                 0x61a7
#define MATROSKA_ID_FILEDESCRIPTION              0x467e
#define MATROSKA_ID_FILENAME                     0x466e
#define MATROSKA_ID_FILEMIMETYPE                 0x4660
#define MATROSKA_ID_FILEDATA                     0x465c
#define MATROSKA_ID_FILEUID                      0x46ae
#define MATROSKA_ID_CHAPTERS                     0x1043a770
#define MATROSKA_ID_EDITIONENTRY                 0x45b9
#define MATROSKA_ID_EDITIONUID                   0x45bc
#define MATROSKA_ID_EDITIONFLAGHIDDEN            0x45bd
#define MATROSKA_ID_EDITIONFLAGDEFAULT           0x45db
#define MATROSKA_ID_EDITIONFLAGORDERED           0x45dd
#define MATROSKA_ID_CHAPTERATOM                  0xb6
#define MATROSKA_ID_CHAPTERUID                   0x73c4
#define MATROSKA_ID_CHAPTERTIMESTART             0x91
#define MATROSKA_ID_CHAPTERTIMEEND               0x92
#define MATROSKA_ID_CHAPTERFLAGHIDDEN            0x98
#define MATROSKA_ID_CHAPTERFLAGENABLED           0x4598
#define MATROSKA_ID_CHAPTERSEGMENTUID            0x6e67
#define MATROSKA_ID_CHAPTERSEGMENTEDITIONUID     0x6ebc
#define MATROSKA_ID_CHAPTERDISPLAY               0x80
#define MATROSKA_ID_CHAPSTRING                   0x85
#define MATROSKA_ID_CHAPLANGUAGE                 0x437c
#define MATROSKA_ID_CHAPLANGUAGEBCP47            0x437d
#define MATROSKA_ID_CHAPCOUNTRY                  0x437e
#define MATROSKA_ID_TAGS                         0x1254c367
#define MATROSKA_ID_TAG                          0x7373
#define MATROSKA_ID_TARGETS                      0x63c0
#define MATROSKA_ID_TARGETTYPEVALUE              0x68ca
#define MATROSKA_ID_TARGETTYPE                   0x63ca
#define MATROSKA_ID_TARGETTRACKUID               0x63c5
#define MATROSKA_ID_TARGETEDITIONUID             0x63c9
#define MATROSKA_ID_TARGETCHAPTERUID             0x63c4
#define MATROSKA_ID_TARGETATTACHMENTUID          0x63c6
#define MATROSKA_ID_SIMPLETAG                    0x67c8
#define MATROSKA_ID_TAGNAME                      0x45a3
#define MATROSKA_ID_TAGLANGUAGE                  0x447a
#define MATROSKA_ID_TAGLANGUAGEBCP47             0x447b
#define MATROSKA_ID_TAGSTRING                    0x4487
#define MATROSKA_ID_TAGDEFAULT                   0x4484


struct ebml_simple_tag {
    char *     tag_name;
    char *     tag_language;
    char *     tag_language_bcp47;
    char *     tag_string;
    uint64_t   tag_default;

    int  n_tag_name;
    int  n_tag_language;
    int  n_tag_language_bcp47;
    int  n_tag_string;
    int  n_tag_default;
};

struct ebml_targets {
    uint64_t   target_type_value;
    char *     target_type;
    uint64_t   target_track_uid;
    uint64_t   target_edition_uid;
    uint64_t   target_chapter_uid;
    uint64_t   target_attachment_uid;

    int  n_target_type_value;
    int  n_target_type;
    int  n_target_track_uid;
    int  n_target_edition_uid;
    int  n_target_chapter_uid;
    int  n_target_attachment_uid;
};

struct ebml_tag {
    struct ebml_targets      targets;
    struct ebml_simple_tag  *simple_tag;

    int  n_targets;
    int  n_simple_tag;
};

struct ebml_tags {
    struct ebml_tag  *tag;

    int  n_tag;
};

struct ebml_chapter_display {
    char *   chap_string;
    char *  *chap_language;
    char *  *chap_language_bcp47;
    char *  *chap_country;

    int  n_chap_string;
    int  n_chap_language;
    int  n_chap_language_bcp47;
    int  n_chap_country;
};

struct ebml_chapter_atom {
    uint64_t                      chapter_uid;
    uint64_t                      chapter_time_start;
    uint64_t                      chapter_time_end;
    uint64_t                      chapter_flag_hidden;
    uint64_t                      chapter_flag_enabled;
    bstr                          chapter_segment_uid;
    uint64_t                      chapter_segment_edition_uid;
    struct ebml_chapter_display  *chapter_display;

    int  n_chapter_uid;
    int  n_chapter_time_start;
    int  n_chapter_time_end;
    int  n_chapter_flag_hidden;
    int  n_chapter_flag_enabled;
    int  n_chapter_segment_uid;
    int  n_chapter_segment_edition_uid;
    int  n_chapter_display;
};

struct ebml_edition_entry {
    uint64_t                   edition_uid;
    uint64_t                   edition_flag_hidden;
    uint64_t                   edition_flag_default;
    uint64_t                   edition_flag_ordered;
    struct ebml_chapter_atom  *chapter_atom;

    int  n_edition_uid;
    int  n_edition_flag_hidden;
    int  n_edition_flag_default;
    int  n_edition_flag_ordered;
    int  n_chapter_atom;
};

struct ebml_chapters {
    struct ebml_edition_entry  *edition_entry;

    int  n_edition_entry;
};

struct ebml_attached_file {
    char *     file_description;
    char *     file_name;
    char *     file_mime_type;
    bstr       file_data;
    uint64_t   file_uid;

    int  n_file_description;
    int  n_file_name;
    int  n_file_mime_type;
    int  n_file_data;
    int  n_file_uid;
};

struct ebml_attachments {
    struct ebml_attached_file  *attached_file;

    int  n_attached_file;
};

struct ebml_cue_track_positions {
    uint64_t   cue_track;
    uint64_t   cue_cluster_position;
    uint64_t   cue_relative_position;
    uint64_t   cue_duration;

    int  n_cue_track;
    int  n_cue_cluster_position;
    int  n_cue_relative_position;
    int  n_cue_duration;
};

struct ebml_cue_point {
    uint64_t                          cue_time;
    struct ebml_cue_track_positions  *cue_track_positions;

    int  n_cue_time;
    int  n_cue_track_positions;
};

struct ebml_cues {
    struct ebml_cue_point  *cue_point;

    int  n_cue_point;
};

struct ebml_block_addition_mapping {
    uint64_t   block_add_id_value;
    char *     block_add_id_name;
    uint64_t   block_add_id_type;
    bstr       block_add_id_extra_data;

    int  n_block_add_id_value;
    int  n_block_add_id_name;
    int  n_block_add_id_type;
    int  n_block_add_id_extra_data;
};

struct ebml_content_compression {
    uint64_t   content_comp_algo;
    bstr       content_comp_settings;

    int  n_content_comp_algo;
    int  n_content_comp_settings;
};

struct ebml_content_encoding {
    uint64_t                          content_encoding_order;
    uint64_t                          content_encoding_scope;
    uint64_t                          content_encoding_type;
    struct ebml_content_compression   content_compression;

    int  n_content_encoding_order;
    int  n_content_encoding_scope;
    int  n_content_encoding_type;
    int  n_content_compression;
};

struct ebml_content_encodings {
    struct ebml_content_encoding  *content_encoding;

    int  n_content_encoding;
};

struct ebml_audio {
    double     sampling_frequency;
    double     output_sampling_frequency;
    uint64_t   channels;
    uint64_t   bit_depth;

    int  n_sampling_frequency;
    int  n_output_sampling_frequency;
    int  n_channels;
    int  n_bit_depth;
};

struct ebml_projection {
    uint64_t   projection_type;
    bstr       projection_private;
    double     projection_pose_yaw;
    double     projection_pose_pitch;
    double     projection_pose_roll;

    int  n_projection_type;
    int  n_projection_private;
    int  n_projection_pose_yaw;
    int  n_projection_pose_pitch;
    int  n_projection_pose_roll;
};

struct ebml_mastering_metadata {
    double   primary_r_chromaticity_x;
    double   primary_r_chromaticity_y;
    double   primary_g_chromaticity_x;
    double   primary_g_chromaticity_y;
    double   primary_b_chromaticity_x;
    double   primary_b_chromaticity_y;
    double   white_point_chromaticity_x;
    double   white_point_chromaticity_y;
    double   luminance_max;
    double   luminance_min;

    int  n_primary_r_chromaticity_x;
    int  n_primary_r_chromaticity_y;
    int  n_primary_g_chromaticity_x;
    int  n_primary_g_chromaticity_y;
    int  n_primary_b_chromaticity_x;
    int  n_primary_b_chromaticity_y;
    int  n_white_point_chromaticity_x;
    int  n_white_point_chromaticity_y;
    int  n_luminance_max;
    int  n_luminance_min;
};

struct ebml_colour {
    uint64_t                         matrix_coefficients;
    uint64_t                         bits_per_channel;
    uint64_t                         chroma_subsampling_horz;
    uint64_t                         chroma_subsampling_vert;
    uint64_t                         cb_subsampling_horz;
    uint64_t                         cb_subsampling_vert;
    uint64_t                         chroma_siting_horz;
    uint64_t                         chroma_siting_vert;
    uint64_t                         range;
    uint64_t                         transfer_characteristics;
    uint64_t                         primaries;
    uint64_t                         max_cll;
    uint64_t                         max_fall;
    struct ebml_mastering_metadata   mastering_metadata;

    int  n_matrix_coefficients;
    int  n_bits_per_channel;
    int  n_chroma_subsampling_horz;
    int  n_chroma_subsampling_vert;
    int  n_cb_subsampling_horz;
    int  n_cb_subsampling_vert;
    int  n_chroma_siting_horz;
    int  n_chroma_siting_vert;
    int  n_range;
    int  n_transfer_characteristics;
    int  n_primaries;
    int  n_max_cll;
    int  n_max_fall;
    int  n_mastering_metadata;
};

struct ebml_video {
    uint64_t                 flag_interlaced;
    uint64_t                 pixel_width;
    uint64_t                 pixel_height;
    uint64_t                 display_width;
    uint64_t                 display_height;
    uint64_t                 display_unit;
    uint64_t                 pixel_crop_top;
    uint64_t                 pixel_crop_left;
    uint64_t                 pixel_crop_right;
    uint64_t                 pixel_crop_bottom;
    double                   frame_rate;
    bstr                     colour_space;
    uint64_t                 stereo_mode;
    struct ebml_colour       colour;
    struct ebml_projection   projection;

    int  n_flag_interlaced;
    int  n_pixel_width;
    int  n_pixel_height;
    int  n_display_width;
    int  n_display_height;
    int  n_display_unit;
    int  n_pixel_crop_top;
    int  n_pixel_crop_left;
    int  n_pixel_crop_right;
    int  n_pixel_crop_bottom;
    int  n_frame_rate;
    int  n_colour_space;
    int  n_stereo_mode;
    int  n_colour;
    int  n_projection;
};

struct ebml_track_entry {
    uint64_t                             track_number;
    uint64_t                             track_uid;
    uint64_t                             track_type;
    uint64_t                             flag_enabled;
    uint64_t                             flag_default;
    uint64_t                             flag_forced;
    uint64_t                             flag_hearing_impaired;
    uint64_t                             flag_visual_impaired;
    uint64_t                             flag_lacing;
    uint64_t                             min_cache;
    uint64_t                             max_cache;
    uint64_t                             default_duration;
    double                               track_timecode_scale;
    uint64_t                             max_block_addition_id;
    char *                               name;
    char *                               language;
    char *                               language_bcp47;
    char *                               codec_id;
    bstr                                 codec_private;
    char *                               codec_name;
    uint64_t                             codec_decode_all;
    uint64_t                             codec_delay;
    uint64_t                             seek_pre_roll;
    struct ebml_video                    video;
    struct ebml_audio                    audio;
    struct ebml_content_encodings        content_encodings;
    struct ebml_block_addition_mapping  *block_addition_mapping;

    int  n_track_number;
    int  n_track_uid;
    int  n_track_type;
    int  n_flag_enabled;
    int  n_flag_default;
    int  n_flag_forced;
    int  n_flag_hearing_impaired;
    int  n_flag_visual_impaired;
    int  n_flag_lacing;
    int  n_min_cache;
    int  n_max_cache;
    int  n_default_duration;
    int  n_track_timecode_scale;
    int  n_max_block_addition_id;
    int  n_name;
    int  n_language;
    int  n_language_bcp47;
    int  n_codec_id;
    int  n_codec_private;
    int  n_codec_name;
    int  n_codec_decode_all;
    int  n_codec_delay;
    int  n_seek_pre_roll;
    int  n_video;
    int  n_audio;
    int  n_content_encodings;
    int  n_block_addition_mapping;
};

struct ebml_tracks {
    struct ebml_track_entry  *track_entry;

    int  n_track_entry;
};

struct ebml_block_more {
    uint64_t   block_add_id;
    bstr       block_additional;

    int  n_block_add_id;
    int  n_block_additional;
};

struct ebml_block_additions {
    struct ebml_block_more  *block_more;

    int  n_block_more;
};

struct ebml_block_group {
    bstr                          block;
    uint64_t                      block_duration;
    int64_t                      *reference_block;
    int64_t                       discard_padding;
    struct ebml_block_additions   block_additions;

    int  n_block;
    int  n_block_duration;
    int  n_reference_block;
    int  n_discard_padding;
    int  n_block_additions;
};

struct ebml_cluster {
    uint64_t                  timecode;
    struct ebml_block_group  *block_group;
    bstr                     *simple_block;

    int  n_timecode;
    int  n_block_group;
    int  n_simple_block;
};

struct ebml_info {
    bstr       segment_uid;
    bstr       prev_uid;
    bstr       next_uid;
    uint64_t   timecode_scale;
    int64_t    date_utc;
    char *     title;
    char *     muxing_app;
    char *     writing_app;
    double     duration;

    int  n_segment_uid;
    int  n_prev_uid;
    int  n_next_uid;
    int  n_timecode_scale;
    int  n_date_utc;
    int  n_title;
    int  n_muxing_app;
    int  n_writing_app;
    int  n_duration;
};

struct ebml_seek {
    uint32_t   seek_id;
    uint64_t   seek_position;

    int  n_seek_id;
    int  n_seek_position;
};

struct ebml_seek_head {
    struct ebml_seek  *seek;

    int  n_seek;
};

struct ebml_segment {
    struct ebml_seek_head    *seek_head;
    struct ebml_info         *info;
    struct ebml_cluster      *cluster;
    struct ebml_tracks       *tracks;
    struct ebml_cues          cues;
    struct ebml_attachments   attachments;
    struct ebml_chapters      chapters;
    struct ebml_tags         *tags;

    int  n_seek_head;
    int  n_info;
    int  n_cluster;
    int  n_tracks;
    int  n_cues;
    int  n_attachments;
    int  n_chapters;
    int  n_tags;
};

struct ebml_ebml {
    uint64_t   ebml_version;
    uint64_t   ebml_read_version;
    uint64_t   ebml_max_id_length;
    uint64_t   ebml_max_size_length;
    char *     doc_type;
    uint64_t   doc_type_version;
    uint64_t   doc_type_read_version;

    int  n_ebml_version;
    int  n_ebml_read_version;
    int  n_ebml_max_id_length;
    int  n_ebml_max_size_length;
    int  n_doc_type;
    int  n_doc_type_version;
    int  n_doc_type_read_version;
};
extern const struct ebml_elem_desc ebml_ebml_desc;
extern const struct ebml_elem_desc ebml_segment_desc;
extern const struct ebml_elem_desc ebml_seek_head_desc;
extern const struct ebml_elem_desc ebml_seek_desc;
extern const struct ebml_elem_desc ebml_info_desc;
extern const struct ebml_elem_desc ebml_cluster_desc;
extern const struct ebml_elem_desc ebml_block_group_desc;
extern const struct ebml_elem_desc ebml_block_additions_desc;
extern const struct ebml_elem_desc ebml_block_more_desc;
extern const struct ebml_elem_desc ebml_tracks_desc;
extern const struct ebml_elem_desc ebml_track_entry_desc;
extern const struct ebml_elem_desc ebml_video_desc;
extern const struct ebml_elem_desc ebml_colour_desc;
extern const struct ebml_elem_desc ebml_mastering_metadata_desc;
extern const struct ebml_elem_desc ebml_projection_desc;
extern const struct ebml_elem_desc ebml_audio_desc;
extern const struct ebml_elem_desc ebml_content_encodings_desc;
extern const struct ebml_elem_desc ebml_content_encoding_desc;
extern const struct ebml_elem_desc ebml_content_compression_desc;
extern const struct ebml_elem_desc ebml_block_addition_mapping_desc;
extern const struct ebml_elem_desc ebml_cues_desc;
extern const struct ebml_elem_desc ebml_cue_point_desc;
extern const struct ebml_elem_desc ebml_cue_track_positions_desc;
extern const struct ebml_elem_desc ebml_attachments_desc;
extern const struct ebml_elem_desc ebml_attached_file_desc;
extern const struct ebml_elem_desc ebml_chapters_desc;
extern const struct ebml_elem_desc ebml_edition_entry_desc;
extern const struct ebml_elem_desc ebml_chapter_atom_desc;
extern const struct ebml_elem_desc ebml_chapter_display_desc;
extern const struct ebml_elem_desc ebml_tags_desc;
extern const struct ebml_elem_desc ebml_tag_desc;
extern const struct ebml_elem_desc ebml_targets_desc;
extern const struct ebml_elem_desc ebml_simple_tag_desc;

#define MAX_EBML_SUBELEMENTS 27
