@ -250,6 +250,7 @@ static EbmlSyntax matroska_info[] = {
{ MATROSKA_ID_MUXINGAPP , EBML_NONE } ,
{ MATROSKA_ID_MUXINGAPP , EBML_NONE } ,
{ MATROSKA_ID_DATEUTC , EBML_NONE } ,
{ MATROSKA_ID_DATEUTC , EBML_NONE } ,
{ MATROSKA_ID_SEGMENTUID , EBML_NONE } ,
{ MATROSKA_ID_SEGMENTUID , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -261,6 +262,11 @@ static EbmlSyntax matroska_track_video[] = {
{ MATROSKA_ID_VIDEOPIXELWIDTH , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , pixel_width ) } ,
{ MATROSKA_ID_VIDEOPIXELWIDTH , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , pixel_width ) } ,
{ MATROSKA_ID_VIDEOPIXELHEIGHT , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , pixel_height ) } ,
{ MATROSKA_ID_VIDEOPIXELHEIGHT , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , pixel_height ) } ,
{ MATROSKA_ID_VIDEOCOLORSPACE , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , fourcc ) } ,
{ MATROSKA_ID_VIDEOCOLORSPACE , EBML_UINT , 0 , offsetof ( MatroskaTrackVideo , fourcc ) } ,
{ MATROSKA_ID_VIDEOPIXELCROPB , EBML_NONE } ,
{ MATROSKA_ID_VIDEOPIXELCROPT , EBML_NONE } ,
{ MATROSKA_ID_VIDEOPIXELCROPL , EBML_NONE } ,
{ MATROSKA_ID_VIDEOPIXELCROPR , EBML_NONE } ,
{ MATROSKA_ID_VIDEODISPLAYUNIT , EBML_NONE } ,
{ MATROSKA_ID_VIDEOFLAGINTERLACED , EBML_NONE } ,
{ MATROSKA_ID_VIDEOFLAGINTERLACED , EBML_NONE } ,
{ MATROSKA_ID_VIDEOSTEREOMODE , EBML_NONE } ,
{ MATROSKA_ID_VIDEOSTEREOMODE , EBML_NONE } ,
{ MATROSKA_ID_VIDEOASPECTRATIO , EBML_NONE } ,
{ MATROSKA_ID_VIDEOASPECTRATIO , EBML_NONE } ,
@ -288,6 +294,7 @@ static EbmlSyntax matroska_track_encoding[] = {
{ MATROSKA_ID_ENCODINGSCOPE , EBML_UINT , 0 , offsetof ( MatroskaTrackEncoding , scope ) , { . u = 1 } } ,
{ MATROSKA_ID_ENCODINGSCOPE , EBML_UINT , 0 , offsetof ( MatroskaTrackEncoding , scope ) , { . u = 1 } } ,
{ MATROSKA_ID_ENCODINGTYPE , EBML_UINT , 0 , offsetof ( MatroskaTrackEncoding , type ) , { . u = 0 } } ,
{ MATROSKA_ID_ENCODINGTYPE , EBML_UINT , 0 , offsetof ( MatroskaTrackEncoding , type ) , { . u = 0 } } ,
{ MATROSKA_ID_ENCODINGCOMPRESSION , EBML_NEST , 0 , offsetof ( MatroskaTrackEncoding , compression ) , { . n = matroska_track_encoding_compression } } ,
{ MATROSKA_ID_ENCODINGCOMPRESSION , EBML_NEST , 0 , offsetof ( MatroskaTrackEncoding , compression ) , { . n = matroska_track_encoding_compression } } ,
{ MATROSKA_ID_ENCODINGORDER , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -321,12 +328,15 @@ static EbmlSyntax matroska_track[] = {
{ MATROSKA_ID_CODECDOWNLOADURL , EBML_NONE } ,
{ MATROSKA_ID_CODECDOWNLOADURL , EBML_NONE } ,
{ MATROSKA_ID_TRACKMINCACHE , EBML_NONE } ,
{ MATROSKA_ID_TRACKMINCACHE , EBML_NONE } ,
{ MATROSKA_ID_TRACKMAXCACHE , EBML_NONE } ,
{ MATROSKA_ID_TRACKMAXCACHE , EBML_NONE } ,
{ MATROSKA_ID_TRACKMAXBLKADDID , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
static EbmlSyntax matroska_tracks [ ] = {
static EbmlSyntax matroska_tracks [ ] = {
{ MATROSKA_ID_TRACKENTRY , EBML_NEST , sizeof ( MatroskaTrack ) , offsetof ( MatroskaDemuxContext , tracks ) , { . n = matroska_track } } ,
{ MATROSKA_ID_TRACKENTRY , EBML_NEST , sizeof ( MatroskaTrack ) , offsetof ( MatroskaDemuxContext , tracks ) , { . n = matroska_track } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -335,6 +345,7 @@ static EbmlSyntax matroska_attachment[] = {
{ MATROSKA_ID_FILENAME , EBML_UTF8 , 0 , offsetof ( MatroskaAttachement , filename ) } ,
{ MATROSKA_ID_FILENAME , EBML_UTF8 , 0 , offsetof ( MatroskaAttachement , filename ) } ,
{ MATROSKA_ID_FILEMIMETYPE , EBML_STR , 0 , offsetof ( MatroskaAttachement , mime ) } ,
{ MATROSKA_ID_FILEMIMETYPE , EBML_STR , 0 , offsetof ( MatroskaAttachement , mime ) } ,
{ MATROSKA_ID_FILEDATA , EBML_BIN , 0 , offsetof ( MatroskaAttachement , bin ) } ,
{ MATROSKA_ID_FILEDATA , EBML_BIN , 0 , offsetof ( MatroskaAttachement , bin ) } ,
{ MATROSKA_ID_FILEDESC , EBML_NONE } ,
{ MATROSKA_ID_FILEUID , EBML_NONE } ,
{ MATROSKA_ID_FILEUID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
@ -342,12 +353,14 @@ static EbmlSyntax matroska_attachment[] = {
static EbmlSyntax matroska_attachments [ ] = {
static EbmlSyntax matroska_attachments [ ] = {
{ MATROSKA_ID_ATTACHEDFILE , EBML_NEST , sizeof ( MatroskaAttachement ) , offsetof ( MatroskaDemuxContext , attachments ) , { . n = matroska_attachment } } ,
{ MATROSKA_ID_ATTACHEDFILE , EBML_NEST , sizeof ( MatroskaAttachement ) , offsetof ( MatroskaDemuxContext , attachments ) , { . n = matroska_attachment } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
static EbmlSyntax matroska_chapter_display [ ] = {
static EbmlSyntax matroska_chapter_display [ ] = {
{ MATROSKA_ID_CHAPSTRING , EBML_UTF8 , 0 , offsetof ( MatroskaChapter , title ) } ,
{ MATROSKA_ID_CHAPSTRING , EBML_UTF8 , 0 , offsetof ( MatroskaChapter , title ) } ,
{ MATROSKA_ID_CHAPLANG , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -358,6 +371,10 @@ static EbmlSyntax matroska_chapter_entry[] = {
{ MATROSKA_ID_CHAPTERUID , EBML_UINT , 0 , offsetof ( MatroskaChapter , uid ) } ,
{ MATROSKA_ID_CHAPTERUID , EBML_UINT , 0 , offsetof ( MatroskaChapter , uid ) } ,
{ MATROSKA_ID_CHAPTERDISPLAY , EBML_NEST , 0 , 0 , { . n = matroska_chapter_display } } ,
{ MATROSKA_ID_CHAPTERDISPLAY , EBML_NEST , 0 , 0 , { . n = matroska_chapter_display } } ,
{ MATROSKA_ID_CHAPTERFLAGHIDDEN , EBML_NONE } ,
{ MATROSKA_ID_CHAPTERFLAGHIDDEN , EBML_NONE } ,
{ MATROSKA_ID_CHAPTERFLAGENABLED , EBML_NONE } ,
{ MATROSKA_ID_CHAPTERPHYSEQUIV , EBML_NONE } ,
{ MATROSKA_ID_CHAPTERATOM , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -367,12 +384,15 @@ static EbmlSyntax matroska_chapter[] = {
{ MATROSKA_ID_EDITIONUID , EBML_NONE } ,
{ MATROSKA_ID_EDITIONUID , EBML_NONE } ,
{ MATROSKA_ID_EDITIONFLAGHIDDEN , EBML_NONE } ,
{ MATROSKA_ID_EDITIONFLAGHIDDEN , EBML_NONE } ,
{ MATROSKA_ID_EDITIONFLAGDEFAULT , EBML_NONE } ,
{ MATROSKA_ID_EDITIONFLAGDEFAULT , EBML_NONE } ,
{ MATROSKA_ID_EDITIONFLAGORDERED , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
static EbmlSyntax matroska_chapters [ ] = {
static EbmlSyntax matroska_chapters [ ] = {
{ MATROSKA_ID_EDITIONENTRY , EBML_NEST , 0 , 0 , { . n = matroska_chapter } } ,
{ MATROSKA_ID_EDITIONENTRY , EBML_NEST , 0 , 0 , { . n = matroska_chapter } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -380,6 +400,7 @@ static EbmlSyntax matroska_chapters[] = {
static EbmlSyntax matroska_index_pos [ ] = {
static EbmlSyntax matroska_index_pos [ ] = {
{ MATROSKA_ID_CUETRACK , EBML_UINT , 0 , offsetof ( MatroskaIndexPos , track ) } ,
{ MATROSKA_ID_CUETRACK , EBML_UINT , 0 , offsetof ( MatroskaIndexPos , track ) } ,
{ MATROSKA_ID_CUECLUSTERPOSITION , EBML_UINT , 0 , offsetof ( MatroskaIndexPos , pos ) } ,
{ MATROSKA_ID_CUECLUSTERPOSITION , EBML_UINT , 0 , offsetof ( MatroskaIndexPos , pos ) } ,
{ MATROSKA_ID_CUEBLOCKNUMBER , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -393,6 +414,7 @@ static EbmlSyntax matroska_index_entry[] = {
static EbmlSyntax matroska_index [ ] = {
static EbmlSyntax matroska_index [ ] = {
{ MATROSKA_ID_POINTENTRY , EBML_NEST , sizeof ( MatroskaIndex ) , offsetof ( MatroskaDemuxContext , index ) , { . n = matroska_index_entry } } ,
{ MATROSKA_ID_POINTENTRY , EBML_NEST , sizeof ( MatroskaIndex ) , offsetof ( MatroskaDemuxContext , index ) , { . n = matroska_index_entry } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -403,6 +425,7 @@ static EbmlSyntax matroska_simpletag[] = {
{ MATROSKA_ID_SIMPLETAG , EBML_NEST , sizeof ( MatroskaTag ) , offsetof ( MatroskaTag , sub ) , { . n = matroska_simpletag } } ,
{ MATROSKA_ID_SIMPLETAG , EBML_NEST , sizeof ( MatroskaTag ) , offsetof ( MatroskaTag , sub ) , { . n = matroska_simpletag } } ,
{ MATROSKA_ID_TAGLANG , EBML_NONE } ,
{ MATROSKA_ID_TAGLANG , EBML_NONE } ,
{ MATROSKA_ID_TAGDEFAULT , EBML_NONE } ,
{ MATROSKA_ID_TAGDEFAULT , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -410,12 +433,14 @@ static EbmlSyntax matroska_simpletag[] = {
static EbmlSyntax matroska_tag [ ] = {
static EbmlSyntax matroska_tag [ ] = {
{ MATROSKA_ID_SIMPLETAG , EBML_NEST , sizeof ( MatroskaTag ) , 0 , { . n = matroska_simpletag } } ,
{ MATROSKA_ID_SIMPLETAG , EBML_NEST , sizeof ( MatroskaTag ) , 0 , { . n = matroska_simpletag } } ,
{ MATROSKA_ID_TAGTARGETS , EBML_NONE } ,
{ MATROSKA_ID_TAGTARGETS , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
static EbmlSyntax matroska_tags [ ] = {
static EbmlSyntax matroska_tags [ ] = {
{ MATROSKA_ID_TAG , EBML_NEST , 0 , offsetof ( MatroskaDemuxContext , tags ) , { . n = matroska_tag } } ,
{ MATROSKA_ID_TAG , EBML_NEST , 0 , offsetof ( MatroskaDemuxContext , tags ) , { . n = matroska_tag } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -429,6 +454,7 @@ static EbmlSyntax matroska_seekhead_entry[] = {
static EbmlSyntax matroska_seekhead [ ] = {
static EbmlSyntax matroska_seekhead [ ] = {
{ MATROSKA_ID_SEEKENTRY , EBML_NEST , sizeof ( MatroskaSeekhead ) , offsetof ( MatroskaDemuxContext , seekhead ) , { . n = matroska_seekhead_entry } } ,
{ MATROSKA_ID_SEEKENTRY , EBML_NEST , sizeof ( MatroskaSeekhead ) , offsetof ( MatroskaDemuxContext , seekhead ) , { . n = matroska_seekhead_entry } } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
@ -464,12 +490,19 @@ static EbmlSyntax matroska_cluster[] = {
{ MATROSKA_ID_CLUSTERTIMECODE , EBML_UINT , 0 , offsetof ( MatroskaCluster , timecode ) } ,
{ MATROSKA_ID_CLUSTERTIMECODE , EBML_UINT , 0 , offsetof ( MatroskaCluster , timecode ) } ,
{ MATROSKA_ID_BLOCKGROUP , EBML_NEST , sizeof ( MatroskaBlock ) , offsetof ( MatroskaCluster , blocks ) , { . n = matroska_blockgroup } } ,
{ MATROSKA_ID_BLOCKGROUP , EBML_NEST , sizeof ( MatroskaBlock ) , offsetof ( MatroskaCluster , blocks ) , { . n = matroska_blockgroup } } ,
{ MATROSKA_ID_SIMPLEBLOCK , EBML_PASS , sizeof ( MatroskaBlock ) , offsetof ( MatroskaCluster , blocks ) , { . n = matroska_blockgroup } } ,
{ MATROSKA_ID_SIMPLEBLOCK , EBML_PASS , sizeof ( MatroskaBlock ) , offsetof ( MatroskaCluster , blocks ) , { . n = matroska_blockgroup } } ,
{ MATROSKA_ID_CLUSTERPOSITION , EBML_NONE } ,
{ MATROSKA_ID_CLUSTERPREVSIZE , EBML_NONE } ,
{ EBML_ID_CRC32 , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ EBML_ID_VOID , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;
static EbmlSyntax matroska_clusters [ ] = {
static EbmlSyntax matroska_clusters [ ] = {
{ MATROSKA_ID_CLUSTER , EBML_NEST , 0 , 0 , { . n = matroska_cluster } } ,
{ MATROSKA_ID_CLUSTER , EBML_NEST , 0 , 0 , { . n = matroska_cluster } } ,
{ MATROSKA_ID_INFO , EBML_NONE } ,
{ MATROSKA_ID_CUES , EBML_NONE } ,
{ MATROSKA_ID_TAGS , EBML_NONE } ,
{ MATROSKA_ID_SEEKHEAD , EBML_NONE } ,
{ 0 }
{ 0 }
} ;
} ;