CPC H04L 12/1822 (2013.01) [H04L 12/1827 (2013.01); H04L 65/1086 (2013.01); H04L 65/70 (2022.05); H04L 65/752 (2022.05); H04L 65/762 (2022.05); H04L 65/765 (2022.05); H04L 65/80 (2013.01); H04M 3/567 (2013.01); H04N 7/15 (2013.01); H04N 21/234309 (2013.01); H04N 21/2402 (2013.01); H04N 21/4788 (2013.01); H04N 21/6582 (2013.01)] | 20 Claims |
1. A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:
receiving, from each respective endpoint of a plurality of endpoints, a list of audio codecs, the list of audio codecs comprising one or more audio codecs supported by the respective endpoint;
selecting an initial audio codec from the received lists of audio codecs for a communication session, the initial audio codec supported by each respective endpoint of the plurality of endpoints;
determining an estimated bitrate of the initial audio codec prior to use of the initial audio codec based on one or more properties of a communication channel for the communication session or one or more properties of the plurality of endpoints; and
during a call between the plurality of endpoints using the initial audio codec:
determining an actual bitrate of the initial audio codec that the initial audio codec is producing during the call;
determining, based on a comparison of the estimated bitrate of the initial audio codec and the actual bitrate of the initial audio codec during the call, that an actual performance of the initial audio codec during the call satisfies a switching threshold; and
selecting a secondary audio codec from the received lists of audio codecs, the secondary audio codec supported by each respective endpoint of the plurality of endpoints; and
switching from the initial audio codec to the secondary audio codec for the communication session.
|