$this->logger->info( __METHOD__ . ": recognized file as video/x-matroska\n" );
return "video/x-matroska";
} elseif ( strncmp( $data, "webm", 4 ) == 0 ) {
- $this->logger->info( __METHOD__ . ": recognized file as video/webm\n" );
- return "video/webm";
+ // XXX HACK look for a video track, if we don't find it, this is an audio file
+ $videotrack = strpos( $head, "\x86\x85V_VP" );
+
+ if ( $videotrack ) {
+ // There is a video track, so this is a video file.
+ $this->logger->info( __METHOD__ . ": recognized file as video/webm\n" );
+ return "video/webm";
+ }
+
+ $this->logger->info( __METHOD__ . ": recognized file as audio/webm\n" );
+ return "audio/webm";
}
}
$this->logger->info( __METHOD__ . ": unknown EBML file\n" );
$m = null;
if ( $callback ) {
$m = $callback( $file );
- } elseif ( function_exists( "finfo_open" ) && function_exists( "finfo_file" ) ) {
- $mime_magic_resource = finfo_open( FILEINFO_MIME );
-
- if ( $mime_magic_resource ) {
- $m = finfo_file( $mime_magic_resource, $file );
- finfo_close( $mime_magic_resource );
- } else {
- $this->logger->info( __METHOD__ .
- ": finfo_open failed on " . FILEINFO_MIME . "!\n" );
- }
} else {
- $this->logger->info( __METHOD__ . ": no magic mime detector found!\n" );
+ $m = mime_content_type( $file );
}
if ( $m ) {