Mercurial > libavutil.hg
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); |