WordPress.org

Make WordPress Core


Ignore:
Timestamp:
09/14/2019 07:06:09 PM (2 years ago)
Author:
jorbin
Message:

Update getID3 library to fix issues with PHP7.4

Updates to trunk version that includes fixes for PHP7.4

Changelog:
https://github.com/JamesHeinrich/getID3/compare/v1.9.14...00f3fbfd77e583099ca70a3cf0bc092e113d2b20

See: #47751,#47783.
Fixes: #48040.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ID3/module.audio-video.matroska.php

    r41196 r46112  
    11<?php
     2
    23/////////////////////////////////////////////////////////////////
    34/// getID3() by James Heinrich <info@getid3.org>               //
    4 //  available at http://getid3.sourceforge.net                 //
    5 //            or http://www.getid3.org                         //
    6 //          also https://github.com/JamesHeinrich/getID3       //
    7 /////////////////////////////////////////////////////////////////
    8 // See readme.txt for more details                             //
     5//  available at https://github.com/JamesHeinrich/getID3       //
     6//            or https://www.getid3.org                        //
     7//            or http://getid3.sourceforge.net                 //
     8//  see readme.txt for more details                            //
    99/////////////////////////////////////////////////////////////////
    1010//                                                             //
     
    7373define('EBML_ID_FILEUID',                       0x06AE); //         [46][AE] -- Unique ID representing the file, as random as possible.
    7474define('EBML_ID_CONTENTENCALGO',                0x07E1); //         [47][E1] -- The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values:
    75 define('EBML_ID_CONTENTENCKEYID',               0x07E2); //         [47][E2] -- For public key algorithms this is the ID of the public key the the data was encrypted with.
     75define('EBML_ID_CONTENTENCKEYID',               0x07E2); //         [47][E2] -- For public key algorithms this is the ID of the public key the data was encrypted with.
    7676define('EBML_ID_CONTENTSIGNATURE',              0x07E3); //         [47][E3] -- A cryptographic signature of the contents.
    7777define('EBML_ID_CONTENTSIGKEYID',               0x07E4); //         [47][E4] -- This is the ID of the private key the data was signed with.
     
    216216class getid3_matroska extends getid3_handler
    217217{
    218     // public options
    219     public static $hide_clusters    = true;  // if true, do not return information about CLUSTER chunks, since there's a lot of them and they're not usually useful [default: TRUE]
    220     public static $parse_whole_file = false; // true to parse the whole file, not only header [default: FALSE]
    221 
    222     // private parser settings/placeholders
     218    /**
     219     * If true, do not return information about CLUSTER chunks, since there's a lot of them
     220     * and they're not usually useful [default: TRUE].
     221     *
     222     * @var bool
     223     */
     224    public static $hide_clusters    = true;
     225
     226    /**
     227     * True to parse the whole file, not only header [default: FALSE].
     228     *
     229     * @var bool
     230     */
     231    public static $parse_whole_file = false;
     232
     233    /*
     234     * Private parser settings/placeholders.
     235     */
    223236    private $EBMLbuffer        = '';
    224237    private $EBMLbuffer_offset = 0;
     
    227240    private $unuseful_elements = array(EBML_ID_CRC32, EBML_ID_VOID);
    228241
     242    /**
     243     * @return bool
     244     */
    229245    public function Analyze()
    230246    {
     
    367383                                    $info['matroska']['track_codec_parsed'][$trackarray['TrackNumber']] = $getid3_temp->info[$header_data_key];
    368384                                    if (isset($getid3_temp->info['audio']) && is_array($getid3_temp->info['audio'])) {
    369                                         foreach ($getid3_temp->info['audio'] as $key => $value) {
    370                                             $track_info[$key] = $value;
     385                                        foreach ($getid3_temp->info['audio'] as $sub_key => $value) {
     386                                            $track_info[$sub_key] = $value;
    371387                                        }
    372388                                    }
     
    422438                                    $info['matroska']['track_codec_parsed'][$trackarray['TrackNumber']] = $getid3_temp->info['ogg'];
    423439                                    if (isset($getid3_temp->info['audio']) && is_array($getid3_temp->info['audio'])) {
    424                                         foreach ($getid3_temp->info['audio'] as $key => $value) {
    425                                             $track_info[$key] = $value;
     440                                        foreach ($getid3_temp->info['audio'] as $sub_key => $value) {
     441                                            $track_info[$sub_key] = $value;
    426442                                        }
    427443                                    }
     
    450466
    451467                                $parsed = getid3_riff::parseWAVEFORMATex($trackarray['CodecPrivate']);
    452                                 foreach ($parsed as $key => $value) {
    453                                     if ($key != 'raw') {
    454                                         $track_info[$key] = $value;
     468                                foreach ($parsed as $sub_key => $value) {
     469                                    if ($sub_key != 'raw') {
     470                                        $track_info[$sub_key] = $value;
    455471                                    }
    456472                                }
     
    497513    }
    498514
     515    /**
     516     * @param array $info
     517     */
    499518    private function parseEBML(&$info) {
    500519        // http://www.matroska.org/technical/specs/index.html#EBMLBasics
     
    12291248    }
    12301249
     1250    /**
     1251     * @param int $min_data
     1252     *
     1253     * @return bool
     1254     */
    12311255    private function EnsureBufferHasEnoughData($min_data=1024) {
    12321256        if (($this->current_offset - $this->EBMLbuffer_offset) >= ($this->EBMLbuffer_length - $min_data)) {
     
    12501274    }
    12511275
     1276    /**
     1277     * @return int|float|false
     1278     */
    12521279    private function readEBMLint() {
    12531280        $actual_offset = $this->current_offset - $this->EBMLbuffer_offset;
     
    12821309    }
    12831310
     1311    /**
     1312     * @param int  $length
     1313     * @param bool $check_buffer
     1314     *
     1315     * @return string|false
     1316     */
    12841317    private function readEBMLelementData($length, $check_buffer=false) {
    12851318        if ($check_buffer && !$this->EnsureBufferHasEnoughData($length)) {
     
    12911324    }
    12921325
     1326    /**
     1327     * @param array      $element
     1328     * @param int        $parent_end
     1329     * @param array|bool $get_data
     1330     *
     1331     * @return bool
     1332     */
    12931333    private function getEBMLelement(&$element, $parent_end, $get_data=false) {
    12941334        if ($this->current_offset >= $parent_end) {
     
    13271367    }
    13281368
     1369    /**
     1370     * @param string $type
     1371     * @param int    $line
     1372     * @param array  $element
     1373     */
    13291374    private function unhandledElement($type, $line, $element) {
    13301375        // warn only about unknown and missed elements, not about unuseful
     
    13391384    }
    13401385
     1386    /**
     1387     * @param array $SimpleTagArray
     1388     *
     1389     * @return bool
     1390     */
    13411391    private function ExtractCommentsSimpleTag($SimpleTagArray) {
    13421392        if (!empty($SimpleTagArray['SimpleTag'])) {
     
    13541404    }
    13551405
     1406    /**
     1407     * @param int $parent_end
     1408     *
     1409     * @return array
     1410     */
    13561411    private function HandleEMBLSimpleTag($parent_end) {
    13571412        $simpletag_entry = array();
     
    13841439    }
    13851440
     1441    /**
     1442     * @param array $element
     1443     * @param int   $block_type
     1444     * @param array $info
     1445     *
     1446     * @return array
     1447     */
    13861448    private function HandleEMBLClusterBlock($element, $block_type, &$info) {
    13871449        // http://www.matroska.org/technical/specs/index.html#block_structure
     
    14471509    }
    14481510
     1511    /**
     1512     * @param string $EBMLstring
     1513     *
     1514     * @return int|float|false
     1515     */
    14491516    private static function EBML2Int($EBMLstring) {
    14501517        // http://matroska.org/specs/
     
    14891556    }
    14901557
     1558    /**
     1559     * @param int $EBMLdatestamp
     1560     *
     1561     * @return float
     1562     */
    14911563    private static function EBMLdate2unix($EBMLdatestamp) {
    14921564        // Date - signed 8 octets integer in nanoseconds with 0 indicating the precise beginning of the millennium (at 2001-01-01T00:00:00,000000000 UTC)
     
    14951567    }
    14961568
     1569    /**
     1570     * @param int $target_type
     1571     *
     1572     * @return string|int
     1573     */
    14971574    public static function TargetTypeValue($target_type) {
    14981575        // http://www.matroska.org/technical/specs/tagging/index.html
     
    15101587    }
    15111588
     1589    /**
     1590     * @param int $lacingtype
     1591     *
     1592     * @return string|int
     1593     */
    15121594    public static function BlockLacingType($lacingtype) {
    15131595        // http://matroska.org/technical/specs/index.html#block_structure
     
    15221604    }
    15231605
     1606    /**
     1607     * @param string $codecid
     1608     *
     1609     * @return string
     1610     */
    15241611    public static function CodecIDtoCommonName($codecid) {
    15251612        // http://www.matroska.org/technical/specs/codecid/index.html
     
    15581645    }
    15591646
     1647    /**
     1648     * @param int $value
     1649     *
     1650     * @return string
     1651     */
    15601652    private static function EBMLidName($value) {
    15611653        static $EBMLidList = array();
     
    17561848    }
    17571849
     1850    /**
     1851     * @param int $value
     1852     *
     1853     * @return string
     1854     */
    17581855    public static function displayUnit($value) {
    17591856        // http://www.matroska.org/technical/specs/index.html#DisplayUnit
     
    17671864    }
    17681865
     1866    /**
     1867     * @param array $streams
     1868     *
     1869     * @return array
     1870     */
    17691871    private static function getDefaultStreamInfo($streams)
    17701872    {
     1873        $stream = array();
    17711874        foreach (array_reverse($streams) as $stream) {
    17721875            if ($stream['default']) {
Note: See TracChangeset for help on using the changeset viewer.