OpenShot Library | libopenshot
0.1.9
|
All cache managers in libopenshot are based on this CacheBase class. More...
#include <CacheBase.h>
Public Member Functions | |
virtual void | Add (std::shared_ptr< Frame > frame)=0 |
Add a Frame to the cache. More... | |
CacheBase () | |
Default constructor, no max bytes. More... | |
CacheBase (int64_t max_bytes) | |
Constructor that sets the max bytes to cache. More... | |
virtual void | Clear ()=0 |
Clear the cache of all frames. More... | |
virtual int64_t | Count ()=0 |
Count the frames in the queue. More... | |
virtual int64_t | GetBytes ()=0 |
Gets the maximum bytes value. More... | |
virtual std::shared_ptr< Frame > | GetFrame (int64_t frame_number)=0 |
Get a frame from the cache. More... | |
int64_t | GetMaxBytes () |
Gets the maximum bytes value. More... | |
virtual std::shared_ptr< Frame > | GetSmallestFrame ()=0 |
Get the smallest frame number. More... | |
virtual string | Json ()=0 |
Get and Set JSON methods. More... | |
virtual Json::Value | JsonValue ()=0 |
Generate Json::JsonValue for this object. More... | |
virtual void | Remove (int64_t frame_number)=0 |
Remove a specific frame. More... | |
virtual void | Remove (int64_t start_frame_number, int64_t end_frame_number)=0 |
Remove a range of frames. More... | |
virtual void | SetJson (string value)=0 |
Load JSON string into this object. More... | |
virtual void | SetJsonValue (Json::Value root)=0 |
Load Json::JsonValue into this object. More... | |
void | SetMaxBytes (int64_t number_of_bytes) |
Set maximum bytes to a different amount. More... | |
void | SetMaxBytesFromInfo (int64_t number_of_frames, int width, int height, int sample_rate, int channels) |
Set maximum bytes to a different amount based on a ReaderInfo struct. More... | |
Protected Attributes | |
string | cache_type |
This is a friendly type name of the derived cache instance. More... | |
CriticalSection * | cacheCriticalSection |
Section lock for multiple threads. More... | |
int64_t | max_bytes |
This is the max number of bytes to cache (0 = no limit) More... | |
All cache managers in libopenshot are based on this CacheBase class.
Cache is a very important element of video editing, and is required to achieve a high degree of performance. There are multiple derived cache objects based on this class, some which use memory, and some which use disk to store the cache.
Definition at line 45 of file CacheBase.h.
CacheBase::CacheBase | ( | ) |
Default constructor, no max bytes.
Definition at line 34 of file CacheBase.cpp.
CacheBase::CacheBase | ( | int64_t | max_bytes | ) |
Constructor that sets the max bytes to cache.
max_bytes | The maximum bytes to allow in the cache. Once exceeded, the cache will purge the oldest frames. |
Definition at line 40 of file CacheBase.cpp.
|
pure virtual |
Add a Frame to the cache.
frame | The openshot::Frame object needing to be cached. |
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Clear the cache of all frames.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Count the frames in the queue.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Gets the maximum bytes value.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Get a frame from the cache.
frame_number | The frame number of the cached frame |
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
inline |
Gets the maximum bytes value.
Definition at line 93 of file CacheBase.h.
|
pure virtual |
Get the smallest frame number.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Get and Set JSON methods.
Generate JSON string of this object
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Generate Json::JsonValue for this object.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
Definition at line 54 of file CacheBase.cpp.
|
pure virtual |
Remove a specific frame.
frame_number | The frame number of the cached frame |
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Remove a range of frames.
start_frame_number | The starting frame number of the cached frame |
end_frame_number | The ending frame number of the cached frame |
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Load JSON string into this object.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
|
pure virtual |
Load Json::JsonValue into this object.
Implemented in openshot::CacheDisk, and openshot::CacheMemory.
Definition at line 67 of file CacheBase.cpp.
|
inline |
Set maximum bytes to a different amount.
number_of_bytes | The maximum bytes to allow in the cache. Once exceeded, the cache will purge the oldest frames. |
Definition at line 97 of file CacheBase.h.
void CacheBase::SetMaxBytesFromInfo | ( | int64_t | number_of_frames, |
int | width, | ||
int | height, | ||
int | sample_rate, | ||
int | channels | ||
) |
Set maximum bytes to a different amount based on a ReaderInfo struct.
number_of_frames | The maximum number of frames to hold in cache |
width | The width of the frame's image |
height | The height of the frame's image |
sample_rate | The sample rate of the frame's audio data |
channels | The number of audio channels in the frame |
Definition at line 46 of file CacheBase.cpp.
|
protected |
This is a friendly type name of the derived cache instance.
Definition at line 48 of file CacheBase.h.
|
protected |
Section lock for multiple threads.
Definition at line 52 of file CacheBase.h.
|
protected |
This is the max number of bytes to cache (0 = no limit)
Definition at line 49 of file CacheBase.h.