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

This class takes any reader and generates a special type of video file, built with chunks of small video and audio data. More...

#include <ChunkWriter.h>

Inheritance diagram for openshot::ChunkWriter:
openshot::WriterBase

Public Member Functions

 ChunkWriter (std::string path, openshot::ReaderBase *reader)
 Constructor for ChunkWriter. Throws one of the following exceptions. More...
 
void Close ()
 Close the writer. More...
 
int64_t GetChunkSize ()
 Get the chunk size (number of frames to write in each chunk) More...
 
bool IsOpen ()
 Determine if writer is open or closed. More...
 
void Open ()
 Open writer. More...
 
void SetChunkSize (int64_t new_size)
 Set the chunk size (number of frames to write in each chunk) More...
 
void WriteFrame (std::shared_ptr< openshot::Frame > frame)
 Add a frame to the stack waiting to be encoded. More...
 
void WriteFrame (int64_t start, int64_t length)
 Write a block of frames from a reader. More...
 
void WriteFrame (openshot::ReaderBase *reader, int64_t start, int64_t length)
 Write a block of frames from a reader. More...
 
- Public Member Functions inherited from openshot::WriterBase
void CopyReaderInfo (openshot::ReaderBase *reader)
 This method copy's the info struct of a reader, and sets the writer with the same info. More...
 
void DisplayInfo ()
 Display file information in the standard output stream (stdout) More...
 
std::string Json () const
 Get and Set JSON methods. More...
 
Json::Value JsonValue () const
 Generate Json::Value for this object. 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...
 
 WriterBase ()
 Constructor for WriterBase class, many things are initialized here. More...
 
virtual ~WriterBase ()=default
 

Additional Inherited Members

- Public Attributes inherited from openshot::WriterBase
WriterInfo info
 Information about the current media file. More...
 

Detailed Description

This class takes any reader and generates a special type of video file, built with chunks of small video and audio data.

These chunks can easily be passed around in a distributed computing environment, without needing to share the entire video file. They also allow a chunk to be frame accurate, since seeking inaccuracies are removed.

// This example demonstrates how to feed a reader into a ChunkWriter
FFmpegReader *r = new FFmpegReader("MyAwesomeVideo.mp4"); // Get a reader
r.Open(); // Open the reader
// Create a ChunkWriter (and a folder location on your computer)
ChunkWriter w("/folder_path_to_hold_chunks/", r);
// Open the writer
w.Open();
// Write a block of frames to the ChunkWriter (from frame 1 to the end)
w.WriteFrame(r, 1, r->info.video_length);
// Close the reader & writer
w.Close();
r.Close();

Definition at line 81 of file ChunkWriter.h.

Constructor & Destructor Documentation

◆ ChunkWriter()

ChunkWriter::ChunkWriter ( std::string  path,
openshot::ReaderBase reader 
)

Constructor for ChunkWriter. Throws one of the following exceptions.

Parameters
pathThe folder path of the chunk file to be created
readerThe initial reader to base this chunk file's meta data on (such as fps, height, width, etc...)

Definition at line 35 of file ChunkWriter.cpp.

Member Function Documentation

◆ Close()

void ChunkWriter::Close ( )

Close the writer.

Definition at line 225 of file ChunkWriter.cpp.

◆ GetChunkSize()

int64_t openshot::ChunkWriter::GetChunkSize ( )
inline

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

Definition at line 123 of file ChunkWriter.h.

◆ IsOpen()

bool openshot::ChunkWriter::IsOpen ( )
inlinevirtual

Determine if writer is open or closed.

Implements openshot::WriterBase.

Definition at line 126 of file ChunkWriter.h.

◆ Open()

void ChunkWriter::Open ( )
virtual

Open writer.

Implements openshot::WriterBase.

Definition at line 296 of file ChunkWriter.cpp.

Referenced by IsOpen().

◆ SetChunkSize()

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

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

Parameters
new_sizeThe number of frames to write in this chunk file

Definition at line 133 of file ChunkWriter.h.

◆ WriteFrame() [1/3]

void ChunkWriter::WriteFrame ( std::shared_ptr< openshot::Frame frame)
virtual

Add a frame to the stack waiting to be encoded.

Parameters
frameThe openshot::Frame object that needs to be written to this chunk file.

Implements openshot::WriterBase.

Definition at line 80 of file ChunkWriter.cpp.

Referenced by SetChunkSize(), and WriteFrame().

◆ WriteFrame() [2/3]

void ChunkWriter::WriteFrame ( int64_t  start,
int64_t  length 
)

Write a block of frames from a reader.

Parameters
startThe starting frame number to write (of the reader passed into the constructor)
lengthThe number of frames to write (of the reader passed into the constructor)

Definition at line 211 of file ChunkWriter.cpp.

◆ WriteFrame() [3/3]

void ChunkWriter::WriteFrame ( openshot::ReaderBase reader,
int64_t  start,
int64_t  length 
)
virtual

Write a block of frames from a reader.

Parameters
readerThe reader containing the frames you need
startThe starting frame number to write
lengthThe number of frames to write

Implements openshot::WriterBase.

Definition at line 197 of file ChunkWriter.cpp.


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