28 #ifndef OPENSHOT_FRAMEMAPPER_H 29 #define OPENSHOT_FRAMEMAPPER_H 37 #include "../include/ReaderBase.h" 38 #include "../include/Frame.h" 39 #include "../include/Fraction.h" 40 #include "../include/Exceptions.h" 41 #include "../include/KeyFrame.h" 78 Field() : Frame(0), isOdd(true) { };
80 Field(
long int frame,
bool isodd)
149 AVAudioResampleContext *avr;
150 long int timeline_frame_offset;
153 void AddField(
long int frame);
154 void AddField(
Field field);
157 std::shared_ptr<Frame> GetOrCreateFrame(
long int number);
180 void SetTimelineFrameOffset(
long int offset);
197 std::shared_ptr<Frame> GetFrame(
long int requested_frame)
throw(
ReaderClosed);
203 string Name() {
return "FrameMapper"; };
208 Json::Value JsonValue();
209 void SetJsonValue(Json::Value root)
throw(
InvalidFile);
221 void ResampleMappedAudio(std::shared_ptr<Frame> frame,
long int original_frame_number);
Classic 2:3:2:3 pull-down.
Field(long int frame, bool isodd)
vector< MappedFrame > frames
Header file for OpenMPUtilities (set some common macros)
This abstract class is the base class, used by all readers in libopenshot.
Exception when a reader is closed, and a frame is requested.
This struct holds a single field (half a frame).
Header file for CacheMemory class.
This struct holds a the range of samples needed by this frame.
Exception for files that can not be found or opened.
This class represents a fraction.
ChannelLayout
This enumeration determines the audio channel layout (such as stereo, mono, 5 point surround...
This struct holds two fields which together make up a complete video frame.
Exception for frames that are out of bounds.
This class creates a mapping between 2 different frame rates, applying a specific pull-down technique...
CacheMemory * GetCache()
Get the cache object used by this reader.
This namespace is the default namespace for all code in the openshot library.
Do not apply pull-down techniques, just repeat or skip entire frames.
Exception for invalid JSON.
string Name()
Return the type name of the class.
PulldownType
This enumeration determines how frame rates are increased or decreased.
Header file for FFmpegUtilities.
This class is a memory-based cache manager for Frame objects.
Advanced 2:3:3:2 pull-down (minimal dirty frames)