From a435de089da4dd37c3c183f633a49107c720dd95 Mon Sep 17 00:00:00 2001 From: Dalyn Cessac Date: Wed, 16 Mar 2011 11:06:40 -0500 Subject: Added phpvideotoolkit transcoder and updates to the preset ui --- .../ffmpeg-php/php-reader/src/ID3/Header.php | 173 +++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Header.php (limited to 'libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Header.php') diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Header.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Header.php new file mode 100644 index 0000000..3190b00 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Header.php @@ -0,0 +1,173 @@ + + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 107 $ + */ +final class ID3_Header extends ID3_Object +{ + /** A flag to denote whether or not unsynchronisation is applied on all + frames */ + const UNSYNCHRONISATION = 128; + + /** A flag to denote whether or not the header is followed by an extended + header */ + const EXTENDEDHEADER = 64; + + /** A flag used as an experimental indicator. This flag shall always be set + when the tag is in an experimental stage. */ + const EXPERIMENTAL = 32; + + /** + * A flag to denote whether a footer is present at the very end of the tag. + * + * @since ID3v2.4.0 + */ + const FOOTER = 16; + + /** @var integer */ + private $_version = 4.0; + + /** @var integer */ + private $_flags = 0; + + /** @var integer */ + private $_size; + + /** + * Constructs the class with given parameters and reads object related data + * from the ID3v2 tag. + * + * @param Reader $reader The reader object. + * @param Array $options The options array. + */ + public function __construct($reader = null, &$options = array()) + { + parent::__construct($reader, $options); + + if ($reader === null) + return; + + $this->_version = $options["version"] = + $this->_reader->readInt8() + $this->_reader->readInt8() / 10; + $this->_flags = $this->_reader->readInt8(); + $this->_size = $this->decodeSynchsafe32($this->_reader->readUInt32BE()); + } + + /** + * Returns the tag version number. The version number is in the form of + * major.revision. + * + * @return integer + */ + public function getVersion() { return $this->_version; } + + /** + * Sets the tag version number. Supported version numbers are 3.0 and 4.0 + * for ID3v2.3.0 and ID3v2.4.0 standards, respectively. + * + * @param integer $version The tag version number in the form of + * major.revision. + */ + public function setVersion($version) + { + $this->setOption("version", $this->_version = $version); + } + + /** + * Checks whether or not the flag is set. Returns true if the flag + * is set, false otherwise. + * + * @param integer $flag The flag to query. + * @return boolean + */ + public function hasFlag($flag) { return ($this->_flags & $flag) == $flag; } + + /** + * Returns the flags byte. + * + * @return integer + */ + public function getFlags() { return $this->_flags; } + + /** + * Sets the flags byte. + * + * @param string $flags The flags byte. + */ + public function setFlags($flags) { $this->_flags = $flags; } + + /** + * Returns the tag size, excluding the header and the footer. + * + * @return integer + */ + public function getSize() { return $this->_size; } + + /** + * Sets the tag size, excluding the header and the footer. Called + * automatically upon tag generation to adjust the tag size. + * + * @param integer $size The size of the tag, in bytes. + */ + public function setSize($size) { $this->_size = $size; } + + /** + * Returns the header/footer raw data without the identifier. + * + * @return string + */ + public function __toString() + { + return Transform::toInt8(floor($this->_version)) . + Transform::toInt8(($this->_version - floor($this->_version)) * 10) . + Transform::toInt8($this->_flags) . + Transform::toUInt32BE($this->encodeSynchsafe32($this->_size)); + } +} -- cgit v1.2.3