Script-based video rendering
First Claim
1. A method executed by a computer system for rendering video content embodied by video data and associated audio data received by a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
- transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to;
render the video data by displaying frame images which make up the video data;
playback the associated audio data;
ascertain an audio playback time reference associated with the playback of the associated audio data; and
cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference;
wherein synchronizing the displaying of the frame images with the playback of the audio data comprises at least one of;
advancing the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the video data is behind the audio playback time reference by a first threshold amount of time;
causing one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the video data is ahead of the audio playback time reference by a second threshold amount of time; and
using the audio playback time reference to determine a current frame index and, if the frame image associated with the current frame index is ready to be displayed, causing the frame image associated with the current frame index to be displayed.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for cross-platform rendering of video content on a user-computing platform that is one type of a plurality of different user-computing platform types. A script is transmitted to the user-computing platform and is interpreted by an application program compiled to operate on any one of the plurality of user-computing platform types. The script is configured to cause the script to be interpreted by the application program operating on the user-computing platform to: render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference.
59 Citations
44 Claims
-
1. A method executed by a computer system for rendering video content embodied by video data and associated audio data received by a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein synchronizing the displaying of the frame images with the playback of the audio data comprises at least one of; advancing the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the video data is behind the audio playback time reference by a first threshold amount of time; causing one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the video data is ahead of the audio playback time reference by a second threshold amount of time; and using the audio playback time reference to determine a current frame index and, if the frame image associated with the current frame index is ready to be displayed, causing the frame image associated with the current frame index to be displayed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A method executed by a computer system for rendering video content embodied by video data and associated audio data received by a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein the script is further configured to cause the script to be interpreted by the application program to cause the interpreted script to directly decode encoded video data into decoded video data comprising the frame images; wherein the script is further configured to cause the script to be interpreted by the application program to cause the interpreted script to directly decode encoded audio data into decoded audio data and wherein the associated audio data played back comprises the decoded audio data; wherein the script is further configured to cause the script to be interpreted by the application program to simulate a multi-threaded execution environment by; iteratively scheduling and performing a first simulated thread which comprises directly decoding the encoded video data into the decoded video data; and iteratively scheduling and performing a second simulated thread which comprises rendering the video data by displaying the frame images; iteratively scheduling and performing a third simulated thread which comprises directly decoding the encoded audio data into the decoded audio data; and iteratively scheduling and performing a fourth simulated thread which comprises implementing an audio renderer interface which supplies the decoded audio data to an audio renderer wherein performing the first simulated thread comprises; dividing the first simulated thread into a plurality of sub-components; between the performance of pairs of sub-components, making one or more logical inquiries into one or more corresponding conditions and, in dependence on the one or more corresponding conditions, temporarily interrupting the first simulated thread to select and perform an iteration of one of; the second simulated thread; and another simulated thread which involves implementing an audio renderer interface which provides the decoded audio data to an audio renderer.
-
-
41. A method executed by a computer system for rendering video content embodied by video data and associated audio data received by a user-computing platform that is one type of a plurality of different user-computing platform types, the method comprising:
-
transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein the script is further configured to cause the script to be interpreted by the application program to decode encoded video data into decoded video data comprising the frame images; transmitting the encoded video data to the user-computing platform; and encoding the video content into the encoded video data prior to transmitting the encoded video data to the user-computing platform and wherein encoding the video content comprises; for at least a first one of the frame images provided in a first file format; analyzing content of the first one of the frame images; selecting one among a plurality of secondary image file formats based on the analysis of the content of the first one of the frame images; and if the first file format differs from the selected one of the secondary image file formats, converting the image file format of the first one of the frame images into the selected one of the secondary file formats; and for at least a second one of the frame images provided in a second file format; analyzing content of the second one of the frame images; selecting a different one among the plurality of secondary image file formats based on the analysis of the content of the second one of the frame images; and if the second file format differs from the selected different one of the secondary image file formats, converting the image file format of the second one of the frame images into the selected different one of the secondary file formats; wherein each of the plurality of secondary image file formats is capable of being natively rendered by the application program.
-
-
42. A method executed on a user-computing platform for rendering video content embodied by video data and associated audio data received by the user-computing platform, the method comprising:
-
receiving a script at the user-computing platform, the script configured to be interpreted by an application program operating on the user-computing platform; interpreting the script using the application program to; render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein synchronizing the displaying of the frame images with the playback of the audio data comprises at least one of; advancing the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the video data is behind the audio playback time reference by a first threshold amount of time; causing one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the video data is ahead of the audio playback time reference by a second threshold amount of time; and using the audio playback time reference to determine a current frame index and, if the frame image associated with the current frame index is ready to be displayed, causing the frame image associated with the current frame index to be displayed.
-
-
43. A system for rendering video content embodied by video data and associated audio data received by a user-computing platform that is one type of a plurality of different user-computing platform types, the system comprising:
-
a server computing device for transmitting a script to the user-computing platform, the script configured to be interpreted by an application program operating on any one of the plurality of user-computing platform types and further configured to cause the script to be interpreted by the application program to; render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein the interpreted script is caused to synchronize the displaying of the frame images with the playback of the audio data by causing the interpreted script to, at least one of; advance the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the video data is behind the audio playback time reference by a first threshold amount of time; cause one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the video data is ahead of the audio playback time reference by a second threshold amount of time; and use the audio playback time reference to determine a current frame index and, if the frame image associated with the current frame index is ready to be displayed, cause the frame image associated with the current frame index to be displayed.
-
-
44. A system for rendering video content embodied by video data and associated audio data received by a user-computing platform, the system comprising a processor configured to execute an application program on the user-computing platform, the application program interpreting a cross-platform script to:
-
render the video data by displaying frame images which make up the video data; playback the associated audio data; ascertain an audio playback time reference associated with the playback of the associated audio data; and cause the interpreted script to directly synchronize the displaying of the frame images with the playback of the associated audio data based on the audio playback time reference; wherein the interpreted script is caused to synchronize the displaying of the frame images with the playback of the audio data by causing the interpreted script to, at least one of; advance the display of frame images out of order by skipping the display of one or more frame images based on a determination that the rendering of the video data is behind the audio playback time reference by a first threshold amount of time; cause one or more frame images to be displayed for time periods longer than those dictated by a frame rate of the video data based on a determination that the rendering of the video data is ahead of the audio playback time reference by a second threshold amount of time; and use the audio playback time reference to determine a current frame index and, if the frame image associated with the current frame index is ready to be displayed, cause the frame image associated with the current frame index to be displayed.
-
Specification