[Erp5-report] r43481 priscila.manhaes - in /erp5/trunk/utils/cloudooo/cloudooo/handler/ffmp...

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Feb 18 21:04:55 CET 2011


Author: priscila.manhaes
Date: Fri Feb 18 21:04:54 2011
New Revision: 43481

URL: http://svn.erp5.org?rev=43481&view=rev
Log:
This still early draft but it attempt to handler converted videos

Added:
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp   (with props)
    erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py

Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py?rev=43481&view=auto
==============================================================================
    (empty)

Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py?rev=43481&view=auto
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py (added)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py [utf8] Fri Feb 18 21:04:54 2011
@@ -0,0 +1,66 @@
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+#                    Priscila Manhaes  <psilva at iff.edu.br>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+
+from zope.interface import implements
+from cloudooo.interfaces.handler import IHandler
+from cloudooo.file import File
+from subprocess import Popen,PIPE
+
+
+class FFMPEGHandler(object):
+  """FFMPEGHandler is used to handler inputed video files"""
+
+  implements(IHandler)
+
+  def __init__(self, base_folder_url, data, source_format,**kw):
+    """
+    base_folder_url(string)
+      The requested url for data base folder
+    data(string)
+      The opened and readed video into a string
+    source_format(string)
+      The source format of the inputed video"""
+    self.base_folder_url = base_folder_url
+    self.input = File(base_folder_url, data, source_format)
+    self.ffmpeg_bin = "/usr/bin/ffmpeg"
+
+  def convert(self, destination_format, **kw):
+    """ Convert the inputed video to output as format that were informed """
+    # 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)
+    try:
+      command = [self.ffmpeg_bin, "-i",self.input.getUrl(), "-y", output.getUrl()]
+      stdout, stderr = Popen(command, stdout=PIPE,
+                              stderr=PIPE, close_fds=True).communicate()
+      output.reload()
+      return output.getContent()
+    finally:
+      self.input.trash()
+      output.trash()

Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py?rev=43481&view=auto
==============================================================================
    (empty)

Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp?rev=43481&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py?rev=43481&view=auto
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py (added)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py [utf8] Fri Feb 18 21:04:54 2011
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+#                    Priscila Manhães  <psilva at iff.edu.br>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+import unittest 
+import md5
+from cloudooo.handler.ffmpeg.handler import FFMPEGHandler
+
+
+class TestFFMPEGHandler(unittest.TestCase):
+
+  def testConvertVideo(self):
+    """Test coversion of diferents formats of video"""
+    input_data = FFMPEGHandler("tests/data", open("tests/data/test.3gp").read())
+    hash_input = input_data.digest()
+    output_data = handler.convert("ogv")
+    hash_output = output_data.digest()
+    self.assertTrue(hash_input == hash_output)
+
+
+def test_suite():
+  suite = unittest.TestSuite()
+  suite.addTest(unittest.makeSuite(TestFFMPEGHandler))
+  return suite



More information about the Erp5-report mailing list