]> git.sesse.net Git - vlc/commitdiff
Avcodec: Correctly free the Subtitles structures so it doesn't crash on Win32
authorJean-Baptiste Kempf <jb@videolan.org>
Sat, 1 May 2010 21:29:45 +0000 (23:29 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Sat, 1 May 2010 21:31:35 +0000 (23:31 +0200)
Close #3439

modules/codec/avcodec/subtitle.c

index 4a5e2ccc77aa10d6df2347f834562b67292fc0d1..8b474481e5253e0b3a854f645c602e9716323d44 100644 (file)
@@ -262,7 +262,7 @@ static subpicture_t *ConvertSubtitle(decoder_t *dec, AVSubtitle *ffsub, mtime_t
         //msg_Err(dec, "SUBS RECT[%d]: %dx%d @%dx%d",
         //         i, rec->w, rec->h, rec->x, rec->y);
 
-        subpicture_region_t *region;
+        subpicture_region_t *region = NULL;
         switch (ffsub->format) {
         case 0:
             region = ConvertRegionRGBA(rec);
@@ -276,13 +276,11 @@ static subpicture_t *ConvertSubtitle(decoder_t *dec, AVSubtitle *ffsub, mtime_t
             *region_next = region;
             region_next = &region->p_next;
         }
-        /* Free AVSubtitleRect
-         * FIXME isn't there an avcodec function ? */
-        free(rec->pict.data[0]); /* Plane */
-        free(rec->pict.data[1]); /* Palette */
-        free(rec);
+        /* Free AVSubtitleRect */
+        avpicture_free(&rec->pict);
+        av_free(rec);
     }
-    free(ffsub->rects);
+    av_free(ffsub->rects);
 
     return spu;
 }