PHP cuenta los archivos totales en el directorio Y la función del subdirectorio

Necesito obtener un recuento total de archivos JPG dentro de un directorio específico, incluidos TODOS sus subdirectorios. No hay sub-sub directorios.

La estructura se ve así:

dir1/
2 files  
   subdir 1/
       8 files

totaldir1 = 10 archivos

dir2/ 
    5 files  
    subdir 1/ 
        2 files  
    subdir 2/ 
        8 files

totaldir2 = 15 archivos

Tengo esta función, que no funciona bien ya que solo cuenta los archivos en el último subdirectorio, y el total es 2 veces más que la cantidad real de archivos.(Saldrá 80 si tengo 40 archivos en el último subdir)

public function count_files($path) { 
global $file_count;

$file_count = 0;
$dir = opendir($path);

if (!$dir) return -1;
while ($file = readdir($dir)) :
    if ($file == '.' || $file == '..') continue;
    if (is_dir($path . $file)) :
        $file_count += $this->count_files($path . "/" . $file);
    else :
        $file_count++;
    endif;
endwhile;

closedir($dir);
return $file_count;
}