vfwcap: Free remaining packets on vfw_read_close().
authorRamiro Polla <ramiro.polla@gmail.com>
Wed, 17 Mar 2010 04:36:06 +0000 (04:36 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Wed, 17 Mar 2010 04:36:06 +0000 (04:36 +0000)
Originally committed as revision 22575 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavdevice/vfwcap.c

index 92e5925..9f242f8 100644 (file)
@@ -210,6 +210,7 @@ fail:
 static int vfw_read_close(AVFormatContext *s)
 {
     struct vfw_ctx *ctx = s->priv_data;
+    AVPacketList *pktl;
 
     if(ctx->hwnd) {
         SendMessage(ctx->hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
@@ -221,6 +222,14 @@ static int vfw_read_close(AVFormatContext *s)
     if(ctx->event)
         CloseHandle(ctx->event);
 
+    pktl = ctx->pktl;
+    while (pktl) {
+        AVPacketList *next = pktl->next;
+        av_destruct_packet(&pktl->pkt);
+        av_free(pktl);
+        pktl = next;
+    }
+
     return 0;
 }