reducing sizeof MpegEncContext to avoid stack overflow on crap M$ windo$
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Sep 2002 07:26:43 +0000 (07:26 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Sep 2002 07:26:43 +0000 (07:26 +0000)
Originally committed as revision 914 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mpegvideo.c
libavcodec/mpegvideo.h

index 7a15b76..70eb782 100644 (file)
@@ -245,6 +245,9 @@ int MPV_common_init(MpegEncContext *s)
             CHECKED_ALLOCZ(   s->pb2_buffer, PB_BUFFER_SIZE);
         }
         
+        if(s->msmpeg4_version){
+            CHECKED_ALLOCZ(s->ac_stats, 2*2*(MAX_LEVEL+1)*(MAX_RUN+1)*2*sizeof(int));
+        }
         CHECKED_ALLOCZ(s->avctx->stats_out, 256);
     }
     
@@ -349,6 +352,7 @@ void MPV_common_end(MpegEncContext *s)
     av_freep(&s->edge_emu_buffer);
     av_freep(&s->non_b_mv4_table);
     av_freep(&s->avctx->stats_out);
+    av_freep(&s->ac_stats);
     
     for(i=0;i<3;i++) {
         int j;
index 00e6ebe..611671b 100644 (file)
@@ -415,7 +415,7 @@ typedef struct MpegEncContext {
     UINT8 *intra_v_scantable;
     UINT8 *intra_h_scantable;
     /* [mb_intra][isChroma][level][run][last] */
-    int ac_stats[2][2][MAX_LEVEL+1][MAX_RUN+1][2];
+    int (*ac_stats)[2][MAX_LEVEL+1][MAX_RUN+1][2];
     int inter_intra_pred;
 
     /* decompression specific */