openshot::CacheDisk Class Reference

This class is a disk-based cache manager for Frame objects. More...

`#include <CacheDisk.h>`

Inheritance diagram for openshot::CacheDisk:

## Public Member Functions

void | Add (std::shared_ptr< openshot::Frame > frame)
| Add a Frame to the cache. More...
| CacheDisk (std::string cache_path, std::string format, float quality, float scale)
| Default constructor, no max bytes. More...
| CacheDisk (std::string cache_path, std::string format, float quality, float scale, int64_t max_bytes)
| Constructor that sets the max bytes to cache. More...
void | Clear ()
| Clear the cache of all frames. More...
int64_t | Count ()
| Count the frames in the queue. More...
int64_t | GetBytes ()
| Gets the maximum bytes value. More...
std::shared_ptr< openshot::Frame > | GetFrame (int64_t frame_number)
| Get a frame from the cache. More...
std::shared_ptr< openshot::Frame > | GetSmallestFrame ()
| Get the smallest frame number. More...
std::string | Json ()
| Get and Set JSON methods. More...
Json::Value | JsonValue ()
| Generate Json::Value for this object. More...
void | MoveToFront (int64_t frame_number)
| Move frame to front of queue (so it lasts longer) More...
void | Remove (int64_t frame_number)
| Remove a specific frame. More...
void | Remove (int64_t start_frame_number, int64_t end_frame_number)
| Remove a range of frames. More...
void | SetJson (const std::string value)
| Load JSON string into this object. More...
void | SetJsonValue (const Json::Value root)
| Load Json::Value into this object. More...
| ~CacheDisk ()
Public Member Functions inherited from openshot::CacheBase
| CacheBase ()
| Default constructor, no max bytes. More...
| CacheBase (int64_t max_bytes)
| Constructor that sets the max bytes to cache. More...
int64_t | GetMaxBytes ()
| Gets the maximum bytes value. 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...
virtual | ~CacheBase ()=default

## Additional Inherited Members

Protected Attributes inherited from openshot::CacheBase
std::string | cache_type
| This is a friendly type name of the derived cache instance. More...
juce::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...

## Detailed Description

This class is a disk-based cache manager for Frame objects.

It is used by the Timeline class, if enabled, to cache video and audio frames to disk, to cut down on CPU and memory utilization. This will thrash a user's disk, but save their memory and CPU. It's a trade off that sometimes makes perfect sense. You can also set the max number of bytes to cache.

Definition at line 53 of file CacheDisk.h.

## Constructor & Destructor Documentation

## CacheDisk() [1/2]

CacheDisk::CacheDisk | ( | std::string | cache_path,
|  | std::string | format,
|  | float | quality,
|  | float | scale
| ) |  |

Default constructor, no max bytes.

Parameters

  cache_path | The folder path of the cache directory (empty string = /tmp/preview-cache/)
  format | The image format for disk caching (ppm, jpg, png)
  quality | The quality of the image (1.0=highest quality/slowest speed, 0.0=worst quality/fastest speed)
  scale | The scale factor for the preview images (1.0 = original size, 0.5=half size, 0.25=quarter size, etc...)

Definition at line 37 of file CacheDisk.cpp.

## CacheDisk() [2/2]

CacheDisk::CacheDisk | ( | std::string | cache_path,
|  | std::string | format,
|  | float | quality,
|  | float | scale,
|  | int64_t | max_bytes
| ) |  |

Constructor that sets the max bytes to cache.

Parameters

  cache_path | The folder path of the cache directory (empty string = /tmp/preview-cache/)
  format | The image format for disk caching (ppm, jpg, png)
  quality | The quality of the image (1.0=highest quality/slowest speed, 0.0=worst quality/fastest speed)
  scale | The scale factor for the preview images (1.0 = original size, 0.5=half size, 0.25=quarter size, etc...)
  max_bytes | The maximum bytes to allow in the cache. Once exceeded, the cache will purge the oldest frames.

