getID3::ChannelsBitratePlaytimeCalculations() –

You appear to be a bot. Output may be restricted

Description

Usage

getID3::ChannelsBitratePlaytimeCalculations();

Parameters

Returns

void

Source

File name: wordpress/wp-includes/ID3/getid3.php
Lines:

1 to 63 of 63
  public function ChannelsBitratePlaytimeCalculations() {

    // set channelmode on audio
    if (!empty($this->info['audio']['channelmode']) || !isset($this->info['audio']['channels'])) {
      // ignore
    } elseif ($this->info['audio']['channels'] == 1) {
      $this->info['audio']['channelmode'] = 'mono';
    } elseif ($this->info['audio']['channels'] == 2) {
      $this->info['audio']['channelmode'] = 'stereo';
    }

    // Calculate combined bitrate - audio + video
    $CombinedBitrate  = 0;
    $CombinedBitrate += (isset($this->info['audio']['bitrate']) ? $this->info['audio']['bitrate'] : 0);
    $CombinedBitrate += (isset($this->info['video']['bitrate']) ? $this->info['video']['bitrate'] : 0);
    if (($CombinedBitrate > 0) && empty($this->info['bitrate'])) {
      $this->info['bitrate'] = $CombinedBitrate;
    }
    //if ((isset($this->info['video']) && !isset($this->info['video']['bitrate'])) || (isset($this->info['audio']) && !isset($this->info['audio']['bitrate']))) {
    //	// for example, VBR MPEG video files cannot determine video bitrate:
    //	// should not set overall bitrate and playtime from audio bitrate only
    //	unset($this->info['bitrate']);
    //}

    // video bitrate undetermined, but calculable
    if (isset($this->info['video']['dataformat']) && $this->info['video']['dataformat'] && (!isset($this->info['video']['bitrate']) || ($this->info['video']['bitrate'] == 0))) {
      // if video bitrate not set
      if (isset($this->info['audio']['bitrate']) && ($this->info['audio']['bitrate'] > 0) && ($this->info['audio']['bitrate'] == $this->info['bitrate'])) {
        // AND if audio bitrate is set to same as overall bitrate
        if (isset($this->info['playtime_seconds']) && ($this->info['playtime_seconds'] > 0)) {
          // AND if playtime is set
          if (isset($this->info['avdataend']) && isset($this->info['avdataoffset'])) {
            // AND if AV data offset start/end is known
            // THEN we can calculate the video bitrate
            $this->info['bitrate'] = round((($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['playtime_seconds']);
            $this->info['video']['bitrate'] = $this->info['bitrate'] - $this->info['audio']['bitrate'];
          }
        }
      }
    }

    if ((!isset($this->info['playtime_seconds']) || ($this->info['playtime_seconds'] <= 0)) && !empty($this->info['bitrate'])) {
      $this->info['playtime_seconds'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['bitrate'];
    }

    if (!isset($this->info['bitrate']) && !empty($this->info['playtime_seconds'])) {
      $this->info['bitrate'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['playtime_seconds'];
    }
    if (isset($this->info['bitrate']) && empty($this->info['audio']['bitrate']) && empty($this->info['video']['bitrate'])) {
      if (isset($this->info['audio']['dataformat']) && empty($this->info['video']['resolution_x'])) {
        // audio only
        $this->info['audio']['bitrate'] = $this->info['bitrate'];
      } elseif (isset($this->info['video']['resolution_x']) && empty($this->info['audio']['dataformat'])) {
        // video only
        $this->info['video']['bitrate'] = $this->info['bitrate'];
      }
    }

    // Set playtime string
    if (!empty($this->info['playtime_seconds']) && empty($this->info['playtime_string'])) {
      $this->info['playtime_string'] = getid3_lib::PlaytimeString($this->info['playtime_seconds']);
    }
  }
 

 View on GitHub View on Trac