[jitsi-dev] OPUS and Freeswitch


#1

Hi,

I logged a bug report with Freeswitch a few months ago regarding Jitsi and Freeswitch.

http://jira.freeswitch.org/browse/FS-4846

They are asking whether Jitsi uses the draft or release version of OPUS:

"Did you confirm they are using the latest release of opus and not one of the drafts?

If you can find the code for the jitsi that inits the codec we could compare it to double-check."

Thanks
Tom


#2

Hello, Tom

Hi,

I logged a bug report with Freeswitch a few months ago regarding Jitsi and
Freeswitch.

http://jira.freeswitch.org/**browse/FS-4846<http://jira.freeswitch.org/browse/FS-4846>

Thank you for following up on that and sorry for the long long delay. I've
had on my list to look into it since you last posted about it.

They are asking whether Jitsi uses the draft or release version of OPUS:

"Did you confirm they are using the latest release of opus and not one of
the drafts?

If you can find the code for the jitsi that inits the codec we could
compare it to double-check."

Thanks
Tom

The binaries distributed with Jitsi use libopus 1.0.1

The encoder is initialized in
org.jitsi.impl.neomedia.codec.audio.opus.JNIEncoder#doOpen().

Translated into native calls this is roughly how it's done:
encoder = opus_encoder_create(48000, 1);
opus_encoder_ctl(encoder,OPUS_SET_BANDWIDTH(bandwidth));
opus_encoder_ctl(encoder, OPUS_SET_BITRATE(bitrate));
opus_encoder_ctl(encoder, OPUS_SET_COMPLEXITY(complexity));
opus_encoder_ctl(encoder, OPUS_SET_INBAND_FEC(use_inband_fec));
opus_encoder_ctl(encoder, OPUS_SET_PACKET_LOSS_PERC(percentage));
opus_encoder_ctl(encoder, OPUS_SET_DTX(use_dtx);

The actual values are taken from configuration with the following defaults:
bandwidth: OPUS_AUTO
bitrate: 32000
complexity: 10
use_inband_fec: true
percantage: 1
use_dtx: true

Note that we currently *always* produce 20ms frames.

I will go ahead and post this to this to the FS thread as well, so you
don't have to relay messages back and forth.

Regards,
Boris

···

On Thu, Jan 31, 2013 at 9:05 PM, Tom Parrott <tomp@tomp.co.uk> wrote:


#3

Brilliant, thanks for your help Boris!

Tom

···

Hello, Tom

On Thu, Jan 31, 2013 at 9:05 PM, Tom Parrott <tomp@tomp.co.uk> wrote:

Hi,

I logged a bug report with Freeswitch a few months ago regarding Jitsi
and
Freeswitch.

http://jira.freeswitch.org/**browse/FS-4846<http://jira.freeswitch.org/browse/FS-4846>

Thank you for following up on that and sorry for the long long delay. I've
had on my list to look into it since you last posted about it.

They are asking whether Jitsi uses the draft or release version of OPUS:

"Did you confirm they are using the latest release of opus and not one
of
the drafts?

If you can find the code for the jitsi that inits the codec we could
compare it to double-check."

Thanks
Tom

The binaries distributed with Jitsi use libopus 1.0.1

The encoder is initialized in
org.jitsi.impl.neomedia.codec.audio.opus.JNIEncoder#doOpen().

Translated into native calls this is roughly how it's done:
encoder = opus_encoder_create(48000, 1);
opus_encoder_ctl(encoder,OPUS_SET_BANDWIDTH(bandwidth));
opus_encoder_ctl(encoder, OPUS_SET_BITRATE(bitrate));
opus_encoder_ctl(encoder, OPUS_SET_COMPLEXITY(complexity));
opus_encoder_ctl(encoder, OPUS_SET_INBAND_FEC(use_inband_fec));
opus_encoder_ctl(encoder, OPUS_SET_PACKET_LOSS_PERC(percentage));
opus_encoder_ctl(encoder, OPUS_SET_DTX(use_dtx);

The actual values are taken from configuration with the following
defaults:
bandwidth: OPUS_AUTO
bitrate: 32000
complexity: 10
use_inband_fec: true
percantage: 1
use_dtx: true

Note that we currently *always* produce 20ms frames.

I will go ahead and post this to this to the FS thread as well, so you
don't have to relay messages back and forth.

Regards,
Boris