OpenShot Library | libopenshot  0.2.5
Public Member Functions | List of all members
openshot::ChunkReader Class Reference

This class reads a special chunk-formatted file, which can be easily shared in a distributed environment. More...

#include <ChunkReader.h>

Inheritance diagram for openshot::ChunkReader:
openshot::ReaderBase

Public Member Functions

 ChunkReader (std::string path, ChunkVersion chunk_version)
 Constructor for ChunkReader. This automatically opens the chunk file or folder and loads frame 1, or it throws one of the following exceptions. More...
 
void Close () override
 Close the reader. More...
 
openshot::CacheMemoryGetCache () override
 Get the cache object used by this reader (always return NULL for this reader) More...
 
int64_t GetChunkSize ()
 Get the chunk size (number of frames to write in each chunk) More...
 
std::shared_ptr< openshot::FrameGetFrame (int64_t requested_frame) override
 Get an openshot::Frame object for a specific frame number of this reader. More...
 
bool IsOpen () override
 Determine if reader is open or closed. More...
 
std::string Json () const override
 Get and Set JSON methods. More...
 
Json::Value JsonValue () const override
 Generate Json::Value for this object. More...
 
std::string Name () override
 Return the type name of the class. More...
 
void Open () override
 Open the reader. This is required before you can access frames or data from the reader. More...
 
void SetChunkSize (int64_t new_size)
 Set the chunk size (number of frames to write in each chunk) More...
 
void SetJson (const std::string value) override
 Load JSON string into this object. More...
 
void SetJsonValue (const Json::Value root) override
 Load Json::Value into this object. More...
 
- Public Member Functions inherited from openshot::ReaderBase
void DisplayInfo ()
 Display file information in the standard output stream (stdout) More...
 
openshot::ClipBaseParentClip ()
 Parent clip object of this reader (which can be unparented and NULL) More...
 
void ParentClip (openshot::ClipBase *new_clip)
 Set parent clip object of this reader. More...
 
 ReaderBase ()
 Constructor for the base reader, where many things are initialized. More...
 
virtual ~ReaderBase ()=default
 

Additional Inherited Members

- Public Attributes inherited from openshot::ReaderBase
openshot::ReaderInfo info
 Information about the current media file. More...
 
- Protected Attributes inherited from openshot::ReaderBase
openshot::ClipBaseclip
 Pointer to the parent clip instance (if any) More...
 
juce::CriticalSection getFrameCriticalSection
 Section lock for multiple threads. More...
 
juce::CriticalSection processingCriticalSection
 

Detailed Description

This class reads a special chunk-formatted file, which can be easily shared in a distributed environment.

It stores the video in small "chunks", which are really just short video clips, a few seconds each. A ChunkReader only needs the part of the chunk that contains the frames it is looking for. For example, if you only need the end of a video, only the last few chunks might be needed to successfully access those openshot::Frame objects.

// This example demonstrates how to read a chunk folder and access frame objects inside it.
ChunkReader r("/home/jonathan/apps/chunks/chunk1/", FINAL); // Load highest quality version of this chunk file
r.DisplayInfo(); // Display all known details about this chunk file
r.Open(); // Open the reader
// Access frame 1
r.GetFrame(1)->Display();
// Close the reader
r.Close();

Definition at line 97 of file ChunkReader.h.

Constructor & Destructor Documentation

◆ ChunkReader()

ChunkReader::ChunkReader ( std::string  path,
ChunkVersion  chunk_version 
)

Constructor for ChunkReader. This automatically opens the chunk file or folder and loads frame 1, or it throws one of the following exceptions.

Parameters
pathThe folder path / location of a chunk (chunks are stored as folders)
chunk_versionChoose the video version / quality (THUMBNAIL, PREVIEW, or FINAL)

Definition at line 38 of file ChunkReader.cpp.

Member Function Documentation

◆ Close()

void ChunkReader::Close ( )
overridevirtual

Close the reader.

Implements openshot::ReaderBase.

Definition at line 164 of file ChunkReader.cpp.

Referenced by ChunkReader(), and SetJsonValue().

◆ GetCache()

openshot::CacheMemory* openshot::ChunkReader::GetCache ( )
inlineoverridevirtual

Get the cache object used by this reader (always return NULL for this reader)

Implements openshot::ReaderBase.

Definition at line 140 of file ChunkReader.h.

◆ GetChunkSize()

int64_t openshot::ChunkReader::GetChunkSize ( )
inline

Get the chunk size (number of frames to write in each chunk)

Returns
The number of frames in this chunk

Definition at line 133 of file ChunkReader.h.

◆ GetFrame()

std::shared_ptr< Frame > ChunkReader::GetFrame ( int64_t  requested_frame)
overridevirtual

Get an openshot::Frame object for a specific frame number of this reader.

Returns
The requested frame (containing the image and audio)
Parameters
requested_frameThe frame number you want to retrieve

Implements openshot::ReaderBase.

Definition at line 198 of file ChunkReader.cpp.

◆ IsOpen()

bool openshot::ChunkReader::IsOpen ( )
inlineoverridevirtual

Determine if reader is open or closed.

Implements openshot::ReaderBase.

Definition at line 148 of file ChunkReader.h.

◆ Json()

std::string ChunkReader::Json ( ) const
overridevirtual

Get and Set JSON methods.

Generate JSON string of this object

Implements openshot::ReaderBase.

Definition at line 259 of file ChunkReader.cpp.

◆ JsonValue()

Json::Value ChunkReader::JsonValue ( ) const
overridevirtual

Generate Json::Value for this object.

Implements openshot::ReaderBase.

Definition at line 266 of file ChunkReader.cpp.

Referenced by Json().

◆ Name()

std::string openshot::ChunkReader::Name ( )
inlineoverridevirtual

Return the type name of the class.

Implements openshot::ReaderBase.

Definition at line 151 of file ChunkReader.h.

◆ Open()

void ChunkReader::Open ( )
overridevirtual

Open the reader. This is required before you can access frames or data from the reader.

Implements openshot::ReaderBase.

Definition at line 150 of file ChunkReader.cpp.

Referenced by ChunkReader(), and SetJsonValue().

◆ SetChunkSize()

void openshot::ChunkReader::SetChunkSize ( int64_t  new_size)
inline

Set the chunk size (number of frames to write in each chunk)

Parameters
new_sizeThe number of frames per chunk

Definition at line 137 of file ChunkReader.h.

◆ SetJson()

void ChunkReader::SetJson ( const std::string  value)
overridevirtual

Load JSON string into this object.

Implements openshot::ReaderBase.

Definition at line 282 of file ChunkReader.cpp.

◆ SetJsonValue()

void ChunkReader::SetJsonValue ( const Json::Value  root)
overridevirtual

Load Json::Value into this object.

Implements openshot::ReaderBase.

Definition at line 298 of file ChunkReader.cpp.

Referenced by SetJson().


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