You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavf/async: Fix ring_write return value
This fixes a regression from commit 36117968ad.
wrapped_url_read() used to be able to return positive number from
ffurl_read(). It relies on the result to check if EOF is reached in
async_buffer_task().
But FIFO callbacks must return 0 on success. This should be handled
in ring_write() instead.
Test case:
  ffmpeg -f lavfi -i testsrc -t 1 test.mp4
  ffmpeg -i async:test.mp4
Signed-off-by: Guangyu Sun <gsun@roblox.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
			
			
This commit is contained in:
		
				
					committed by
					
						 Anton Khirnov
						Anton Khirnov
					
				
			
			
				
	
			
			
			
						parent
						
							fed841f6f9
						
					
				
				
					commit
					fc6f7e2a3b
				
			| @@ -144,8 +144,14 @@ static int wrapped_url_read(void *src, void *dst, size_t *size) | ||||
|  | ||||
| static int ring_write(RingBuffer *ring, URLContext *h, size_t size) | ||||
| { | ||||
|     int ret; | ||||
|  | ||||
|     av_assert2(size <= ring_space(ring)); | ||||
|     return av_fifo_write_from_cb(ring->fifo, wrapped_url_read, h, &size); | ||||
|     ret = av_fifo_write_from_cb(ring->fifo, wrapped_url_read, h, &size); | ||||
|     if (ret < 0) | ||||
|         return ret; | ||||
|  | ||||
|     return size; | ||||
| } | ||||
|  | ||||
| static int ring_size_of_read_back(RingBuffer *ring) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user