Centralized memory management for multiple device streams
First Claim
1. A method for allocating buffers for multiple components, comprising:
- providing, by a stream server, an interface to a centralized memory allocator for allocating at least one buffer in a memory to each of the multiple components, wherein each of the multiple components is one of a driver initialized by an operating system for receiving data from a sensor device, a driver extension or media foundation transform (MFT) initialized by an operating system for modifying data received from a sensor device;
initializing, by the stream server, an instance of the centralized memory allocator based at least in part on a request received from a component of the multiple components via the interface;
allocating, by the stream server via the instance of the centralized memory allocator, the at least one buffer for the component in the memory;
receiving, by the stream server via the instance of the centralized memory allocator, data for storing in the at least one buffer;
modifying, by the stream server, the data to generate modified data stored in the at least one buffer;
receiving, by the stream server via the instance of the centralized memory allocator, a request from the component to deallocate the at least one buffer; and
allocating, based on receiving the request from the component to deallocate the at least one buffer, at least a portion of memory previously allocated to the at least one buffer to another buffer for another component of the multiple components.
1 Assignment
0 Petitions
Accused Products
Abstract
Described are examples for allocating buffers for multiple components. A stream server can provide an interface to a centralized memory allocator for allocating at least one buffer in a memory to each of the multiple components. The stream server can initialize an instance of the centralized memory allocator based at least in part on a request received from a component of the multiple components via the interface. The stream server can allocate, via the instance of the centralized memory allocator, the at least one buffer for the component in the memory. The stream server can receive, via the instance of the centralized memory allocator, data for storing in the at least one buffer. The stream server can modify the data to generate modified data stored in the at least one buffer.
-
Citations
20 Claims
-
1. A method for allocating buffers for multiple components, comprising:
-
providing, by a stream server, an interface to a centralized memory allocator for allocating at least one buffer in a memory to each of the multiple components, wherein each of the multiple components is one of a driver initialized by an operating system for receiving data from a sensor device, a driver extension or media foundation transform (MFT) initialized by an operating system for modifying data received from a sensor device; initializing, by the stream server, an instance of the centralized memory allocator based at least in part on a request received from a component of the multiple components via the interface; allocating, by the stream server via the instance of the centralized memory allocator, the at least one buffer for the component in the memory; receiving, by the stream server via the instance of the centralized memory allocator, data for storing in the at least one buffer; modifying, by the stream server, the data to generate modified data stored in the at least one buffer; receiving, by the stream server via the instance of the centralized memory allocator, a request from the component to deallocate the at least one buffer; and allocating, based on receiving the request from the component to deallocate the at least one buffer, at least a portion of memory previously allocated to the at least one buffer to another buffer for another component of the multiple components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A device for allocating buffers for multiple components, comprising:
-
a memory storing one or more parameters or instructions for executing a stream server, wherein the stream server interfaces with the multiple components, wherein each of the multiple components is one of a driver initialized by an operating system for receiving data from a sensor device, a driver extension or media foundation transform (MFT) initialized by an operating system for modifying data received from a sensor device; and at least one processor coupled to the memory, wherein the at least one processor is configured to; provide an interface to a centralized memory allocator for allocating at least one buffer in the memory to each of the multiple components; initialize an instance of the centralized memory allocator based at least in part on a request received from a component of the multiple components via the interface; allocate, via the instance of the centralized memory allocator, the at least one buffer for the component in the memory; receive, via the instance of the centralized memory allocator, data for storing in the at least one buffer; modify the data to generate modified data stored in the at least one buffer; receive, via the instance of the centralized memory allocator, a request from the component to deallocate the at least one buffer; and allocate, based on receiving the request from the component to deallocate the at least one buffer, at least a portion of memory previously allocated to the at least one buffer to another buffer for another component of the multiple components. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable medium, comprising code executable by one or more processors for allocating buffers for multiple components, the code comprising code for:
-
providing, by a stream server, an interface to a centralized memory allocator for allocating at least one buffer in a memory to each of the multiple components, wherein each of the multiple components is one of a driver initialized by an operating system for receiving data from a sensor device, a driver extension or media foundation transform (MFT) initialized by an operating system for modifying data received from a sensor device; initializing, by the stream server, an instance of the centralized memory allocator based at least in part on a request received from a component of the multiple components via the interface; allocating, by the stream server via the instance of the centralized memory allocator, the at least one buffer for the component in the memory; receiving, by the stream server via the instance of the centralized memory allocator, data for storing in the at least one buffer; modifying, by the stream server, the data to generate modified data stored in the at least one buffer; receiving, by the stream server via the instance of the centralized memory allocator, a request from the component to deallocate the at least one buffer; and allocating, based on receiving the request from the component to deallocate the at least one buffer, at least a portion of memory previously allocated to the at least one buffer to another buffer for another component of the multiple components. - View Dependent Claims (20)
-
Specification