]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/fifo.c
Cosmetics: Fix comment.
[ffmpeg] / libavutil / fifo.c
index d10198972d4c5a95ed48192d57601ac9e1fe1ee8..3ebd5f9b202f15f330eb5b461fbcadd95292ccc5 100644 (file)
@@ -25,7 +25,7 @@
 AVFifoBuffer *av_fifo_alloc(unsigned int size)
 {
     AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer));
-    if(!f)
+    if (!f)
         return NULL;
     f->buffer = av_malloc(size);
     f->end = f->buffer + size;
@@ -37,7 +37,7 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size)
 
 void av_fifo_free(AVFifoBuffer *f)
 {
-    if(f){
+    if (f) {
         av_freep(&f->buffer);
         av_free(f);
     }
@@ -59,20 +59,21 @@ int av_fifo_space(AVFifoBuffer *f)
     return f->end - f->buffer - av_fifo_size(f);
 }
 
-int av_fifo_realloc2(AVFifoBuffer *f, unsigned int new_size) {
-    unsigned int old_size= f->end - f->buffer;
+int av_fifo_realloc2(AVFifoBuffer *f, unsigned int new_size)
+{
+    unsigned int old_size = f->end - f->buffer;
 
-    if(old_size < new_size){
-        int len= av_fifo_size(f);
-        AVFifoBuffer *f2= av_fifo_alloc(new_size);
+    if (old_size < new_size) {
+        int len = av_fifo_size(f);
+        AVFifoBuffer *f2 = av_fifo_alloc(new_size);
 
         if (!f2)
-            return -1;
+            return AVERROR(ENOMEM);
         av_fifo_generic_read(f, f2->buffer, len, NULL);
         f2->wptr += len;
         f2->wndx += len;
         av_free(f->buffer);
-        *f= *f2;
+        *f = *f2;
         av_free(f2);
     }
     return 0;
@@ -84,8 +85,8 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void
     int total = size;
     do {
         int len = FFMIN(f->end - f->wptr, size);
-        if(func) {
-            if(func(src, f->wptr, len) <= 0)
+        if (func) {
+            if (func(src, f->wptr, len) <= 0)
                 break;
         } else {
             memcpy(f->wptr, src, len);
@@ -127,3 +128,39 @@ void av_fifo_drain(AVFifoBuffer *f, int size)
         f->rptr -= f->end - f->buffer;
     f->rndx += size;
 }
+
+#ifdef TEST
+
+#undef printf
+
+int main(void)
+{
+    /* create a FIFO buffer */
+    AVFifoBuffer *fifo = av_fifo_alloc(13 * sizeof(int));
+    int i, j, n;
+
+    /* fill data */
+    for (i = 0; av_fifo_space(fifo) >= sizeof(int); i++)
+        av_fifo_generic_write(fifo, &i, sizeof(int), NULL);
+
+    /* peek at FIFO */
+    n = av_fifo_size(fifo)/sizeof(int);
+    for (i = -n+1; i < n; i++) {
+        int *v = (int *)av_fifo_peek2(fifo, i*sizeof(int));
+        printf("%d: %d\n", i, *v);
+    }
+    printf("\n");
+
+    /* read data */
+    for (i = 0; av_fifo_size(fifo) >= sizeof(int); i++) {
+        av_fifo_generic_read(fifo, &j, sizeof(int), NULL);
+        printf("%d ", j);
+    }
+    printf("\n");
+
+    av_fifo_free(fifo);
+
+    return 0;
+}
+
+#endif