Dynamic buffer size allocation for multiplexed streaming
AssigneeSeagate Technology LLC
InventorRobert Dixon
Life of this patent
Estimating the term…
Abstract
A method and disc drive are disclosed that employ dynamic buffer size allocation for handling multiple data streams, such as time-sensitive audio/video data. The method involves allocating a certain amount of required buffer space for each data stream to be handled without an interruption in recording or playing back the data stream. The method further involves reallocating the amount of required buffer space for each stream including any additional stream when one or more additional streams are to be added to the total number of streams being handled. The method also involves reallocating the amount of required buffer space for each stream including those streams that remain after any of the data streams being handled are terminated.
Claims20
1-24. (canceled)
25:
- A method comprising:
- determining a buffer size for each of one or more data streams handled by a buffer based on data rate information for the data streams;
- and
- allocating space in the buffer to each of the data streams according to the determined buffer sizes.
26:
- The method of claim 25, wherein the data rate at which at least one of the data streams is received into the buffer is different than the data rate at which that data stream is sent out of the buffer.
27:
- The method of claim 25, wherein determining the buffer size for each data stream further comprises determining the buffer size of each data stream based on data rates at which the buffer receives each data stream.
28:
- The method of claim 25, wherein determining the buffer size for each data stream further comprises determining the buffer size of each data stream based on the data rates at which the buffer sends each data stream.
29:
- The method of claim 25, wherein determining the buffer size for each data stream further comprises determining the buffer size for each data stream based on the data rates at which the buffer receives and sends each data stream.
30:
- The method of claim 25, further comprising:
- receiving a request to add or terminate a data stream being handled by the buffer;
- determining a new buffer size for each data stream based on data rate information for the data streams that the buffer would handle after the requested data stream is added or terminated;
- and
- determining whether the sum of the determined new buffer sizes is larger than the available space in the buffer.
31:
- The method of claim 30, further comprising if the sum of the determined buffer sizes is not larger than the available space in the buffer, then allocating space in the buffer according to the determined buffer sizes for each of the data streams that the buffer will handle after the requested change takes effect.
32:
- The method of claim 31, further comprising if the sum of the determined buffer sizes is larger than the available space in the buffer, then increasing the available space in the buffer by reducing at least one data rate associated with at least one of the data streams.
33:
- The method of claim 31, further comprising if the sum of the determined buffer sizes is larger than the available space in the buffer, then increasing the available space in the buffer by reducing the number of data streams being handled by the buffer.
34:
- The method of claim 25, wherein determining a buffer size for each of the one or more data streams further comprises determining a buffer size for each of the one or more data streams based on one or more times to switch between the data streams.
35:
- A computer-readable medium comprising instructions to cause a programmable processor to:
- determine buffer sizes corresponding to each of one or more data streams based on data rate information for each of the data streams;
- and
- allocate space in a buffer to each of the data streams according to the determined buffer sizes.
36:
- The computer-readable medium of claim 35, further comprising instructions to cause a processor to determine the buffer sizes based on data rates at which the buffer receives each data stream.
37:
- The computer-readable medium of claim 35, further comprising instructions to cause a processor to determine the buffer sizes based on data rates at which the buffer sends each data stream.
38:
- The computer-readable medium of claim 35, further comprising instructions to cause a processor to:
- receive a request to add or terminate at least one data stream;
- determine a new buffer size for each data stream based on data rate information for the data streams that the buffer would handle after the requested data stream is added or terminated;
- determine whether the sum of the determined new buffer sizes is larger than the available space in the buffer;
- and
- if the sum of the determined buffer sizes is not larger than the available space in the buffer, then allocate space in the buffer according to the determined buffer sizes for each data stream that the buffer will handle after the requested change takes effect.
39:
- The computer-readable medium of claim 35, further comprising instructions to cause a processor to determine the buffer sizes based on one or more times to switch between the data streams.
40:
- A system comprising:
- a buffer configured to handle one or more data streams;
- means for determining a buffer size for each data stream based on data rate information for the one or more data streams;
- and
- means for allocating space in the buffer to each of the data streams according to the determined buffer sizes.
41:
- The system of claim 40, wherein the data rate information includes data rates at which the buffer receives each data stream.
42:
- The system of claim 40, wherein the data rate information includes data rates at which the buffer sends each data stream.
43:
- The system of claim 40, wherein the means for determining a buffer size is further for determining the buffer sizes based on one or more times to switch between the data streams.