Allow higher sample rates to have more jitter than lower ones.
PR: 208791 MFC after: 3 days
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user