摘要:
An interactive multimedia presentation has a predetermined presentation play duration, a video content component (which may include video, audio, data, or any combination thereof), and an interactive content component. Methods and systems for playing the presentation include specifying a time when a particular media object is renderable. The time is specifiable using an application instruction that references either a first timing signal having a rate that is based on the play speed of the presentation, or a second timing signal having a continuous rate. One example of an application instruction usable as described above is an element associated with an XML data structure. An attribute of the element, such as the clock attribute, may be used to provide time values for the element that reference either timing signal. The attribute is used to maintain frame-accurate synchronization between the video and the interactive content components of the presentation.
摘要:
Memory management techniques involve establishing a memory pool having an amount of sharable memory, and dynamically allocating the sharable memory to concurrently manage multiple sets of sequenced units of digital data. In an exemplary scenario, the sets of sequenced units of digital data are sets of time-ordered media samples forming clips of media content, and the techniques are applied when media samples from two or more clips are simultaneously presentable to a user as independently-controlled streams. Variable amounts of sharable memory are dynamically allocated for preparing upcoming media samples for presentation to the user. In one possible implementation, a ratio of average data rates of individual streams is calculated, and amounts of sharable memory are allocated to rendering each stream based on the ratio. Then, the sharable memory allocated to rendering individual streams is reserved as needed to prepare particular upcoming media samples for presentation to the user.
摘要:
Media content is arranged into a number of sets of video, audio, or data samples, referred to as clips, which are rendered by a media content manager. A playlist, which is handled by a presentation manager, specifies the time-ordered sequence of clips playable to a user. Certain actions are taken during media content play to minimize glitches perceived by the user, including determining a time offset value that is used to decide how far in advance of a scheduled play time to begin pre-rendering an upcoming clip. The time offset value is determined using one or more static characteristics associated with a media source for the upcoming clip, such as the location of the media source, codec parameters, or encryption complexity, and one or more dynamic characteristics of the presentation system, such as retrieval states, (including play speeds) of media clips, processing loads, or clock frequencies.
摘要:
Memory management techniques involve establishing a memory pool having an amount of sharable memory, and dynamically allocating the sharable memory to concurrently manage multiple sets of sequenced units of digital data. In an exemplary scenario, the sets of sequenced units of digital data are sets of time-ordered media samples forming clips of media content, and the techniques are applied when media samples from two or more clips are simultaneously presentable to a user as independently-controlled streams. Variable amounts of sharable memory are dynamically allocated for preparing upcoming media samples for presentation to the user. In one possible implementation, a ratio of average data rates of individual streams is calculated, and amounts of sharable memory are allocated to rendering each stream based on the ratio. Then, the sharable memory allocated to rendering individual streams is reserved as needed to prepare particular upcoming media samples for presentation to the user.
摘要:
In an interactive media environment, a model is provided where applications, each comprising zero or more script components and zero or more markup components, are themselves handled as visual elements having a Z order. A resource-efficient rendering order is provided where the application that has focus in an interactive media environment (by virtue of its receipt of user events) is rendered first. The remaining applications are rendered in top down order, i.e., in reverse Z order. Rendering is performed by drawing into one or more graphics buffers associated with respective applications. Frames for applications are composited from the graphics buffers bottoms up, in Z order, to provide the display with the correct appearance.
摘要:
In an interactive media environment, input events are distributed to a plurality of applications where each application includes zero or more script components and zero or more markup files and has a Z order which corresponds to the position of the applications' visual elements on a display. An input event processing order is utilized where the application that has focus in an interactive media environment (by virtue of its receipt of user events) is provided with the first opportunity to consume the input event. If the focused application does not consume the input event, it is then delivered to the remaining applications in top down, inverse Z order. Each application is enabled with the ability to consume an input event, pass it on to lower Z ordered applications, hide it from lower Z ordered applications, or otherwise handle it. Input event processing stops when an application consumes the input event.
摘要:
An arrangement is provided where all applications in an interactive media environment run on a single application thread in a media player. Event queues are utilized to schedule the application thread's processing of workitems corresponding to events that occur in the environment. Workitems include methods to be invoked when the workitem is processed and arguments for the method. Workitems further include a begin time and an end time and are ordered in the event queue first by begin time followed by the order in which they were inserted into the queue. The application thread marks workitems whose begin times corresponds to the current or previous time and then processes marked workitems from the queue in order. Such processing is committed so that once the application thread begins processing of a workitem it does not stop. Workitems are dropped from the event queue if their end times have been passed.
摘要:
Playing an interactive multimedia presentation involves pre-rendering a media object at certain times based on a frame rate of the interactive content, a frame rate of the video content (which may include video, audio, data, or any combination thereof), and a play speed of the presentation. Certain actions taken include calculating a current elapsed play time representing an amount of the presentation's play duration that has passed. Based on the calculated time, a current interactive content presentation time is ascertained from an interactive content timeline. The interactive content timeline represents times at which the media object is presentable. A subsequent interactive content presentation time is selected from the interactive content timeline. The presentation state of the media object is predicted for the subsequent interactive content presentation time. The media object is pre-rendered within a time offset period before the subsequent interactive content presentation time occurs.
摘要:
Provided are arrangements for downloading resources and managing downloaded resources. A file is requested from a HTTP server, the file associated with an original URI. The file is downloaded and assigned a handle. The file is then stored in a storage location such as a file cache or in a persistent storage location. Upon command of an advanced content playlist or sequence, the file is called by calling the handle of the file. The storing of the file may include storing the file in a location where the file is subject to an automatic removal operation. The file may be an image file or any other type of file, especially multimedia files. The automatic removal operation may occur upon a quitting or restarting of the application. If another request is made for another file, the prior downloaded file may be replaced.
摘要:
Timing for execution of certain user inputs and application instructions occurring during play of an interactive multimedia presentation is discussed. A current state is defined by a state of the presentation system at the time a current media sample is being played to a user. A predicted state is defined by a state of the presentation system one or more future play times. Examples of current and predicted states include media retrieval states and media presentation states. An instruction or user input that is based on the current state is identified, and the predicted state is used to determine an effect of the instruction or input. The effect may then be executed at a predetermined time, such as after the next playable media sample is played to the user.