13 #ifndef OPENSHOT_FRAMEMAPPER_H 14 #define OPENSHOT_FRAMEMAPPER_H 59 Field() : Frame(0), isOdd(true) { };
61 Field(int64_t frame,
bool isodd)
129 float parent_position;
134 void AddField(int64_t frame);
135 void AddField(
Field field);
141 std::shared_ptr<Frame> GetOrCreateFrame(int64_t number);
144 int64_t AdjustFrameNumber(int64_t clip_frame_number);
167 void Close()
override;
170 MappedFrame GetMappedFrame(int64_t TargetFrameNumber);
181 std::shared_ptr<Frame> GetFrame(int64_t requested_frame)
override;
184 bool IsOpen()
override;
187 std::string
Name()
override {
return "FrameMapper"; };
190 std::string Json()
const override;
191 void SetJson(
const std::string value)
override;
192 Json::Value JsonValue()
const override;
193 void SetJsonValue(
const Json::Value root)
override;
196 void Open()
override;
199 void PrintMapping(std::ostream* out=&std::cout);
208 void ResampleMappedAudio(std::shared_ptr<Frame> frame, int64_t original_frame_number);
Classic 2:3:2:3 pull-down.
Header file for Fraction class.
Header file for ReaderBase class.
Header file for OpenMPUtilities (set some common macros)
std::vector< MappedFrame > frames
std::vector< Field > fields
This abstract class is the base class, used by all readers in libopenshot.
Header file for the Keyframe class.
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.
Header file for Frame class.
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...
void Reader(ReaderBase *new_reader)
Set the current reader.
CacheMemory * GetCache() override
Get the cache object used by this reader.
This struct holds two fields which together make up a complete video frame.
std::string Name() override
Return the type name of the class.
This class creates a mapping between 2 different frame rates, applying a specific pull-down technique...
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.
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)