WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

getid3_mp3::RecursiveFrameScanning() public WP 1.0

Это метод класса: getid3_mp3{}

Хуков нет.

Возвращает

true/false.

Использование

$getid3_mp3 = new getid3_mp3();
$getid3_mp3->RecursiveFrameScanning( $offset, $nextframetestoffset, $ScanAsCBR );
$offset(число) (обязательный) (передается по ссылке — &)
$nextframetestoffset(число) (обязательный) (передается по ссылке — &)
$ScanAsCBR(true/false) (обязательный)

Код getid3_mp3::RecursiveFrameScanning() WP 5.5.1

wp-includes/ID3/module.audio.mp3.php
<?php
public function RecursiveFrameScanning(&$offset, &$nextframetestoffset, $ScanAsCBR) {
	$info = &$this->getid3->info;
	$firstframetestarray = array('error' => array(), 'warning'=> array(), 'avdataend' => $info['avdataend'], 'avdataoffset' => $info['avdataoffset']);
	$this->decodeMPEGaudioHeader($offset, $firstframetestarray, false);

	for ($i = 0; $i < GETID3_MP3_VALID_CHECK_FRAMES; $i++) {
		// check next GETID3_MP3_VALID_CHECK_FRAMES frames for validity, to make sure we haven't run across a false synch
		if (($nextframetestoffset + 4) >= $info['avdataend']) {
			// end of file
			return true;
		}

		$nextframetestarray = array('error' => array(), 'warning' => array(), 'avdataend' => $info['avdataend'], 'avdataoffset'=>$info['avdataoffset']);
		if ($this->decodeMPEGaudioHeader($nextframetestoffset, $nextframetestarray, false)) {
			if ($ScanAsCBR) {
				// force CBR mode, used for trying to pick out invalid audio streams with valid(?) VBR headers, or VBR streams with no VBR header
				if (!isset($nextframetestarray['mpeg']['audio']['bitrate']) || !isset($firstframetestarray['mpeg']['audio']['bitrate']) || ($nextframetestarray['mpeg']['audio']['bitrate'] != $firstframetestarray['mpeg']['audio']['bitrate'])) {
					return false;
				}
			}


			// next frame is OK, get ready to check the one after that
			if (isset($nextframetestarray['mpeg']['audio']['framelength']) && ($nextframetestarray['mpeg']['audio']['framelength'] > 0)) {
				$nextframetestoffset += $nextframetestarray['mpeg']['audio']['framelength'];
			} else {
				$this->error('Frame at offset ('.$offset.') is has an invalid frame length.');
				return false;
			}

		} elseif (!empty($firstframetestarray['mpeg']['audio']['framelength']) && (($nextframetestoffset + $firstframetestarray['mpeg']['audio']['framelength']) > $info['avdataend'])) {

			// it's not the end of the file, but there's not enough data left for another frame, so assume it's garbage/padding and return OK
			return true;

		} else {

			// next frame is not valid, note the error and fail, so scanning can contiue for a valid frame sequence
			$this->warning('Frame at offset ('.$offset.') is valid, but the next one at ('.$nextframetestoffset.') is not.');

			return false;
		}
	}
	return true;
}