INTERFACE FOR SENDING SYNCHRONIZED AUDIO AND VIDEO DATA
A data stream format for transmission of data frames between a computer and a video client via an interface, the data stream being a plurality of data frames transmitted sequentially, each data frame comprising: a frame header; video data, the video data following the frame header; and audio data, the audio data following the video data.
1 . A method of processing data frames, comprising:
receiving input data from a client device at a device interface;
converting, using the device interface, at least a portion of the input data into a data frame, wherein the data frame comprises video data and audio data;
dividing, using the device interface, the data frame into a first portion and a second portion;
constructing, using the device interface, a first partial frame that includes a first header and the first portion;
constructing, using the device interface, a second partial frame that includes a second header and the second portion;
transmitting, using the device interface, the first partial frame over a first channel to a computing device; and
transmitting, using the device interface, the second partial frame over a second channel to the computing device, wherein the first channel and the second channel are different.
2 . The method of claim 1 , wherein converting, using the device interface comprises:
creating, using the device interface, scanned lines based on the input data;
performing, using the device interface, deinterlacing and packetizing of the scanned lines; and
generating, using the device interface, the data frame based upon the deinterlacing and packetizing of the scanned lines.
3 . The method of claim 1 , wherein transmitting the first partial frame over the first channel comprises synchronizing the transmission of the first partial frame with a vertical blanking interval defined between the device interface and the computing device.
4 . The method of claim 3 , wherein the first header comprises a synchronization bit that is synchronized with the vertical blanking interval.
5 . The method of claim 3 , wherein the vertical blanking interval corresponds to a frequency of a plurality of other data frames transmitted to the computing device.
6 . The method of claim 1 , wherein the data frame further comprises an audio header, and wherein the audio header is located between the video data and the audio data.
7 . The method of claim 6 , wherein the audio header includes an audio sample count that is indicative of a number of audio samples in accordance with a cadence.
8 . The method of claim 7 , wherein the audio header includes an audio cycle count that is indicative of a location within the cadence.
9 . The method of claim 1 , wherein the first header comprises format flags that are indicative of the number of bits per sample of video data.
10 . A non-transitory machine readable medium that comprises instructions that when executed by at least one processor causes a device interface of a programmable device to:
receive input data from the programmable device;
convert at least a portion of the input data into a data frame, wherein the data frame comprises video data and audio data;
divide the data frame into a first portion and a second portion;
construct a first partial frame that includes a first header and the first portion;
construct a second partial frame that includes a second header and the second portion;
transmit the first partial frame over a first channel to a computing device; and
transmit the second partial frame over a second channel to the computing device, wherein the first channel and the second channel are different.
11 . The non-transitory machine readable medium of claim 10 , wherein the instructions to convert comprises instructions that cause the device interface to:
create scanned lines based on the input data;
perform deinterlacing and packetizing of the scanned lines; and
generate the data frame based upon the deinterlacing and packetizing of the scanned lines.
12 . The non-transitory machine readable medium of claim 10 , wherein the instructions to transmit the first partial frame over the first channel comprises instructions that cause the device interface to synchronize the transmission of the first partial frame with a vertical blanking interval defined between the device interface and the computing device.
13 . The non-transitory machine readable medium of claim 12 , wherein the first header comprises a synchronization bit that is synchronized with the vertical blanking interval.
14 . The non-transitory machine readable medium of claim 12 , wherein the vertical blanking interval corresponds to a frequency of a plurality of other data frames transmitted to the computing device.
15 . The non-transitory machine readable medium of claim 10 , wherein the data frame further comprises an audio header, and wherein the audio header is located between the video data and the audio data.
16 . A system, comprising:
a-processor; and
a memory coupled to the processor, wherein instructions are stored in the memory, the instructions comprising instructions that when executed cause a device interface of a client device to:
receive input data from the programmable device;
convert at least a portion of the input data into a data frame, wherein the data frame comprises video data and audio data;
divide the data frame into a first portion and a second portion;
construct a first partial frame that includes a first header and the first portion;
construct a second partial frame that includes a second header and the second portion;
transmit the first partial frame over a first channel to a computing device; and
transmit the second partial frame over a second channel to the computing device, wherein the first channel and the second channel are different.
17 . The system of claim 16 , wherein the instructions to convert comprises instructions that cause the device interface to:
create scanned lines based on the input data;
perform deinterlacing and packetizing of the scanned lines; and
generate the data frame based upon the deinterlacing and packetizing of the scanned lines.
18 . The system of claim 16 , wherein the instructions to transmit the first partial frame over the first channel comprises instructions that cause the device interface to synchronize the transmission of the first partial frame with a vertical blanking interval defined between the device interface and the computing device.
19 . The system of claim 18 , wherein the first header comprises a synchronization bit that is synchronized with the vertical blanking interval.
20 . The system of claim 18 , wherein the vertical blanking interval corresponds to a frequency of a plurality of other data frames transmitted to the computing device.