1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
4 * Tests if parameter is a resolution string with format [width]x[height].
10 if (strpos($res, 'x') === FALSE)
17 * Return the width from a resolution string with format [width]x[height].
20 function res_to_width($res)
25 return intval( substr($res, 0, strpos($res, 'x')) );
29 * Return the height from a resolution string with format [width]x[height].
32 function res_to_height($res)
37 return intval( substr($res, strpos($res, 'x') + 1) );
41 * Compares two resolution strings $a and $b with format [width]x[height] based
42 * on theirs megapixels number by return -1, 0 or 1 like any compare function.
45 * @param function $access_function filters input parameters by doing something
46 * like $a = $access_function($a). Leave it NULL for no filtering.
48 function megapixels_cmp($a, $b, $access_function = NULL)
50 if ($access_function !== NULL)
52 $a = $access_function($a);
53 $b = $access_function($b);
56 $a_w = intval( substr($a, 0, strpos($a, 'x')) );
57 $a_h = intval( substr($a, strpos($a, 'x') + 1) );
58 if ($a_w === FALSE || $a_h === FALSE)
61 $b_w = intval( substr($b, 0, strpos($b, 'x')) );
62 $b_h = intval( substr($b, strpos($b, 'x') + 1) );
63 if ($b_w === FALSE || $b_h === FALSE)
70 return $a_Mp > $b_Mp ? 1 : -1;
74 * Return the index of the $haystack element which has the closest resolution
75 * to $needle resolution string.
76 * @param array $haystack
77 * @param string $needle
78 * @param function $access_function filters input parameters by doing something
79 * like $a = $access_function($a). Leave it NULL for no filtering.
81 function get_closest_res($haystack, $needle, $access_function = NULL)
86 foreach($haystack as $i => $elem)
88 if ($access_function !== NULL)
89 $elem = $access_function($elem);
91 $d = abs(res_to_width($elem) * res_to_height($elem)
92 - res_to_width($needle) * res_to_height($needle));
104 * Returns information about an Audio/Video file.
106 * @param string $file_name Audio/Video file
107 * @return dictionary a dictionary of audio/video properties with keys:
111 * <li>dar (display aspect ratio)</li>
112 * <li>duration (formated as [HH:]mm:ss)</li>
113 * <li>size (in bytes)</li>
116 function get_av_info($file_name)
118 // TODO use ffprobe to return width, height, DAR, duration and size of a video
120 return array('width'=> 800, 'height'=> 600, 'dar'=> '16:9',
121 'duration'=> '00:10', 'size'=> 1101693);
124 /* End of file video_helper.php */
125 /* Location: ./application/helpers/video_helper.php */