Index: extensions/gvideo/admin/add.php
===================================================================
--- extensions/gvideo/admin/add.php	(revision 17307)
+++ extensions/gvideo/admin/add.php	(revision 17310)
@@ -57,4 +57,9 @@
     if (count($page['errors']) == 0)
     {
+      if (isset($_POST['add_film_frame']))
+      {
+        add_film_frame($thumb_source);
+      }
+      
       // add image and update infos
       $image_id = add_uploaded_file($thumb_source, $thumb_name, array($_POST['category']));
Index: extensions/gvideo/admin/template/add.tpl
===================================================================
--- extensions/gvideo/admin/template/add.tpl	(revision 17307)
+++ extensions/gvideo/admin/template/add.tpl	(revision 17310)
@@ -4,4 +4,11 @@
 jQuery("input[data-toggle]").change(function() {
   $('#'+ $(this).data('toggle')).toggle();
+});
+jQuery(".showInfo").tipTip({
+  delay: 0,
+  fadeIn: 200,
+  fadeOut: 200,
+  maxWidth: '300px',
+  defaultPosition: 'right'
 });
 {/literal}{/footer_script}
@@ -40,7 +47,7 @@
     </li>
     <li>
-        <span class="property">{'Author'|@translate}</span>
-        <label><input type="radio" name="author_server" value="true" {if $POST.author_server != 'false'}checked="checked"{/if} data-toggle="author"> {'From the video'|@translate}</label>
-        <label><input type="radio" name="author_server" value="false" {if $POST.author_server == 'false'}checked="checked"{/if} data-toggle="author"> {'Change'|@translate}</label>
+      <span class="property">{'Author'|@translate}</span>
+      <label><input type="radio" name="author_server" value="true" {if $POST.author_server != 'false'}checked="checked"{/if} data-toggle="author"> {'From the video'|@translate}</label>
+      <label><input type="radio" name="author_server" value="false" {if $POST.author_server == 'false'}checked="checked"{/if} data-toggle="author"> {'Change'|@translate}</label>
     </li>
     <li {if $POST.author_server != 'false'}style="display:none;"{/if} id="author">
@@ -58,9 +65,7 @@
     </li>
     <li>
-      <label>
-        <span class="property">{'Thumbnail'|@translate}</span>
-        <label><input type="radio" name="thumbnail_server" value="true" checked="checked" data-toggle="thumbnail_src"> {'From the video'|@translate}</label>
-        <label><input type="radio" name="thumbnail_server" value="false" data-toggle="thumbnail_src"> {'Change'|@translate}</label>
-      </label>
+      <span class="property">{'Thumbnail'|@translate}</span>
+      <label><input type="radio" name="thumbnail_server" value="true" checked="checked" data-toggle="thumbnail_src"> {'From the video'|@translate}</label>
+      <label><input type="radio" name="thumbnail_server" value="false" data-toggle="thumbnail_src"> {'Change'|@translate}</label>
     </li>
     <li id="thumbnail_src" style="display:none;">
@@ -70,4 +75,9 @@
       {'Maximum file size: %sB.'|@translate|@sprintf:$upload_max_filesize_shorthand} {'Allowed file types: %s.'|@translate|@sprintf:'jpg, png, gif'}
       <input type="hidden" name="MAX_FILE_SIZE" value="{$upload_max_filesize}">
+    </li>
+    <li>
+      <span class="property">&nbsp;</span>
+      <label><input type="checkbox" name="add_film_frame" value="true"> {'Add film effect'|@translate} </label>
+      <a class="showInfo" title="<img src='{$GVIDEO_PATH}admin/template/example-frame.jpg'>">i</a>
     </li>
   </ul>  
Index: extensions/gvideo/admin/template/style.css
===================================================================
--- extensions/gvideo/admin/template/style.css	(revision 17307)
+++ extensions/gvideo/admin/template/style.css	(revision 17310)
@@ -42,2 +42,12 @@
     visibility:hidden;
   }
+  
+.showInfo {
+  position:static;
+  display:inline-block;
+  padding:1px 7px;
+  width:4px;
+  height:16px;
+  line-height:16px;
+  font-size:0.8em;
+}
Index: extensions/gvideo/include/functions.inc.php
===================================================================
--- extensions/gvideo/include/functions.inc.php	(revision 17307)
+++ extensions/gvideo/include/functions.inc.php	(revision 17310)
@@ -289,3 +289,107 @@
 }
 
