diff --git a/libavcodec/libdirac_libschro.c b/libavcodec/libdirac_libschro.c index 0b134c42e5..416eb59804 100644 --- a/libavcodec/libdirac_libschro.c +++ b/libavcodec/libdirac_libschro.c @@ -70,6 +70,7 @@ unsigned int ff_dirac_schro_get_video_format_idx (AVCodecContext *avccontext) void ff_dirac_schro_queue_init (FfmpegDiracSchroQueue *queue) { queue->p_head = queue->p_tail = NULL; + queue->size = 0; } void ff_dirac_schro_queue_free (FfmpegDiracSchroQueue *queue, @@ -96,6 +97,7 @@ int ff_dirac_schro_queue_push_back (FfmpegDiracSchroQueue *queue, void *p_data) queue->p_tail->next = p_new; queue->p_tail = p_new; + ++queue->size; return 0; } @@ -106,6 +108,7 @@ void *ff_dirac_schro_queue_pop (FfmpegDiracSchroQueue *queue) if (top != NULL) { void *data = top->data; queue->p_head = queue->p_head->next; + --queue->size; av_freep (&top); return data; } diff --git a/libavcodec/libdirac_libschro.h b/libavcodec/libdirac_libschro.h index 35fe2b1a69..81a0fe4b3e 100644 --- a/libavcodec/libdirac_libschro.h +++ b/libavcodec/libdirac_libschro.h @@ -80,6 +80,8 @@ typedef struct FfmpegDiracSchroQueue FfmpegDiracSchroQueueElement *p_head; /** Pointer to tail of queue */ FfmpegDiracSchroQueueElement *p_tail; + /** Queue size*/ + int size; } FfmpegDiracSchroQueue; /**