Take account of struct size in total packet queue size tracking.
authorAurelien Jacobs <aurel@gnuage.org>
Sat, 21 Feb 2009 16:01:52 +0000 (16:01 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Sat, 21 Feb 2009 16:01:52 +0000 (16:01 +0000)
fix issue806

Originally committed as revision 17476 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffplay.c

index 964408b..c3af259 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -282,7 +282,7 @@ static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
         q->last_pkt->next = pkt1;
     q->last_pkt = pkt1;
     q->nb_packets++;
-    q->size += pkt1->pkt.size;
+    q->size += pkt1->pkt.size + sizeof(*pkt1);
     /* XXX: should duplicate packet data in DV case */
     SDL_CondSignal(q->cond);
 
@@ -321,7 +321,7 @@ static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block)
             if (!q->first_pkt)
                 q->last_pkt = NULL;
             q->nb_packets--;
-            q->size -= pkt1->pkt.size;
+            q->size -= pkt1->pkt.size + sizeof(*pkt1);
             *pkt = pkt1->pkt;
             av_free(pkt1);
             ret = 1;