Definition at line 53 of file CacheDisk.cpp.

## ~CacheDisk()

CacheDisk::~CacheDisk | ( |  | ) |

Definition at line 147 of file CacheDisk.cpp.

## Member Function Documentation

## Add()

void CacheDisk::Add | ( | std::shared_ptr< openshot::Frame > | frame | ) |

virtual

Add a Frame to the cache.

Parameters

  frame | The openshot::Frame object needing to be cached.

Implements openshot::CacheBase.

Definition at line 159 of file CacheDisk.cpp.

## Clear()

void CacheDisk::Clear | ( |  | ) |

virtual

Clear the cache of all frames.

Implements openshot::CacheBase.

Definition at line 407 of file CacheDisk.cpp.

Referenced by SetJsonValue().

## Count()

int64_t CacheDisk::Count | ( |  | ) |

virtual

Count the frames in the queue.

Implements openshot::CacheBase.

Definition at line 428 of file CacheDisk.cpp.

## GetBytes()

int64_t CacheDisk::GetBytes | ( |  | ) |

virtual

Gets the maximum bytes value.

Implements openshot::CacheBase.

Definition at line 310 of file CacheDisk.cpp.

## GetFrame()

std::shared_ptr< Frame > CacheDisk::GetFrame | ( | int64_t | frame_number | ) |

virtual

Get a frame from the cache.

Parameters

  frame_number | The frame number of the cached frame

Implements openshot::CacheBase.

Definition at line 218 of file CacheDisk.cpp.

Referenced by GetSmallestFrame().

## GetSmallestFrame()

std::shared_ptr< Frame > CacheDisk::GetSmallestFrame | ( |  | ) |

virtual

Get the smallest frame number.

Implements openshot::CacheBase.

Definition at line 288 of file CacheDisk.cpp.

## Json()

std::string CacheDisk::Json | ( |  | ) |

virtual

Get and Set JSON methods.

Generate JSON string of this object

Implements openshot::CacheBase.

Definition at line 458 of file CacheDisk.cpp.

## JsonValue()

Json::Value CacheDisk::JsonValue | ( |  | ) |

virtual

Generate Json::Value for this object.

Implements openshot::CacheBase.

Definition at line 465 of file CacheDisk.cpp.

Referenced by Json().

## MoveToFront()

void CacheDisk::MoveToFront | ( | int64_t | frame_number | ) |

Move frame to front of queue (so it lasts longer)

Parameters

  frame_number | The frame number of the cached frame

Definition at line 381 of file CacheDisk.cpp.

Referenced by Add().

## Remove() [1/2]

void CacheDisk::Remove | ( | int64_t | frame_number | ) |

virtual

Remove a specific frame.

Parameters

  frame_number | The frame number of the cached frame

Implements openshot::CacheBase.

Definition at line 326 of file CacheDisk.cpp.

## Remove() [2/2]

void CacheDisk::Remove | ( | int64_t | start_frame_number,
|  | int64_t | end_frame_number
| ) |  |

virtual

Remove a range of frames.

Parameters

  start_frame_number | The starting frame number of the cached frame
  end_frame_number | The ending frame number of the cached frame

Implements openshot::CacheBase.

Definition at line 332 of file CacheDisk.cpp.

## SetJson()

void CacheDisk::SetJson | ( | const std::string | value | ) |

virtual

Load JSON string into this object.

Implements openshot::CacheBase.

Definition at line 492 of file CacheDisk.cpp.

## SetJsonValue()

void CacheDisk::SetJsonValue | ( | const Json::Value | root | ) |

virtual

Load Json::Value into this object.

Implements openshot::CacheBase.

Definition at line 509 of file CacheDisk.cpp.

Referenced by SetJson().

The documentation for this class was generated from the following files:

- CacheDisk.h
- CacheDisk.cpp