+/**
+ * and film frame to an image (need GD library)
+ * @param: string source
+ * @param: string destination (if null, the source si modified)
+ * @return: void
+ */
+function add_film_frame($src, $dest=null)
+{
+  if (empty($dest))
+  {
+    $dest = $src;
+  }
+  
+  // we need gd library
+  if (!function_exists('imagecreatetruecolor'))
+  {
+    if ($dest != $src) copy($src, $dest);
+    return;
+  }
+  
+  // open source image
+  $imgExt = strtolower(get_extension($src));
+  switch ($imgExt)
+  {
+    case 'jpg':
+    case 'jpeg':
+      $srcImage = imagecreatefromjpeg($src);
+      break;
+    case 'png':
+      $srcImage = imagecreatefrompng($src);
+      break;
+    case 'gif':
+      $srcImage = imagecreatefromgif($src);
+      break;
+    default:
+      if ($dest != $src) copy($src, $dest);
+      return;
+  }
+  
+  // source properties
+  $srcWidth = imagesx($srcImage);
+  $srcHeight = imagesy($srcImage);
+  $const = intval($srcWidth * 0.04);
+  $bandRadius = floor($const/8);
+
+  // band properties
+  $imgBand = imagecreatetruecolor($srcWidth + 6*$const, $srcHeight + 3*$const);
+  
+  $black = imagecolorallocate($imgBand, 0, 0, 0);
+  $white = imagecolorallocate($imgBand, 245, 245, 245);
+  
+  // and dots
+  $y_start = intval(($srcHeight + 3*$const) / 2);
+  $aug = intval($y_start / 5) + 1;
+  $i = 0;
+
+  while ($y_start + $i*$aug < $srcHeight + 3*$const)
+  {
+    imagefilledroundrectangle($imgBand, (3/4)*$const, $y_start + $i*$aug - $const/2, (9/4)*$const - 1, $y_start + $i*$aug + $const/2 - 1, $white, $bandRadius);
+    imagefilledroundrectangle($imgBand, (3/4)*$const, $y_start - $i*$aug - $const/2, (9/4)*$const - 1, $y_start - $i*$aug + $const/2 - 1, $white, $bandRadius);
+
+    imagefilledroundrectangle($imgBand, $srcWidth + (15/4)*$const, $y_start + $i*$aug - $const/2, $srcWidth + (21/4)*$const - 1, $y_start + $i*$aug + $const/2 - 1, $white, $bandRadius);
+    imagefilledroundrectangle($imgBand, $srcWidth + (15/4)*$const, $y_start - $i*$aug - $const/2, $srcWidth + (21/4)*$const - 1, $y_start - $i*$aug + $const/2 - 1, $white, $bandRadius);
+
+    ++$i;
+  }
+
+  // add source to band
+  imagecopy($imgBand, $srcImage, 3*$const, (3/2)*$const, 0, 0, $srcWidth, $srcHeight);
+  
+  // save image
+  switch ($imgExt)
+  {
+    case 'jpg':
+    case 'jpeg':
+      imagejpeg($imgBand, $dest);
+      break;
+    case 'png':
+      imagepng($imgBand, $dest);
+      break;
+    case 'gif':
+      imagegif($imgBand, $dest);
+      break;
+  }
+}
+
+/**
+ * create a rectangle with round corners
+ * http://www.php.net/manual/fr/function.imagefilledrectangle.php#42815
+ */
+function imagefilledroundrectangle(&$img, $x1, $y1, $x2, $y2, $color, $radius)
+{
+  imagefilledrectangle($img, $x1+$radius, $y1, $x2-$radius, $y2, $color);
+  
+  if ($radius > 0)
+  {
+    imagefilledrectangle($img, $x1, $y1+$radius, $x2, $y2-$radius, $color);
+    imagefilledellipse($img, $x1+$radius, $y1+$radius, $radius*2, $radius*2, $color);
+    imagefilledellipse($img, $x2-$radius, $y1+$radius, $radius*2, $radius*2, $color);
+    imagefilledellipse($img, $x1+$radius, $y2-$radius, $radius*2, $radius*2, $color);
+    imagefilledellipse($img, $x2-$radius, $y2-$radius, $radius*2, $radius*2, $color);
+  }
+}
+
 ?>
Index: extensions/gvideo/language/en_UK/plugin.lang.php
===================================================================
--- extensions/gvideo/language/en_UK/plugin.lang.php	(revision 17307)
+++ extensions/gvideo/language/en_UK/plugin.lang.php	(revision 17310)
@@ -20,4 +20,5 @@
 $lang['Video successfully added. <a href="%s">View</a>'] = 'Video successfully added. <a href="%s">View</a>';
 $lang['This element is a video added with "Embedded Video"'] = 'This element is a video added with "Embedded Video"';
+$lang['Add film effect'] = 'Add film effect';
 
 ?>
Index: extensions/gvideo/language/fr_FR/plugin.lang.php
===================================================================
--- extensions/gvideo/language/fr_FR/plugin.lang.php	(revision 17307)
+++ extensions/gvideo/language/fr_FR/plugin.lang.php	(revision 17310)
@@ -20,4 +20,5 @@
 $lang['Video successfully added. <a href="%s">View</a>'] = 'Vidéo ajoutée. <a href="%s">Voir</a>';
 $lang['This element is a video added with "Embedded Video"'] = 'Cet élément est une vidéo ajoutée avec "Embedded Video"';
+$lang['Add film effect'] = 'Ajouter un effet pellicule';
 
 ?>
Index: extensions/gvideo/maintain.inc.php
===================================================================
--- extensions/gvideo/maintain.inc.php	(revision 17307)
+++ extensions/gvideo/maintain.inc.php	(revision 17310)
@@ -179,4 +179,5 @@
         $thumb_source = $conf['data_location'].get_filename_wo_extension($thumb_name).'.jpg';
         copy(gvideo_path.'mimetypes/'.$video['type'].'.jpg', $thumb_source);
+        add_film_frame($thumb_source);
       }
     }
