[SCM] libav/experimental: 100l to loren. at least this fixes the compile error, but the code is still broken (decoding buggy/crashing)

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:47:24 UTC 2013


The following commit has been merged in the experimental branch:
commit c4e2a535b3a8b192c144acfaa9f1a7bc8b7f99f3
Author: D Richard Felker III <dalias at aerifal.cx>
Date:   Sun Apr 9 06:04:00 2006 +0000

    100l to loren. at least this fixes the compile error, but the code is still broken (decoding buggy/crashing)
    
    Originally committed as revision 5276 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index ccb2720..c1ae6b6 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -553,11 +553,10 @@ void ff_clean_mpeg4_qscales(MpegEncContext *s){
 
 #endif //CONFIG_ENCODERS
 
+#define tab_size (sizeof(s->direct_scale_mv[0])/sizeof(int16_t))
+#define tab_bias (tab_size/2)
+
 static void ff_mpeg4_init_direct_mv(MpegEncContext *s){
-    //FIXME table is stored in MpegEncContext for thread-safety,
-    // but a static array would be faster
-    static const int tab_size = sizeof(s->direct_scale_mv[0])/sizeof(int16_t);
-    static const int tab_bias = (tab_size/2);
     int i;
     for(i=0; i<tab_size; i++){
         s->direct_scale_mv[0][i] = (i-tab_bias)*s->pb_time/s->pp_time;
@@ -566,8 +565,6 @@ static void ff_mpeg4_init_direct_mv(MpegEncContext *s){
 }
 
 static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, int my, int i){
-    static const int tab_size = sizeof(s->direct_scale_mv[0])/sizeof(int16_t);
-    static const int tab_bias = (tab_size/2);
     int xy= s->block_index[i];
     uint16_t time_pp= s->pp_time;
     uint16_t time_pb= s->pb_time;
@@ -595,6 +592,9 @@ static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, int my,
     }
 }
 
+#undef tab_size
+#undef tab_bias
+
 /**
  *
  * @return the mb_type

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list