a simple MediaInfo API implemented as a helper in CodeIgniter useful for verifying...
authorCalin-Andrei Burloiu <calin.burloiu@gmail.com>
Fri, 11 Nov 2011 15:00:57 +0000 (17:00 +0200)
committerCalin-Andrei Burloiu <calin.burloiu@gmail.com>
Fri, 11 Nov 2011 15:00:57 +0000 (17:00 +0200)
.gitignore
application/controllers/catalog.php
application/helpers/av_info_helper.php [new file with mode: 0644]
application/models/users_model.php
nbproject/private/private.properties
scripts/sync_devel.sh [moved from scripts/sync.sh with 100% similarity]
scripts/sync_prod.sh [new file with mode: 0755]

index d06e4c1..b7df4ee 100644 (file)
@@ -32,3 +32,4 @@ application/logs/*.php
 data/thumbs/*
 data/torrents/*
 data/user_pictures/*
+data/media/*
index da3548a..31bdc51 100644 (file)
@@ -71,13 +71,9 @@ class Catalog extends CI_Controller {
 
        public function test()
        {
-               $data['email'] = 'CA-LăIN$*(_3@GMAIL.COM';
-               $data['email'] = strtolower($data['email']);
-               $data['username'] = substr($data['email'],
-                               0, strpos($data['email'], '@'));
-               $data['username'] = preg_replace(array('/[^a-z0-9\._]*/'),
-                               array(''), $data['username']);
-               echo $data['username'];
+               $this->load->helper('av_info');
+               
+               var_dump(get_video_dar('./data/media/test.ogv'));
        }
 
        public function category($category_name, $ordering = 'hottest', $offset = 0)
diff --git a/application/helpers/av_info_helper.php b/application/helpers/av_info_helper.php
new file mode 100644 (file)
index 0000000..013dab3
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * These functions retrieve information about audio and video files.
+ * Depends on MediaInfo CLI program (http://mediainfo.sourceforge.net/)
+ * 
+ * @author Călin-Andrei Burloiu
+ */
+
+/**
+ *
+ * @param string $params mediainfo parameters, including the input file name
+ * passed as in shell
+ * @return string mediainfo standard output
+ */
+function exec_mediainfo($params)
+{
+       // If file does not exist it exists with code 1. If file is not a valid
+       // audio/video file it exists with code 0 and outputs nothing.
+       $h = popen('mediainfo ' . $params . ' 2>&1', 'r');
+
+       $r = fgets($h, 512);
+       $r = trim($r);
+       
+       if (pclose($h) > 0 || empty($r))
+               return FALSE;
+       
+       return $r;
+}
+
+/**
+ * Returns duration in hours, minutes and seconds for an audio/video file.
+ *
+ * @param string $file_name 
+ * @return array an associative array with keys 'h', 'min', 's'
+ */
+function get_av_duration($file_name)
+{
+       $output = exec_mediainfo(
+                       '--Inform="General;%Duration/String3%" "'. $file_name. '"');
+       
+       if (!$output)
+               return FALSE;
+       
+       $toks = explode(':', $output);
+       $res['h'] = intval($toks[0]);
+       $res['min'] = intval($toks[1]);
+       $res['s'] = floatval($toks[2]);
+       
+       return $res;
+}
+
+/**
+ * Returns video width size in pixels.
+ * 
+ * @param string $file_name
+ * @return int
+ */
+function get_video_width($file_name)
+{
+       $output = exec_mediainfo(
+                       '--Inform="Video;%Width%" "'. $file_name. '"');
+       
+       if (!$output)
+               return FALSE;
+       
+       return intval($output);
+}
+
+/**
+ * Returns video height size in pixels.
+ * 
+ * @param string $file_name
+ * @return int
+ */
+function get_video_height($file_name)
+{
+       $output = exec_mediainfo(
+                       '--Inform="Video;%Height%" "'. $file_name. '"');
+       
+       if (!$output)
+               return FALSE;
+       
+       return intval($output);
+}
+
+/**
+ * Returns Display Aspect Ration (DAR) of a video.
+ * 
+ * @param string $file_name
+ * @return string a ratio represented a two integers separated by a colon
+ */
+function get_video_dar($file_name)
+{
+       $output = exec_mediainfo(
+                       '--Inform="Video;%DisplayAspectRatio/String%" "'. $file_name. '"');
+       
+       if (!$output)
+               return FALSE;
+       
+       return $output;
+}
+
+/* End of file av_info_helper.php */
+/* Location: ./application/helpers/av_info_helper.php */
\ No newline at end of file
index 85ad649..30e18d7 100644 (file)
@@ -4,7 +4,7 @@
  * Class Users_model models user information from DB
  * 
  * @category   Model
- * @author             calinburloiu
+ * @author             Călin-Andrei Burloiu
  *
  */
 class Users_model extends CI_Model {
index d3cda86..104ba6a 100644 (file)
@@ -1,5 +1,6 @@
 copy.src.files=false
 copy.src.target=/var/www/P2P-Tube
+getter.setter.method.name.generation=AS_JAVA
 index.file=index.php
 run.as=LOCAL
 url=http://localhost/devel/
similarity index 100%
rename from scripts/sync.sh
rename to scripts/sync_devel.sh
diff --git a/scripts/sync_prod.sh b/scripts/sync_prod.sh
new file mode 100755 (executable)
index 0000000..a3151a6
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+rsync -avz ../ p2p-next@koala.cs.pub.ro:public_html/