You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	libavformat/subfile: Fix SEEK_CUR and SEEK_END seeking
Up until now, when performing a SEEK_END seek, the subfile protocol ignored the desired position (relative to EOF) and used the current absolute offset in the input file instead. And when performing a SEEK_CUR seek, the current position has been ignored. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Nicolas George
						Nicolas George
					
				
			
			
				
	
			
			
			
						parent
						
							3add65e052
						
					
				
				
					commit
					de010d229a
				
			| @@ -116,7 +116,7 @@ static int subfile_read(URLContext *h, unsigned char *buf, int size) | ||||
| static int64_t subfile_seek(URLContext *h, int64_t pos, int whence) | ||||
| { | ||||
|     SubfileContext *c = h->priv_data; | ||||
|     int64_t new_pos = -1, end; | ||||
|     int64_t new_pos, end; | ||||
|     int ret; | ||||
|  | ||||
|     if (whence == AVSEEK_SIZE || whence == SEEK_END) { | ||||
| @@ -132,10 +132,10 @@ static int64_t subfile_seek(URLContext *h, int64_t pos, int whence) | ||||
|         new_pos = c->start + pos; | ||||
|         break; | ||||
|     case SEEK_CUR: | ||||
|         new_pos += pos; | ||||
|         new_pos = c->pos + pos; | ||||
|         break; | ||||
|     case SEEK_END: | ||||
|         new_pos = end + c->pos; | ||||
|         new_pos = end + pos; | ||||
|         break; | ||||
|     } | ||||
|     if (new_pos < c->start) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user