comparison fifo.c @ 688:91216685a7ae libavutil

Add av_fifo_reset function to completely reset fifo state, which makes it easier to reuse the fifo.
author reimar
date Mon, 09 Mar 2009 09:26:32 +0000
parents bc81990848aa
children 4e9e0c52ed08
comparison
equal deleted inserted replaced
687:bc81990848aa 688:91216685a7ae
25 AVFifoBuffer *av_fifo_alloc(unsigned int size) 25 AVFifoBuffer *av_fifo_alloc(unsigned int size)
26 { 26 {
27 AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer)); 27 AVFifoBuffer *f= av_mallocz(sizeof(AVFifoBuffer));
28 if(!f) 28 if(!f)
29 return NULL; 29 return NULL;
30 f->wptr = f->rptr =
31 f->buffer = av_malloc(size); 30 f->buffer = av_malloc(size);
32 f->end = f->buffer + size; 31 f->end = f->buffer + size;
32 av_fifo_reset(f);
33 if (!f->buffer) 33 if (!f->buffer)
34 av_freep(&f); 34 av_freep(&f);
35 return f; 35 return f;
36 } 36 }
37 37
39 { 39 {
40 if(f){ 40 if(f){
41 av_free(f->buffer); 41 av_free(f->buffer);
42 av_free(f); 42 av_free(f);
43 } 43 }
44 }
45
46 void av_fifo_reset(AVFifoBuffer *f)
47 {
48 f->wptr = f->rptr = f->buffer;
49 f->wndx = f->rndx = 0;
44 } 50 }
45 51
46 int av_fifo_size(AVFifoBuffer *f) 52 int av_fifo_size(AVFifoBuffer *f)
47 { 53 {
48 return (uint32_t)(f->wndx - f->rndx); 54 return (uint32_t)(f->wndx - f->rndx);