openshot::FFmpegReader Class Reference

This class uses the FFmpeg libraries, to open video files and audio files, and return openshot::Frame objects for any frame in the file. More...

`#include <FFmpegReader.h>`

Inheritance diagram for openshot::FFmpegReader:

## Public Member Functions

void | Close ()
| Close File. More...
| FFmpegReader (string path)
| FFmpegReader (string path, bool inspect_reader)
CacheMemory * | GetCache ()
| Get the cache object used by this reader. More...
std::shared_ptr< Frame > | GetFrame (int64_t requested_frame)
bool | IsOpen ()
| Determine if reader is open or closed. More...
string | Json ()
| Get and Set JSON methods. More...
Json::Value | JsonValue ()
| Generate Json::JsonValue for this object. More...
string | Name ()
| Return the type name of the class. More...
void | Open ()
| Open File - which is called by the constructor automatically. More...
void | SetJson (string value)
| Load JSON string into this object. More...
void | SetJsonValue (Json::Value root)
| Load Json::JsonValue into this object. More...
| ~FFmpegReader ()
| Destructor. More...
Public Member Functions inherited from openshot::ReaderBase
void | DisplayInfo ()
| Display file information in the standard output stream (stdout) More...
| ReaderBase ()
| Constructor for the base reader, where many things are initialized. More...
void | SetMaxSize (int width, int height)
| Set Max Image Size (used for performance optimization) More...

## Public Attributes

bool | enable_seek
CacheMemory | final_cache
| Final cache object used to hold final frames. More...
Public Attributes inherited from openshot::ReaderBase
ReaderInfo | info
| Information about the current media file. More...

## Additional Inherited Members

Protected Attributes inherited from openshot::ReaderBase
CriticalSection | getFrameCriticalSection
| Section lock for multiple threads. More...
int | max_height
| The maximium image height needed by this clip (used for optimizations) More...
int | max_width
| The maximum image width needed by this clip (used for optimizations) More...
CriticalSection | processingCriticalSection

## Detailed Description

This class uses the FFmpeg libraries, to open video files and audio files, and return openshot::Frame objects for any frame in the file.

All seeking and caching is handled internally, and the primary public interface is the GetFrame() method. To use this reader, simply create an instance of this class, and call the GetFrame method to start retrieving frames. Use the info struct to obtain information on the file, such as the length (# of frames), height, width, bit rate, frames per second (fps), etc...

// Create a reader for a video
FFmpegReader r("MyAwesomeVideo.webm");
r.Open(); // Open the reader
// Get frame number 1 from the video
std::shared_ptr<Frame> f = r.GetFrame(1);
// Now that we have an openshot::Frame object, lets have some fun!
f->Display(); // Display the frame on the screen
f->DisplayWaveform(); // Display the audio waveform as an image
f->Play(); // Play the audio through your speaker
// Close the reader
r.Close();

Definition at line 92 of file FFmpegReader.h.

## Constructor & Destructor Documentation

## FFmpegReader() [1/2]

FFmpegReader::FFmpegReader | ( | string | path | ) |

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

Definition at line 35 of file FFmpegReader.cpp.

## FFmpegReader() [2/2]

FFmpegReader::FFmpegReader | ( | string | path,
|  | bool | inspect_reader
| ) |  |

Constructor for FFmpegReader. This only opens the media file to inspect it's properties if inspect_reader=true. When not inspecting the media file, it's much faster, and useful when you are inflating the object using JSON after instantiating it.

Definition at line 57 of file FFmpegReader.cpp.

## ~FFmpegReader()

FFmpegReader::~FFmpegReader | ( |  | ) |

Destructor.

Definition at line 81 of file FFmpegReader.cpp.

## Member Function Documentation

## Close()

void FFmpegReader::Close | ( |  | ) |

virtual

Close File.

Implements openshot::ReaderBase.

Definition at line 240 of file FFmpegReader.cpp.

## GetCache()

CacheMemory* openshot::FFmpegReader::GetCache | ( |  | ) |

inline virtual

Get the cache object used by this reader.

Implements openshot::ReaderBase.

Definition at line 242 of file FFmpegReader.h.

## GetFrame()

std::shared_ptr< Frame > FFmpegReader::GetFrame | ( | int64_t | requested_frame | ) |

virtual

Get a shared pointer to a openshot::Frame object for a specific frame number of this reader.

Returns
  The requested frame of video

Parameters

  requested_frame | The frame number that is requested.

Implements openshot::ReaderBase.

Definition at line 446 of file FFmpegReader.cpp.

## IsOpen()

bool openshot::FFmpegReader::IsOpen | ( |  | ) |

inline virtual

Determine if reader is open or closed.

Implements openshot::ReaderBase.

Definition at line 251 of file FFmpegReader.h.

## Json()

string FFmpegReader::Json | ( |  | ) |

virtual

Get and Set JSON methods.

Generate JSON string of this object

Implements openshot::ReaderBase.

Definition at line 2024 of file FFmpegReader.cpp.

## JsonValue()

Json::Value FFmpegReader::JsonValue | ( |  | ) |

virtual

Generate Json::JsonValue for this object.

Implements openshot::ReaderBase.

Definition at line 2031 of file FFmpegReader.cpp.

## Name()

string openshot::FFmpegReader::Name | ( |  | ) |

inline virtual

Return the type name of the class.

Implements openshot::ReaderBase.

Definition at line 254 of file FFmpegReader.h.

## Open()

void FFmpegReader::Open | ( |  | ) |

virtual

Open File - which is called by the constructor automatically.

Implements openshot::ReaderBase.

Definition at line 106 of file FFmpegReader.cpp.

## SetJson()

void FFmpegReader::SetJson | ( | string | value | ) |

virtual

Load JSON string into this object.

Implements openshot::ReaderBase.

Definition at line 2043 of file FFmpegReader.cpp.

## SetJsonValue()

void FFmpegReader::SetJsonValue | ( | Json::Value | root | ) |

virtual

Load Json::JsonValue into this object.

Implements openshot::ReaderBase.

Definition at line 2066 of file FFmpegReader.cpp.

## Member Data Documentation

## enable_seek

bool openshot::FFmpegReader::enable_seek

Enable or disable seeking. Seeking can more quickly locate the requested frame, but some codecs have trouble seeking, and can introduce artifacts or blank images into the video.

Definition at line 224 of file FFmpegReader.h.

## final_cache

CacheMemory openshot::FFmpegReader::final_cache

Final cache object used to hold final frames.

Definition at line 220 of file FFmpegReader.h.

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

- FFmpegReader.h
- FFmpegReader.cpp

openshot::FFmpegReader::FFmpegReader
FFmpegReader(string path)
Definition: FFmpegReader.cpp:35