I did something like this . it's not an overlay but prints an filmstrip in front of the thumbnail if the 'image' is a video. see it at http://www.kiemkracht.com/nl/vrij%20werk/homo%20herbarius/
function printImageThumb($alt, $class=NULL, $id=NULL) {
if(getImageVideo()){
/*** adds a 10pxel width filmstrip before the thumb **********************/
/******************************************/
echo "<img src=\"/nl/themes/rozemarijn/images/movie.jpg\"><img src=\"" . htmlspecialchars(getImageThumb()) . "\" id=\"". getFullImageURL() ."\" alt=\"" . htmlspecialchars($alt, ENT_QUOTES) . "\"" .
((zp_conf('thumb_crop')) ? " width=\"".zp_conf('thumb_crop_width')."\" height=\"".zp_conf('thumb_crop_height')."\"" : "") .
(($class) ? " class=\"$class\"" : "") .
(($id) ? " id=\"$id\"" : "") . " />";
} else {
echo "<img src=\"" . htmlspecialchars(getImageThumb()) . "\" alt=\"" . htmlspecialchars($alt, ENT_QUOTES) . "\"" .
((zp_conf('thumb_crop')) ? " width=\"".zp_conf('thumb_crop_width')."\" height=\"".zp_conf('thumb_crop_height')."\"" : "") .
(($class) ? " class=\"$class\"" : "") .
(($id) ? " id=\"$id\"" : "") . " />";
}
}