diff --git a/src/ImageReader.cpp b/src/ImageReader.cpp
index 1c2276a0..89176b3d 100644
--- a/src/ImageReader.cpp
+++ b/src/ImageReader.cpp
@@ -88,6 +88,7 @@ tr1::shared_ptr ImageReader::GetFrame(int requested_frame) throw(ReaderCl
// Add Image data to frame
tr1::shared_ptr copy_image(new Magick::Image(*image.get()));
+ copy_image->modifyImage(); // actually copy the image data to this object
image_frame->AddImage(copy_image);
// return frame object
diff --git a/src/Main.cpp b/src/Main.cpp
index 3027f9c4..172c325a 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -31,21 +31,28 @@ int main()
Timeline t(640, 360, Framerate(24,1), 44100, 2);
// Add some clips
- Clip c1(new FFmpegReader("/home/jonathan/Videos/sintel_trailer-720p.mp4"));
+ Clip c1(new FFmpegReader("/home/jonathan/Videos/sintel-1024-stereo.mp4"));
Clip c2(new ImageReader("/home/jonathan/Desktop/logo1.png"));
- //Clip c2(new ImageReader("/home/jonathan/Desktop/icon.png"));
+ Clip c3(new ImageReader("/home/jonathan/Desktop/icon.png"));
//Clip c3(new FFmpegReader("/home/jonathan/Desktop/IncognitoCory_-_April_Song.mp3"));
c1.Position(0.0);
c1.gravity = GRAVITY_CENTER;
- c1.scale = SCALE_CROP;
+ c1.scale = SCALE_FIT;
c1.End(20);
c2.Position(0.0);
- c2.Layer(1);
+ c2.Layer(2);
c2.gravity = GRAVITY_LEFT;
c2.scale = SCALE_NONE;
c2.End(20);
+ c3.Layer(1);
+ c3.End(20);
+ c3.location_x.AddPoint(1, 0);
+ c3.location_x.AddPoint(300, 1.0);
+ c3.gravity = GRAVITY_LEFT;
+ c3.scale = SCALE_NONE;
+
c2.rotation.AddPoint(1, 1);
c2.rotation.AddPoint(300, 360);
@@ -65,9 +72,9 @@ int main()
//c1.alpha.AddPoint(30, 0);
c2.alpha.AddPoint(1, 0);
+ c2.alpha.AddPoint(100, 1);
+ c2.alpha.AddPoint(200, 0);
c2.alpha.AddPoint(300, 1);
- //c2.alpha.AddPoint(100, 0, LINEAR);
- //c2.alpha.AddPoint(150, 1);
c2.location_x.AddPoint(1, 0);
c2.location_x.AddPoint(300, 1.0);
@@ -125,7 +132,7 @@ int main()
// Add clips
t.AddClip(&c1);
t.AddClip(&c2);
- //t.AddClip(&c3);
+ t.AddClip(&c3);
// Create a writer
diff --git a/src/Timeline.cpp b/src/Timeline.cpp
index 1e34347d..d333b9b4 100644
--- a/src/Timeline.cpp
+++ b/src/Timeline.cpp
@@ -65,10 +65,8 @@ void Timeline::add_layer(tr1::shared_ptr new_frame, Clip* source_clip, in
/* ALPHA & OPACITY */
if (source_clip->alpha.GetValue(clip_frame_number) != 0)
{
- // Calculate & set opacity of new image
- int new_opacity = 65535.0f * source_clip->alpha.GetValue(clip_frame_number);
- if (new_opacity < 0) new_opacity = 0; // completely invisible
- //source_image->opacity(new_opacity);
+ float alpha = 1.0 - source_clip->alpha.GetValue(clip_frame_number);
+ source_image->quantumOperator(Magick::OpacityChannel, Magick::MultiplyEvaluateOperator, alpha);
}
/* RESIZE SOURCE IMAGE - based on scale type */
@@ -253,7 +251,7 @@ tr1::shared_ptr Timeline::GetFrame(int requested_frame) throw(ReaderClose
// Loop through all requested frames
for (int frame_number = requested_frame; frame_number < requested_frame + minimum_frames; frame_number++)
{
- #pragma xxx omp task firstprivate(frame_number)
+ #pragma omp task firstprivate(frame_number)
{
// Create blank frame (which will become the requested frame)
tr1::shared_ptr new_frame(tr1::shared_ptr(new Frame(frame_number, width, height, "#000000", GetSamplesPerFrame(frame_number), channels)));