CPC H04L 65/65 (2022.05) [H04L 9/40 (2022.05); H04L 65/40 (2013.01); H04L 67/02 (2013.01); H04N 21/26241 (2013.01); H04N 21/26258 (2013.01); H04N 21/4331 (2013.01); H04N 21/44004 (2013.01); H04N 21/64322 (2013.01); H04N 21/8456 (2013.01)] | 24 Claims |
1. A method of retrieving data having real-time constraints, the method comprising, by a real-time application executed by a hardware-based processor comprising digital logic circuitry of a client device:
determining times during which the data will be available for download;
determining, at a first time, a second time at which a subsequent portion of the data is needed to prevent a buffer underrun for a buffer of the client device, the first time being earlier than the second time, including:
determining a latest portion of the data included in the buffer;
determining the second time as being no later than a time at which the latest portion of the data will be played by the client device; and
determining the subsequent portion of the data, the subsequent portion of the data being temporally adjacent to the latest portion of the data included in the buffer, not being present in the buffer, and being available at a third time less than the second time, the subsequent portion of the data and the latest portion of the data having a common bitrate;
determining deadline information, the deadline information comprising at least one of information representative of at least one of a wall-clock time by which the subsequent portion of the data needs to be received or a maximum round-trip time from issuing a hypertext transfer protocol (HTTP) request specifying the deadline information until the subsequent portion of the data specified in the HTTP request needs to be received;
generating the HTTP request for the subsequent portion of the data and specifying, in a query parameter of a uniform resource locator (URL) of a header of the HTTP request, the HTTP request comprising one of an HTTP GET or a partial GET request, the deadline information representative of the second time at which the subsequent portion of the data is needed to prevent the buffer underrun; and
in response to the subsequent portion of the data being available at a current time equal to or greater than the third time, sending the HTTP request for the subsequent portion of the data and the deadline information representative of the second time at which the subsequent portion of the data is needed to prevent the buffer underrun to a server device.
|