Browse code

10l trocadero: Indeo 5 decoder did not free custom VLCs for macroblock and block decoding at exit, so prevent that memory leak now.

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

Kostya Shishkov authored on 2010/02/23 16:41:29
Showing 2 changed files
... ...
@@ -860,6 +860,9 @@ static av_cold int decode_close(AVCodecContext *avctx)
860 860
 
861 861
     ff_ivi_free_buffers(&ctx->planes[0]);
862 862
 
863
+    if (ctx->mb_vlc_cust.table)
864
+        free_vlc(&ctx->mb_vlc_cust);
865
+
863 866
     if (ctx->frame.data[0])
864 867
         avctx->release_buffer(avctx, &ctx->frame);
865 868
 
... ...
@@ -208,6 +208,8 @@ void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes)
208 208
             av_freep(&planes[p].bands[b].bufs[1]);
209 209
             av_freep(&planes[p].bands[b].bufs[2]);
210 210
 
211
+            if (planes[p].bands[b].blk_vlc_cust.table)
212
+                free_vlc(&planes[p].bands[b].blk_vlc_cust);
211 213
             for (t = 0; t < planes[p].bands[b].num_tiles; t++)
212 214
                 av_freep(&planes[p].bands[b].tiles[t].mbs);
213 215
             av_freep(&planes[p].bands[b].tiles);