[opus] Encoding OPUS with difference bitrates

Jean-Marc Valin jmvalin at jmvalin.ca
Thu Apr 6 13:08:06 UTC 2017


Opus is stateful. Do not use the same state for unrelated streams

On 06/04/17 07:00 AM, Suresh t wrote:
> HI,
> 
> I'm trying to simulate an audio conference where each leg can be with a
> different bit rate. This needs to encode the source PCM to to different
> bit rates back to back and store and send respective encoded
> frames/packet to the respective channel. For this I changed the
> opus_demo as below. But the output of the second encoded frames is
> completely garbled.
> 
> Appreciate if anyone can suggest how to handle this case.
> 
>             if(1)
>             {
>                     opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate_bps));
>                     len[toggle] = opus_encode(enc, in, frame_size,
> data[toggle], max_payload_bytes);
>             }
>             if(1)
>             {
>                     opus_encoder_ctl(enc, OPUS_SET_BITRATE(32000));
>                     enc_size = opus_encode(enc, in, frame_size,
> tmpBuffer, max_payload_bytes);
>                     if (enc_size < 0)
>                     {
>                             fprintf (stderr, "opus_encode() returned
> %d\n", enc_size);
>                             return EXIT_FAILURE;
>                     }
> 
> Thanks
> Suresh
> 
> 
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus
> 


More information about the opus mailing list