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.