From dc2c2b068693f78bba914895fbddbb1ec203eb0c Mon Sep 17 00:00:00 2001 From: Fabio Varesano Date: Fri, 5 Jan 2007 17:09:21 +0000 Subject: Added some functions to hide the resolution and playtime functions --- .../video_ffmpeg_helper/video_ffmpeg_helper.module | 111 +++++++++++++++++++++ plugins/video_image/video_image.module | 8 +- 2 files changed, 116 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/video_ffmpeg_helper/video_ffmpeg_helper.module b/plugins/video_ffmpeg_helper/video_ffmpeg_helper.module index 78ce78b..176979a 100644 --- a/plugins/video_ffmpeg_helper/video_ffmpeg_helper.module +++ b/plugins/video_ffmpeg_helper/video_ffmpeg_helper.module @@ -81,6 +81,21 @@ function video_ffmpeg_helper_admin_settings() { '#default_value' => variable_get('video_ffmpeg_helper_ffmpeg_path', '/usr/bin/ffmpeg'), ); + + $form['video_ffmpeg_helper_auto_resolution'] = array( + '#type' => 'checkbox', + '#title' => t('Enable resolution helper'), + '#description' => t('Use ffmpeg Helper to automaticcally get the resolution from the video.'), + '#default_value' => variable_get('video_ffmpeg_helper_auto_resolution', false), + ); + + $form['video_ffmpeg_helper_auto_playtime'] = array( + '#type' => 'checkbox', + '#title' => t('Enable playtime helper'), + '#description' => t('Use ffmpeg Helper to automaticcally get the playtime from the video.'), + '#default_value' => variable_get('video_ffmpeg_helper_auto_playtime', false), + ); + $form['autothumb'] = array( '#type' => 'fieldset', '#title' => t('Automatic video thumbnailing'), @@ -138,11 +153,107 @@ function video_ffmpeg_helper_form_alter($form_id, &$form) { $form['image'] = NULL; } } + + if(variable_get('video_ffmpeg_helper_auto_resolution', false)) { + $form['video']['videox'] = NULL; + $form['video']['videoy'] = NULL; + } + + if(variable_get('video_ffmpeg_helper_auto_playtime', false)) { + $form['video']['playtime'] = NULL; + } } } +/** + * Implementation of hook_nodeapi() + */ +function video_ffmpeg_helper_nodeapi(&$node, $op, $teaser) { + if($node->type == 'video') { + + switch ($op) { + case 'load': + ; // for future uses + break; + + case 'submit': + if(variable_get('video_ffmpeg_helper_auto_resolution', false) || variable_get('video_ffmpeg_helper_auto_playtime', false)) { + _video_ffmpeg_helper_get_video_info($node); + } + break; + + case 'prepare': + + break; + + case 'view': + ; // for future uses + break; + + case 'delete': + ; // for future uses + break; + + } + } +} + + +function _video_ffmpeg_helper_get_video_info(&$node) { + + // create the full command to execute + $command = variable_get('video_ffmpeg_helper_ffmpeg_path', '/usr/bin/ffmpeg') . ' -i ' . $_SESSION['video_upload_file']->filepath; + + print $command; + + //execute the command + ob_start(); + passthru($command." 2>&1", $command_return); + $command_output = ob_get_contents(); + ob_end_clean(); + + print $command_output; + + if(variable_get('video_ffmpeg_helper_auto_resolution', false)) { + // get resolution + $pattern = '/[0-9]{3}x[0-9]{3}/'; + preg_match_all($pattern, $command_output, $matches, PREG_PATTERN_ORDER); + $resolution = $matches[0][0]; + $xy = explode("x", $resolution); + + // store resolution information to the node object + $node->videox = $xy[0]; + $node->videoy = $xy[1]; + } + + + if(variable_get('video_ffmpeg_helper_auto_resolution', false) || variable_get('video_ffmpeg_helper_auto_playtime', false)) { + // get playtime + $pattern = '/[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]/'; + preg_match_all($pattern, $command_output, $matches, PREG_PATTERN_ORDER); + $playtime = $matches[0][0]; + + // ffmpge return lenght as 00:00:31.1 Let's get palytime from that + $hmsmm = explode(":", $playtime); + + $tmp = explode(".", $hmsmm[2]); + $seconds = $tmp[0]; + + $hours = $hmsmm[0]; + $minutes = $hmsmm[1]; + + $node->playtime_seconds = $seconds + ($hours * 3600) + ($minutes * 60); + + } + + //print_r($node); die; + +} + + + /* Generates a thumbnail from the video file * * @param $node diff --git a/plugins/video_image/video_image.module b/plugins/video_image/video_image.module index b2ca7f6..a85455d 100644 --- a/plugins/video_image/video_image.module +++ b/plugins/video_image/video_image.module @@ -99,9 +99,6 @@ function video_image_nodeapi(&$node, $op, $teaser) { $output['iid'] = $node->serial_data['iid']; return $output; case 'submit': - $node->serial_data['iid'] = $node->iid; - break; - case 'prepare': if (variable_get('video_image_auto_thumbnail_debug', false) && variable_get('video_image_auto_thumbnail', false)) { drupal_set_message(t('video_image_nodeapi: prepare: ready to thumbnail image')); } @@ -134,6 +131,11 @@ function video_image_nodeapi(&$node, $op, $teaser) { else if (isset($_SESSION['video_upload_file']->iid)) { $node->iid = $_SESSION['video_upload_file']->iid; } + + $node->serial_data['iid'] = $node->iid; + break; + case 'prepare': + ; break; case 'view': -- cgit v1.2.3