Is There any intension to deal with mixing two or more streams encoded with "speex". Most voice wise applications (such as conference) need this feature. Oded Rephael <p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
> Is There any intension to deal with mixing two or more streams encoded > with "speex". > Most voice wise applications (such as conference) need this feature.This is something that needs to be done on a per-application basis, because there is no easy (or standard) way to do this. Some will prefer sending multiple streams without re-encoding, while some might prefer decoding, mixing and re-encoding at a (much) higher bit-rate. It all depends on the quality and bit-rate you need. Jean-Marc -- Jean-Marc Valin, M.Sc.A., ing. jr. LABORIUS (http://www.gel.usherb.ca/laborius) Université de Sherbrooke, Québec, Canada -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 190 bytes Desc: Ceci est une partie de message numériquement signée Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20031029/855dc22f/signature-0001.pgp
Ulrich B. Staudinger wrote:> Hi, > > i have: > > public void run(){ > try{ > System.out.println("Opening > mic"); // AudioInput > ai=new AudioInput(t); > // ai.start(); > if(t.input==null){ > AudioFormat format = new > AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, > false); > DataLine.Info targetInfo = new > DataLine.Info(TargetDataLine.class, format, 44100); > t.input = (TargetDataLine) > AudioSystem.getLine(targetInfo); > > t.input.open(format,44100); > System.out.println(" Mic opened"); > > t.input.start(); > System.out.println("Constructing speex encoder."); > pcm2speex=new Pcm2SpeexAudioInputStream(new > AudioInputStream(t.input), format, AudioSystem.NOT_SPECIFIED); > System.out.println("Speex encoder constructed."); > System.out.println("*** Speex info: "); > System.out.println("Bitrate: > "+pcm2speex.getEncoder().getBitRate()); > System.out.println("Frame size: > "+pcm2speex.getEncoder().getFrameSize()); > System.out.println("Complexity: > "+pcm2speex.getEncoder().getComplexity()); > System.out.println("Mode: > "+pcm2speex.getEncoder().getMode()); > System.out.println("Sampling rate: > "+pcm2speex.getEncoder().getSamplingRate()); > System.out.println("relative quality: > "+pcm2speex.getEncoder().getRelativeQuality()); > System.out.println("*** end of speex info"); > System.out.println("everything ok in writer"); > } byte[] frame=new > byte[t.framelength]; while(true){ > int n=pcm2speex.read(frame, 0, frame.length); > System.out.println(""+n+" bytes read."); > > t.recordBuffer.addElement(frame); > } > } > catch(Exception e){ > e.printStackTrace(); > } > } > > now all this code does, is sitting and doing nothing after 'everything > ok in writer' - it simply doesn't read any data, at least that's what > it looks like, or am i using the class in a wrong context? > t.framelength is 160 at the moment.not specific enough - i mean Pcm2SpeexAudioInputStream with 'the class' <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Hi,
i have:
public void run(){
try{
System.out.println("Opening mic");
// AudioInput ai=new AudioInput(t);
// ai.start();
if(t.input==null){
AudioFormat format = new
AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, false);
DataLine.Info targetInfo = new
DataLine.Info(TargetDataLine.class, format, 44100);
t.input = (TargetDataLine)
AudioSystem.getLine(targetInfo);
t.input.open(format,44100);
System.out.println(" Mic opened");
t.input.start();
System.out.println("Constructing speex encoder.");
pcm2speex=new Pcm2SpeexAudioInputStream(new
AudioInputStream(t.input), format, AudioSystem.NOT_SPECIFIED);
System.out.println("Speex encoder constructed.");
System.out.println("*** Speex info: ");
System.out.println("Bitrate:
"+pcm2speex.getEncoder().getBitRate());
System.out.println("Frame size:
"+pcm2speex.getEncoder().getFrameSize());
System.out.println("Complexity:
"+pcm2speex.getEncoder().getComplexity());
System.out.println("Mode:
"+pcm2speex.getEncoder().getMode());
System.out.println("Sampling rate:
"+pcm2speex.getEncoder().getSamplingRate());
System.out.println("relative quality:
"+pcm2speex.getEncoder().getRelativeQuality());
System.out.println("*** end of speex info");
System.out.println("everything ok in writer");
}
byte[] frame=new byte[t.framelength];
while(true){
int n=pcm2speex.read(frame, 0, frame.length);
System.out.println(""+n+" bytes
read.");
t.recordBuffer.addElement(frame);
}
}
catch(Exception e){
e.printStackTrace();
}
}
now all this code does, is sitting and doing nothing after 'everything
ok in writer' - it simply doesn't read any data, at least that's
what it
looks like, or am i using the class in a wrong context? t.framelength is
160 at the moment.
all help welcome!
best regards,
Ulrich
--
Ulrich B. Staudinger
http://www.die-horde.de
email: us@die-horde.de
jid: uls@jabber.org
current project: REDHORN
http://redhorn.sourceforge.net
Blog:
uls@jabber.org">http://jabber.linux.it/jogger/user.php?jid=uls@jabber.org</a>
<p>--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to
'speex-dev-request@xiph.org'
containing only the word 'unsubscribe' in the body. No subject is
needed.
Unsubscribe messages sent to the list will be ignored/filtered.