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(int64_t frame,
bool isodd)
149 AVAudioResampleContext *avr;
150 int64_t timeline_frame_offset;
153 void AddField(int64_t frame);
154 void AddField(
Field field);
157 std::shared_ptr<Frame> GetOrCreateFrame(int64_t number);
180 void SetTimelineFrameOffset(int64_t offset);
186 MappedFrame GetMappedFrame(int64_t TargetFrameNumber);
197 std::shared_ptr<Frame> GetFrame(int64_t requested_frame);
203 string Name() {
return "FrameMapper"; };
207 void SetJson(
string value);
208 Json::Value JsonValue();
209 void SetJsonValue(Json::Value root);
221 void ResampleMappedAudio(std::shared_ptr<Frame> frame, int64_t original_frame_number);
Classic 2:3:2:3 pull-down.
vector< MappedFrame > frames
Header file for OpenMPUtilities (set some common macros)
This abstract class is the base class, used by all readers in libopenshot.
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.
Field(int64_t frame, bool isodd)
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.
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.
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)