Make WordPress Core


Ignore:
Timestamp:
07/02/2020 03:46:17 PM (4 years ago)
Author:
desrosj
Message:

External Libraries: Update getID3 to version 1.9.20.

A full list of changes in this update can be found on GitHub: https://github.com/JamesHeinrich/getID3/compare/v1.9.19...v1.9.20.

Props hareesh-pillai, desrosj.
Previously [47601-47604].
Fixes #49945.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ID3/getid3.php

    r47737 r48278  
    100100    public $encoding_id3v1  = 'ISO-8859-1';
    101101
     102    /**
     103     * ID3v1 should always be 'ISO-8859-1', but some tags may be written in other encodings such as 'Windows-1251' or 'KOI8-R'. If true attempt to detect these encodings, but may return incorrect values for some tags actually in ISO-8859-1 encoding
     104     *
     105     * @var bool
     106     */
     107    public $encoding_id3v1_autodetect  = false;
     108
    102109    /*
    103110     * Optional tag checks - disable for speed.
     
    251258    protected $startup_warning = '';
    252259
    253     const VERSION           = '1.9.19-201912211559';
     260    const VERSION           = '1.9.20-202006061653';
    254261    const FREAD_BUFFER_SIZE = 32768;
    255262
     
    290297        }
    291298
    292         if (($mbstring_func_overload = (int) ini_get('mbstring.func_overload')) && ($mbstring_func_overload & 0x02)) { // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
     299        // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
     300        if (($mbstring_func_overload = (int) ini_get('mbstring.func_overload')) && ($mbstring_func_overload & 0x02)) {
    293301            // http://php.net/manual/en/mbstring.overload.php
    294302            // "mbstring.func_overload in php.ini is a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions"
    295303            // getID3 cannot run when string functions are overloaded. It doesn't matter if mail() or ereg* functions are overloaded since getID3 does not use those.
    296             $this->startup_error .= 'WARNING: php.ini contains "mbstring.func_overload = '.ini_get('mbstring.func_overload').'", getID3 cannot run with this setting (bitmask 2 (string functions) cannot be set). Recommended to disable entirely.'."\n"; // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
     304            // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
     305            $this->startup_error .= 'WARNING: php.ini contains "mbstring.func_overload = '.ini_get('mbstring.func_overload').'", getID3 cannot run with this setting (bitmask 2 (string functions) cannot be set). Recommended to disable entirely.'."\n";
    297306        }
    298307
     
    301310            // Check for magic_quotes_runtime
    302311            if (function_exists('get_magic_quotes_runtime')) {
    303                 if (get_magic_quotes_runtime()) { // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.get_magic_quotes_runtimeDeprecated
     312                // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.get_magic_quotes_runtimeDeprecated
     313                if (get_magic_quotes_runtime()) {
    304314                    $this->startup_error .= 'magic_quotes_runtime must be disabled before running getID3(). Surround getid3 block by set_magic_quotes_runtime(0) and set_magic_quotes_runtime(1).'."\n";
    305315                }
     
    307317            // Check for magic_quotes_gpc
    308318            if (function_exists('get_magic_quotes_gpc')) {
    309                 if (get_magic_quotes_gpc()) { // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.get_magic_quotes_gpcDeprecated
     319                // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.get_magic_quotes_gpcDeprecated
     320                if (get_magic_quotes_gpc()) {
    310321                    $this->startup_error .= 'magic_quotes_gpc must be disabled before running getID3(). Surround getid3 block by set_magic_quotes_gpc(0) and set_magic_quotes_gpc(1).'."\n";
    311322                }
     
    847858                        ),
    848859
     860                // DSDIFF - audio     - Direct Stream Digital Interchange File Format
     861                'dsdiff' => array(
     862                            'pattern'   => '^FRM8',
     863                            'group'     => 'audio',
     864                            'module'    => 'dsdiff',
     865                            'mime_type' => 'audio/dsd',
     866                        ),
     867
    849868                // DTS  - audio       - Dolby Theatre System
    850869                'dts'  => array(
     
    974993                        ),
    975994
     995                // TAK  - audio       - Tom's lossless Audio Kompressor
     996                'tak'  => array(
     997                            'pattern'   => '^tBaK',
     998                            'group'     => 'audio',
     999                            'module'    => 'tak',
     1000                            'mime_type' => 'application/octet-stream',
     1001                        ),
     1002
    9761003                // TTA  - audio       - TTA Lossless Audio Compressor (http://tta.corecodec.org)
    9771004                'tta'  => array(
     
    10321059                            'module'    => 'flv',
    10331060                            'mime_type' => 'video/x-flv',
     1061                        ),
     1062
     1063                // IVF - audio/video - IVF
     1064                'ivf' => array(
     1065                            'pattern'   => '^DKIF',
     1066                            'group'     => 'audio-video',
     1067                            'module'    => 'ivf',
     1068                            'mime_type' => 'video/x-ivf',
    10341069                        ),
    10351070
     
    12181253                        ),
    12191254
     1255                // HPK  - data        - HPK compressed data
     1256                'hpk'  => array(
     1257                            'pattern'   => '^BPUL',
     1258                            'group'     => 'archive',
     1259                            'module'    => 'hpk',
     1260                            'mime_type' => 'application/octet-stream',
     1261                            'fail_id3'  => 'ERROR',
     1262                            'fail_ape'  => 'ERROR',
     1263                        ),
     1264
    12201265                // RAR  - data        - RAR compressed data
    12211266                'rar'  => array(
     
    12231268                            'group'     => 'archive',
    12241269                            'module'    => 'rar',
    1225                             'mime_type' => 'application/octet-stream',
     1270                            'mime_type' => 'application/vnd.rar',
    12261271                            'fail_id3'  => 'ERROR',
    12271272                            'fail_ape'  => 'ERROR',
     
    14251470                'divxtag'   => array('divx'          , 'ISO-8859-1'),
    14261471                'iptc'      => array('iptc'          , 'ISO-8859-1'),
     1472                'dsdiff'    => array('dsdiff'        , 'ISO-8859-1'),
    14271473            );
    14281474        }
     
    15271573
    15281574    /**
     1575     * Calls getid3_lib::CopyTagsToComments() but passes in the option_tags_html setting from this instance of getID3
     1576     *
     1577     * @param array $ThisFileInfo
     1578     *
     1579     * @return bool
     1580     */
     1581    public function CopyTagsToComments(&$ThisFileInfo) {
     1582        return getid3_lib::CopyTagsToComments($ThisFileInfo, $this->option_tags_html);
     1583    }
     1584
     1585    /**
    15291586     * @param string $algorithm
    15301587     *
     
    15611618            // currently vorbiscomment only works on OggVorbis files.
    15621619
    1563             if (preg_match('#(1|ON)#i', ini_get('safe_mode'))) { // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.safe_modeDeprecatedRemoved
     1620            // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.safe_modeDeprecatedRemoved
     1621            if (preg_match('#(1|ON)#i', ini_get('safe_mode'))) {
    15641622
    15651623                $this->warning('Failed making system call to vorbiscomment.exe - '.$algorithm.'_data is incorrect - error returned: PHP running in Safe Mode (backtick operator not available)');
     
    20552113
    20562114    /**
     2115     * @return string|false
     2116     *
     2117     * @throws getid3_exception
     2118     */
     2119    protected function fgets() {
     2120        // must be able to handle CR/LF/CRLF but not read more than one lineend
     2121        $buffer   = ''; // final string we will return
     2122        $prevchar = ''; // save previously-read character for end-of-line checking
     2123        if ($this->data_string_flag) {
     2124            while (true) {
     2125                $thischar = substr($this->data_string, $this->data_string_position++, 1);
     2126                if (($prevchar == "\r") && ($thischar != "\n")) {
     2127                    // read one byte too many, back up
     2128                    $this->data_string_position--;
     2129                    break;
     2130                }
     2131                $buffer .= $thischar;
     2132                if ($thischar == "\n") {
     2133                    break;
     2134                }
     2135                if ($this->data_string_position >= $this->data_string_length) {
     2136                    // EOF
     2137                    break;
     2138                }
     2139                $prevchar = $thischar;
     2140            }
     2141
     2142        } else {
     2143
     2144            // Ideally we would just use PHP's fgets() function, however...
     2145            // it does not behave consistently with regards to mixed line endings, may be system-dependent
     2146            // and breaks entirely when given a file with mixed \r vs \n vs \r\n line endings (e.g. some PDFs)
     2147            //return fgets($this->getid3->fp);
     2148            while (true) {
     2149                $thischar = fgetc($this->getid3->fp);
     2150                if (($prevchar == "\r") && ($thischar != "\n")) {
     2151                    // read one byte too many, back up
     2152                    fseek($this->getid3->fp, -1, SEEK_CUR);
     2153                    break;
     2154                }
     2155                $buffer .= $thischar;
     2156                if ($thischar == "\n") {
     2157                    break;
     2158                }
     2159                if (feof($this->getid3->fp)) {
     2160                    break;
     2161                }
     2162                $prevchar = $thischar;
     2163            }
     2164
     2165        }
     2166        return $buffer;
     2167    }
     2168
     2169    /**
    20572170     * @return bool
    20582171     */
Note: See TracChangeset for help on using the changeset viewer.