Commit 40af0c8a authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

programs: Move icinfo out of avitools.

parent 1aca5386
......@@ -19172,7 +19172,7 @@ MAKE_LIB_RULES=libs/Makelib.rules
MAKE_PROG_RULES=programs/Makeprog.rules
ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d32/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/hhctrl.ocx/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lz32/Makefile dlls/lz32/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/tests/Makefile dlls/msacm/winemp3/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/msftedit/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvfw32/Makefile dlls/msvidc32/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli32/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr32/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20/Makefile dlls/riched20/tests/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/sfc/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/usp10/Makefile dlls/usp10/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/w32skrnl/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls32/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wnaspi32/Makefile dlls/wow32/Makefile dlls/ws2_32/Makefile dlls/ws2_32/tests/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile dlls/x11drv/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile programs/wordpad/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile"
ac_config_files="$ac_config_files Make.rules dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/activeds/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/advpack/tests/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/cabinet/tests/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/crypt32/tests/Makefile dlls/cryptdll/Makefile dlls/ctl3d32/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3d9/tests/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput/tests/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/hhctrl.ocx/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lz32/Makefile dlls/lz32/tests/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mciavi32/Makefile dlls/mcicda/Makefile dlls/mciseq/Makefile dlls/midimap/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/tests/Makefile dlls/msacm/winemp3/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/msftedit/Makefile dlls/mshtml/Makefile dlls/mshtml/tests/Makefile dlls/msi/Makefile dlls/msi/tests/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvfw32/Makefile dlls/msvidc32/Makefile dlls/mswsock/Makefile dlls/msxml3/Makefile dlls/msxml3/tests/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/objsel/Makefile dlls/odbc32/Makefile dlls/odbccp32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli32/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr32/Makefile dlls/opengl32/Makefile dlls/powrprof/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/riched20/Makefile dlls/riched20/tests/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/rsaenh/Makefile dlls/rsaenh/tests/Makefile dlls/secur32/Makefile dlls/secur32/tests/Makefile dlls/security/Makefile dlls/sensapi/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/setupapi/tests/Makefile dlls/sfc/Makefile dlls/shdocvw/Makefile dlls/shdocvw/tests/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/stdole2.tlb/Makefile dlls/stdole32.tlb/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/usp10/Makefile dlls/usp10/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/w32skrnl/Makefile dlls/winecrt0/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/wineesd/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls32/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wldap32/Makefile dlls/wnaspi32/Makefile dlls/wow32/Makefile dlls/ws2_32/Makefile dlls/ws2_32/tests/Makefile dlls/wsock32/Makefile dlls/wtsapi32/Makefile dlls/x11drv/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/eject/Makefile programs/expand/Makefile programs/explorer/Makefile programs/hh/Makefile programs/icinfo/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile programs/wordpad/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile"
cat >confcache <<\_ACEOF
......@@ -19943,7 +19943,6 @@ do
"libs/wpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES libs/wpp/Makefile" ;;
"loader/Makefile" ) CONFIG_FILES="$CONFIG_FILES loader/Makefile" ;;
"programs/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/Makefile" ;;
"programs/avitools/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/avitools/Makefile" ;;
"programs/clock/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/clock/Makefile" ;;
"programs/cmdlgtst/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/cmdlgtst/Makefile" ;;
"programs/control/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/control/Makefile" ;;
......@@ -19951,6 +19950,7 @@ do
"programs/expand/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/expand/Makefile" ;;
"programs/explorer/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/explorer/Makefile" ;;
"programs/hh/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/hh/Makefile" ;;
"programs/icinfo/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/icinfo/Makefile" ;;
"programs/msiexec/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/msiexec/Makefile" ;;
"programs/notepad/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/notepad/Makefile" ;;
"programs/progman/Makefile" ) CONFIG_FILES="$CONFIG_FILES programs/progman/Makefile" ;;
......
......@@ -1682,7 +1682,6 @@ libs/wine/Makefile
libs/wpp/Makefile
loader/Makefile
programs/Makefile
programs/avitools/Makefile
programs/clock/Makefile
programs/cmdlgtst/Makefile
programs/control/Makefile
......@@ -1690,6 +1689,7 @@ programs/eject/Makefile
programs/expand/Makefile
programs/explorer/Makefile
programs/hh/Makefile
programs/icinfo/Makefile
programs/msiexec/Makefile
programs/notepad/Makefile
programs/progman/Makefile
......
......@@ -6,7 +6,6 @@ SRCDIR = @srcdir@
VPATH = @srcdir@
SUBDIRS = \
avitools \
clock \
cmdlgtst \
control \
......@@ -14,6 +13,7 @@ SUBDIRS = \
expand \
explorer \
hh \
icinfo \
msiexec \
notepad \
progman \
......@@ -43,13 +43,13 @@ SUBDIRS = \
# Sub-directories to run make install into
INSTALLSUBDIRS = \
avitools \
clock \
control \
eject \
expand \
explorer \
hh \
icinfo \
msiexec \
notepad \
progman \
......
DLLDEFS = @DLLDEFS@
DLLFLAGS = @DLLFLAGS@
DEFS = $(DLLDEFS) $(EXTRADEFS)
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = none
PROGRAMS = aviinfo.exe aviplay.exe icinfo.exe
ALL_LIBS = $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(LIBS)
C_SRCS = \
aviinfo.c \
aviplay.c \
icinfo.c
@MAKE_RULES@
all: aviinfo.exe$(DLLEXT) aviplay.exe$(DLLEXT) icinfo.exe$(DLLEXT) aviinfo$(EXEEXT) aviplay$(EXEEXT) icinfo$(EXEEXT)
aviinfo.exe.so: aviinfo.o
$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -mwindows -o $@ aviinfo.o -L$(DLLDIR) -lavifil32 -lkernel32 $(ALL_LIBS)
aviplay.exe.so: aviplay.o
$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -mwindows -o $@ aviplay.o -L$(DLLDIR) -lavifil32 -lddraw -lkernel32 $(ALL_LIBS)
icinfo.exe.so: icinfo.o
$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -mwindows -o $@ icinfo.o -L$(DLLDIR) -lmsvfw32 -lkernel32 $(ALL_LIBS)
aviinfo.exe: aviinfo.o
$(CC) -o $@ aviinfo.o -lavifil32 $(ALL_LIBS)
aviplay.exe: aviplay.o
$(CC) -o $@ aviplay.o -lavifil32 -lddraw $(ALL_LIBS)
icinfo.exe: icinfo.o
$(CC) -o $@ icinfo.o -lmsvfw32 $(ALL_LIBS)
$(PROGRAMS:.exe=): $(WINEWRAPPER)
$(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
# Rules for installation
.PHONY: install_prog install_prog.so uninstall_prog uninstall_prog.so
install_prog.so: $(PROGRAMS:%=%.so)
$(MKINSTALLDIRS) $(DESTDIR)$(dlldir)
$(INSTALL_PROGRAM) aviinfo.exe.so $(DESTDIR)$(dlldir)/aviinfo.exe.so
$(INSTALL_PROGRAM) aviplay.exe.so $(DESTDIR)$(dlldir)/aviplay.exe.so
$(INSTALL_PROGRAM) icinfo.exe.so $(DESTDIR)$(dlldir)/icinfo.exe.so
install_prog: $(PROGRAMS)
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL_PROGRAM) aviinfo.exe $(DESTDIR)$(bindir)/aviinfo.exe
$(INSTALL_PROGRAM) aviplay.exe $(DESTDIR)$(bindir)/aviplay.exe
$(INSTALL_PROGRAM) icinfo.exe $(DESTDIR)$(bindir)/icinfo.exe
uninstall_prog.so:
$(RM) $(DESTDIR)$(dlldir)/aviinfo.exe.so $(DESTDIR)$(dlldir)/aviplay.exe.so $(DESTDIR)$(dlldir)/icinfo.exe.so
uninstall_prog:
$(RM) $(DESTDIR)$(bindir)/aviinfo.exe $(DESTDIR)$(bindir)/aviplay.exe $(DESTDIR)$(bindir)/icinfo.exe
install:: install_prog$(DLLEXT)
uninstall:: uninstall_prog$(DLLEXT)
clean::
$(RM) $(PROGRAMS:.exe=)
### Dependencies:
/*
* Copyright 1999 Marcus Meissner
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include "windef.h"
#include "windows.h"
#include "mmsystem.h"
#include "vfw.h"
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
{
unsigned int n;
HRESULT hres;
PAVIFILE avif;
PAVISTREAM vids,auds;
AVIFILEINFO afi;
AVISTREAMINFO asi;
AVIFileInit();
if (GetFileAttributes(cmdline) == INVALID_FILE_ATTRIBUTES) {
fprintf(stderr,"Usage: aviinfo <avifilename>\n");
exit(1);
}
hres = AVIFileOpen(&avif,cmdline,OF_READ,NULL);
if (hres) {
fprintf(stderr,"AVIFileOpen: 0x%08lx\n",hres);
exit(1);
}
hres = AVIFileInfo(avif,&afi,sizeof(afi));
if (hres) {
fprintf(stderr,"AVIFileInfo: 0x%08lx\n",hres);
exit(1);
}
fprintf(stderr,"AVI File Info:\n");
fprintf(stderr,"\tdwMaxBytesPerSec: %ld\n",afi.dwMaxBytesPerSec);
#define FF(x) if (afi.dwFlags & AVIFILEINFO_##x) fprintf(stderr,#x",");
fprintf(stderr,"\tdwFlags: 0x%lx (",afi.dwFlags);
FF(HASINDEX);FF(MUSTUSEINDEX);FF(ISINTERLEAVED);FF(WASCAPTUREFILE);
FF(COPYRIGHTED);
fprintf(stderr,")\n");
#undef FF
#define FF(x) if (afi.dwCaps & AVIFILECAPS_##x) fprintf(stderr,#x",");
fprintf(stderr,"\tdwCaps: 0x%lx (",afi.dwCaps);
FF(CANREAD);FF(CANWRITE);FF(ALLKEYFRAMES);FF(NOCOMPRESSION);
fprintf(stderr,")\n");
#undef FF
fprintf(stderr,"\tdwStreams: %ld\n",afi.dwStreams);
fprintf(stderr,"\tdwSuggestedBufferSize: %ld\n",afi.dwSuggestedBufferSize);
fprintf(stderr,"\tdwWidth: %ld\n",afi.dwWidth);
fprintf(stderr,"\tdwHeight: %ld\n",afi.dwHeight);
fprintf(stderr,"\tdwScale: %ld\n",afi.dwScale);
fprintf(stderr,"\tdwRate: %ld\n",afi.dwRate);
fprintf(stderr,"\tdwLength: %ld\n",afi.dwLength);
fprintf(stderr,"\tdwEditCount: %ld\n",afi.dwEditCount);
fprintf(stderr,"\tszFileType: %s\n",afi.szFileType);
for (n = 0;n<afi.dwStreams;n++) {
char buf[5];
PAVISTREAM ast;
hres = AVIFileGetStream(avif,&ast,0,n);
if (hres) {
fprintf(stderr,"AVIFileGetStream %d: 0x%08lx\n",n,hres);
exit(1);
}
hres = AVIStreamInfo(ast,&asi,sizeof(asi));
if (hres) {
fprintf(stderr,"AVIStreamInfo %d: 0x%08lx\n",n,hres);
exit(1);
}
fprintf(stderr,"Stream %d:\n",n);
buf[4]='\0';memcpy(buf,&(asi.fccType),4);
fprintf(stderr,"\tfccType: %s\n",buf);
memcpy(buf,&(asi.fccHandler),4);
fprintf(stderr,"\tfccHandler: %s\n",buf);
fprintf(stderr,"\tdwFlags: 0x%08lx\n",asi.dwFlags);
fprintf(stderr,"\tdwCaps: 0x%08lx\n",asi.dwCaps);
fprintf(stderr,"\twPriority: %d\n",asi.wPriority);
fprintf(stderr,"\twLanguage: %d\n",asi.wLanguage);
fprintf(stderr,"\tdwScale: %ld\n",asi.dwScale);
fprintf(stderr,"\tdwRate: %ld\n",asi.dwRate);
fprintf(stderr,"\tdwStart: %ld\n",asi.dwStart);
fprintf(stderr,"\tdwLength: %ld\n",asi.dwLength);
fprintf(stderr,"\tdwInitialFrames: %ld\n",asi.dwInitialFrames);
fprintf(stderr,"\tdwSuggestedBufferSize: %ld\n",asi.dwSuggestedBufferSize);
fprintf(stderr,"\tdwQuality: %ld\n",asi.dwQuality);
fprintf(stderr,"\tdwSampleSize: %ld\n",asi.dwSampleSize);
fprintf(stderr,"\tdwEditCount: %ld\n",asi.dwEditCount);
fprintf(stderr,"\tdwFormatChangeCount: %ld\n",asi.dwFormatChangeCount);
fprintf(stderr,"\tszName: %s\n",asi.szName);
switch (asi.fccType) {
case streamtypeVIDEO:
vids = ast;
break;
case streamtypeAUDIO:
auds = ast;
break;
default: {
char type[5];
type[4]='\0';memcpy(type,&(asi.fccType),4);
fprintf(stderr,"Unhandled streamtype %s\n",type);
break;
}
}
AVIStreamRelease(ast);
}
AVIFileRelease(avif);
AVIFileExit();
return 0;
}
/*
* Very simple AVIPLAYER
*
* Copyright 1999 Marcus Meissner
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Status:
* - plays .avi streams, video only
* - requires Microsoft avifil32.dll and builtin msvfw32.dll.
*
* Todo:
* - audio support (including synchronization etc)
* - replace DirectDraw by a 'normal' window, including dithering, controls
* etc.
*
* Bugs:
* - no time scheduling, video plays too fast using DirectDraw/XF86DGA
* - requires DirectDraw with all disadvantages.
*/
#include <stdio.h>
#include <time.h>
#include <assert.h>
#include <string.h>
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "windows.h"
#include "wingdi.h"
#include "mmsystem.h"
#include "ddraw.h"
#include "vfw.h"
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
{
int bytesline,i,n,pos;
time_t tstart,tend;
LONG cnt;
BITMAPINFOHEADER *bmi;
HRESULT hres;
PAVIFILE avif;
PAVISTREAM vids=NULL,auds=NULL;
AVIFILEINFO afi;
AVISTREAMINFO asi;
PGETFRAME vidgetframe=NULL;
LPDIRECTDRAW ddraw;
DDSURFACEDESC dsdesc;
LPDIRECTDRAWSURFACE dsurf;
LPDIRECTDRAWPALETTE dpal;
PALETTEENTRY palent[256];
AVIFileInit();
if (GetFileAttributes(cmdline) == INVALID_FILE_ATTRIBUTES) {
fprintf(stderr,"Usage: aviplay <avifilename>\n");
exit(1);
}
hres = AVIFileOpen(&avif,cmdline,OF_READ,NULL);
if (hres) {
fprintf(stderr,"AVIFileOpen: 0x%08lx\n",hres);
exit(1);
}
hres = AVIFileInfo(avif,&afi,sizeof(afi));
if (hres) {
fprintf(stderr,"AVIFileInfo: 0x%08lx\n",hres);
exit(1);
}
for (n=0;n<afi.dwStreams;n++) {
char buf[5];
PAVISTREAM ast;
hres = AVIFileGetStream(avif,&ast,0,n);
if (hres) {
fprintf(stderr,"AVIFileGetStream %d: 0x%08lx\n",n,hres);
exit(1);
}
hres = AVIStreamInfo(ast,&asi,sizeof(asi));
if (hres) {
fprintf(stderr,"AVIStreamInfo %d: 0x%08lx\n",n,hres);
exit(1);
}
fprintf(stderr,"[Stream %d: ",n);
buf[4]='\0';memcpy(buf,&(asi.fccType),4);
fprintf(stderr,"%s.",buf);
buf[4]='\0';memcpy(buf,&(asi.fccHandler),4);
fprintf(stderr,"%s, %s]\n",buf,asi.szName);
switch (asi.fccType) {
case streamtypeVIDEO:
vids = ast;
break;
case streamtypeAUDIO:
auds = ast;
break;
default: {
char type[5];
type[4]='\0';memcpy(type,&(asi.fccType),4);
fprintf(stderr,"Unhandled streamtype %s\n",type);
AVIStreamRelease(ast);
break;
}
}
}
/********************* begin video setup ***********************************/
if (!vids) {
fprintf(stderr,"No video stream found. Good Bye.\n");
exit(0);
}
cnt = sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);
bmi = HeapAlloc(GetProcessHeap(),0,cnt);
hres = AVIStreamReadFormat(vids,0,bmi,&cnt);
if (hres) {
fprintf(stderr,"AVIStreamReadFormat vids: 0x%08lx\n",hres);
exit(1);
}
vidgetframe = NULL;
bmi->biCompression = 0; /* we want it in raw form, uncompressed */
/* recalculate the image size */
bmi->biSizeImage = ((bmi->biWidth*bmi->biBitCount+31)&~0x1f)*bmi->biPlanes*bmi->biHeight/8;
bytesline = ((bmi->biWidth*bmi->biBitCount+31)&~0x1f)*bmi->biPlanes/8;
vidgetframe = AVIStreamGetFrameOpen(vids,bmi);
if (!vidgetframe) {
fprintf(stderr,"AVIStreamGetFrameOpen: failed\n");
exit(1);
}
/********************* end video setup ***********************************/
/********************* begin display setup *******************************/
hres = DirectDrawCreate(NULL,&ddraw,NULL);
if (hres) {
fprintf(stderr,"DirectDrawCreate: 0x%08lx\n",hres);
exit(1);
}
hres = IDirectDraw_SetDisplayMode(ddraw,bmi->biWidth,bmi->biHeight,bmi->biBitCount);
if (hres) {
fprintf(stderr,"ddraw.SetDisplayMode: 0x%08lx (change resolution!)\n",hres);
exit(1);
}
dsdesc.dwSize=sizeof(dsdesc);
dsdesc.dwFlags = DDSD_CAPS;
dsdesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
hres = IDirectDraw_CreateSurface(ddraw,&dsdesc,&dsurf,NULL);
if (hres) {
fprintf(stderr,"ddraw.CreateSurface: 0x%08lx\n",hres);
exit(1);
}
if (bmi->biBitCount==8) {
RGBQUAD *rgb = (RGBQUAD*)(bmi+1);
int i;
hres = IDirectDraw_CreatePalette(ddraw,DDPCAPS_8BIT,NULL,&dpal,NULL);
if (hres) {
fprintf(stderr,"ddraw.CreateSurface: 0x%08lx\n",hres);
exit(1);
}
IDirectDrawSurface_SetPalette(dsurf,dpal);
for (i=0;i<bmi->biClrUsed;i++) {
palent[i].peRed = rgb[i].rgbRed;
palent[i].peBlue = rgb[i].rgbBlue;
palent[i].peGreen = rgb[i].rgbGreen;
}
IDirectDrawPalette_SetEntries(dpal,0,0,bmi->biClrUsed,palent);
} else
dpal = NULL;
/********************* end display setup *******************************/
tstart = time(NULL);
pos = 0;
while (1) {
LPVOID decodedframe;
LPBITMAPINFOHEADER lpbmi;
LPVOID decodedbits;
/* video stuff */
if (!(decodedframe=AVIStreamGetFrame(vidgetframe,pos++)))
break;
lpbmi = (LPBITMAPINFOHEADER)decodedframe;
decodedbits = (LPVOID)(((DWORD)decodedframe)+lpbmi->biSize);
if (lpbmi->biBitCount == 8) {
/* can't detect palette change that way I think */
RGBQUAD *rgb = (RGBQUAD*)(lpbmi+1);
int i,palchanged;
/* skip used colorentries. */
decodedbits=(char*)decodedbits+bmi->biClrUsed*sizeof(RGBQUAD);
palchanged = 0;
for (i=0;i<bmi->biClrUsed;i++) {
if ( (palent[i].peRed != rgb[i].rgbRed) ||
(palent[i].peBlue != rgb[i].rgbBlue) ||
(palent[i].peGreen != rgb[i].rgbGreen)
) {
palchanged = 1;
break;
}
}
if (palchanged) {
for (i=0;i<bmi->biClrUsed;i++) {
palent[i].peRed = rgb[i].rgbRed;
palent[i].peBlue = rgb[i].rgbBlue;
palent[i].peGreen = rgb[i].rgbGreen;
}
IDirectDrawPalette_SetEntries(dpal,0,0,bmi->biClrUsed,palent);
}
}
dsdesc.dwSize = sizeof(dsdesc);
hres = IDirectDrawSurface_Lock(dsurf,NULL,&dsdesc,DDLOCK_WRITEONLY,0);
if (hres) {
fprintf(stderr,"dsurf.Lock: 0x%08lx\n",hres);
exit(1);
}
/* Argh. AVIs are upside down. */
for (i=0;i<dsdesc.dwHeight;i++) {
memcpy( (char *)dsdesc.lpSurface+(i*dsdesc.u1.lPitch),
(char *)decodedbits+bytesline*(dsdesc.dwHeight-i-1),
bytesline
);
}
IDirectDrawSurface_Unlock(dsurf,dsdesc.lpSurface);
}
tend = time(NULL);
AVIStreamGetFrameClose(vidgetframe);
IDirectDrawSurface_Release(dsurf);
IDirectDraw_RestoreDisplayMode(ddraw);
IDirectDraw_Release(ddraw);
if (vids) AVIStreamRelease(vids);
if (auds) AVIStreamRelease(auds);
fprintf(stderr,"%d frames at %g frames/s\n",pos,pos*1.0/(tend-tstart));
AVIFileRelease(avif);
AVIFileExit();
return 0;
}
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = icinfo.exe
APPMODE = -mwindows
IMPORTS = msvfw32 kernel32
C_SRCS = icinfo.c
@MAKE_PROG_RULES@
### Dependencies:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment