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;
152 void AddField(int64_t frame);
153 void AddField(
Field field);
156 std::shared_ptr<Frame> GetOrCreateFrame(int64_t number);
182 MappedFrame GetMappedFrame(int64_t TargetFrameNumber);
193 std::shared_ptr<Frame> GetFrame(int64_t requested_frame);
199 string Name() {
return "FrameMapper"; };
203 void SetJson(
string value);
204 Json::Value JsonValue();
205 void SetJsonValue(Json::Value root);
217 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)