[Erp5-report] r43640 gabriel - /erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Feb 23 22:34:33 CET 2011


Author: gabriel
Date: Wed Feb 23 22:34:33 2011
New Revision: 43640

URL: http://svn.erp5.org?rev=43640&view=rev
Log:
refactor code to don't create two File objects

Modified:
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py

Modified: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py?rev=43640&r1=43639&r2=43640&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py [utf8] Wed Feb 23 22:34:33 2011
@@ -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()



More information about the Erp5-report mailing list