]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/ID3/module.audio-video.matroska.php
WordPress 4.7.2-scripts
[autoinstalls/wordpress.git] / wp-includes / ID3 / module.audio-video.matroska.php
index fb0af7221ea84015b3560a449e766c2b45c02c95..f2cc5ac0a7be126248fa80be4e84712e15ae35e3 100644 (file)
@@ -3,6 +3,7 @@
 /// getID3() by James Heinrich <info@getid3.org>               //
 //  available at http://getid3.sourceforge.net                 //
 //            or http://www.getid3.org                         //
+//          also https://github.com/JamesHeinrich/getID3       //
 /////////////////////////////////////////////////////////////////
 // See readme.txt for more details                             //
 /////////////////////////////////////////////////////////////////
@@ -281,10 +282,8 @@ class getid3_matroska extends getid3_handler
 
                                                switch ($trackarray['CodecID']) {
                                                        case 'V_MS/VFW/FOURCC':
-                                                               if (!getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio-video.riff.php', __FILE__, false)) {
-                                                                       $this->warning('Unable to parse codec private data ['.basename(__FILE__).':'.__LINE__.'] because cannot include "module.audio-video.riff.php"');
-                                                                       break;
-                                                               }
+                                                               getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio-video.riff.php', __FILE__, true);
+
                                                                $parsed = getid3_riff::ParseBITMAPINFOHEADER($trackarray['CodecPrivate']);
                                                                $track_info['codec'] = getid3_riff::fourccLookup($parsed['fourcc']);
                                                                $info['matroska']['track_codec_parsed'][$trackarray['TrackNumber']] = $parsed;
@@ -335,10 +334,7 @@ class getid3_matroska extends getid3_handler
                                                        case 'A_MPEG/L3':
                                                        case 'A_MPEG/L2':
                                                        case 'A_FLAC':
-                                                               if (!getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.'.($track_info['dataformat'] == 'mp2' ? 'mp3' : $track_info['dataformat']).'.php', __FILE__, false)) {
-                                                                       $this->warning('Unable to parse audio data ['.basename(__FILE__).':'.__LINE__.'] because cannot include "module.audio.'.$track_info['dataformat'].'.php"');
-                                                                       break;
-                                                               }
+                                                               getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.'.($track_info['dataformat'] == 'mp2' ? 'mp3' : $track_info['dataformat']).'.php', __FILE__, true);
 
                                                                if (!isset($info['matroska']['track_data_offsets'][$trackarray['TrackNumber']])) {
                                                                        $this->warning('Unable to parse audio data ['.basename(__FILE__).':'.__LINE__.'] because $info[matroska][track_data_offsets]['.$trackarray['TrackNumber'].'] not set');
@@ -385,10 +381,6 @@ class getid3_matroska extends getid3_handler
                                                                }
                                                                if (!empty($getid3_temp->info['warning'])) {
                                                                        foreach ($getid3_temp->info['warning'] as $newerror) {
-                                                                               if ($track_info['dataformat'] == 'mp3' && preg_match('/^Probable truncated file: expecting \d+ bytes of audio data, only found \d+ \(short by \d+ bytes\)$/', $newerror)) {
-                                                                                       // LAME/Xing header is probably set, but audio data is chunked into Matroska file and near-impossible to verify if audio stream is complete, so ignore useless warning
-                                                                                       continue;
-                                                                               }
                                                                                $this->warning($class.'() says: ['.$newerror.']');
                                                                        }
                                                                }
@@ -400,7 +392,7 @@ class getid3_matroska extends getid3_handler
                                                        case 'A_AAC/MPEG2/LC/SBR':
                                                        case 'A_AAC/MPEG4/LC':
                                                        case 'A_AAC/MPEG4/LC/SBR':
-                                                           $this->warning($trackarray['CodecID'].' audio data contains no header, audio/video bitrates can\'t be calculated');
+                                                               $this->warning($trackarray['CodecID'].' audio data contains no header, audio/video bitrates can\'t be calculated');
                                                                break;
 
                                                        case 'A_VORBIS':
@@ -415,10 +407,7 @@ class getid3_matroska extends getid3_handler
                                                                }
                                                                $vorbis_offset -= 1;
 
-                                                               if (!getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.ogg.php', __FILE__, false)) {
-                                                                       $this->warning('Unable to parse audio data ['.basename(__FILE__).':'.__LINE__.'] because cannot include "module.audio.ogg.php"');
-                                                                       break;
-                                                               }
+                                                               getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.ogg.php', __FILE__, true);
 
                                                                // create temp instance
                                                                $getid3_temp = new getID3();
@@ -455,10 +444,7 @@ class getid3_matroska extends getid3_handler
                                                                break;
 
                                                        case 'A_MS/ACM':
-                                                               if (!getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio-video.riff.php', __FILE__, false)) {
-                                                                       $this->warning('Unable to parse audio data ['.basename(__FILE__).':'.__LINE__.'] because cannot include "module.audio-video.riff.php"');
-                                                                       break;
-                                                               }
+                                                               getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio-video.riff.php', __FILE__, true);
 
                                                                $parsed = getid3_riff::parseWAVEFORMATex($trackarray['CodecPrivate']);
                                                                foreach ($parsed as $key => $value) {
@@ -515,7 +501,6 @@ class getid3_matroska extends getid3_handler
                        switch ($top_element['id']) {
 
                                case EBML_ID_EBML:
-                                       $info['fileformat'] = 'matroska';
                                        $info['matroska']['header']['offset'] = $top_element['offset'];
                                        $info['matroska']['header']['length'] = $top_element['length'];
 
@@ -534,6 +519,7 @@ class getid3_matroska extends getid3_handler
                                                        case EBML_ID_DOCTYPE:
                                                                $element_data['data'] = getid3_lib::trimNullByte($element_data['data']);
                                                                $info['matroska']['doctype'] = $element_data['data'];
+                                                               $info['fileformat'] = $element_data['data'];
                                                                break;
 
                                                        default:
@@ -1526,8 +1512,8 @@ class getid3_matroska extends getid3_handler
                        $CodecIDlist['V_MPEG4/ISO/AVC']  = 'h264';
                        $CodecIDlist['V_MPEG4/ISO/SP']   = 'mpeg4';
                        $CodecIDlist['V_VP8']            = 'vp8';
-                       $CodecIDlist['V_MS/VFW/FOURCC']  = 'riff';
-                       $CodecIDlist['A_MS/ACM']         = 'riff';
+                       $CodecIDlist['V_MS/VFW/FOURCC']  = 'vcm'; // Microsoft (TM) Video Codec Manager (VCM)
+                       $CodecIDlist['A_MS/ACM']         = 'acm'; // Microsoft (TM) Audio Codec Manager (ACM)
                }
                return (isset($CodecIDlist[$codecid]) ? $CodecIDlist[$codecid] : $codecid);
        }