[longomatch] Enable support for rendering drawings in exported clips again
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Enable support for rendering drawings in exported clips again
- Date: Mon, 7 Jul 2014 11:33:05 +0000 (UTC)
commit 94780bbd0745b7435baf0ed3ed61aed6512007f1
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Mon Jun 30 20:21:24 2014 +0200
Enable support for rendering drawings in exported clips again
LongoMatch.Drawing/Widgets/Blackboard.cs | 10 +---
LongoMatch.Services/LongoMatch.Services.mdp | 1 +
.../Services/RenderingJobsManager.cs | 46 +++++++------------
3 files changed, 21 insertions(+), 36 deletions(-)
---
diff --git a/LongoMatch.Drawing/Widgets/Blackboard.cs b/LongoMatch.Drawing/Widgets/Blackboard.cs
index 2347e2b..ab329cf 100644
--- a/LongoMatch.Drawing/Widgets/Blackboard.cs
+++ b/LongoMatch.Drawing/Widgets/Blackboard.cs
@@ -144,13 +144,9 @@ namespace LongoMatch.Drawing.Widgets
}
ICanvasSelectableObject Add (IBlackboardObject drawable) {
- string objecttype = String.Format ("LongoMatch.Drawing.CanvasObject.{0}Object",
- drawable.GetType().ToString().Split('.').Last());
- ObjectHandle handle = Activator.CreateInstance(null, objecttype);
- ICanvasDrawableObject d = (ICanvasDrawableObject) handle.Unwrap();
- d.IDrawableObject = drawable;
- Objects.Add (d);
- return d;
+ ICanvasSelectableObject cso = Utils.CanvasFromDrawableObject (drawable);
+ Objects.Add (cso);
+ return cso;
}
protected override void StartMove (Selection sel)
diff --git a/LongoMatch.Services/LongoMatch.Services.mdp b/LongoMatch.Services/LongoMatch.Services.mdp
index 1027439..10fae6b 100644
--- a/LongoMatch.Services/LongoMatch.Services.mdp
+++ b/LongoMatch.Services/LongoMatch.Services.mdp
@@ -37,5 +37,6 @@
<ProjectReference type="Package" localcopy="True" refto="gtk-sharp, Version=2.12.0.0, Culture=neutral,
PublicKeyToken=35e10195dab3c99f" />
<ProjectReference type="Package" specificVersion="False" localcopy="False" refto="System.Core,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ProjectReference type="Package" localcopy="False" refto="gdk-sharp, Version=2.12.0.0, Culture=neutral,
PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Project" localcopy="True" refto="LongoMatch.Drawing" />
</References>
</Project>
\ No newline at end of file
diff --git a/LongoMatch.Services/Services/RenderingJobsManager.cs
b/LongoMatch.Services/Services/RenderingJobsManager.cs
index fb7e02e..d2033fa 100644
--- a/LongoMatch.Services/Services/RenderingJobsManager.cs
+++ b/LongoMatch.Services/Services/RenderingJobsManager.cs
@@ -183,38 +183,26 @@ namespace LongoMatch.Services
}
private bool ProcessSegment(PlayListPlay segment) {
+ Time lastTS;
+
if(!segment.Valid)
return false;
Log.Debug(String.Format("Adding segment with {0} drawings", segment.Drawings.Count));
- if (segment.Drawings.Count >= 1) {
- FrameDrawing drawing = segment.Drawings[0];
- string image_path = CreateStillImage(segment.MediaFile.FilePath, drawing);
-
- videoEditor.AddSegment(segment.MediaFile.FilePath,
- segment.Start.MSeconds,
- drawing.Render.MSeconds - segment.Start.MSeconds,
- segment.Rate,
- segment.Name,
- segment.MediaFile.HasAudio);
- videoEditor.AddImageSegment(image_path,
- drawing.Render.MSeconds,
- drawing.Pause.MSeconds,
- segment.Name);
- videoEditor.AddSegment(segment.MediaFile.FilePath,
- drawing.Render.MSeconds,
- segment.Stop.MSeconds - drawing.Render.MSeconds,
- segment.Rate,
- segment.Name,
- segment.MediaFile.HasAudio);
- } else {
- videoEditor.AddSegment(segment.MediaFile.FilePath,
- segment.Start.MSeconds,
- segment.Duration.MSeconds,
- segment.Rate,
- segment.Name,
- segment.MediaFile.HasAudio);
+
+ lastTS = segment.Start;
+ foreach (FrameDrawing fd in segment.Drawings) {
+ string image_path = CreateStillImage (segment.MediaFile.FilePath, fd);
+ videoEditor.AddSegment(segment.MediaFile.FilePath, lastTS.MSeconds,
+ fd.Render.MSeconds - lastTS.MSeconds,
+ segment.Rate, segment.Name,
segment.MediaFile.HasAudio);
+ videoEditor.AddImageSegment(image_path, fd.Render.MSeconds,
+ fd.Pause.MSeconds, segment.Name);
+ lastTS = fd.Render;
}
+ videoEditor.AddSegment(segment.MediaFile.FilePath, lastTS.MSeconds,
+ segment.Stop.MSeconds - lastTS.MSeconds,
+ segment.Rate, segment.Name, segment.MediaFile.HasAudio);
return true;
}
@@ -225,8 +213,8 @@ namespace LongoMatch.Services
capturer.Open(filename);
capturer.Seek (drawing.Render, true);
frame = capturer.GetCurrentFrame();
- //final_image = Image.Composite(frame, drawing.Pixbuf);
- //final_image.Save(path);
+ final_image = Drawing.Utils.RenderFrameDrawingToImage (Config.DrawingToolkit, frame,
drawing);
+ final_image.Save(path);
return path;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]