Negotiated/dynamic error correction for streamed media
First Claim
1. A method for use in a receiving device, the method comprising:
- identifying a sending device configurable to provide streamed media with dynamic error correction;
generating a request for the streamed media that identifies a requested error correction level; and
providing the request for the streamed media to the sending device.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses are provided which allow a receiving device to dynamically control and/or otherwise influence a sending device'"'"'s decision regarding the level of error correction that is applied to streamed media. One method includes having the receiving device generate a request for streamed media that specifies an initial requested error correction level. In this manner, the receiving device is allowed to initially negotiate an error correction level with the sending device that will be providing the streamed media. The receiving device may also dynamically modify the requested level of error correction applied to the streaming media. The sending and receiving devices may also initially and/or dynamically negotiate different error correction encoding schemes. Different error encoding scheme(s) and/or error correction levels can also be selectively applied to different types of streamed media data.
150 Citations
111 Claims
-
1. A method for use in a receiving device, the method comprising:
-
identifying a sending device configurable to provide streamed media with dynamic error correction;
generating a request for the streamed media that identifies a requested error correction level; and
providing the request for the streamed media to the sending device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
subsequently dynamically modifying the requested error correction level; and
providing the modified requested error correction level to the sending device.
-
-
3. The method as recited in claim 1, wherein providing the request for the streamed media to the sending device includes:
sending a real time streaming protocol (RTSP) setup message to the sending device.
-
4. The method as recited in claim 1, wherein providing the request for the streamed media to the sending device includes transmitting the request for the streamed media over at least one wireless communication link.
-
5. The method as recited in claim 1, wherein the receiving device is a client device and the sending device is a server device.
-
6. The method as recited in claim 1, wherein generating the request for the streamed media includes identifying the requested error correction level by specifying a requested error correction data density.
-
7. The method as recited in claim 6, wherein specifying the requested error correction data density includes:
-
identifying a number of streamed data packets within a span; and
identifying a number of error correction data packets associated with the span.
-
-
8. The method as recited in claim 7, wherein the number of streamed data packets within the span is between about 1 and about 24, and wherein the number of error correction data packets associated with the span is between about 1 and about 24.
-
9. The method as recited in claim 1, further comprising:
-
receiving streamed data packets and error correction data packets sent by the sending device;
associating a span, comprising a plurality of the received streamed data packets, with at least one of the received error correction data packets; and
correcting errors in the span, as needed, using the at least one of the received error correction data packets.
-
-
10. The method as recited in claim 9, wherein the span includes a plurality of sequential streamed data packets.
-
11. The method as recited in claim 9, wherein the span includes a plurality of non-sequential streamed data packets.
-
12. The method as recited in claim 9, further comprising:
selectively requesting that the sending device generate the at least one of the error correction data packets based on the span comprising streamed data packets that are sequential.
-
13. The method as recited in claim 9, further comprising:
selectively requesting that the sending device generate the at least one of the error correction data packets based on the span comprising streamed data packets that are non-sequential.
-
14. The method as recited in claim 9, wherein the error correction data packets include forward error correction (FEC) generated error correction data.
-
15. The method as recited in claim 9, wherein associating the span with the at least one of the received error correction data packets includes:
-
examining a packet header within the at least one of the received error correction data packets to determine;
the plurality of the received data packets within the span; and
a position parameter for the at least one of the received error correction data packets within an error correction data packet sequence associated with the span.
-
-
16. The method as recited in claim 15, wherein the packet header includes an extended real-time transport protocol (RTP) header.
-
17. An apparatus for use in a receiving device, the apparatus comprising:
-
a receiver operatively configurable to receive streamed media from a sending device;
a transmitter operatively configurable to output requests for the streamed media; and
logic operatively coupled to the receiver and the transmitter, the logic being configured to generate a request for the streamed media that specifies a requested error correction level and provide the request to the transmitter. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A computer-readable medium comprising computer-executable instructions for:
-
identifying a sending device configurable to provide streamed media with dynamic error correction;
generating a request for the streamed media that identifies a requested error correction level; and
providing the request for the streamed media to the sending device. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
subsequently dynamically modifying the requested error correction level; and
providing the modified requested error correction level to the sending device.
-
-
35. The computer-readable medium as recited in claim 33, wherein generating the request for the streamed media includes identifying the requested error correction level by specifying a requested error correction data density.
-
36. The computer-readable medium as recited in claim 33, wherein specifying the requested error correction data density includes identifying a number of streamed data packets within a span, and a number of error correction data packets associated with the span.
-
37. The computer-readable medium as recited in claim 33, wherein providing the request for the streamed media to the sending device includes:
sending a real time streaming protocol (RTSP) setup message to the sending device.
-
38. The computer-readable medium as recited in claim 33, wherein the request for streamed media is further configured for transmission over at least one wireless communication link.
-
39. The computer-readable medium as recited in claim 33, wherein the receiving device is a client device and the sending device is a server device.
-
40. The computer-readable medium as recited in claim 33, further comprising computer-executable instructions for:
-
associating a span, comprising a plurality of received streamed data packets, with at least one received error correction data packet; and
correcting errors in the span, as needed, using the at least one of the received error correction data packets.
-
-
41. The computer-readable medium as recited in claim 40, wherein the span includes a plurality of sequential streamed data packets.
-
42. The computer-readable medium as recited in claim 40, wherein the span includes a plurality of non-sequential streamed data packets.
-
43. The computer-readable medium as recited in claim 40, further comprising computer-executable instructions for:
selectively requesting that the sending device generate the at least one of the error correction data packets based on the span comprising streamed data packets that are sequential.
-
44. The computer-readable medium as recited in claim 40, further comprising computer-executable instructions for:
selectively requesting that the sending device generate the at least one of the error correction data packets based on the span comprising streamed data packets that are non-sequential.
-
45. The computer-readable medium as recited in claim 40, wherein the error correction data packets include forward error correction (FEC) generated error correction data.
-
46. The computer-readable medium as recited in claim 40, wherein associating the span with the at least one received error correction data packet includes:
examining a packet header within the at least one received error correction data packet to determine the plurality of the received data packets within the span, and a position parameter for the at least one received error correction data packet within an error correction data packet sequence associated with the span.
-
47. The computer-readable medium as recited in claim 46, wherein the packet header includes an extended real-time transport protocol (RTP) header.
-
48. A method for use in a sending device configured to provide streamed media to a receiving device, the method comprising:
-
receiving a request for streamed media from the receiving device, the request for streamed media having a requested error correction level;
in response, generating at least one error correction data packet associated with a span of data packets to be streamed in accordance with the requested error correction level; and
outputting the span of data packets and the at least one error correction data packet. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
subsequently receiving a dynamically modified requested error correction level; and
in response, generating at least one error correction data packet associated with a span of data packets to be streamed in accordance with the modified requested error correction level.
-
-
50. The method as recited in claim 48, further comprising:
selectively overriding the received requested error correction level.
-
51. The method as recited in claim 48, wherein the received request for streamed media is included in a real time streaming protocol (RTSP) setup message.
-
52. The method as recited in claim 48, wherein outputting the at least one error correction data packet the packet includes generating an extended real-time transport protocol (RTP) header.
-
53. The method as recited in claim 48, wherein the request for streamed media is received over a wireless communication link and the data packets within the span and the at least one error correction data packet are configured for transmission over the wireless communication link.
-
54. The method as recited in claim 48, wherein the sending device includes a server device and the receiving device includes a client device.
-
55. The method as recited in claim 48, wherein the error correction data packet includes forward error control (FEC) generated data.
-
56. The method as recited in claim 48, wherein the request for the streamed media identifies the requested error correction level by specifying a requested error correction data density.
-
57. The method as recited in claim 56, wherein the requested error correction data density identifies a number of streamed data packets to be included within the span, and a number of error correction data packets to be associated with the span.
-
58. The method as recited in claim 48, wherein generating the at least one error correction data packet associated with the span of data packets to be streamed in accordance with the requested error correction level includes generating the span for a plurality of sequential data packets.
-
59. The method as recited in claim 58, further comprising:
receiving a request from the receiving device to generate the at least one of the error correction data packets based on the span comprising data packets that are sequential.
-
60. The method as recited in claim 48, wherein generating the at least one error correction data packet associated with the span of data packets to be streamed in accordance with the requested error correction level includes generating the span for a plurality of non-sequential data packets.
-
61. The method as recited in claim 60, further comprising:
receiving a request from the receiving device to generate the at least one of the error correction data packets based on the span comprising data packets that are non-sequential.
-
62. The method as recited in claim 48, wherein generating the at least one error correction data packet associated with the span of data packets to be streamed in accordance with the requested error correction level includes:
selectively generating the at least one error correction data packet associated with the span of data packets to be streamed based on content within the data packets to be streamed, such that a first error correction level is applied to a first type of content and a different second error correction level is applied to a second type of content.
-
63. The method as recited in claim 62, wherein the first type of content includes audio content and the second type of content includes video content.
-
64. The method as recited in claim 62, wherein the first type of content includes a first type of video content and the second type of content includes a second type of video content.
-
65. The method as recited in claim 64, wherein the first type of video content includes I-frame video content and the second type of video content includes P-frame video content.
-
66. The method as recited in claim 64, wherein the first type of video content includes video content associated with a first program and the second type of video content includes video content associated with an appended second program.
-
67. The method as recited in claim 66, wherein the video content associated with an appended second program includes advertising content.
-
68. An apparatus for use in a sending device capable of streaming media to a receiving device, the apparatus comprising:
-
a receiver configurable to receive a request for streamed media from the receiving device, the request for streamed media having a requested error correction level;
logic operatively coupled to the receiver and configured to generate at least one error correction data packet associated with a span of data packets to be streamed in accordance with the received requested error correction level; and
a transmitter operatively coupled to the logic and configurable to transmit the span of data packets and the at least one error correction data packet to the receiving device. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85)
the receiver is further configured to receive a modified requested error correction level; and
in response, the logic is further configured to generate at least one error correction data packet associated with a span of data packets to be streamed in accordance with the modified requested error correction level.
-
-
70. The apparatus as recited in claim 68, wherein the logic is further configured to selectively override the received requested error correction data density identifier.
-
71. The apparatus as recited in claim 68, wherein the receiver receives the request for streamed media in a real time streaming protocol (RTSP) setup message.
-
72. The apparatus as recited in claim 68, wherein the transmitter transmits the at least one error correction data packet using an extended real-time transport protocol (RTP) header.
-
73. The apparatus as recited in claim 68, wherein the receiver is a wireless receiver and the transmitter is a wireless transmitter.
-
74. The apparatus as recited in claim 68, wherein the span includes a plurality of sequential data packets.
-
75. The apparatus as recited in claim 68, wherein span includes a plurality of non-sequential data packets.
-
76. The apparatus as recited in claim 68, wherein the sending device includes a server device and the receiving device includes a client device.
-
77. The apparatus as recited in claim 68, wherein the error correction data packet includes forward error control (FEC) generated data.
-
78. The apparatus as recited in claim 68, wherein the request for the streamed media identifies the requested error correction level by specifying a requested error correction data density.
-
79. The apparatus as recited in claim 78, wherein the requested error correction data density identifies a number of streamed data packets to be included within the span, and a number of error correction data packets to be associated with the span.
-
80. The apparatus as recited in claim 68, wherein the logic is further configured to selectively generate the at least one error correction data packet associated with the span of data packets to be streamed based on content within the data packets to be streamed, such that a first error correction level is applied to a first type of content and a different second error correction level is applied to a second type of content.
-
81. The apparatus as recited in claim 80, wherein the first type of content includes audio content and the second type of content includes video content.
-
82. The apparatus as recited in claim 80, wherein the first type of content includes a first type of video content and the second type of content includes a second type of video content.
-
83. The apparatus as recited in claim 82, wherein the first type of video content includes I-frame video content and the second type of video content includes P-frame video content.
-
84. The apparatus as recited in claim 82, wherein the first type of video content includes video content associated with a first program and the second type of video content includes video content associated with an appended second program.
-
85. The apparatus as recited in claim 84, wherein the video content associated with an appended second program includes advertising content.
-
86. A computer-readable medium comprising computer-executable instructions for:
-
in response to a received request for streamed media from a receiving device, the request for streamed media having a requested forward error level, generating at least one error correction data packet associated with a span of data packets to be streamed in accordance with the requested error correction data density identifier; and
causing the span of data packets and the at least one error correction data packet to be output. - View Dependent Claims (87, 88, 89, 90, 91, 92, 93)
in response to a subsequently received modified requested error correction level, generating at least one error correction data packet associated with a span of data packets to be streamed in accordance with the modified requested error correction level.
-
-
88. The computer-readable medium as recited in claim 86, further comprising computer-executable instructions for:
selectively overriding the received requested error correction level.
-
89. The computer-readable medium as recited in claim 86, wherein the received request for streamed media is included in a real time streaming protocol (RTSP) setup message.
-
90. The computer-readable medium as recited in claim 86, wherein the span of data packets and the at least one error correction data packet are output using an extended real-time transport protocol (RTP) header.
-
91. The computer-readable medium as recited in claim 86, wherein causing the span of data packets and the at least one error correction data packet to be output includes causing the span of data packets and the at least one error correction data packet to be provided to a wireless transmitter.
-
92. The computer-readable medium as recited in claim 86, wherein the request for the streamed media identifies the requested error correction level by specifying a requested error correction data density.
-
93. The computer-readable medium as recited in claim 92, wherein the requested error correction data density identifies a number of streamed data packets to be included within the span, and a number of error correction data packets to be associated with the span.
-
94. A system comprising:
-
a network;
a first device operatively coupled to the network and configured to output a request for streamed media over the network and receive streamed media over the network, the request for streamed media comprising a requested forward error correction level; and
a second device operatively coupled to the network and configured to receive the request for streamed media over the network and in response generate at least one error correction data packet associated with a span of data packets to be streamed in accordance with the received requested error correction level, and output the at least one error correction data packet and the span of data packets over the network to the first device. - View Dependent Claims (95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106)
-
-
107. A computer-readable medium having stored thereon a data structure, comprising:
-
at least one parameter requesting streamed media;
at least one parameter identifying the requested streamed media; and
at least one parameter establishing a receiving device requested error correction level to be applied by a sending device when providing the requested streamed media. - View Dependent Claims (108, 109, 110)
-
-
111. A computer-readable medium having stored thereon a data structure, comprising:
-
an error correction packet extended real-time transport protocol (RTP) header having;
a first parameter identifying a number of streamed data packets within a span;
a second parameter identifying a specified number of error correction data packets associated with the span; and
a third parameter identifying a sequence number of the error correction data packet with respect to the specified number of error correction data packets associated with the span.
-
Specification