[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