From 2e7b49fb13103a4e9960d53f7df5abe0ec4a2ce4 Mon Sep 17 00:00:00 2001
From: Gabriel Monnerat <gabriel@tiolive.com>
Date: Wed, 23 Feb 2011 21:34:33 +0000
Subject: [PATCH] refactor code to don't create two File objects

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk/utils@43640 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 cloudooo/handler/ffmpeg/handler.py | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/cloudooo/handler/ffmpeg/handler.py b/cloudooo/handler/ffmpeg/handler.py
index 9913d0c..b754baa 100644
--- a/cloudooo/handler/ffmpeg/handler.py
+++ b/cloudooo/handler/ffmpeg/handler.py
@@ -29,6 +29,7 @@
 
 from cloudooo.file import File
 from subprocess import Popen, PIPE
+from tempfile import mktemp
 
 
 class FFMPEGHandler(object):
@@ -51,20 +52,20 @@ class FFMPEGHandler(object):
     # XXX This implementation could use ffmpeg -i pipe:0, but
     # XXX seems super unreliable currently and it generates currupted files in
     # the end
-    output = File(self.base_folder_url, '', destination_format)
+    output_url = mktemp(suffix=".%s" % destination_format,
+                        dir=self.input.directory_name)
+    command = ["ffmpeg",
+               "-i",
+               self.input.getUrl(),
+               "-y",
+               output_url]
     try:
-      command = ["ffmpeg",
-                 "-i",
-                 self.input.getUrl(),
-                 "-y",
-                 output.getUrl()]
       stdout, stderr = Popen(command,
                              stdout=PIPE,
                              stderr=PIPE,
                              close_fds=True,
                              env=self.environment).communicate()
-      output.reload()
-      return output.getContent()
+      self.input.reload(output_url)
+      return self.input.getContent()
     finally:
       self.input.trash()
-      output.trash()
-- 
2.30.9