|  |  | @@ -770,7 +770,6 @@ static int matroska_reset_status(MatroskaDemuxContext *matroska, | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | matroska->current_id = id; | 
		
	
		
			
			|  |  |  | matroska->num_levels = 1; | 
		
	
		
			
			|  |  |  | matroska->current_cluster.pos = 0; | 
		
	
		
			
			|  |  |  | matroska->resync_pos = avio_tell(matroska->ctx->pb); | 
		
	
		
			
			|  |  |  | if (id) | 
		
	
		
			
			|  |  |  | matroska->resync_pos -= (av_log2(id) + 7) / 8; | 
		
	
	
		
			
				|  |  | @@ -1750,8 +1749,8 @@ static int matroska_parse_seekhead_entry(MatroskaDemuxContext *matroska, | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | /* Seek back - notice that in all instances where this is used it is safe | 
		
	
		
			
			|  |  |  | * to set the level to 1 and unset the position of the current cluster. */ | 
		
	
		
			
			|  |  |  | /* Seek back - notice that in all instances where this is used | 
		
	
		
			
			|  |  |  | * it is safe to set the level to 1. */ | 
		
	
		
			
			|  |  |  | matroska_reset_status(matroska, saved_id, before_pos); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return ret; | 
		
	
	
		
			
				|  |  | @@ -3606,7 +3605,6 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (matroska->num_levels == 2) { | 
		
	
		
			
			|  |  |  | int err = 0; | 
		
	
		
			
			|  |  |  | /* We are inside a cluster. */ | 
		
	
		
			
			|  |  |  | res = ebml_parse(matroska, matroska_cluster_parsing, cluster); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -3615,7 +3613,7 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) | 
		
	
		
			
			|  |  |  | uint8_t* additional = block->additional.size > 0 ? | 
		
	
		
			
			|  |  |  | block->additional.data : NULL; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | err = matroska_parse_block(matroska, block->bin.buf, block->bin.data, | 
		
	
		
			
			|  |  |  | res = matroska_parse_block(matroska, block->bin.buf, block->bin.data, | 
		
	
		
			
			|  |  |  | block->bin.size, block->bin.pos, | 
		
	
		
			
			|  |  |  | cluster->timecode, block->duration, | 
		
	
		
			
			|  |  |  | is_keyframe, additional, block->additional_id, | 
		
	
	
		
			
				|  |  | @@ -3623,14 +3621,8 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) | 
		
	
		
			
			|  |  |  | block->discard_padding); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (res == LEVEL_ENDED) | 
		
	
		
			
			|  |  |  | cluster->pos = 0; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ebml_free(matroska_blockgroup, block); | 
		
	
		
			
			|  |  |  | memset(block, 0, sizeof(*block)); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (err < 0) | 
		
	
		
			
			|  |  |  | return err; | 
		
	
		
			
			|  |  |  | } else if (!matroska->num_levels) { | 
		
	
		
			
			|  |  |  | matroska->done = 1; | 
		
	
		
			
			|  |  |  | return AVERROR_EOF; | 
		
	
	
		
			
				|  |  | 
 |