| 
    OpenShot Library | libopenshot
    0.4.0
    
   | 
 
 
 
 
Go to the documentation of this file.
   23     init_effect_details();
 
   27 void Delay::init_effect_details()
 
   35     info.
description = 
"Adjust the synchronism between the audio and video track.";
 
   45         const float max_delay_time = 5;
 
   61 std::shared_ptr<openshot::Frame> 
Delay::GetFrame(std::shared_ptr<openshot::Frame> frame, int64_t frame_number)
 
   63     const float delay_time_value = (float)
delay_time.
GetValue(frame_number)*(float)frame->SampleRate();
 
   64     int local_write_position;
 
   68     for (
int channel = 0; channel < frame->audio->getNumChannels(); channel++)
 
   70         float *channel_data = frame->audio->getWritePointer(channel);
 
   71         float *delay_data = 
delay_buffer.getWritePointer(channel);
 
   74         for (
auto sample = 0; sample < frame->audio->getNumSamples(); ++sample)
 
   76             const float in = (float)(channel_data[sample]);
 
   80             int local_read_position = floorf(read_position);
 
   82             if (local_read_position != local_write_position)
 
   84                 float fraction = read_position - (float)local_read_position;
 
   85                 float delayed1 = delay_data[(local_read_position + 0)];
 
   87                 out = (float)(delayed1 + fraction * (delayed2 - delayed1));
 
   89                 channel_data[sample] = in + (out - in);
 
   90                 delay_data[local_write_position] = in;
 
  133     catch (
const std::exception& e)
 
  136         throw InvalidJSON(
"JSON is invalid (missing keys or invalid data types)");
 
  147     if (!root[
"delay_time"].isNull())
 
  161     return root.toStyledString();
 
  
Json::Value add_property_json(std::string name, float value, std::string type, std::string memo, const Keyframe *keyframe, float min_value, float max_value, bool readonly, int64_t requested_frame) const
Generate JSON for a property.
 
const Json::Value stringToJson(const std::string value)
 
void setup(std::shared_ptr< openshot::Frame > frame)
 
EffectInfoStruct info
Information about the current effect.
 
Delay()
Default constructor.
 
This namespace is the default namespace for all code in the openshot library.
 
This class adds a delay into the audio.
 
virtual Json::Value JsonValue() const
Generate Json::Value for this object.
 
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
 
std::shared_ptr< openshot::Frame > GetFrame(int64_t frame_number) override
This method is required for all derived classes of ClipBase, and returns a new openshot::Frame object...
 
Json::Value JsonValue() const
Generate Json::Value for this object.
 
std::string Json() const override
Generate JSON string of this object.
 
Json::Value BasePropertiesJSON(int64_t requested_frame) const
Generate JSON object of base properties (recommended to be used by all effects)
 
void SetJson(const std::string value) override
Load JSON string into this object.
 
A Keyframe is a collection of Point instances, which is used to vary a number or property over time.
 
Json::Value JsonValue() const override
Generate Json::Value for this object.
 
Exception for invalid JSON.
 
std::string PropertiesJSON(int64_t requested_frame) const override
 
bool has_audio
Determines if this effect manipulates the audio of a frame.
 
Header file for Delay audio effect class.
 
Header file for Frame class.
 
juce::AudioBuffer< float > delay_buffer
 
std::string class_name
The class name of the effect.
 
std::string description
The description of this effect and what it does.
 
bool has_video
Determines if this effect manipulates the image of a frame.
 
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
 
std::string name
The name of the effect.
 
Header file for all Exception classes.
 
int delay_buffer_channels
 
virtual void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
 
double GetValue(int64_t index) const
Get the value at a specific index.