@ -25,6 +25,7 @@
# define AVUTIL_FIFO_H
# include <stdint.h>
# include "avutil.h"
typedef struct AVFifoBuffer {
uint8_t * buffer ;
@ -106,11 +107,35 @@ int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
*/
void av_fifo_drain ( AVFifoBuffer * f , int size ) ;
static inline uint8_t av_fifo_peek ( AVFifoBuffer * f , int offs )
/**
* Return a pointer to the data stored in a FIFO buffer at a certain offset .
* The FIFO buffer is not modified .
*
* @ param * f AVFifoBuffer to peek at , f must be non - NULL
* @ param offs an offset in bytes , its absolute value must be less
* than the used buffer size or the returned pointer will
* point outside to the buffer data .
* The used buffer size can be checked with av_fifo_size ( ) .
*/
static inline uint8_t * av_fifo_peek2 ( const AVFifoBuffer * f , int offs )
{
uint8_t * ptr = f - > rptr + offs ;
if ( ptr > = f - > end )
ptr - = f - > end - f - > buffer ;
return * ptr ;
ptr = f - > buffer + ( ptr - f - > end ) ;
else if ( ptr < f - > buffer )
ptr = f - > end - ( f - > buffer - ptr ) ;
return ptr ;
}
# if FF_API_AV_FIFO_PEEK
/**
* @ deprecated Use av_fifo_peek2 ( ) instead .
*/
attribute_deprecated
static inline uint8_t av_fifo_peek ( AVFifoBuffer * f , int offs )
{
return * av_fifo_peek2 ( f , offs ) ;
}
# endif
# endif /* AVUTIL_FIFO_H */