Patent ID: 8707150

Claim:
A computer-implemented method for applying effects to a video in-place in a document on a computing system having a decoding sub-system and a three-dimensional (3D) rendering sub-system, the method comprising: storing a document with a video embedded therein at the computing system, said document comprising non-video presentation objects and a plurality of slides that sequentially present the video and non-video presentation objects; applying a theme to the document, the theme including a plurality of grouped properties that simultaneously each apply an effect configured to visually modify the video and non-video presentation objects in the document consistent with the theme; receiving a request to play the video in-place in the document with an effect consistent with at least one property of the plurality of grouped properties of the theme applied to the video; and in response to the request, configuring the decoding sub-system to decode a frame of the video and to copy the decoded frame to a decoding surface on a first thread, configuring the 3D rendering sub-system to render the decoded frame with the effects applied thereto, copying the decoded frame from the decoding surface to a texture on a second thread, copying the texture to a rendering surface, and instructing the 3D rendering sub-system to render the texture to a 3D shape with the effect consistent with at least one property of the plurality of grouped properties of the theme applied thereto, and displaying the rendered frames of the video in-place in the document, wherein the first thread is further configured to acquire the decoding surface prior to copying a decoded frame to the decoding surface and to release the decoding surface after the decoded frame has been copied to the decoding surface, and wherein the second thread is further configured to acquire the decoding surface prior to copying a decoded frame from the decoding surface to a texture and to release the decoding surface after the decoded frame has been copied from the decoding surface to the texture.