28 #ifndef OPENSHOT_CLIP_H 29 #define OPENSHOT_CLIP_H 32 #ifndef __JUCE_UNITTEST_JUCEHEADER__ 33 #define __JUCE_UNITTEST_JUCEHEADER__ 38 #include <QtGui/QImage> 39 #include "JuceLibraryCode/JuceHeader.h" 50 #ifdef USE_IMAGEMAGICK 116 list<EffectBase*> effects;
120 AudioSampleBuffer *audio_cache;
127 int64_t adjust_frame_number_minimum(int64_t frame_number);
130 std::shared_ptr<Frame> apply_effects(std::shared_ptr<Frame> frame);
133 string get_file_extension(
string path);
136 std::shared_ptr<Frame> GetOrCreateFrame(int64_t number);
139 std::shared_ptr<Frame> get_time_mapped_frame(std::shared_ptr<Frame> frame, int64_t frame_number);
142 void init_settings();
148 void reverse_buffer(juce::AudioSampleBuffer* buffer);
178 list<EffectBase*>
Effects() {
return effects; };
184 std::shared_ptr<Frame> GetFrame(int64_t requested_frame);
198 void End(
float value) { end = value; }
202 void SetJson(
string value);
203 Json::Value JsonValue();
204 void SetJsonValue(Json::Value root);
208 string PropertiesJSON(int64_t requested_frame);
Keyframe perspective_c3_x
Curves representing X for coordinate 3.
Header file for Fraction class.
Keyframe scale_y
Curve representing the vertical scaling in percent (0 to 1)
Keyframe perspective_c4_x
Curves representing X for coordinate 4.
Header file for ClipBase class.
This abstract class is the base class, used by all effects in libopenshot.
Keyframe perspective_c1_x
Curves representing X for coordinate 1.
Keyframe perspective_c2_x
Curves representing X for coordinate 2.
Keyframe crop_x
Curve representing X offset in percent (-1.0=-100%, 0.0=0%, 1.0=100%)
Header file for DummyReader class.
Keyframe perspective_c3_y
Curves representing Y for coordinate 3.
Header file for ReaderBase class.
GravityType gravity
The gravity of a clip determines where it snaps to it's parent.
Keyframe volume
Curve representing the volume (0 to 1)
This header includes all commonly used effects for libopenshot, for ease-of-use.
Header file for FFmpegReader class.
bool operator()(EffectBase *lhs, EffectBase *rhs)
Keyframe time
Curve representing the frames over time to play (used for speed and direction of video) ...
ScaleType
This enumeration determines how clips are scaled to fit their parent container.
This abstract class is the base class, used by all readers in libopenshot.
int Layer()
Get layer of clip on timeline (lower number is covered by higher numbers)
Keyframe has_audio
Override has_video and has_audio properties of clip (and their readers)
Header file for the Keyframe class.
Keyframe has_video
An optional override to determine if this clip has video (-1=undefined, 0=no, 1=yes) ...
Color wave_color
Curve representing the color of the audio wave form.
Keyframe crop_width
Curve representing width in percent (0.0=0%, 1.0=100%)
Keyframe location_x
Curve representing the relative X position in percent based on the gravity (-1 to 1) ...
Keyframe location_y
Curve representing the relative Y position in percent based on the gravity (-1 to 1) ...
This class represents a clip (used to arrange readers on the timeline)
Keyframe perspective_c1_y
Curves representing Y for coordinate 1.
Keyframe crop_y
Curve representing Y offset in percent (-1.0=-100%, 0.0=0%, 1.0=100%)
Keyframe shear_x
Curve representing X shear angle in degrees (-45.0=left, 45.0=right)
bool Waveform()
Waveform property.
ScaleType scale
The scale determines how a clip should be resized to fit it's parent.
Header file for ChunkReader class.
Header file for AudioResampler class.
FrameDisplayType
This enumeration determines the display format of the clip's frame number (if any). Useful for debugging.
Keyframe channel_filter
Audio channel filter and mappings.
Header file for TextReader class.
float Position()
Get position on timeline (in seconds)
list< EffectBase * > Effects()
Return the list of effects on the timeline.
FrameDisplayType display
The format to display the frame number (if any)
Header file for the FrameMapper class.
Keyframe channel_mapping
A number representing an audio channel to output (only works when filtering a channel) ...
void End(float value)
Set end position (in seconds) of clip (trim end of video)
This abstract class is the base class, used by all clips in libopenshot.
Keyframe rotation
Curve representing the rotation (0 to 360)
Header file for Color class.
Keyframe shear_y
Curve representing Y shear angle in degrees (-45.0=down, 45.0=up)
AnchorType
This enumeration determines what parent a clip should be aligned to.
This class represents a color (used on the timeline and clips)
Header file for TextReader class.
GravityType crop_gravity
Cropping needs to have a gravity to determine what side we are cropping.
This namespace is the default namespace for all code in the openshot library.
Header file for EffectBase class.
AnchorType anchor
The anchor determines what parent a clip should snap to.
Keyframe alpha
Curve representing the alpha (1 to 0)
Header file for QtImageReader class.
Keyframe scale_x
Curve representing the horizontal scaling in percent (0 to 1)
Keyframe perspective_c2_y
Curves representing Y for coordinate 2.
CriticalSection getFrameCriticalSection
Section lock for multiple threads.
Header file for ImageReader class.
Header file for the EffectInfo class.
A Keyframe is a collection of Point instances, which is used to vary a number or property over time...
void Waveform(bool value)
Set the waveform property of this clip.
Keyframe perspective_c4_y
Curves representing Y for coordinate 4.
int Order()
Get the order that this effect should be executed.
GravityType
This enumeration determines how clips are aligned to their parent container.
This class is used to resample audio data for many sequential frames.
Keyframe crop_height
Curve representing height in percent (0.0=0%, 1.0=100%)