diff options
-rw-r--r-- | Makefile | 14 | ||||
-rwxr-xr-x | configure | 68 | ||||
-rw-r--r-- | ffmpeg.c | 17 | ||||
-rw-r--r-- | libavcodec/Makefile | 6 | ||||
-rw-r--r-- | libavcodec/common.h | 35 | ||||
-rw-r--r-- | libavformat/Makefile | 6 | ||||
-rw-r--r-- | libavformat/file.c | 2 | ||||
-rw-r--r-- | libavformat/img.c | 6 | ||||
-rw-r--r-- | libavformat/utils.c | 16 |
9 files changed, 129 insertions, 41 deletions
@@ -18,21 +18,26 @@ ifeq ($(CONFIG_WIN32),yes) EXE=.exe PROG=ffmpeg$(EXE) else -EXT= +ifeq ($(CONFIG_OS2),yes) +EXE=.exe +PROG=ffmpeg$(EXE) +else +EXE= PROG=ffmpeg ffplay ifeq ($(CONFIG_FFSERVER),yes) PROG+=ffserver endif endif +endif ifeq ($(CONFIG_AUDIO_BEOS),yes) EXTRALIBS+=-lmedia -lbe endif ifeq ($(BUILD_SHARED),yes) -DEP_LIBS=libavcodec/libavcodec.so libavformat/libavformat.a +DEP_LIBS=libavcodec/$(SLIBPREF)avcodec$(SLIBSUF) libavformat/$(LIBPREF)avformat$(LIBSUF) else -DEP_LIBS=libavcodec/libavcodec.a libavformat/libavformat.a +DEP_LIBS=libavcodec/$(LIBPREF)avcodec$(LIBSUF) libavformat/$(LIBPREF)avformat$(LIBSUF) ifeq ($(CONFIG_MP3LAME),yes) EXTRALIBS+=-lmp3lame endif @@ -61,7 +66,8 @@ ffmpeg_g$(EXE): ffmpeg.o $(DEP_LIBS) -lavformat -lavcodec $(EXTRALIBS) ffmpeg$(EXE): ffmpeg_g$(EXE) - cp -p $< $@ ; $(STRIP) $@ + cp -p $< $@ + $(STRIP) $@ ffserver$(EXE): ffserver.o $(DEP_LIBS) $(CC) $(LDFLAGS) $(FFSLDFLAGS) \ @@ -13,6 +13,7 @@ fi TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" +TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}" TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" @@ -61,6 +62,7 @@ a52bin="no" win32="no" mingw32="no" cygwin="no" +os2="no" lshared="no" extralibs="-lm" simpleidct="yes" @@ -75,6 +77,10 @@ need_inet_aton="no" ffserver="yes" LDFLAGS=-Wl,--warn-common FFSLDFLAGS=-Wl,-E +LIBPREF="lib" +LIBSUF=".a" +SLIBPREF="lib" +SLIBSUF=".so" # OS specific targetos=`uname -s` @@ -169,6 +175,25 @@ echo "Missing inttypes.h, please copy cygwin_inttypes.h to" \ Linux) LDFLAGS="$LDFLAGS -rdynamic" ;; +OS/2) +TMPE=$TMPE".exe" +ar="emxomfar -p32" +strip="echo ignore strip" +CFLAGS="-Zomf" +LDFLAGS="-Zomf -Zstack 16384" +SHFLAGS="" +FFSLDFLAGS="" +LIBPREF="" +LIBSUF=".lib" +SLIBPREF="" +SLIBSUF=".dll" +extralibs="" +v4l="no" +audio_oss="no" +network="no" +ffserver="no" +os2="yes" +;; *) ;; esac @@ -190,13 +215,13 @@ EOF ldl=-ldl -if $cc -o $TMPO $TMPC -ldl 2> /dev/null ; then +if $cc -o $TMPE $TMPC -ldl 2> /dev/null ; then vhook=yes dlfcn=yes dlopen=yes fi -if $cc -o $TMPO $TMPC 2> /dev/null ; then +if $cc -o $TMPE $TMPC 2> /dev/null ; then vhook=yes dlfcn=yes dlopen=yes @@ -207,12 +232,12 @@ cat > $TMPC << EOF int main( void ) { return (int) dlopen("foo", 0); } EOF -if $cc -o $TMPO $TMPC -ldl 2> /dev/null ; then +if $cc -o $TMPE $TMPC -ldl 2> /dev/null ; then vhook=yes dlopen=yes fi -if $cc -o $TMPO $TMPC 2> /dev/null ; then +if $cc -o $TMPE $TMPC 2> /dev/null ; then vhook=yes dlopen=yes ldl="" @@ -226,7 +251,7 @@ int main( void ) { return (int) imlib_load_font("foo"); } EOF imlib2=no -if $cc -o $TMPO $TMPC -lImlib2 2> /dev/null ; then +if $cc -o $TMPE $TMPC -lImlib2 2> /dev/null ; then imlib2=yes fi @@ -318,7 +343,7 @@ int main(void) { return 0; } EOF -$cc -o $TMPO $TMPC -faltivec 2> /dev/null || altivec="no" +$cc -o $TMPE $TMPC -faltivec 2> /dev/null || altivec="no" fi # Can only do mmi on mips @@ -338,7 +363,7 @@ int main(void) { return 0; } EOF -$cc -o $TMPO $TMPC 2> /dev/null || mmi="no" +$cc -o $TMPE $TMPC 2> /dev/null || mmi="no" fi # Checking for CFLAGS @@ -377,8 +402,8 @@ int main(int argc, char ** argv){ } EOF -if $cc -o $TMPO $TMPC 2>/dev/null ; then -$TMPO && bigendian="yes" +if $cc -o $TMPE $TMPC 2>/dev/null ; then +$TMPE && bigendian="yes" else echo big/little test failed fi @@ -402,7 +427,7 @@ EOF _memalign=no _malloc_h=no -if $cc -o $TMPO $TMPC 2> /dev/null ; then +if $cc -o $TMPE $TMPC 2> /dev/null ; then _malloc_h=yes _memalign=yes # check for memalign - atmos @@ -414,7 +439,7 @@ string = memalign(64, sizeof(char)); return 0; } EOF -$cc -o $TMPO $TMPC 2> /dev/null || _memalign=no +$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no fi cat > $TMPC << EOF @@ -424,7 +449,7 @@ int main( void ) { return *strptime("", "", 0); } EOF strptime=no -if $cc -o $TMPO $TMPC 2> /dev/null ; then +if $cc -o $TMPE $TMPC 2> /dev/null ; then strptime=yes fi @@ -439,8 +464,8 @@ if (zlibVersion() != ZLIB_VERSION) return 0; } EOF -$cc -o $TMPO $TMPC -lz 2> /dev/null || zlib="no" -# $TMPO 2> /dev/null > /dev/null || zlib="no" +$cc -o $TMPE $TMPC -lz 2> /dev/null || zlib="no" +# $TMPE 2> /dev/null > /dev/null || zlib="no" # XXX: more tests needed - runtime test fi if test "$zlib" = "yes"; then @@ -455,9 +480,9 @@ int main( void ) { return (lrintf(3.999f) > 0)?0:1; } EOF have_lrintf="no" -if $cc $extralibs -o $TMPO $TMPC 2> /dev/null ; then +if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then have_lrintf="yes" - $TMPO 2> /dev/null > /dev/null || have_lrintf="no" + $TMPE 2> /dev/null > /dev/null || have_lrintf="no" fi _restrict= @@ -577,6 +602,10 @@ echo "OPTFLAGS=$CFLAGS" >> config.mak echo "LDFLAGS=$LDFLAGS" >> config.mak echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak echo "SHFLAGS=$SHFLAGS" >> config.mak +echo "LIBPREF=$LIBPREF" >> config.mak +echo "LIBSUF=$LIBSUF" >> config.mak +echo "SLIBPREF=$SLIBPREF" >> config.mak +echo "SLIBSUF=$SLIBSUF" >> config.mak if test "$cpu" = "x86" ; then echo "TARGET_ARCH_X86=yes" >> config.mak echo "#define ARCH_X86 1" >> $TMPH @@ -728,6 +757,11 @@ if test "$cygwin" = "yes" ; then echo "CONFIG_WIN32=yes" >> config.mak fi +if test "$os2" = "yes" ; then + echo "#define CONFIG_OS2 1" >> $TMPH + echo "CONFIG_OS2=yes" >> config.mak +fi + if test "$darwin" = "yes"; then echo "#define CONFIG_DARWIN 1" >> $TMPH echo "CONFIG_DARWIN=yes" >> config.mak @@ -786,4 +820,4 @@ else echo "config.h is unchanged" fi -rm -f $TMPO $TMPC $TMPS $TMPH +rm -f $TMPO $TMPC $TMPE $TMPS $TMPH @@ -28,6 +28,11 @@ #include <termios.h> #include <sys/resource.h> #endif +#ifdef CONFIG_OS2 +#include <sys/types.h> +#include <sys/select.h> +#include <stdlib.h> +#endif #include <time.h> #include <ctype.h> @@ -2497,18 +2502,18 @@ void opt_pass(const char *pass_str) do_pass = pass; } -#ifndef CONFIG_WIN32 +#if defined(CONFIG_WIN32) || defined(CONFIG_OS2) INT64 getutime(void) { - struct rusage rusage; - - getrusage(RUSAGE_SELF, &rusage); - return (rusage.ru_utime.tv_sec * 1000000LL) + rusage.ru_utime.tv_usec; + return av_gettime(); } #else INT64 getutime(void) { - return av_gettime(); + struct rusage rusage; + + getrusage(RUSAGE_SELF, &rusage); + return (rusage.ru_utime.tv_sec * 1000000LL) + rusage.ru_utime.tv_usec; } #endif diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 8d0e8384ce..11e9603d92 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -91,9 +91,9 @@ endif SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) OBJS := $(OBJS) $(ASM_OBJS) -LIB= libavcodec.a +LIB= $(LIBPREF)avcodec$(LIBSUF) ifeq ($(BUILD_SHARED),yes) -SLIB= libavcodec.so +SLIB= $(SLIBPREF)avcodec$(SLIBSUF) endif TESTS= imgresample-test dct-test motion-test fft-test @@ -104,7 +104,9 @@ tests: apiexample cpuid_test $(TESTS) $(LIB): $(OBJS) rm -f $@ $(AR) rc $@ $(OBJS) +ifneq ($(CONFIG_OS2),yes) $(RANLIB) $@ +endif $(SLIB): $(OBJS) $(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) diff --git a/libavcodec/common.h b/libavcodec/common.h index b8cf9f6739..afa085bc2b 100644 --- a/libavcodec/common.h +++ b/libavcodec/common.h @@ -89,7 +89,38 @@ typedef INT64 int64_t; # define snprintf _snprintf -#else /* CONFIG_WIN32 */ +/* CONFIG_WIN32 end */ +#elif defined (CONFIG_OS2) +/* OS/2 EMX */ + +#include <inttypes.h> + +typedef unsigned char UINT8; +typedef unsigned short UINT16; +typedef unsigned int UINT32; +typedef unsigned long long UINT64; +typedef signed char INT8; +typedef signed short INT16; +typedef signed int INT32; +typedef signed long long INT64; + +#ifdef HAVE_AV_CONFIG_H + +#ifndef INT64_C +#define INT64_C(c) (c ## LL) +#define UINT64_C(c) (c ## ULL) +#endif + +#ifdef USE_FASTMEMCPY +#include "fastmemcpy.h" +#endif + +#include <float.h> + +#endif /* HAVE_AV_CONFIG_H */ + +/* CONFIG_OS2 end */ +#else /* unix */ @@ -119,7 +150,7 @@ typedef signed long long INT64; # endif # endif /* HAVE_AV_CONFIG_H */ -#endif /* !CONFIG_WIN32 */ +#endif /* !CONFIG_WIN32 && !CONFIG_OS2 */ #ifdef HAVE_AV_CONFIG_H diff --git a/libavformat/Makefile b/libavformat/Makefile index d688d7060d..9ff067c531 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -48,14 +48,16 @@ ifeq ($(CONFIG_VORBIS),yes) OBJS+= ogg.o endif -LIB= libavformat.a +LIB= $(LIBPREF)avformat$(LIBSUF) all: $(LIB) $(LIB): $(OBJS) rm -f $@ $(AR) rc $@ $(OBJS) +ifneq ($(CONFIG_OS2),yes) $(RANLIB) $@ +endif installlib: all install -m 644 $(LIB) $(prefix)/lib @@ -73,4 +75,4 @@ installlib: all g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $< clean: - rm -f *.o *~ *.a + rm -f *.o *~ *.a $(LIB) diff --git a/libavformat/file.c b/libavformat/file.c index 7390962864..a84823a378 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -42,7 +42,7 @@ static int file_open(URLContext *h, const char *filename, int flags) } else { access = O_RDONLY; } -#ifdef CONFIG_WIN32 +#if defined(CONFIG_WIN32) || defined(CONFIG_OS2) access |= O_BINARY; #endif fd = open(filename, access, 0666); diff --git a/libavformat/img.c b/libavformat/img.c index 139e0f48af..f5c45f2c63 100644 --- a/libavformat/img.c +++ b/libavformat/img.c @@ -26,9 +26,13 @@ #ifdef __BEOS__ # ifndef usleep # include <OS.h> -# define usleep(t) snooze((bigtime_t)(t)) +# define usleep(t) snooze((bigtime_t)(t)) # endif #endif +#if defined(CONFIG_OS2) +# include <stdlib.h> +# define usleep(t) _sleep2((t) / 1000) +#endif typedef struct { int width; diff --git a/libavformat/utils.c b/libavformat/utils.c index 0db740333a..f811b2c628 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -18,14 +18,18 @@ */ #include "avformat.h" #include <ctype.h> -#ifndef CONFIG_WIN32 -#include <unistd.h> -#include <fcntl.h> -#include <sys/time.h> -#else +#ifdef CONFIG_WIN32 #define strcasecmp _stricmp #include <sys/types.h> #include <sys/timeb.h> +#elif defined(CONFIG_OS2) +#include <string.h> +#define strcasecmp stricmp +#include <sys/time.h> +#else +#include <unistd.h> +#include <fcntl.h> +#include <sys/time.h> #endif #include <time.h> @@ -362,7 +366,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, } /* XXX: suppress this hack for redirectors */ -#ifndef __MINGW32__ +#ifdef CONFIG_NETWORK if (fmt == &redir_demux) { err = redir_open(ic_ptr, &ic->pb); url_fclose(&ic->pb); |