Make WordPress Core


Ignore:
Timestamp:
09/14/2019 07:06:09 PM (5 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.flv.php

    r41196 r46112  
    22/////////////////////////////////////////////////////////////////
    33/// 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       //
     4//  available at https://github.com/JamesHeinrich/getID3       //
     5//            or https://www.getid3.org                        //
     6//            or http://getid3.sourceforge.net                 //
     7//  see readme.txt for more details                            //
     8/////////////////////////////////////////////////////////////////
     9//                                                             //
     10// module.audio-video.flv.php                                  //
     11// module for analyzing Shockwave Flash Video files            //
     12// dependencies: NONE                                          //
     13//                                                             //
     14/////////////////////////////////////////////////////////////////
    715//                                                             //
    816//  FLV module by Seth Kaufman <sethØwhirl-i-gig*com>          //
    917//                                                             //
    1018//  * version 0.1 (26 June 2005)                               //
    11 //                                                             //
    1219//                                                             //
    1320//  * version 0.1.1 (15 July 2005)                             //
     
    4451//  improved AVCSequenceParameterSetReader::readData()         //
    4552//    by Xander Schouwerwou <schouwerwouØgmail*com>            //
    46 //                                                             //
    47 /////////////////////////////////////////////////////////////////
    48 //                                                             //
    49 // module.audio-video.flv.php                                  //
    50 // module for analyzing Shockwave Flash Video files            //
    51 // dependencies: NONE                                          //
    5253//                                                            ///
    5354/////////////////////////////////////////////////////////////////
     
    7475define('H264_PROFILE_HIGH444_PREDICTIVE', 244);
    7576
    76 class getid3_flv extends getid3_handler {
    77 
     77class getid3_flv extends getid3_handler
     78{
    7879    const magic = 'FLV';
    7980
    80     public $max_frames = 100000; // break out of the loop if too many frames have been scanned; only scan this many if meta frame does not contain useful duration
    81 
     81    /**
     82     * Break out of the loop if too many frames have been scanned; only scan this
     83     * many if meta frame does not contain useful duration.
     84     *
     85     * @var int
     86     */
     87    public $max_frames = 100000;
     88
     89    /**
     90     * @return bool
     91     */
    8292    public function Analyze() {
    8393        $info = &$this->getid3->info;
     
    333343    }
    334344
    335 
     345    /**
     346     * @param int $id
     347     *
     348     * @return string|false
     349     */
    336350    public static function audioFormatLookup($id) {
    337351        static $lookup = array(
     
    356370    }
    357371
     372    /**
     373     * @param int $id
     374     *
     375     * @return int|false
     376     */
    358377    public static function audioRateLookup($id) {
    359378        static $lookup = array(
     
    366385    }
    367386
     387    /**
     388     * @param int $id
     389     *
     390     * @return int|false
     391     */
    368392    public static function audioBitDepthLookup($id) {
    369393        static $lookup = array(
     
    374398    }
    375399
     400    /**
     401     * @param int $id
     402     *
     403     * @return string|false
     404     */
    376405    public static function videoCodecLookup($id) {
    377406        static $lookup = array(
     
    387416}
    388417
    389 class AMFStream {
     418class AMFStream
     419{
     420    /**
     421     * @var string
     422     */
    390423    public $bytes;
     424
     425    /**
     426     * @var int
     427     */
    391428    public $pos;
    392429
     430    /**
     431     * @param string $bytes
     432     */
    393433    public function __construct(&$bytes) {
    394434        $this->bytes =& $bytes;
     
    396436    }
    397437
    398     public function readByte() {
    399         return getid3_lib::BigEndian2Int(substr($this->bytes, $this->pos++, 1));
    400     }
    401 
    402     public function readInt() {
     438    /**
     439     * @return int
     440     */
     441    public function readByte() { //  8-bit
     442        return ord(substr($this->bytes, $this->pos++, 1));
     443    }
     444
     445    /**
     446     * @return int
     447     */
     448    public function readInt() { // 16-bit
    403449        return ($this->readByte() << 8) + $this->readByte();
    404450    }
    405451
    406     public function readLong() {
     452    /**
     453     * @return int
     454     */
     455    public function readLong() { // 32-bit
    407456        return ($this->readByte() << 24) + ($this->readByte() << 16) + ($this->readByte() << 8) + $this->readByte();
    408457    }
    409458
     459    /**
     460     * @return float|false
     461     */
    410462    public function readDouble() {
    411463        return getid3_lib::BigEndian2Float($this->read(8));
    412464    }
    413465
     466    /**
     467     * @return string
     468     */
    414469    public function readUTF() {
    415470        $length = $this->readInt();
     
    417472    }
    418473
     474    /**
     475     * @return string
     476     */
    419477    public function readLongUTF() {
    420478        $length = $this->readLong();
     
    422480    }
    423481
     482    /**
     483     * @param int $length
     484     *
     485     * @return string
     486     */
    424487    public function read($length) {
    425488        $val = substr($this->bytes, $this->pos, $length);
     
    428491    }
    429492
     493    /**
     494     * @return int
     495     */
    430496    public function peekByte() {
    431497        $pos = $this->pos;
     
    435501    }
    436502
     503    /**
     504     * @return int
     505     */
    437506    public function peekInt() {
    438507        $pos = $this->pos;
     
    442511    }
    443512
     513    /**
     514     * @return int
     515     */
    444516    public function peekLong() {
    445517        $pos = $this->pos;
     
    449521    }
    450522
     523    /**
     524     * @return float|false
     525     */
    451526    public function peekDouble() {
    452527        $pos = $this->pos;
     
    456531    }
    457532
     533    /**
     534     * @return string
     535     */
    458536    public function peekUTF() {
    459537        $pos = $this->pos;
     
    463541    }
    464542
     543    /**
     544     * @return string
     545     */
    465546    public function peekLongUTF() {
    466547        $pos = $this->pos;
     
    471552}
    472553
    473 class AMFReader {
     554class AMFReader
     555{
     556    /**
     557    * @var AMFStream
     558    */
    474559    public $stream;
    475560
    476     public function __construct(&$stream) {
    477         $this->stream =& $stream;
    478     }
    479 
     561    /**
     562     * @param AMFStream $stream
     563     */
     564    public function __construct(AMFStream $stream) {
     565        $this->stream = $stream;
     566    }
     567
     568    /**
     569     * @return mixed
     570     */
    480571    public function readData() {
    481572        $value = null;
     
    548639    }
    549640
     641    /**
     642     * @return float|false
     643     */
    550644    public function readDouble() {
    551645        return $this->stream->readDouble();
    552646    }
    553647
     648    /**
     649     * @return bool
     650     */
    554651    public function readBoolean() {
    555652        return $this->stream->readByte() == 1;
    556653    }
    557654
     655    /**
     656     * @return string
     657     */
    558658    public function readString() {
    559659        return $this->stream->readUTF();
    560660    }
    561661
     662    /**
     663     * @return array
     664     */
    562665    public function readObject() {
    563666        // Get highest numerical index - ignored
     
    565668
    566669        $data = array();
     670        $key = null;
    567671
    568672        while ($key = $this->stream->readUTF()) {
     
    577681    }
    578682
     683    /**
     684     * @return array
     685     */
    579686    public function readMixedArray() {
    580687        // Get highest numerical index - ignored
     
    582689
    583690        $data = array();
     691        $key = null;
    584692
    585693        while ($key = $this->stream->readUTF()) {
    586694            if (is_numeric($key)) {
    587                 $key = (float) $key;
     695                $key = (int) $key;
    588696            }
    589697            $data[$key] = $this->readData();
     
    598706    }
    599707
     708    /**
     709     * @return array
     710     */
    600711    public function readArray() {
    601712        $length = $this->stream->readLong();
     
    608719    }
    609720
     721    /**
     722     * @return float|false
     723     */
    610724    public function readDate() {
    611725        $timestamp = $this->stream->readDouble();
     
    614728    }
    615729
     730    /**
     731     * @return string
     732     */
    616733    public function readLongString() {
    617734        return $this->stream->readLongUTF();
    618735    }
    619736
     737    /**
     738     * @return string
     739     */
    620740    public function readXML() {
    621741        return $this->stream->readLongUTF();
    622742    }
    623743
     744    /**
     745     * @return array
     746     */
    624747    public function readTypedObject() {
    625748        $className = $this->stream->readUTF();
     
    628751}
    629752
    630 class AVCSequenceParameterSetReader {
     753class AVCSequenceParameterSetReader
     754{
     755    /**
     756     * @var string
     757     */
    631758    public $sps;
    632759    public $start = 0;
    633760    public $currentBytes = 0;
    634761    public $currentBits = 0;
     762
     763    /**
     764     * @var int
     765     */
    635766    public $width;
     767
     768    /**
     769     * @var int
     770     */
    636771    public $height;
    637772
     773    /**
     774     * @param string $sps
     775     */
    638776    public function __construct($sps) {
    639777        $this->sps = $sps;
     
    692830    }
    693831
     832    /**
     833     * @param int $bits
     834     */
    694835    public function skipBits($bits) {
    695836        $newBits = $this->currentBits + $bits;
     
    698839    }
    699840
     841    /**
     842     * @return int
     843     */
    700844    public function getBit() {
    701845        $result = (getid3_lib::BigEndian2Int(substr($this->sps, $this->currentBytes, 1)) >> (7 - $this->currentBits)) & 0x01;
     
    704848    }
    705849
     850    /**
     851     * @param int $bits
     852     *
     853     * @return int
     854     */
    706855    public function getBits($bits) {
    707856        $result = 0;
     
    712861    }
    713862
     863    /**
     864     * @return int
     865     */
    714866    public function expGolombUe() {
    715867        $significantBits = 0;
     
    727879    }
    728880
     881    /**
     882     * @return int
     883     */
    729884    public function expGolombSe() {
    730885        $result = $this->expGolombUe();
     
    736891    }
    737892
     893    /**
     894     * @return int
     895     */
    738896    public function getWidth() {
    739897        return $this->width;
    740898    }
    741899
     900    /**
     901     * @return int
     902     */
    742903    public function getHeight() {
    743904        return $this->height;
Note: See TracChangeset for help on using the changeset viewer.