FFmpeg: Difference between revisions
Added section Getting FFmpeg |
|||
Line 11: | Line 11: | ||
=== Patching FFmpeg === | === Patching FFmpeg === | ||
As FFmpeg does not officially support OS/2 at this time you need to apply this patch | |||
Index: configure | |||
================================================================= | |||
--- configure (revision 11093) | |||
+++ configure (working copy) | |||
@@ -71,6 +71,7 @@ | |||
echo " --enable-pp enable GPLed postprocessing support [default=no]" | |||
echo " --enable-swscaler software scaler support [default=no]" | |||
echo " --enable-beosthreads use BeOS threads [default=no]" | |||
+ echo " --enable-os2threads use OS/2 threads [default=no]" | |||
echo " --enable-pthreads use pthreads [default=no]" | |||
echo " --enable-w32threads use Win32 threads [default=no]" | |||
echo " --enable-x11grab enable X11 grabbing [default=no]" | |||
@@ -637,6 +638,7 @@ | |||
THREADS_LIST=' | |||
beosthreads | |||
+ os2threads | |||
pthreads | |||
w32threads | |||
' | |||
@@ -1217,6 +1219,35 @@ | |||
targetos=irix | |||
ranlib="echo ignoring ranlib" | |||
;; | |||
+ os/2*) | |||
+ ar="emxomfar -p256" | |||
+ ranlib="echo ignoring ranlib" | |||
+ strip="lxlite" | |||
+ ln_s="cp -f" | |||
+ add_cflags "-Zomf" | |||
+ DESCRIPTION="'\"\$(SLIBNAME_WITH_VERSION)\"'" | |||
+ EXESUF=".exe" | |||
+ FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap" | |||
+ SHFLAGS='$(FULLNAME).def -Zdll -Zomf' | |||
+ FFSERVERLDFLAGS="" | |||
+ LIBSUF="_s.lib" | |||
+ SLIBPREF="" | |||
+ SLIBSUF=".dll" | |||
+ SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' | |||
+ SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' | |||
+ SLIB_CREATE_DEF_CMD='echo LIBRARY $(FULLNAME) INITINSTANCE TERMINSTANCE > $(FULLNAME).def; \ | |||
+ echo DESCRIPTION $(DESCRIPTION) >> $(FULLNAME).def; \ | |||
+ echo PROTMODE >> $(FULLNAME).def; \ | |||
+ echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(FULLNAME).def; \ | |||
+ echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(FULLNAME).def; \ | |||
+ echo EXPORTS >> $(FULLNAME).def; \ | |||
+ emxexp -o $(OBJS) >> $(FULLNAME).def' | |||
+ SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(FULLNAME)_dll.a $(FULLNAME).def; emximp -o $(LIBPREF)$(FULLNAME)_dll.lib $(FULLNAME).def' | |||
+ SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(FULLNAME)_dll.lib $(LIBPREF)$(FULLNAME)_dll.a "$(LIBDIR)"' | |||
+ SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(FULLNAME)_dll.lib;rm -f "$(LIBDIR)"/$(LIBPREF)$(FULLNAME)_dll.a' | |||
+ vhook="no" | |||
+ ;; | |||
+ | |||
*) | |||
targetos="${targetos}-UNKNOWN" | |||
;; | |||
@@ -1917,6 +1948,7 @@ | |||
if enabled shared; then | |||
echo "BUILD_SHARED=yes" >> config.mak | |||
+ echo "DESCRIPTION=${DESCRIPTION}" >> config.mak | |||
echo "PIC=-fPIC -DPIC" >> config.mak | |||
echo "SPPMAJOR=${pp_version%%.*}" >> config.mak | |||
echo "SPPVERSION=$pp_version" >> config.mak | |||
@@ -1933,6 +1965,7 @@ | |||
echo "SLIBNAME=${SLIBNAME}" >> config.mak | |||
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak | |||
echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak | |||
+ echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak | |||
echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak | |||
echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak | |||
echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak | |||
Index: common.mak | |||
================================================================== | |||
--- common.mak (revision 11093) | |||
+++ common.mak (working copy) | |||
@@ -28,6 +28,7 @@ | |||
$(LN_S) $^ $@ | |||
$(SLIBNAME_WITH_MAJOR): $(OBJS) | |||
+ $(SLIB_CREATE_DEF_CMD) | |||
$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS) | |||
$(SLIB_EXTRA_CMD) | |||
@@ -51,7 +52,7 @@ | |||
clean:: | |||
rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ | |||
- *.def *.dll.a *.exp *.ho | |||
+ *.def *.dll.a *.exp *.ho *.map | |||
distclean: clean | |||
rm -f .depend | |||
Copy and paste the above patch into a file called os2.patch and in the ffmpeg directory enter the command | |||
patch -p0 < os2.patch. | |||
'''Warning''' | |||
Make sure that you have gnu patch in your path ahead of the OS/2 patch.exe in x:\os2. | |||
There is a version of gnu patch available at http://hobbes.nmsu.edu/pub/os2/dev/util/gnupatch.zip | |||
=== Hints on Setting the Enviroment === | === Hints on Setting the Enviroment === |
Revision as of 01:43, 29 November 2007
Getting FFmpeg
The best way to get FFmpeg sources is with SVN. Paul Smedley has built a SVN client available at http://download.smedley.info/subversion-1.4.4-os2.zip. Entering this command
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
will create a directory called ffmpeg below where you entered the command and download the source. To update the source you can enter
svn update
in the ffmpeg directory. Further information including a web interface to the source and links to daily snapshots are available at http://ffmpeg.mplayerhq.hu/download.html
Patching FFmpeg
As FFmpeg does not officially support OS/2 at this time you need to apply this patch
Index: configure ================================================================= --- configure (revision 11093) +++ configure (working copy) @@ -71,6 +71,7 @@ echo " --enable-pp enable GPLed postprocessing support [default=no]" echo " --enable-swscaler software scaler support [default=no]" echo " --enable-beosthreads use BeOS threads [default=no]" + echo " --enable-os2threads use OS/2 threads [default=no]" echo " --enable-pthreads use pthreads [default=no]" echo " --enable-w32threads use Win32 threads [default=no]" echo " --enable-x11grab enable X11 grabbing [default=no]" @@ -637,6 +638,7 @@ THREADS_LIST=' beosthreads + os2threads pthreads w32threads ' @@ -1217,6 +1219,35 @@ targetos=irix ranlib="echo ignoring ranlib" ;; + os/2*) + ar="emxomfar -p256" + ranlib="echo ignoring ranlib" + strip="lxlite" + ln_s="cp -f" + add_cflags "-Zomf" + DESCRIPTION="'\"\$(SLIBNAME_WITH_VERSION)\"'" + EXESUF=".exe" + FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap" + SHFLAGS='$(FULLNAME).def -Zdll -Zomf' + FFSERVERLDFLAGS="" + LIBSUF="_s.lib" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIB_CREATE_DEF_CMD='echo LIBRARY $(FULLNAME) INITINSTANCE TERMINSTANCE > $(FULLNAME).def; \ + echo DESCRIPTION $(DESCRIPTION) >> $(FULLNAME).def; \ + echo PROTMODE >> $(FULLNAME).def; \ + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(FULLNAME).def; \ + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(FULLNAME).def; \ + echo EXPORTS >> $(FULLNAME).def; \ + emxexp -o $(OBJS) >> $(FULLNAME).def' + SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(FULLNAME)_dll.a $(FULLNAME).def; emximp -o $(LIBPREF)$(FULLNAME)_dll.lib $(FULLNAME).def' + SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(FULLNAME)_dll.lib $(LIBPREF)$(FULLNAME)_dll.a "$(LIBDIR)"' + SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(FULLNAME)_dll.lib;rm -f "$(LIBDIR)"/$(LIBPREF)$(FULLNAME)_dll.a' + vhook="no" + ;; + *) targetos="${targetos}-UNKNOWN" ;; @@ -1917,6 +1948,7 @@ if enabled shared; then echo "BUILD_SHARED=yes" >> config.mak + echo "DESCRIPTION=${DESCRIPTION}" >> config.mak echo "PIC=-fPIC -DPIC" >> config.mak echo "SPPMAJOR=${pp_version%%.*}" >> config.mak echo "SPPVERSION=$pp_version" >> config.mak @@ -1933,6 +1965,7 @@ echo "SLIBNAME=${SLIBNAME}" >> config.mak echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak + echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak Index: common.mak ================================================================== --- common.mak (revision 11093) +++ common.mak (working copy) @@ -28,6 +28,7 @@ $(LN_S) $^ $@ $(SLIBNAME_WITH_MAJOR): $(OBJS) + $(SLIB_CREATE_DEF_CMD) $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS) $(SLIB_EXTRA_CMD) @@ -51,7 +52,7 @@ clean:: rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ - *.def *.dll.a *.exp *.ho + *.def *.dll.a *.exp *.ho *.map distclean: clean rm -f .depend
Copy and paste the above patch into a file called os2.patch and in the ffmpeg directory enter the command
patch -p0 < os2.patch.
Warning Make sure that you have gnu patch in your path ahead of the OS/2 patch.exe in x:\os2. There is a version of gnu patch available at http://hobbes.nmsu.edu/pub/os2/dev/util/gnupatch.zip