]> source.dussan.org Git - nextcloud-server.git/commitdiff
implement movie previews
authorGeorg Ehrke <georg@ownCloud.com>
Fri, 17 May 2013 13:06:37 +0000 (15:06 +0200)
committerGeorg Ehrke <georg@ownCloud.com>
Fri, 17 May 2013 13:06:37 +0000 (15:06 +0200)
lib/preview/movies.php

index 1f0ceb3ace3df8ac3b577fc0549f3965929a1d05..868755a1205b196bd90d89ef0cacba5cef89ea38 100644 (file)
@@ -7,7 +7,6 @@
  * See the COPYING-README file.
  */
 if(!is_null(shell_exec('ffmpeg -version'))){
-
        class OC_Preview_Movie extends OC_Preview_Provider{
 
                public function getMimeType(){
@@ -15,28 +14,18 @@ if(!is_null(shell_exec('ffmpeg -version'))){
                }
                
                public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) {
-                               $thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER);
-
-                               // is a preview already in the cache?
-                               if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) {
-                                               return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup));
-                               }
-
-                               // does the sourcefile exist?
-                               if (!\OC_Filesystem::file_exists($path)) {
-                                               \OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN);
-                                               return false;
-                               }
-
-                               // call ffmpeg to do the screenshot
-                               shell_exec('ffmpeg -y  -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}');
-
-                               // output the generated Preview
-                               $thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup);
-                               unset($thumbnails_view);
+                       $abspath = $fileview->getLocalfile($path);
+                       
+                       $tmppath = OC_Helper::tmpFile();
+                       
+                       $cmd = 'ffmpeg -y  -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath;
+                       shell_exec($cmd);
+                       
+                       $image = new \OC_Image($tmppath);
+                       if (!$image->valid()) return false;
+                       
+                       return $image;
                }
-
        }
-
        OC_Preview::registerProvider('OC_Preview_Movie');
 }
\ No newline at end of file