* fixes for broken builds on Solaris, OS2 and all bingendian
authorRoman Shaposhnik <roman@shaposhnik.org>
Tue, 4 Nov 2003 19:35:43 +0000 (19:35 +0000)
committerRoman Shaposhnik <roman@shaposhnik.org>
Tue, 4 Nov 2003 19:35:43 +0000 (19:35 +0000)
     systems out there.

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

configure
libavcodec/common.h
libavcodec/dsputil.h
libavformat/asf.c
libavformat/avidec.c

index 3adcc35..d70c81f 100755 (executable)
--- a/configure
+++ b/configure
@@ -970,13 +970,7 @@ if test "$bigendian" = "yes" ; then
   echo "#define WORDS_BIGENDIAN 1" >> $TMPH
 fi
 if test "$emu_fast_int" = "yes" ; then
   echo "#define WORDS_BIGENDIAN 1" >> $TMPH
 fi
 if test "$emu_fast_int" = "yes" ; then
-#note, we dont try to emulate fast64
-  echo "typedef signed char int_fast8_t;" >> $TMPH
-  echo "typedef signed int  int_fast16_t;" >> $TMPH
-  echo "typedef signed int  int_fast32_t;" >> $TMPH
-  echo "typedef unsigned char uint_fast8_t;" >> $TMPH
-  echo "typedef unsigned int  uint_fast16_t;" >> $TMPH
-  echo "typedef unsigned int  uint_fast32_t;" >> $TMPH
+  echo "#define EMULATE_FAST_INT 1" >> $TMPH
 fi
 if test "$mmx" = "yes" ; then
   echo "TARGET_MMX=yes" >> config.mak
 fi
 if test "$mmx" = "yes" ; then
   echo "TARGET_MMX=yes" >> config.mak
index a46a010..f41edee 100644 (file)
@@ -82,6 +82,22 @@ extern const struct AVOption avoptions_workaround_bug[11];
 #    define always_inline inline
 #endif
 
 #    define always_inline inline
 #endif
 
+#ifdef EMULATE_FAST_INT
+/* note that we don't emulate 64bit ints */
+typedef signed char int_fast8_t;
+typedef signed int  int_fast16_t;
+typedef signed int  int_fast32_t;
+typedef unsigned char uint_fast8_t;
+typedef unsigned int  uint_fast16_t;
+typedef unsigned int  uint_fast32_t;
+#endif
+
+#if defined(CONFIG_OS2) || defined(CONFIG_SUNOS)
+static inline float floorf(float f) { 
+    return floor(f); 
+}
+#endif
+
 #ifdef CONFIG_WIN32
 
 /* windows */
 #ifdef CONFIG_WIN32
 
 /* windows */
index 744182d..0611f7c 100644 (file)
@@ -502,10 +502,4 @@ static inline long int lrintf(float x)
 }
 #endif
 
 }
 #endif
 
-#if defined(CONFIG_OS2) || defined(CONFIG_SUNOS)
-static inline float floorf(float f) { 
-    return floor(f); 
-}
-#endif
-
 #endif
 #endif
index b069b1d..06e2ebe 100644 (file)
@@ -915,8 +915,8 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
         if (st->codec.extradata_size && (st->codec.bits_per_sample <= 8)) {
             st->codec.palctrl = av_mallocz(sizeof(AVPaletteControl));
 #ifdef WORDS_BIGENDIAN
         if (st->codec.extradata_size && (st->codec.bits_per_sample <= 8)) {
             st->codec.palctrl = av_mallocz(sizeof(AVPaletteControl));
 #ifdef WORDS_BIGENDIAN
-            for (i = 0; i < FFMIN(st->codec.extradata_size / 4, 256); i++)
-                st->codec.palctrl->palette[i] = bswap_32(st->codec.extradata)[i * 4]);
+            for (i = 0; i < FFMIN(st->codec.extradata_size, AVPALETTE_SIZE)/4; i++)
+                st->codec.palctrl->palette[i] = bswap_32(((uint32_t*)st->codec.extradata)[i]);
 #else
             memcpy(st->codec.palctrl->palette, st->codec.extradata,
                    FFMIN(st->codec.extradata_size, AVPALETTE_SIZE));
 #else
             memcpy(st->codec.palctrl->palette, st->codec.extradata,
                    FFMIN(st->codec.extradata_size, AVPALETTE_SIZE));
index c135202..b967e4d 100644 (file)
@@ -249,8 +249,8 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
                     if (st->codec.extradata_size && (st->codec.bits_per_sample <= 8)) {
                         st->codec.palctrl = av_mallocz(sizeof(AVPaletteControl));
 #ifdef WORDS_BIGENDIAN
                     if (st->codec.extradata_size && (st->codec.bits_per_sample <= 8)) {
                         st->codec.palctrl = av_mallocz(sizeof(AVPaletteControl));
 #ifdef WORDS_BIGENDIAN
-                        for (i = 0; i < FFMIN(st->codec.extradata_size / 4, 256); i++)
-                            st->codec.palctrl->palette[i] = bswap_32(st->codec.extradata)[i * 4]);
+                        for (i = 0; i < FFMIN(st->codec.extradata_size, AVPALETTE_SIZE)/4; i++)
+                            st->codec.palctrl->palette[i] = bswap_32(((uint32_t*)st->codec.extradata)[i]);
 #else
                         memcpy(st->codec.palctrl->palette, st->codec.extradata,
                                FFMIN(st->codec.extradata_size, AVPALETTE_SIZE));
 #else
                         memcpy(st->codec.palctrl->palette, st->codec.extradata,
                                FFMIN(st->codec.extradata_size, AVPALETTE_SIZE));