summaryrefslogtreecommitdiff
path: root/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2017-02-12 23:03:22 -0800
committerMichael Forney <mforney@mforney.org>2017-02-12 23:03:22 -0800
commitbdbcebab8646a45307c9a104c6af656b92a24973 (patch)
tree27b4d8ebe68434831d937b0a798ea43a11b53b9e /pkg/mpv/patch/0002-Add-generated-ebml-sources.patch
parentfd038fccbc5780ce89bb1dad7562e8b4baf5c010 (diff)
mpv: Update to 0.24.0
Diffstat (limited to 'pkg/mpv/patch/0002-Add-generated-ebml-sources.patch')
-rw-r--r--pkg/mpv/patch/0002-Add-generated-ebml-sources.patch1146
1 files changed, 0 insertions, 1146 deletions
diff --git a/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch b/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch
deleted file mode 100644
index 06a6fa19..00000000
--- a/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch
+++ /dev/null
@@ -1,1146 +0,0 @@
-From ed365ad8132ef1c52de6a69e85e19e8404cea925 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 2 Jul 2016 17:32:27 -0700
-Subject: [PATCH] Add generated ebml sources
-
-These require python to generate.
-
-$ python TOOLS/matroska.py --generate-header demux/ebml.c demux/demux_mkv.c > demux/ebml_types.h
-$ python TOOLS/matroska.py --generate-definitions demux/ebml.c > demux/ebml_defs.c
----
- demux/ebml_defs.c | 529 +++++++++++++++++++++++++++++++++++++++++++++++
- demux/ebml_types.h | 586 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 1115 insertions(+)
- create mode 100644 demux/ebml_defs.c
- create mode 100644 demux/ebml_types.h
-
-diff --git a/demux/ebml_defs.c b/demux/ebml_defs.c
-new file mode 100644
-index 000000000..e4e205094
---- /dev/null
-+++ b/demux/ebml_defs.c
-@@ -0,0 +1,529 @@
-+// Generated by TOOLS/matroska.py, do not edit manually
-+
-+
-+E("TagString", tag_string, EBML_TYPE_STR)
-+
-+E("TagLanguage", tag_language, EBML_TYPE_STR)
-+
-+E("TagName", tag_name, EBML_TYPE_STR)
-+
-+#define N simple_tag
-+E_S("SimpleTag", 3)
-+F(MATROSKA_ID_TAGNAME, tag_name, 0)
-+F(MATROSKA_ID_TAGLANGUAGE, tag_language, 0)
-+F(MATROSKA_ID_TAGSTRING, tag_string, 0)
-+}};
-+#undef N
-+
-+E("TargetAttachmentUID", target_attachment_uid, EBML_TYPE_UINT)
-+
-+E("TargetChapterUID", target_chapter_uid, EBML_TYPE_UINT)
-+
-+E("TargetEditionUID", target_edition_uid, EBML_TYPE_UINT)
-+
-+E("TargetTrackUID", target_track_uid, EBML_TYPE_UINT)
-+
-+E("TargetTypeValue", target_type_value, EBML_TYPE_UINT)
-+
-+#define N targets
-+E_S("Targets", 5)
-+F(MATROSKA_ID_TARGETTYPEVALUE, target_type_value, 0)
-+F(MATROSKA_ID_TARGETTRACKUID, target_track_uid, 0)
-+F(MATROSKA_ID_TARGETEDITIONUID, target_edition_uid, 0)
-+F(MATROSKA_ID_TARGETCHAPTERUID, target_chapter_uid, 0)
-+F(MATROSKA_ID_TARGETATTACHMENTUID, target_attachment_uid, 0)
-+}};
-+#undef N
-+
-+#define N tag
-+E_S("Tag", 2)
-+F(MATROSKA_ID_TARGETS, targets, 0)
-+F(MATROSKA_ID_SIMPLETAG, simple_tag, 1)
-+}};
-+#undef N
-+
-+#define N tags
-+E_S("Tags", 1)
-+F(MATROSKA_ID_TAG, tag, 1)
-+}};
-+#undef N
-+
-+E("ChapCountry", chap_country, EBML_TYPE_STR)
-+
-+E("ChapLanguage", chap_language, EBML_TYPE_STR)
-+
-+E("ChapString", chap_string, EBML_TYPE_STR)
-+
-+#define N chapter_display
-+E_S("ChapterDisplay", 3)
-+F(MATROSKA_ID_CHAPSTRING, chap_string, 0)
-+F(MATROSKA_ID_CHAPLANGUAGE, chap_language, 1)
-+F(MATROSKA_ID_CHAPCOUNTRY, chap_country, 1)
-+}};
-+#undef N
-+
-+E("ChapterSegmentEditionUID", chapter_segment_edition_uid, EBML_TYPE_UINT)
-+
-+E("ChapterSegmentUID", chapter_segment_uid, EBML_TYPE_BINARY)
-+
-+E("ChapterFlagEnabled", chapter_flag_enabled, EBML_TYPE_UINT)
-+
-+E("ChapterFlagHidden", chapter_flag_hidden, EBML_TYPE_UINT)
-+
-+E("ChapterTimeEnd", chapter_time_end, EBML_TYPE_UINT)
-+
-+E("ChapterTimeStart", chapter_time_start, EBML_TYPE_UINT)
-+
-+E("ChapterUID", chapter_uid, EBML_TYPE_UINT)
-+
-+#define N chapter_atom
-+E_S("ChapterAtom", 8)
-+F(MATROSKA_ID_CHAPTERUID, chapter_uid, 0)
-+F(MATROSKA_ID_CHAPTERTIMESTART, chapter_time_start, 0)
-+F(MATROSKA_ID_CHAPTERTIMEEND, chapter_time_end, 0)
-+F(MATROSKA_ID_CHAPTERFLAGHIDDEN, chapter_flag_hidden, 0)
-+F(MATROSKA_ID_CHAPTERFLAGENABLED, chapter_flag_enabled, 0)
-+F(MATROSKA_ID_CHAPTERSEGMENTUID, chapter_segment_uid, 0)
-+F(MATROSKA_ID_CHAPTERSEGMENTEDITIONUID, chapter_segment_edition_uid, 0)
-+F(MATROSKA_ID_CHAPTERDISPLAY, chapter_display, 1)
-+}};
-+#undef N
-+
-+E("EditionFlagOrdered", edition_flag_ordered, EBML_TYPE_UINT)
-+
-+E("EditionFlagDefault", edition_flag_default, EBML_TYPE_UINT)
-+
-+E("EditionFlagHidden", edition_flag_hidden, EBML_TYPE_UINT)
-+
-+E("EditionUID", edition_uid, EBML_TYPE_UINT)
-+
-+#define N edition_entry
-+E_S("EditionEntry", 5)
-+F(MATROSKA_ID_EDITIONUID, edition_uid, 0)
-+F(MATROSKA_ID_EDITIONFLAGHIDDEN, edition_flag_hidden, 0)
-+F(MATROSKA_ID_EDITIONFLAGDEFAULT, edition_flag_default, 0)
-+F(MATROSKA_ID_EDITIONFLAGORDERED, edition_flag_ordered, 0)
-+F(MATROSKA_ID_CHAPTERATOM, chapter_atom, 1)
-+}};
-+#undef N
-+
-+#define N chapters
-+E_S("Chapters", 1)
-+F(MATROSKA_ID_EDITIONENTRY, edition_entry, 1)
-+}};
-+#undef N
-+
-+E("FileUID", file_uid, EBML_TYPE_UINT)
-+
-+E("FileData", file_data, EBML_TYPE_BINARY)
-+
-+E("FileMimeType", file_mime_type, EBML_TYPE_STR)
-+
-+E("FileName", file_name, EBML_TYPE_STR)
-+
-+E("FileDescription", file_description, EBML_TYPE_STR)
-+
-+#define N attached_file
-+E_S("AttachedFile", 5)
-+F(MATROSKA_ID_FILEDESCRIPTION, file_description, 0)
-+F(MATROSKA_ID_FILENAME, file_name, 0)
-+F(MATROSKA_ID_FILEMIMETYPE, file_mime_type, 0)
-+F(MATROSKA_ID_FILEDATA, file_data, 0)
-+F(MATROSKA_ID_FILEUID, file_uid, 0)
-+}};
-+#undef N
-+
-+#define N attachments
-+E_S("Attachments", 1)
-+F(MATROSKA_ID_ATTACHEDFILE, attached_file, 1)
-+}};
-+#undef N
-+
-+E("CueDuration", cue_duration, EBML_TYPE_UINT)
-+
-+E("CueRelativePosition", cue_relative_position, EBML_TYPE_UINT)
-+
-+E("CueClusterPosition", cue_cluster_position, EBML_TYPE_UINT)
-+
-+E("CueTrack", cue_track, EBML_TYPE_UINT)
-+
-+#define N cue_track_positions
-+E_S("CueTrackPositions", 4)
-+F(MATROSKA_ID_CUETRACK, cue_track, 0)
-+F(MATROSKA_ID_CUECLUSTERPOSITION, cue_cluster_position, 0)
-+F(MATROSKA_ID_CUERELATIVEPOSITION, cue_relative_position, 0)
-+F(MATROSKA_ID_CUEDURATION, cue_duration, 0)
-+}};
-+#undef N
-+
-+E("CueTime", cue_time, EBML_TYPE_UINT)
-+
-+#define N cue_point
-+E_S("CuePoint", 2)
-+F(MATROSKA_ID_CUETIME, cue_time, 0)
-+F(MATROSKA_ID_CUETRACKPOSITIONS, cue_track_positions, 1)
-+}};
-+#undef N
-+
-+#define N cues
-+E_S("Cues", 1)
-+F(MATROSKA_ID_CUEPOINT, cue_point, 1)
-+}};
-+#undef N
-+
-+E("ContentCompSettings", content_comp_settings, EBML_TYPE_BINARY)
-+
-+E("ContentCompAlgo", content_comp_algo, EBML_TYPE_UINT)
-+
-+#define N content_compression
-+E_S("ContentCompression", 2)
-+F(MATROSKA_ID_CONTENTCOMPALGO, content_comp_algo, 0)
-+F(MATROSKA_ID_CONTENTCOMPSETTINGS, content_comp_settings, 0)
-+}};
-+#undef N
-+
-+E("ContentEncodingType", content_encoding_type, EBML_TYPE_UINT)
-+
-+E("ContentEncodingScope", content_encoding_scope, EBML_TYPE_UINT)
-+
-+E("ContentEncodingOrder", content_encoding_order, EBML_TYPE_UINT)
-+
-+#define N content_encoding
-+E_S("ContentEncoding", 4)
-+F(MATROSKA_ID_CONTENTENCODINGORDER, content_encoding_order, 0)
-+F(MATROSKA_ID_CONTENTENCODINGSCOPE, content_encoding_scope, 0)
-+F(MATROSKA_ID_CONTENTENCODINGTYPE, content_encoding_type, 0)
-+F(MATROSKA_ID_CONTENTCOMPRESSION, content_compression, 0)
-+}};
-+#undef N
-+
-+#define N content_encodings
-+E_S("ContentEncodings", 1)
-+F(MATROSKA_ID_CONTENTENCODING, content_encoding, 1)
-+}};
-+#undef N
-+
-+E("BitDepth", bit_depth, EBML_TYPE_UINT)
-+
-+E("Channels", channels, EBML_TYPE_UINT)
-+
-+E("OutputSamplingFrequency", output_sampling_frequency, EBML_TYPE_FLOAT)
-+
-+E("SamplingFrequency", sampling_frequency, EBML_TYPE_FLOAT)
-+
-+#define N audio
-+E_S("Audio", 4)
-+F(MATROSKA_ID_SAMPLINGFREQUENCY, sampling_frequency, 0)
-+F(MATROSKA_ID_OUTPUTSAMPLINGFREQUENCY, output_sampling_frequency, 0)
-+F(MATROSKA_ID_CHANNELS, channels, 0)
-+F(MATROSKA_ID_BITDEPTH, bit_depth, 0)
-+}};
-+#undef N
-+
-+E("LuminanceMin", luminance_min, EBML_TYPE_FLOAT)
-+
-+E("LuminanceMax", luminance_max, EBML_TYPE_FLOAT)
-+
-+E("WhitePointChromaticityY", white_point_chromaticity_y, EBML_TYPE_FLOAT)
-+
-+E("WhitePointChromaticityX", white_point_chromaticity_x, EBML_TYPE_FLOAT)
-+
-+E("PrimaryBChromaticityY", primary_b_chromaticity_y, EBML_TYPE_FLOAT)
-+
-+E("PrimaryBChromaticityX", primary_b_chromaticity_x, EBML_TYPE_FLOAT)
-+
-+E("PrimaryGChromaticityY", primary_g_chromaticity_y, EBML_TYPE_FLOAT)
-+
-+E("PrimaryGChromaticityX", primary_g_chromaticity_x, EBML_TYPE_FLOAT)
-+
-+E("PrimaryRChromaticityY", primary_r_chromaticity_y, EBML_TYPE_FLOAT)
-+
-+E("PrimaryRChromaticityX", primary_r_chromaticity_x, EBML_TYPE_FLOAT)
-+
-+#define N mastering_metadata
-+E_S("MasteringMetadata", 10)
-+F(MATROSKA_ID_PRIMARYRCHROMATICITYX, primary_r_chromaticity_x, 0)
-+F(MATROSKA_ID_PRIMARYRCHROMATICITYY, primary_r_chromaticity_y, 0)
-+F(MATROSKA_ID_PRIMARYGCHROMATICITYX, primary_g_chromaticity_x, 0)
-+F(MATROSKA_ID_PRIMARYGCHROMATICITYY, primary_g_chromaticity_y, 0)
-+F(MATROSKA_ID_PRIMARYBCHROMATICITYX, primary_b_chromaticity_x, 0)
-+F(MATROSKA_ID_PRIMARYBCHROMATICITYY, primary_b_chromaticity_y, 0)
-+F(MATROSKA_ID_WHITEPOINTCHROMATICITYX, white_point_chromaticity_x, 0)
-+F(MATROSKA_ID_WHITEPOINTCHROMATICITYY, white_point_chromaticity_y, 0)
-+F(MATROSKA_ID_LUMINANCEMAX, luminance_max, 0)
-+F(MATROSKA_ID_LUMINANCEMIN, luminance_min, 0)
-+}};
-+#undef N
-+
-+E("MaxFALL", max_fall, EBML_TYPE_UINT)
-+
-+E("MaxCLL", max_cll, EBML_TYPE_UINT)
-+
-+E("Primaries", primaries, EBML_TYPE_UINT)
-+
-+E("TransferCharacteristics", transfer_characteristics, EBML_TYPE_UINT)
-+
-+E("Range", range, EBML_TYPE_UINT)
-+
-+E("ChromaSitingVert", chroma_siting_vert, EBML_TYPE_UINT)
-+
-+E("ChromaSitingHorz", chroma_siting_horz, EBML_TYPE_UINT)
-+
-+E("CbSubsamplingVert", cb_subsampling_vert, EBML_TYPE_UINT)
-+
-+E("CbSubsamplingHorz", cb_subsampling_horz, EBML_TYPE_UINT)
-+
-+E("ChromaSubsamplingVert", chroma_subsampling_vert, EBML_TYPE_UINT)
-+
-+E("ChromaSubsamplingHorz", chroma_subsampling_horz, EBML_TYPE_UINT)
-+
-+E("BitsPerChannel", bits_per_channel, EBML_TYPE_UINT)
-+
-+E("MatrixCoefficients", matrix_coefficients, EBML_TYPE_UINT)
-+
-+#define N colour
-+E_S("Colour", 14)
-+F(MATROSKA_ID_MATRIXCOEFFICIENTS, matrix_coefficients, 0)
-+F(MATROSKA_ID_BITSPERCHANNEL, bits_per_channel, 0)
-+F(MATROSKA_ID_CHROMASUBSAMPLINGHORZ, chroma_subsampling_horz, 0)
-+F(MATROSKA_ID_CHROMASUBSAMPLINGVERT, chroma_subsampling_vert, 0)
-+F(MATROSKA_ID_CBSUBSAMPLINGHORZ, cb_subsampling_horz, 0)
-+F(MATROSKA_ID_CBSUBSAMPLINGVERT, cb_subsampling_vert, 0)
-+F(MATROSKA_ID_CHROMASITINGHORZ, chroma_siting_horz, 0)
-+F(MATROSKA_ID_CHROMASITINGVERT, chroma_siting_vert, 0)
-+F(MATROSKA_ID_RANGE, range, 0)
-+F(MATROSKA_ID_TRANSFERCHARACTERISTICS, transfer_characteristics, 0)
-+F(MATROSKA_ID_PRIMARIES, primaries, 0)
-+F(MATROSKA_ID_MAXCLL, max_cll, 0)
-+F(MATROSKA_ID_MAXFALL, max_fall, 0)
-+F(MATROSKA_ID_MASTERINGMETADATA, mastering_metadata, 0)
-+}};
-+#undef N
-+
-+E("StereoMode", stereo_mode, EBML_TYPE_UINT)
-+
-+E("ColourSpace", colour_space, EBML_TYPE_BINARY)
-+
-+E("FrameRate", frame_rate, EBML_TYPE_FLOAT)
-+
-+E("DisplayUnit", display_unit, EBML_TYPE_UINT)
-+
-+E("DisplayHeight", display_height, EBML_TYPE_UINT)
-+
-+E("DisplayWidth", display_width, EBML_TYPE_UINT)
-+
-+E("PixelHeight", pixel_height, EBML_TYPE_UINT)
-+
-+E("PixelWidth", pixel_width, EBML_TYPE_UINT)
-+
-+E("FlagInterlaced", flag_interlaced, EBML_TYPE_UINT)
-+
-+#define N video
-+E_S("Video", 10)
-+F(MATROSKA_ID_FLAGINTERLACED, flag_interlaced, 0)
-+F(MATROSKA_ID_PIXELWIDTH, pixel_width, 0)
-+F(MATROSKA_ID_PIXELHEIGHT, pixel_height, 0)
-+F(MATROSKA_ID_DISPLAYWIDTH, display_width, 0)
-+F(MATROSKA_ID_DISPLAYHEIGHT, display_height, 0)
-+F(MATROSKA_ID_DISPLAYUNIT, display_unit, 0)
-+F(MATROSKA_ID_FRAMERATE, frame_rate, 0)
-+F(MATROSKA_ID_COLOURSPACE, colour_space, 0)
-+F(MATROSKA_ID_STEREOMODE, stereo_mode, 0)
-+F(MATROSKA_ID_COLOUR, colour, 0)
-+}};
-+#undef N
-+
-+E("SeekPreRoll", seek_pre_roll, EBML_TYPE_UINT)
-+
-+E("CodecDelay", codec_delay, EBML_TYPE_UINT)
-+
-+E("CodecDecodeAll", codec_decode_all, EBML_TYPE_UINT)
-+
-+E("CodecName", codec_name, EBML_TYPE_STR)
-+
-+E("CodecPrivate", codec_private, EBML_TYPE_BINARY)
-+
-+E("CodecID", codec_id, EBML_TYPE_STR)
-+
-+E("Language", language, EBML_TYPE_STR)
-+
-+E("Name", name, EBML_TYPE_STR)
-+
-+E("MaxBlockAdditionID", max_block_addition_id, EBML_TYPE_UINT)
-+
-+E("TrackTimecodeScale", track_timecode_scale, EBML_TYPE_FLOAT)
-+
-+E("DefaultDuration", default_duration, EBML_TYPE_UINT)
-+
-+E("MaxCache", max_cache, EBML_TYPE_UINT)
-+
-+E("MinCache", min_cache, EBML_TYPE_UINT)
-+
-+E("FlagLacing", flag_lacing, EBML_TYPE_UINT)
-+
-+E("FlagForced", flag_forced, EBML_TYPE_UINT)
-+
-+E("FlagDefault", flag_default, EBML_TYPE_UINT)
-+
-+E("FlagEnabled", flag_enabled, EBML_TYPE_UINT)
-+
-+E("TrackType", track_type, EBML_TYPE_UINT)
-+
-+E("TrackUID", track_uid, EBML_TYPE_UINT)
-+
-+E("TrackNumber", track_number, EBML_TYPE_UINT)
-+
-+#define N track_entry
-+E_S("TrackEntry", 23)
-+F(MATROSKA_ID_TRACKNUMBER, track_number, 0)
-+F(MATROSKA_ID_TRACKUID, track_uid, 0)
-+F(MATROSKA_ID_TRACKTYPE, track_type, 0)
-+F(MATROSKA_ID_FLAGENABLED, flag_enabled, 0)
-+F(MATROSKA_ID_FLAGDEFAULT, flag_default, 0)
-+F(MATROSKA_ID_FLAGFORCED, flag_forced, 0)
-+F(MATROSKA_ID_FLAGLACING, flag_lacing, 0)
-+F(MATROSKA_ID_MINCACHE, min_cache, 0)
-+F(MATROSKA_ID_MAXCACHE, max_cache, 0)
-+F(MATROSKA_ID_DEFAULTDURATION, default_duration, 0)
-+F(MATROSKA_ID_TRACKTIMECODESCALE, track_timecode_scale, 0)
-+F(MATROSKA_ID_MAXBLOCKADDITIONID, max_block_addition_id, 0)
-+F(MATROSKA_ID_NAME, name, 0)
-+F(MATROSKA_ID_LANGUAGE, language, 0)
-+F(MATROSKA_ID_CODECID, codec_id, 0)
-+F(MATROSKA_ID_CODECPRIVATE, codec_private, 0)
-+F(MATROSKA_ID_CODECNAME, codec_name, 0)
-+F(MATROSKA_ID_CODECDECODEALL, codec_decode_all, 0)
-+F(MATROSKA_ID_CODECDELAY, codec_delay, 0)
-+F(MATROSKA_ID_SEEKPREROLL, seek_pre_roll, 0)
-+F(MATROSKA_ID_VIDEO, video, 0)
-+F(MATROSKA_ID_AUDIO, audio, 0)
-+F(MATROSKA_ID_CONTENTENCODINGS, content_encodings, 0)
-+}};
-+#undef N
-+
-+#define N tracks
-+E_S("Tracks", 1)
-+F(MATROSKA_ID_TRACKENTRY, track_entry, 1)
-+}};
-+#undef N
-+
-+E("SimpleBlock", simple_block, EBML_TYPE_BINARY)
-+
-+E("DiscardPadding", discard_padding, EBML_TYPE_SINT)
-+
-+E("ReferenceBlock", reference_block, EBML_TYPE_SINT)
-+
-+E("BlockDuration", block_duration, EBML_TYPE_UINT)
-+
-+E("Block", block, EBML_TYPE_BINARY)
-+
-+#define N block_group
-+E_S("BlockGroup", 4)
-+F(MATROSKA_ID_BLOCK, block, 0)
-+F(MATROSKA_ID_BLOCKDURATION, block_duration, 0)
-+F(MATROSKA_ID_REFERENCEBLOCK, reference_block, 1)
-+F(MATROSKA_ID_DISCARDPADDING, discard_padding, 0)
-+}};
-+#undef N
-+
-+E("Timecode", timecode, EBML_TYPE_UINT)
-+
-+#define N cluster
-+E_S("Cluster", 3)
-+F(MATROSKA_ID_TIMECODE, timecode, 0)
-+F(MATROSKA_ID_BLOCKGROUP, block_group, 1)
-+F(MATROSKA_ID_SIMPLEBLOCK, simple_block, 1)
-+}};
-+#undef N
-+
-+E("Duration", duration, EBML_TYPE_FLOAT)
-+
-+E("WritingApp", writing_app, EBML_TYPE_STR)
-+
-+E("MuxingApp", muxing_app, EBML_TYPE_STR)
-+
-+E("Title", title, EBML_TYPE_STR)
-+
-+E("DateUTC", date_utc, EBML_TYPE_SINT)
-+
-+E("TimecodeScale", timecode_scale, EBML_TYPE_UINT)
-+
-+E("NextUID", next_uid, EBML_TYPE_BINARY)
-+
-+E("PrevUID", prev_uid, EBML_TYPE_BINARY)
-+
-+E("SegmentUID", segment_uid, EBML_TYPE_BINARY)
-+
-+#define N info
-+E_S("Info", 9)
-+F(MATROSKA_ID_SEGMENTUID, segment_uid, 0)
-+F(MATROSKA_ID_PREVUID, prev_uid, 0)
-+F(MATROSKA_ID_NEXTUID, next_uid, 0)
-+F(MATROSKA_ID_TIMECODESCALE, timecode_scale, 0)
-+F(MATROSKA_ID_DATEUTC, date_utc, 0)
-+F(MATROSKA_ID_TITLE, title, 0)
-+F(MATROSKA_ID_MUXINGAPP, muxing_app, 0)
-+F(MATROSKA_ID_WRITINGAPP, writing_app, 0)
-+F(MATROSKA_ID_DURATION, duration, 0)
-+}};
-+#undef N
-+
-+E("SeekPosition", seek_position, EBML_TYPE_UINT)
-+
-+E("SeekID", seek_id, EBML_TYPE_EBML_ID)
-+
-+#define N seek
-+E_S("Seek", 2)
-+F(MATROSKA_ID_SEEKID, seek_id, 0)
-+F(MATROSKA_ID_SEEKPOSITION, seek_position, 0)
-+}};
-+#undef N
-+
-+#define N seek_head
-+E_S("SeekHead", 1)
-+F(MATROSKA_ID_SEEK, seek, 1)
-+}};
-+#undef N
-+
-+#define N segment
-+E_S("Segment", 8)
-+F(MATROSKA_ID_SEEKHEAD, seek_head, 1)
-+F(MATROSKA_ID_INFO, info, 1)
-+F(MATROSKA_ID_CLUSTER, cluster, 1)
-+F(MATROSKA_ID_TRACKS, tracks, 1)
-+F(MATROSKA_ID_CUES, cues, 0)
-+F(MATROSKA_ID_ATTACHMENTS, attachments, 0)
-+F(MATROSKA_ID_CHAPTERS, chapters, 0)
-+F(MATROSKA_ID_TAGS, tags, 1)
-+}};
-+#undef N
-+
-+E("Void", void, EBML_TYPE_BINARY)
-+
-+E("CRC32", crc32, EBML_TYPE_BINARY)
-+
-+E("DocTypeReadVersion", doc_type_read_version, EBML_TYPE_UINT)
-+
-+E("DocTypeVersion", doc_type_version, EBML_TYPE_UINT)
-+
-+E("DocType", doc_type, EBML_TYPE_STR)
-+
-+E("EBMLMaxSizeLength", ebml_max_size_length, EBML_TYPE_UINT)
-+
-+E("EBMLMaxIDLength", ebml_max_id_length, EBML_TYPE_UINT)
-+
-+E("EBMLReadVersion", ebml_read_version, EBML_TYPE_UINT)
-+
-+E("EBMLVersion", ebml_version, EBML_TYPE_UINT)
-+
-+#define N ebml
-+E_S("EBML", 7)
-+F(EBML_ID_EBMLVERSION, ebml_version, 0)
-+F(EBML_ID_EBMLREADVERSION, ebml_read_version, 0)
-+F(EBML_ID_EBMLMAXIDLENGTH, ebml_max_id_length, 0)
-+F(EBML_ID_EBMLMAXSIZELENGTH, ebml_max_size_length, 0)
-+F(EBML_ID_DOCTYPE, doc_type, 0)
-+F(EBML_ID_DOCTYPEVERSION, doc_type_version, 0)
-+F(EBML_ID_DOCTYPEREADVERSION, doc_type_read_version, 0)
-+}};
-+#undef N
-diff --git a/demux/ebml_types.h b/demux/ebml_types.h
-new file mode 100644
-index 000000000..510a766e1
---- /dev/null
-+++ b/demux/ebml_types.h
-@@ -0,0 +1,586 @@
-+// 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_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_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_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_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_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_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_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_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_TAGSTRING 0x4487
-+
-+
-+struct ebml_simple_tag {
-+ char * tag_name;
-+ char * tag_language;
-+ char * tag_string;
-+
-+ int n_tag_name;
-+ int n_tag_language;
-+ int n_tag_string;
-+};
-+
-+struct ebml_targets {
-+ uint64_t target_type_value;
-+ 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_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_country;
-+
-+ int n_chap_string;
-+ int n_chap_language;
-+ 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_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_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;
-+ double frame_rate;
-+ bstr colour_space;
-+ uint64_t stereo_mode;
-+ struct ebml_colour colour;
-+
-+ 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_frame_rate;
-+ int n_colour_space;
-+ int n_stereo_mode;
-+ int n_colour;
-+};
-+
-+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_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 * 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;
-+
-+ 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_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_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;
-+};
-+
-+struct ebml_tracks {
-+ struct ebml_track_entry *track_entry;
-+
-+ int n_track_entry;
-+};
-+
-+struct ebml_block_group {
-+ bstr block;
-+ uint64_t block_duration;
-+ int64_t *reference_block;
-+ int64_t discard_padding;
-+
-+ int n_block;
-+ int n_block_duration;
-+ int n_reference_block;
-+ int n_discard_padding;
-+};
-+
-+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_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_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_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 23
---
-2.11.0
-