|  |  | @@ -716,26 +716,21 @@ static const EbmlSyntax matroska_blockgroup[] = { | 
		
	
		
			
			|  |  |  | CHILD_OF(matroska_cluster_parsing) | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // The following array contains SimpleBlock and BlockGroup twice | 
		
	
		
			
			|  |  |  | // in order to reuse the other values for matroska_cluster_enter. | 
		
	
		
			
			|  |  |  | static const EbmlSyntax matroska_cluster_parsing[] = { | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERTIMECODE, EBML_UINT, 0, offsetof(MatroskaCluster, timecode) }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_BLOCKGROUP,      EBML_NEST, 0, 0, { .n = matroska_blockgroup } }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_SIMPLEBLOCK,     EBML_BIN,  0, offsetof(MatroskaBlock, bin) }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERPOSITION, EBML_NONE }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERPREVSIZE, EBML_NONE }, | 
		
	
		
			
			|  |  |  | CHILD_OF(matroska_segment) | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | static const EbmlSyntax matroska_cluster_initial[] = { | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_BLOCKGROUP,      EBML_NEST, 0, 0, { .n = matroska_blockgroup } }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERTIMECODE, EBML_UINT, 0, offsetof(MatroskaCluster, timecode) }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_BLOCKGROUP,      EBML_STOP }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_SIMPLEBLOCK,     EBML_STOP }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_BLOCKGROUP,      EBML_STOP }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERPOSITION, EBML_NONE }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTERPREVSIZE, EBML_NONE }, | 
		
	
		
			
			|  |  |  | CHILD_OF(matroska_segment) | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | static const EbmlSyntax matroska_cluster_enter[] = { | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTER,     EBML_NEST, 0, 0, { .n = matroska_cluster_initial } }, | 
		
	
		
			
			|  |  |  | { MATROSKA_ID_CLUSTER,     EBML_NEST, 0, 0, { .n = &matroska_cluster_parsing[2] } }, | 
		
	
		
			
			|  |  |  | { 0 } | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -1063,6 +1058,9 @@ static int ebml_parse(MatroskaDemuxContext *matroska, | 
		
	
		
			
			|  |  |  | static EbmlSyntax *ebml_parse_id(EbmlSyntax *syntax, uint32_t id) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | int i; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // Whoever touches this should be aware of the duplication | 
		
	
		
			
			|  |  |  | // existing in matroska_cluster_parsing. | 
		
	
		
			
			|  |  |  | for (i = 0; syntax[i].id; i++) | 
		
	
		
			
			|  |  |  | if (id == syntax[i].id) | 
		
	
		
			
			|  |  |  | break; | 
		
	
	
		
			
				|  |  | 
 |