[FFmpeg-devel] [PATCH] Re-add OS/2 support

Dave Yeo daveryeo
Tue Sep 11 07:03:40 CEST 2007


Diego Biurrun wrote:
> On Sun, Sep 09, 2007 at 10:48:38AM -0700, Dave Yeo wrote:
>> Diego Biurrun wrote:
>> ...
>>> Patch in its current form is rejected.
>> Lets try a different approach. Attached is the patch that I've been using.
>> Pros
>> As long as the SDL dlls are fairly new we no longer need the MorphToPM 
>> stuff. Also need fairly new SDL and fslib for fullscreen to work.
> 
> Then we should just require new SDL stuff IMO.

Yes, I agree. Also KO Myung-Hun has an nice adaption of ffplay which 
instead of SDL uses native DART and DIVE. 
(http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=kmp&stype=all&sort=date&dir=%2Fpub%2Fos2%2Fapps%2Fmmedia%2Fvideo%2Fplayers)
Actually I am now having some minor problems with ffplay. Doesn't exit 
until I press q and full screen is screwed up. Quite likely my SDL 
install is broken, couple of sets of headers and import libs :)

> 
>> Cons
>> make test creates files in $TMP then can fail as it egreps /tmp
> 
> That is a separate issue, patches welcome.
> 
>> --- ffmpeg/configure	Sun Sep  9 00:01:48 2007
>> +++ ffmpeg.os2/configure	Sun Sep  9 08:55:20 2007
>> @@ -1196,6 +1199,26 @@
>>      targetos=irix
>>      ranlib="echo ignoring ranlib"
>>      ;;
>> +  os/2)
>> +    FFSERVERLDFLAGS=""
> 
> ffserver works?

It seems to, haven't particularly tested it much. The server regression 
test fails but it also says that ffserver is broken and the regression 
tests fail randomly. For OS/2 it is broken in the sense that it looks 
for its config files in /etc instead of $ETC, separate issue of course.
> 
>> +    LIBPREF=""
>> +    LIBSUF="_s.lib"
>> +    SLIBPREF=""
>> +    SLIBSUF=".dll"
>> +    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'

This just fixes the DLL name so instead of foo.dll.xx we get foo.xx.dll 
where xx is the major number. Thanks to the mingw porter for this.

>> +    SLIB_EXTRA_CMD="dllar -o \$(NAME)\$(SLIBSUF) \$(NAME)\$(LIBSUF) -d \"\$(SLIBNAME_WITH_MAJOR)\" -omf -ord \$(LDFLAGS) \$(EXTRALIBS) \$(EXTRAOBJS); cp -f \$(SLIBNAME) \$(SLIBNAME_WITH_MAJOR)"

This passes the static lib to dllar.cmd 
(http://svn.netlabs.org/libc/browser/branches/libc-0.6/src/misc/dllar.cmd), 
a REXX script distributed with GCC which basically extracts the imports 
from the static lib, creates a DEF file, links the object files and DEF 
files into a DLL and also creates the import libs in both a.out and OMF 
format. The -d is for the description in the DEF file and DLL and the 
-omf gives OMF support and -ord gives ordinals to help enforce 
versioning and a small speedup. We then copy the short named DLL over 
the long named DLL.
This is a bit wasteful as the build process builds a broken DLL then 
overwrites it but seemed simplest without making large changes in 
configure and the makefiles.

>> +    SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME:\$(SLIBSUF)=.lib) \$(SLIBNAME:\$(SLIBSUF)=.a)"

This just installs the import libs, both OMF and a.out format.
> 
> Maybe you can explain the tricks you are playing here...
> 
> Apart from that the patch looks OK to me.  Mans?
> 
> Diego

I also just realized that make install was slightly broken when built 
with --enable-shared. Updated patch included. (SLIB_INSTALL_EXTRA_CMD 
was missing target and added SLIBNAME_WITH_VERSION).
Dave
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg.diff
Type: text/x-patch
Size: 3259 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070910/6241d5e2/attachment.bin>



More information about the ffmpeg-devel mailing list