diff options
author | Mikkel Krautz <mikkel@krautz.dk> | 2015-12-12 01:06:45 +0300 |
---|---|---|
committer | Mikkel Krautz <mikkel@krautz.dk> | 2015-12-12 21:29:37 +0300 |
commit | 23fa9b3979c244f1bcdbc80972a88ef7144f8f4a (patch) | |
tree | 3b4130236492c893eeb5314d26492dadc824ba1a /icons | |
parent | 37618b77fadfc7e01789247a60a47c111c035936 (diff) |
AudioInput: ensure our encoders are reset correctly when using > 1 frame per packet.
When AudioInput is configured to use more than a single frame per
packet, the "!bPreviousVoice"-check in encodeOpusFrame() and
encodeCELTFrame() is not sufficient in determining when to reset
the encoder.
This is because bPreviousVoice refers to the previous *frame*.
But when AudioInput is configured to use multiple frames per
packet, we won't enter encodeOpusFrame() at the initial frame
where bPreviousVoice would be false.
The result is that we *never* reset the current encoder
when using more than one frame per packet.
This change adds a flag, bResetEncoder, to the AudioInput class.
Now, When AudioInput encounters a frame that is speech, and the
previous frame was not (bIsSpeech && !bPreviousVoice), it will
set the bResetEncoder flag.
The encoder is now reset correctly when a new voice stream begins,
just like it is for the single frame-per-packet case.
Diffstat (limited to 'icons')
0 files changed, 0 insertions, 0 deletions