Hi, I'm using this code to convert WAV files to MP3 on the fly, using lame. It was working great until today.

It looks like this code has problems with large files sent to stdin.

lProcess := TProcess.Create(nil);
lProcess.Executable := '/usr/bin/lame';
lProcess.Parameters.Add('-');  // stdin
lProcess.Parameters.Add('-');  // stdout
lProcess.Options := [poUsePipes];
lProcess.Execute;
lWav.LoadFromFile('/home/leonardo/16310.wav');
lWav.Position:= 0;
lWav.SaveToStream(lProcess.Input); // <--  here hangs
lProcess.CloseInput;


I also tried using this:

  repeat
    lReadCount := lProcess.Input.Write(lWav.Memory^, 500);
    if lReadCount < 500 then
      lReadCount := 0;
  until lReadCount = 0;

But also hangs before lReadCount < 500.

Any hint?

--
Leonardo M. Ramé
Medical IT - Griensu S.A.
Av. Colón 636 - Piso 8 Of. A
X5000EPT -- Córdoba
Tel.: +54(351)4246924 +54(351)4247788 +54(351)4247979 int. 19
Cel.: +54 9 (011) 40871877


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to