From: Steve K. <st...@st...> - 2003-06-12 13:37:08
|
On Wed, 2003-06-11 at 22:41, Uriel Carrasquilla wrote: > Steve: > It is now working with the "make" from Cygwin. I had to download it > from http://cygwin.com/setup.exe as it is not part of the default > install. > I was able to compile with "make clena" followed by "make" under > iaxclient/simpleclient/testcall. It works and I tested it and > modified it to use my own *. There was quite a bit of noise and quite > a bit of delay but it is very promissing. Cool. I'm glad you got it working. I guess I installed cygwin a long time ago, and I probably did install more than the default install, so we should note this in the README with the sources. Thanks for sticking in there! The latency can be adjusted somewhat by setting an environment variable, PA_MIN_LATENCY_MSEC It defaults to 200ms for Win9x, and 400ms for NT. Try setting it to something smaller, and it might work for you. Some people have tried setting this to 50ms or so, with success, but it depends on your system. The portaudio people set this by default pretty high on windows, because windows has pretty bad real-time support. It's better, by default, on Linux/MacOSX. All of this is really in the portaudio library code, so if you're looking to change things or research them, look in the portaudio directory, and/or the portaudio website and mailing lists -- there's lots of info on it there, and I think they're improving things for their next release. > Then I got ambitious and tried the same steps undex > iaxclient/simpleclient/wx. I watched in horror the screen go for > quite a while. Then it stopped with a message "1 error in wx.o". I > tried to redirect the output to file so I could attach it here but > only got the first few lines of the "Makefile" execution. Then, when > the Cygwin make takes over, it all went back to the STD output, my > screen. > Since I made it this far, I am now more committed than ever. > Did I miss a step to compile the "GUI" version? And if you thought getting the environment setup for compiling "testcall" was complicated, wait till you try compiling with wxwindows :) (OK, it's not _too_ bad, really. Several people besides me have done this already). Basically, what you need to do is get wxwindows from wxwindows.org, compile that with mingw (when you do this, make sure you compile it to make _static libraries_, not DLLs), and then if you have the WXWIN environment variable set properly, the build of wx will succeed. The errors you got are all probably because you don't have wxwin installed/compiled, so it can't find the wxwin headers, and then the compiler can't make sense out of the rest of the code. -SteveK > Regards, > Uriel > > -----Original Message----- > From: iax...@li... > [mailto:iax...@li...]On Behalf > Of Steve Kann > Sent: Wednesday, June 11, 2003 7:34 PM > To: ur...@ad... > Cc: iaxclient devel > Subject: RE: [Iaxclient-devel] Compiling with MinGW/Cygwin > > > On Wed, 2003-06-11 at 19:55, Uriel Carrasquilla wrote: > > > Steve: > > My first step: went to ieaxclient/lib, typed: "make clean" > > Results: +ve > > My second step: from iaxclient/lib typed: "make" > > Resulting message: > > failed make (e=2): the system cannot find the file specified > > c"\MinGW\bin\make.exe **** [gsm/src/add.o] Error 2 > > > hmm, OK, this is interesting. > > Your build environment is different from mine, in that you're > using a "make" provided by MinGW, as opposed to the cygwin > make. Their make might be broken in some way, although I > think someone built sucessfully with MinGW with "msys" > installed. > > The way my environment is set up, I have cygwin installed, and > MinGW installed, and then I have the MinGW tools installed > ahead of the cygwin stuff in my path. I.e. my path is: > > > /cygdrive/c/MINGW/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/SPRY/BIN:/cygdriv > e/c/WINDOWS:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS/system32/WBEM:/cygd > rive/c/Program Files/Real/Helix Producer > Basic:/cygdrive/c/Program Files/Microso > ft Visual > Studio/Common/Tools/WinNT:/cygdrive/c/Program > Files/Microsoft Visual S > tudio/Common/MSDev98/Bin:/cygdrive/c/Program > Files/Microsoft Visual Studio/Commo > n/Tools:/cygdrive/c/Program Files/Microsoft Visual > Studio/VC98/bin > > > (all that's really important is that the MinGW binaries come > before the cygwin binaries). > > Then, I run a shell from cygwin (using the icon the cygwin > install leaves on the desktop, which gives me a terminal > running bash), and do the make from there. > > But, my MINGW directory doesn't have "make.exe" in it. > There's a mingw32-make.exe, but the purposely don't call it > "make.exe", because it sucks :) > > I can't understand the particular error your make gave you, > but I don't know what file it's talking about. (I think the > note is that it's trying to make gsm/src/add.o, which is > should do from the implicit rule from gsm/src/add.c). > > > So, I think the easiest way to get you going is to get > yourself cygwin (just run http://cygwin.com/setup.exe), find > out what that make you're using is and get rid of it, then > build with cygwin's tools (except for the compiler, for that > use mingw). > > The rest of your research, below, is unlikely to get you > anywhere helpful. I don't maintain any of the other Makefiles > other than lib/Makefile simpleclient/testcall/Makefile and > simpleclient/wx/Makefile. Even if those other Makefiles work, > they'll give you some library which isn't going to help you. > > > Also, please post to the mailing list; other people are > working through the same thing (]data[ from IRC, for example, > just got a whole "wx.exe" build going himself), and the > discussion can either help others, or perhaps others can help > you. > > -SteveK > > > > Research: > > went to iaxclient/lib/gsm/src: there is no add.o, just add.c > > There is a "makefile" here, so I typed "make clean"; > > results: +ve > > > > Hacking: from iaxclient/lib/gsm, typed "make". Results: +ve > > Went back to iaxclient/lib typed: "make" > > Resulting message: > > The same but with code.o missing instead of add.o > > > > I will greatly appreciate your guidance through these > > difficulties. > > > > > > Regards, > > Uriel > > > > -----Original Message----- > > From: iax...@li... > > [mailto:iax...@li...]On Behalf Of Steve Kann > > Sent: Wednesday, June 11, 2003 10:21 AM > > To: ur...@ad... > > Cc: iaxclient devel > > Subject: RE: [Iaxclient-devel] Compiling with > > MinGW/Cygwin > > > > > > Uriel, > > > > There's three "maintained" makefiles within the > > project. The Makefile in iaxclient/lib, and the > > Makefiles in simpleclient/testcall and > > simpleclient/wx. > > > > Both of the simpleclient/*/Makefiles will call the > > Makefile in lib to make the library, as both clients > > use the library, and thus require the library > > (libiaxclient.a) to be built. > > > > So, from clean CVS, you should be able to just go to > > simpleclient/testcall, and type "make". > > > > However, if you've tried other things, I'd say you'd > > be best off going to iaxclient/lib, typing "make > > clean", then "make". Then, go to the client you > > want to make and type "make clean", "make". > > > > (the client Makefiles won't "clean" the library). > > > > First, try making "testcall", since for "wx", you'll > > also need to have wxwindows installed, etc. > > Definately a better first step is to compile > > testcall. > > > > And yes, there's no install targets in the > > Makefiles. You don't need to install the library, > > and the executable targets are standalone (i.e. for > > wx, there's "wx.exe" for windows, "wx" for linux, > > and "wx.app" for MacOSX). > > > > > > > > On Wed, 2003-06-11 at 00:00, Uriel Carrasquilla > > wrote: > > > > > Steve: > > > I am having a hard time compiling with MinGW and > > > Gygwin. > > > I downloaded the CVS from Monday night. > > > I went to the /iaxclient/simpleclient/wx (where > > > there is a Makefile) and typed: make > > > Problems developed in the lib/gsm. I can see in > > > the wx/Makefile that we are trying to make > > > iaxclient.a from lib/gsm. So I went over and type > > > make iaxclient.a > > > could not find a file. So I went to the gsm > > > subdirectory and somewhere in there there was > > > another makefile (lower case which is normally a > > > second choice for make). I did a make. > > > Went back one leve to lib/gsm and executed make > > > Got another file missing. > > > > > > My question: is there a sequence of "make" that I > > > have to execute? > > > what would it be? > > > I could not see and "install" in any of the > > > Makefile. is it by design? > > > Regards, > > > Uriel > > > > > > -----Original Message----- > > > From: > > > iax...@li... [mailto:iax...@li...]On Behalf Of Steve Kann > > > Sent: Tuesday, June 10, 2003 7:48 PM > > > To: iaxclient devel > > > Subject: [Iaxclient-devel] some updates, > > > and Ideas for contributions.. > > > > > > > > > 1) (most relevant): put iax call > > > processing (including audio) into a > > > separate thread. This helps the most when > > > you do things that block the GUI thread, > > > like resizing the window (Win32 only?). > > > And it seems to also help the Mac a bit(*) > > > > > > (*) The volume meters, implemented with > > > progress bars via wxwindows on the mac, > > > eat a lot of CPU for their animation. Not > > > that it doesn't look good. I think that > > > this caused some skips on the Mac. > > > > > > 2) Fixed the DTMF buttons that I broke > > > sometime today or last night. > > > > > > 3) Fixed PTT a bit. (looking for feedback > > > on how this works). > > > > > > Also, due to a byproduct of the way I did > > > things, if you enable then disable PTT, > > > you'll also be enabling silence > > > detection/suppression. This will make the > > > client not spit out any audio frames until > > > the input audio level reaches -40 DB. > > > > > > There's been a lot of interest here on the > > > list and on IRC from a growing community. > > > That's cool. People asked what they can > > > help with, so here's some ideas for > > > adventurous souls: > > > > > > > > > 1) IAX2: You can build it via my > > > Makefiles by setting IAXVER=2 at the top > > > of the > > > library Makefile, or > > > building the library by running "make > > > IAXVER=2". It > > > doesn't work quite right, > > > though, so if someone could try and figure > > > that one > > > out, it would be good. > > > Once it's working, IAX2 should offer us a > > > bunch of > > > quality improvements, > > > especially over the internet. > > > > > > 2) Registration: People out there want > > > this, and it will make the apps/library > > > more > > > useful to the community. > > > Shouldn't be too hard, but will need to be > > > a bit > > > careful about keeping track > > > of calls, sessions, peers, etc. > > > > > > 3) A maintainer for VC++ Makefiles and/or > > > .dsw files. I don't know this stuff, and > > > I > > > don't like tools you need > > > your mouse for. But, if it helps people > > > get more > > > involved, I'm all for > > > keeping a current .dsw/dsp or whatever > > > file in CVS, one > > > for each of the Makefiles, I > > > guess (lib, testcall, wx). > > > > > > 4) Exposing Audio Settings: Make controls > > > (library functions and GUI) for > > > enumerating and choosing audio > > > input/output devices. This may require > > > either moving to the standard portaudio > > > callback interface, or hacking pablio to > > > allow you to choose particular devices. > > > Also, expose setting the input and output > > > "levels". It's probably best to allow > > > them to change this while the app is > > > running, so you'll need to close/re-open > > > the audio device, etc. > > > > > > 5) MacOSX Mono audio problem: Currently > > > MacOSX audio comes only out of the left > > > channel. Seems like a portaudio problem > > > to track down. > > > > > > 6) silence detection / dynamic range > > > compression: Figure out good values or > > > algorithms to make the client > > > automatically (a) not send any packets > > > when there's no speech, (b) put out good > > > consistent volume when there is speech, > > > even if people don't have consistent > > > microphone/soundcard settings, use laptop > > > microphones or nice headsets. > > > > > > 7) Additional codec support: I'd start > > > with uLaw, to make some #iaxclient user > > > happy, but also because it's pretty easy > > > to implement, then also try iLBC and/or > > > Speex. Probably want one way for the user > > > to choose their preferred codec. > > > > > > Hmm, that's a bunch of stuff :) > > > > > > If anyone wants to step up for this stuff, > > > let the list know, so we all don't > > > duplicate each other's work. > > > > > > > > > Happy IAX clienting! > > > > > > -SteveK > > > > > > > > > > > > > > > > > > -- > > > Steve Kann - Chief Engineer - 520 8th Ave #2300 NY 10018 - (212) 533-1775 > > > HorizonLive.com - collaborate . interact . learn > > > "The box said 'Requires Windows 95, NT, or better,' so I installed Linux." > > > > -- > > Steve Kann - Chief Engineer - 520 8th Ave #2300 NY 10018 - (212) 533-1775 > > HorizonLive.com - collaborate . interact . learn > > "The box said 'Requires Windows 95, NT, or better,' so I installed Linux." > > -- > Steve Kann - Chief Engineer - 520 8th Ave #2300 NY 10018 - (212) 533-1775 > HorizonLive.com - collaborate . interact . learn > "The box said 'Requires Windows 95, NT, or better,' so I installed Linux." -- Steve Kann - Chief Engineer - 520 8th Ave #2300 NY 10018 - (212) 533-1775 HorizonLive.com - collaborate . interact . learn "The box said 'Requires Windows 95, NT, or better,' so I installed Linux." |