summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Shaposhnik <roman@shaposhnik.org>2003-11-04 19:35:43 +0000
committerRoman Shaposhnik <roman@shaposhnik.org>2003-11-04 19:35:43 +0000
commit19d053c5ba6c250ef8a9675bf803cb744085d2f1 (patch)
tree0ef52a1910e857e48c4d534f496a2c93e64cdab6
parentec62c38fd57d8276e235ca7d95d785850dc93bf8 (diff)
* fixes for broken builds on Solaris, OS2 and all bingendian
systems out there. Originally committed as revision 2480 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-xconfigure8
-rw-r--r--libavcodec/common.h16
-rw-r--r--libavcodec/dsputil.h6
-rw-r--r--libavformat/asf.c4
-rw-r--r--libavformat/avidec.c4
5 files changed, 21 insertions, 17 deletions
diff --git a/configure b/configure
index 3adcc35189..d70c81f629 100755
--- 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
-#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
diff --git a/libavcodec/common.h b/libavcodec/common.h
index a46a010aaa..f41edee4e6 100644
--- a/libavcodec/common.h
+++ b/libavcodec/common.h
@@ -82,6 +82,22 @@ extern const struct AVOption avoptions_workaround_bug[11];
# 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 */
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index 744182d628..0611f7cb78 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -502,10 +502,4 @@ static inline long int lrintf(float x)
}
#endif
-#if defined(CONFIG_OS2) || defined(CONFIG_SUNOS)
-static inline float floorf(float f) {
- return floor(f);
-}
-#endif
-
#endif
diff --git a/libavformat/asf.c b/libavformat/asf.c
index b069b1d086..06e2ebe855 100644
--- a/libavformat/asf.c
+++ b/libavformat/asf.c
@@ -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
- 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));
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index c135202720..b967e4d36e 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -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
- 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));