RadicalEd0 wrote:let me clarify, since klinky had a problem with my original question, for it was merely an example
how can one program something to output a wav and directly feed it to the next program without actually creating a file and using up hdd space
You can use a circular buffer, using threads. Have one process fill the buffer, and have the second process continually read from the buffer (until it's empty, and then wait for data to appear in the buffer, and so on). Any platform with a decent threading API will let you do this.
I have C++ source code for a circular buffer template using the Boost::Threads API. It won't exactly be what you're looking for, but if you're interested, I can dig it up.
There are other ways to pipe data between processes. For example, under UNIX, you can use pipes, like:
Code: Select all
tccat -i /dev/cdroms/cdrom0 -T 1,-1 | tcdemux -a 0 | split -b 1024m - aa
which basically says "read this chunk off of the DVD, demux the video, and split at every 1 GB marker". There's also shared memory segments, UNIX sockets, and so on. Most of those systems have equivalents under Windows, if threading turns out to be hairy. (It can be quite a nasty affair at times.)