You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avutil: Improved selftest coverage for libavutil/fifo.c
Tested functions: av_fifo_generic_peek(), av_fifo_grow() Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							d790e48830
						
					
				
				
					commit
					09d39177dc
				
			| @@ -17,14 +17,14 @@ | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
| #include "libavutil/fifo.h" | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
|     /* create a FIFO buffer */ | ||||
|     AVFifoBuffer *fifo = av_fifo_alloc(13 * sizeof(int)); | ||||
|     int i, j, n; | ||||
|     int i, j, n, *p; | ||||
|  | ||||
|     /* fill data */ | ||||
|     for (i = 0; av_fifo_space(fifo) >= sizeof(int); i++) | ||||
| @@ -46,6 +46,24 @@ int main(void) | ||||
|     } | ||||
|     printf("\n"); | ||||
|  | ||||
|     /* generic peek at FIFO */ | ||||
|  | ||||
|     n = av_fifo_size(fifo); | ||||
|     p = malloc(n); | ||||
|     if (p == NULL) { | ||||
|         fprintf(stderr, "failed to allocate memory.\n"); | ||||
|         exit(1); | ||||
|     } | ||||
|  | ||||
|     (void) av_fifo_generic_peek(fifo, p, n, NULL); | ||||
|  | ||||
|     /* read data at p */ | ||||
|     n /= sizeof(int); | ||||
|     for(i = 0; i < n; ++i) | ||||
|         printf("%d: %d\n", i, p[i]); | ||||
|  | ||||
|     putchar('\n'); | ||||
|  | ||||
|     /* read data */ | ||||
|     for (i = 0; av_fifo_size(fifo) >= sizeof(int); i++) { | ||||
|         av_fifo_generic_read(fifo, &j, sizeof(int), NULL); | ||||
| @@ -61,6 +79,22 @@ int main(void) | ||||
|     for (i = 0; av_fifo_space(fifo) >= sizeof(int); i++) | ||||
|         av_fifo_generic_write(fifo, &i, sizeof(int), NULL); | ||||
|  | ||||
|     /* peek_at at FIFO */ | ||||
|     n = av_fifo_size(fifo) / sizeof(int); | ||||
|     for (i = 0; i < n; i++) { | ||||
|         av_fifo_generic_peek_at(fifo, &j, i * sizeof(int), sizeof(j), NULL); | ||||
|         printf("%d: %d\n", i, j); | ||||
|     } | ||||
|     putchar('\n'); | ||||
|  | ||||
|     /* test fifo_grow */ | ||||
|     (void) av_fifo_grow(fifo, 15 * sizeof(int)); | ||||
|  | ||||
|     /* fill data */ | ||||
|     n = av_fifo_size(fifo) / sizeof(int); | ||||
|     for (i = n; av_fifo_space(fifo) >= sizeof(int); ++i) | ||||
|         av_fifo_generic_write(fifo, &i, sizeof(int), NULL); | ||||
|  | ||||
|     /* peek_at at FIFO */ | ||||
|     n = av_fifo_size(fifo) / sizeof(int); | ||||
|     for (i = 0; i < n; i++) { | ||||
| @@ -69,6 +103,7 @@ int main(void) | ||||
|     } | ||||
|  | ||||
|     av_fifo_free(fifo); | ||||
|     free(p); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -38,6 +38,20 @@ | ||||
| 11: 11 | ||||
| 12: 12 | ||||
|  | ||||
| 0: 0 | ||||
| 1: 1 | ||||
| 2: 2 | ||||
| 3: 3 | ||||
| 4: 4 | ||||
| 5: 5 | ||||
| 6: 6 | ||||
| 7: 7 | ||||
| 8: 8 | ||||
| 9: 9 | ||||
| 10: 10 | ||||
| 11: 11 | ||||
| 12: 12 | ||||
|  | ||||
| 0 1 2 3 4 5 6 7 8 9 10 11 12 | ||||
| 0: 0 | ||||
| 1: 1 | ||||
| @@ -52,3 +66,32 @@ | ||||
| 10: 10 | ||||
| 11: 11 | ||||
| 12: 12 | ||||
|  | ||||
| 0: 0 | ||||
| 1: 1 | ||||
| 2: 2 | ||||
| 3: 3 | ||||
| 4: 4 | ||||
| 5: 5 | ||||
| 6: 6 | ||||
| 7: 7 | ||||
| 8: 8 | ||||
| 9: 9 | ||||
| 10: 10 | ||||
| 11: 11 | ||||
| 12: 12 | ||||
| 13: 13 | ||||
| 14: 14 | ||||
| 15: 15 | ||||
| 16: 16 | ||||
| 17: 17 | ||||
| 18: 18 | ||||
| 19: 19 | ||||
| 20: 20 | ||||
| 21: 21 | ||||
| 22: 22 | ||||
| 23: 23 | ||||
| 24: 24 | ||||
| 25: 25 | ||||
| 26: 26 | ||||
| 27: 27 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user