Allow higher sample rates to have more jitter than lower ones.

PR:		208791
MFC after:	3 days
This commit is contained in:
Hans Petter Selasky
2016-11-09 07:09:27 +00:00
parent a28ed036b6
commit 82364f24b5
+7 -6
View File
@@ -2079,6 +2079,8 @@ uaudio_chan_play_sync_callback(struct usb_xfer *xfer, usb_error_t error)
* recording channel: * recording channel:
*/ */
if (ch->priv_sc->sc_rec_chan.num_alt == 0) { if (ch->priv_sc->sc_rec_chan.num_alt == 0) {
int32_t jitter_max = howmany(sample_rate, 16000);
/* /*
* Range check the jitter values to avoid * Range check the jitter values to avoid
* bogus sample rate adjustments. The expected * bogus sample rate adjustments. The expected
@@ -2087,12 +2089,11 @@ uaudio_chan_play_sync_callback(struct usb_xfer *xfer, usb_error_t error)
* mandates this requirement. Refer to chapter * mandates this requirement. Refer to chapter
* 5.12.4.2 about feedback. * 5.12.4.2 about feedback.
*/ */
if (temp > sample_rate) ch->jitter_curr = temp - sample_rate;
ch->jitter_curr = 1; if (ch->jitter_curr > jitter_max)
else if (temp < sample_rate) ch->jitter_curr = jitter_max;
ch->jitter_curr = -1; else if (ch->jitter_curr < -jitter_max)
else ch->jitter_curr = -jitter_max;
ch->jitter_curr = 0;
} }
ch->feedback_rate = temp; ch->feedback_rate = temp;
break; break;