Capturing frames from an external source
First Claim
1. A computer-implemented method, comprising:
- designating a first memory region, the first memory region accessible by a client process and a distinct first image frame server, wherein the client process is a video editing application and the first image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the first memory region is for receiving image frames by the client process from the first image frame server, the image frames being from a first sequence of image frames rendered by the first image frame server, and wherein the first image frame server associates each of the image frames in the first sequence of image frames with a respective time position on a first timeline;
designating a second memory region, the second memory region accessible by the client process and a distinct second image frame server different from the first image frame server, wherein the second image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the second memory region is for receiving image frames by the client process from the second image frame server, the image frames being from a second sequence of image frames rendered by the second image frame server, and wherein the second image frame server associates each of the image frames in the second sequence of image frames with a respective time position on a second timeline;
selecting, with a computer system, a needed image frame in a third sequence of image frames processed by the client process, the needed image frame for generating a composite frame in the client process, wherein the client process associates the needed image frame with a third time position on a third timeline, the third timeline indicating a time position for image frames in the third sequence of image frames;
mapping, with the computer system, the third time position on the third timeline to a first time position on the first timeline;
requesting that the first image frame server provide an image frame from the first sequence of image frames at the first time position on the first timeline to the client process using the designated first memory region; and
retrieving the requested image frame from the designated first memory region based upon a response that identifies a portion of the first memory region, and generating the composite frame from the retrieved image frame and one or more image frames accessible by the client process with the computer system.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, for designating a memory region for receiving image frames from an image frame server, the image frames are from a first sequence of image frames. Each image frame in the first sequence of image frames is associated with a time position on a first timeline. A needed image frame is selected, the needed image frame associated with a second time position on a second timeline. The second time position is mapped on the second timeline to a first time position on the first timeline. The image frame server is requested to provide an image frame from the first sequence of image frames at the first time position on the first timeline.
-
Citations
10 Claims
-
1. A computer-implemented method, comprising:
-
designating a first memory region, the first memory region accessible by a client process and a distinct first image frame server, wherein the client process is a video editing application and the first image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the first memory region is for receiving image frames by the client process from the first image frame server, the image frames being from a first sequence of image frames rendered by the first image frame server, and wherein the first image frame server associates each of the image frames in the first sequence of image frames with a respective time position on a first timeline; designating a second memory region, the second memory region accessible by the client process and a distinct second image frame server different from the first image frame server, wherein the second image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the second memory region is for receiving image frames by the client process from the second image frame server, the image frames being from a second sequence of image frames rendered by the second image frame server, and wherein the second image frame server associates each of the image frames in the second sequence of image frames with a respective time position on a second timeline; selecting, with a computer system, a needed image frame in a third sequence of image frames processed by the client process, the needed image frame for generating a composite frame in the client process, wherein the client process associates the needed image frame with a third time position on a third timeline, the third timeline indicating a time position for image frames in the third sequence of image frames; mapping, with the computer system, the third time position on the third timeline to a first time position on the first timeline; requesting that the first image frame server provide an image frame from the first sequence of image frames at the first time position on the first timeline to the client process using the designated first memory region; and retrieving the requested image frame from the designated first memory region based upon a response that identifies a portion of the first memory region, and generating the composite frame from the retrieved image frame and one or more image frames accessible by the client process with the computer system. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
a plurality of image frame servers, wherein each image frame server is configured to render a respective sequence of image frames and to provide one or more image frames from the respective sequence of image frames to a distinct client process through a region of memory accessible by the client process and the image frame server, wherein a first memory region of the region of memory is accessible by the distinct client process and a first image frame server included in the plurality of image frame servers, and, a second memory region of the region of memory is accessible by the distinct client process and a second image frame server, different from the first image frame server, and included in the plurality of image frame serves, the first image frame server associates image frames from a first sequence of image frames with a respective time position on a first timeline, and, the second image frame server associates image frames from a second sequence of image frames with a respective time position on a second timeline; a client process configured to; select a needed image frame in a third sequence of image frames processed by the client process on a computer system, the needed image frame for generating a composite frame, wherein the client process associates the needed image frame with a third second time position on a third timeline; map, in the computer system, the third time position on the third timeline to a first time position on the first timeline; send a request to a proxy, the request identifying an image frame associated with the first time position on the first timeline; retrieve the image frame at the first time position on the first timeline from the first memory region based upon a response that identifies a portion of the first memory region; and generate, with the computer system, the composite frame from the retrieved image frame and one or more image frames accessible by the client process; and the proxy configured to identify an image frame server from the plurality of image frame servers and provide information to one or more of the client process or the identified image frame server to allow the client process and the identified image frame server to communicate with each other, wherein the identified image frame server is an image frame server having access to the image frame associated with the first time position on the first timeline. - View Dependent Claims (6, 7)
-
-
8. A computer program product, encoded on a storage device, operable to cause data processing apparatus to perform operations comprising:
-
designating a first memory region, the first memory region accessible by both a client process and a distinct first image frame server, wherein the client process is a video editing application and the first image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the memory region is for receiving image frames from the first image frame server by the client process, the image frames being from a first sequence of image frames rendered by the first image frame server, and wherein the first image frame server associates each of the image frames in the first sequence of image frames with a respective time position on a first timeline; designating a second memory region, the second memory region accessible by the client process and a distinct second image frame server different from the first image frame server, wherein the second image frame server is a compositing application that renders composited frames for use by one or more video editing applications, wherein the second memory region is for receiving image frames by the client process from the second image frame server, the image frames being from a second sequence of image frames rendered by the second image frame server, and wherein the second image frame server associates each of the image frames in the second sequence of image frames with a respective time position on a second timeline; selecting, in the client process, a needed image frame in a third sequence of image frames processed by the client process, the needed image frame for generating a composite frame in the client process, wherein the client process associates the needed image frame with a third time position on a third timeline, the third timeline indicating a time position for image frames in the third sequence of image frames; mapping the third time position on the third timeline to a first time position on the first timeline; requesting that the first image frame server provide an image frame from the first sequence of image frames at the first time position on the first timeline to the client process using the designated first memory region; and retrieving the requested image frame from the designated first memory region based upon a response that identifies a portion of first memory region, and generating the composite frame from the retrieved image frame and one or more image frames accessible by the client process. - View Dependent Claims (9, 10)
-
Specification