[fpc-pascal] How to use pipes ?
fredvs
fiens at hotmail.com
Wed Feb 1 14:52:36 CET 2017
Hello.
Some more explanation.
With that code, only +- 10 loops are working, after, no more Ouframes... why
?
const
FramesWanted : 640;
PipeBufferSize : 10240;
BufferURL, BufferTemp : tbytes;
BufferFloat : array of float;
...
setlength(BufferURL, PipeBufferSize);
setlength(BufferTemp, FramesWanted * 2);
setlength(BufferFloat, FramesWanted * 2);
CreatePipeHandles(InHandle, OutHandle, PipeBufferSize);
InPipe := TInputPipeStream.Create(InHandle);
OutPipe := TOutputPipeStream.Create(OutHandle);
HandleOP := op_test_memory(BufferURL[0],PipeBufferSize, Err);
Outframes := 1;
outst := 1;
outst2 := 0;
// The loop, is it the correct way ?
while Outframes > 0 do
begin
while (outst2 < FramesWanted) and (outst > 0) do
begin
outst := InPipe.Read(BufferTemp[0],FramesWanted-outst2);
if outst > 0 then for i := 0 to outst -1 do
BufferURL[i+outst2] := BufferTemp[i] ;
outst2 := outst2 + outst;
end;
// Outframes > 0 only +- 10 loops, why ?
Outframes := op_read_float(HandleOP, @Buffer[0], FramesWanted , nil));
...
end;
Thanks.
Fre;D
-----
Many thanks ;-)
--
View this message in context: http://free-pascal-general.1045716.n5.nabble.com/How-to-use-pipes-tp5727538p5727544.html
Sent from the Free Pascal - General mailing list archive at Nabble.com.
More information about the fpc-pascal
mailing list