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/Frame/AENC.php | 171 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/APIC.php | 253 ++++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php | 157 +++++++++ .../php-reader/src/ID3/Frame/AbstractLink.php | 96 ++++++ .../php-reader/src/ID3/Frame/AbstractText.php | 170 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/COMM.php | 228 +++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/COMR.php | 373 +++++++++++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php | 156 +++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php | 193 +++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php | 140 ++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php | 168 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php | 226 +++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/GRID.php | 152 +++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php | 174 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/LINK.php | 173 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php | 78 +++++ .../ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php | 169 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php | 219 ++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php | 111 ++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/POPM.php | 161 +++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/POSS.php | 132 ++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php | 126 +++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php | 181 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php | 217 ++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php | 252 ++++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php | 314 +++++++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php | 104 ++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php | 122 +++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php | 313 +++++++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php | 161 +++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TALB.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php | 52 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TCON.php | 62 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php | 59 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php | 57 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TENC.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php | 69 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TIME.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php | 57 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TMED.php | 137 ++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TORY.php | 57 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php | 52 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php | 56 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php | 61 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php | 57 ++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TSST.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php | 148 ++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/TYER.php | 55 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/USER.php | 186 ++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/USLT.php | 225 +++++++++++++ .../ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php | 54 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WORS.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php | 53 +++ .../ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php | 162 +++++++++ 93 files changed, 9530 insertions(+) create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AENC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/APIC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractLink.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractText.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMM.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMR.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GRID.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/LINK.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POPM.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POSS.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TALB.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCON.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TENC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIME.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMED.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TORY.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSST.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TYER.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USER.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USLT.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WORS.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php create mode 100644 libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php (limited to 'libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame') diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AENC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AENC.php new file mode 100644 index 0000000..a3971ae --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AENC.php @@ -0,0 +1,171 @@ +Audio encryption indicates if the actual audio stream is + * encrypted, and by whom. + * + * The identifier is a URL containing an email address, or a link to a location + * where an email address can be found, that belongs to the organisation + * responsible for this specific encrypted audio file. Questions regarding the + * encrypted audio should be sent to the email address specified. There may be + * more than one AENC frame in a tag, but only one with the same owner + * identifier. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_AENC extends ID3_Frame +{ + /** @var string */ + private $_owner; + + /** @var integer */ + private $_previewStart; + + /** @var integer */ + private $_previewLength; + + /** @var string */ + private $_encryptionInfo; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list($this->_owner, $this->_data) = $this->explodeString8($this->_data, 2); + $this->_previewStart = Transform::fromUInt16BE(substr($this->_data, 0, 2)); + $this->_previewLength = Transform::fromUInt16BE(substr($this->_data, 2, 2)); + $this->_encryptionInfo = substr($this->_data, 4); + } + + /** + * Returns the owner identifier string. + * + * @return string + */ + public function getOwner() { return $this->_owner; } + + /** + * Sets the owner identifier string. + * + * @param string $owner The owner identifier string. + */ + public function setOwner($owner) { $this->_owner = $owner; } + + /** + * Returns the pointer to an unencrypted part of the audio in frames. + * + * @return integer + */ + public function getPreviewStart() { return $this->_previewStart; } + + /** + * Sets the pointer to an unencrypted part of the audio in frames. + * + * @param integer $previewStart The pointer to an unencrypted part. + */ + public function setPreviewStart($previewStart) + { + $this->_previewStart = $previewStart; + } + + /** + * Returns the length of the preview in frames. + * + * @return integer + */ + public function getPreviewLength() { return $this->_previewLength; } + + /** + * Sets the length of the preview in frames. + * + * @param integer $previewLength The length of the preview. + */ + public function setPreviewLength($previewLength) + { + $this->_previewLength = $previewLength; + } + + /** + * Returns the encryption info. + * + * @return string + */ + public function getEncryptionInfo() { return $this->_encryptionInfo; } + + /** + * Sets the encryption info binary string. + * + * @param string $encryptionInfo The data string. + */ + public function setEncryptionInfo($encryptionInfo) + { + $this->_encryptionInfo = $encryptionInfo; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + ($this->_owner . "\0" . Transform::toUInt16BE($this->_previewStart) . + Transform::toUInt16BE($this->_previewLength) . $this->_encryptionInfo); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/APIC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/APIC.php new file mode 100644 index 0000000..ebd4904 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/APIC.php @@ -0,0 +1,253 @@ +Attached picture frame contains a picture directly related to the + * audio file. Image format is the MIME type and subtype for the image. + * + * There may be several pictures attached to one file, each in their individual + * APIC frame, but only one with the same content descriptor. There may only + * be one picture with the same picture type. There is the possibility to put + * only a link to the image file by using the MIME type "-->" and having a + * complete URL instead of picture data. + * + * The use of linked files should however be used sparingly since there is the + * risk of separation of files. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_APIC extends ID3_Frame + implements ID3_Encoding +{ + /** + * The list of image types. + * + * @var Array + */ + public static $types = array + ("Other", "32x32 pixels file icon (PNG only)", "Other file icon", + "Cover (front)", "Cover (back)", "Leaflet page", + "Media (e.g. label side of CD)", "Lead artist/lead performer/soloist", + "Artist/performer", "Conductor", "Band/Orchestra", "Composer", + "Lyricist/text writer", "Recording Location", "During recording", + "During performance", "Movie/video screen capture", + "A bright coloured fish", "Illustration", "Band/artist logotype", + "Publisher/Studio logotype"); + + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_mimeType = "image/unknown"; + + /** @var integer */ + private $_imageType = 0; + + /** @var string */ + private $_description; + + /** @var string */ + private $_imageData; + + /** @var integer */ + private $_imageSize = 0; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_mimeType = substr + ($this->_data, 1, ($pos = strpos($this->_data, "\0", 1)) - 1); + $this->_imageType = Transform::fromUInt8($this->_data[++$pos]); + $this->_data = substr($this->_data, $pos + 1); + + switch ($this->_encoding) { + case self::UTF16: + list ($this->_description, $this->_imageData) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + break; + case self::UTF16BE: + list ($this->_description, $this->_imageData) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + break; + default: + list ($this->_description, $this->_imageData) = + $this->explodeString8($this->_data, 2); + } + + $this->_imageSize = strlen($this->_imageData); + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the MIME type. The MIME type is always ISO-8859-1 encoded. + * + * @return string + */ + public function getMimeType() { return $this->_mimeType; } + + /** + * Sets the MIME type. The MIME type is always ISO-8859-1 encoded. + * + * @param string $mimeType The MIME type. + */ + public function setMimeType($mimeType) { $this->_mimeType = $mimeType; } + + /** + * Returns the image type. + * + * @return integer + */ + public function getImageType() { return $this->_imageType; } + + /** + * Sets the image type code. + * + * @param integer $imageType The image type code. + */ + public function setImageType($imageType) { $this->_imageType = $imageType; } + + /** + * Returns the file description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. + * + * @param string $description The content description text. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $encoding = false) + { + $this->_description = $description; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the embedded image data. + * + * @return string + */ + public function getImageData() { return $this->_imageData; } + + /** + * Sets the embedded image data. Also updates the image size field to + * correspond the new data. + * + * @param string $imageData The image data. + */ + public function setImageData($imageData) + { + $this->_imageData = $imageData; + $this->_imageSize = strlen($imageData); + } + + /** + * Returns the size of the embedded image data. + * + * @return integer + */ + public function getImageSize() { return $this->_imageSize; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_mimeType . "\0" . + Transform::toUInt8($this->_imageType); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($this->_description, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) . + "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_description) . "\0\0"; + break; + default: + $data .= $this->_description . "\0"; + } + parent::setData($data . $this->_imageData); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php new file mode 100644 index 0000000..d51cc01 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php @@ -0,0 +1,157 @@ +Audio seek point index or + * ASPI frame makes seeking easier by providing a list a seek points within the + * audio file. The seek points are a fractional offset within the audio data, + * providing a starting point from which to find an appropriate point to start + * decoding. The presence of an ASPI frame requires the existence of a + * {@link ID3_Frame_TLEN} frame, indicating the duration of the file in + * milliseconds. There may only be one audio seek point index frame in a tag. + * + * @todo Data parsing and write support + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_ASPI extends ID3_Frame +{ + /** @var integer */ + private $_dataStart; + + /** @var integer */ + private $_dataLength; + + /** @var integer */ + private $_size; + + /** @var Array */ + private $_fractions = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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) + throw new ID3_Exception("Write not supported yet"); + + $this->_dataStart = Transform::fromInt32BE(substr($this->_data, 0, 4)); + $this->_dataLength = Transform::fromInt32BE(substr($this->_data, 4, 4)); + $this->_size = Transform::fromInt16BE(substr($this->_data, 8, 2)); + + $bitsPerPoint = Transform::fromInt8($this->_data[10]); + /*for ($i = 0, $offset = 11; $i < $this->_size; $i++) { + if ($bitsPerPoint == 16) { + $this->_fractions[$i] = substr($this->_data, $offset, 2); + $offset += 2; + } else { + $this->_fractions[$i] = substr($this->_data, $offset, 1); + $offset ++; + } + }*/ + } + + /** + * Returns the byte offset from the beginning of the file. + * + * @return integer + */ + public function getDataStart() { return $this->_dataStart; } + + /** + * Sets the byte offset from the beginning of the file. + * + * @param integer $dataStart The offset. + */ + public function setDataStart($dataStart) { $this->_dataStart = $dataStart; } + + /** + * Returns the byte length of the audio data being indexed. + * + * @return integer + */ + public function getDataLength() { return $this->_dataLength; } + + /** + * Sets the byte length of the audio data being indexed. + * + * @param integer $dataLength The length. + */ + public function setDataLength($dataLength) + { + $this->_dataLength = $dataLength; + } + + /** + * Returns the number of index points in the frame. + * + * @return integer + */ + public function getSize() { return count($this->_fractions); } + + /** + * Returns the numerator of the fraction representing a relative position in + * the data or false if index not defined. The denominator is 2 + * to the power of b. + * + * @param integer $index The fraction numerator. + * @return integer + */ + public function getFractionAt($index) + { + if (isset($this->_fractions[$index])) + return $this->_fractions[$index]; + return false; + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractLink.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractLink.php new file mode 100644 index 0000000..24166cb --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractLink.php @@ -0,0 +1,96 @@ + + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +abstract class ID3_Frame_AbstractLink extends ID3_Frame +{ + /** @var string */ + protected $_link; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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) + $this->_link = implode($this->explodeString8($this->_data, 1), ""); + } + + /** + * Returns the link associated with the frame. + * + * @return string + */ + public function getLink() { return $this->_link; } + + /** + * Sets the link. The link encoding is always ISO-8859-1. + * + * @param string $link The link. + */ + public function setLink($link) { $this->_link = $link; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData($this->_link); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractText.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractText.php new file mode 100644 index 0000000..ca2081a --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractText.php @@ -0,0 +1,170 @@ + + * @author Ryan Butterfield + * @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 $ + */ +abstract class ID3_Frame_AbstractText extends ID3_Frame + implements ID3_Encoding +{ + /** + * The text encoding. + * + * @var integer + */ + protected $_encoding = ID3_Encoding::UTF8; + + /** + * The text array. + * + * @var string + */ + protected $_text; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_data = substr($this->_data, 1); + switch ($this->_encoding) { + case self::UTF16: + $this->_text = + $this->explodeString16(Transform::fromString16($this->_data)); + break; + case self::UTF16BE: + $this->_text = + $this->explodeString16(Transform::fromString16BE($this->_data)); + break; + default: + $this->_text = + $this->explodeString8(Transform::fromString8($this->_data)); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the first text chunk the frame contains. + * + * @return string + */ + public function getText() { return $this->_text[0]; } + + /** + * Returns an array of texts the frame contains. + * + * @return Array + */ + public function getTexts() { return $this->_text; } + + /** + * Sets the text using given encoding. + * + * @param mixed $text The test string or an array of strings. + * @param integer $encoding The text encoding. + */ + public function setText($text, $encoding = false) + { + $this->_text = is_array($text) ? $text : array($text); + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $array = $this->_text; + foreach ($array as &$text) + $text = Transform::toString16($text); + $data .= Transform::toString16 + (implode("\0\0", $array), $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER); + break; + case self::UTF16BE: + $data .= Transform::toString16BE(implode("\0\0", $this->_text)); + break; + default: + $data .= implode("\0", $this->_text); + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMM.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMM.php new file mode 100644 index 0000000..8f66a41 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMM.php @@ -0,0 +1,228 @@ +Comments frame is intended for any kind of full text information + * that does not fit in any other frame. It consists of a frame header followed + * by encoding, language and content descriptors and is ended with the actual + * comment as a text string. Newline characters are allowed in the comment text + * string. There may be more than one comment frame in each tag, but only one + * with the same language and content descriptor. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_COMM extends ID3_Frame + implements ID3_Encoding, ID3_Language +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_language = "und"; + + /** @var string */ + private $_description; + + /** @var string */ + private $_text; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_language = substr($this->_data, 1, 3); + if ($this->_language == "XXX") + $this->_language = "und"; + $this->_data = substr($this->_data, 4); + + switch ($this->_encoding) { + case self::UTF16: + list ($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + $this->_text = Transform::fromString16($this->_text); + break; + case self::UTF16BE: + list ($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + $this->_text = Transform::fromString16BE($this->_text); + break; + default: + list ($this->_description, $this->_text) = + $this->explodeString8($this->_data, 2); + $this->_description = Transform::fromString8($this->_description); + $this->_text = Transform::fromString8($this->_text); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @return string + */ + public function getLanguage() { return $this->_language; } + + /** + * Sets the text language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @see ID3_Language + * @param string $language The language code. + */ + public function setLanguage($language) + { + if ($language == "XXX") + $language = "und"; + $this->_language = substr($language, 0, 3); + } + + /** + * Returns the short content description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. The description + * language and encoding must be that of the actual text. + * + * @param string $description The content description text. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $language = false, + $encoding = false) + { + $this->_description = $description; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the comment text. + * + * @return string + */ + public function getText() { return $this->_text; } + + /** + * Sets the text using given encoding. The text language and encoding must be + * that of the description text. + * + * @param mixed $text The test string. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setText($text, $language = false, $encoding = false) + { + $this->_text = $text; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_language; + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + $data .= Transform::toString16($this->_description, $order) . "\0\0" . + Transform::toString16($this->_text, $order); + break; + case self::UTF16BE: + $data .= Transform::toString16BE + ($this->_description . "\0\0" . $this->_text); + break; + default: + $data .= $this->_description . "\0" . $this->_text; + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMR.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMR.php new file mode 100644 index 0000000..bd0125b --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMR.php @@ -0,0 +1,373 @@ +Commercial frame enables several competing offers in the same tag + * by bundling all needed information. That makes this frame rather complex but + * it's an easier solution than if one tries to achieve the same result with + * several frames. + * + * There may be more than one commercial frame in a tag, but no two may be + * identical. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_COMR extends ID3_Frame + implements ID3_Encoding +{ + /** + * The delivery types. + * + * @var Array + */ + public static $types = array + ("Other", "Standard CD album with other songs", "Compressed audio on CD", + "File over the Internet", "Stream over the Internet", "As note sheets", + "As note sheets in a book with other sheets", "Music on other media", + "Non-musical merchandise"); + + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_currency = "EUR"; + + /** @var string */ + private $_price; + + /** @var string */ + private $_date; + + /** @var string */ + private $_contact; + + /** @var integer */ + private $_delivery = 0; + + /** @var string */ + private $_seller; + + /** @var string */ + private $_description; + + /** @var string */ + private $_mimeType = false; + + /** @var string */ + private $_imageData; + + /** @var integer */ + private $_imageSize = 0; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + list($pricing, $this->_data) = + $this->explodeString8(substr($this->_data, 1), 2); + $this->_currency = substr($pricing, 0, 3); + $this->_price = substr($pricing, 3); + $this->_date = substr($this->_data, 0, 8); + list($this->_contact, $this->_data) = + $this->explodeString8(substr($this->_data, 8), 2); + $this->_delivery = Transform::fromUInt8($this->_data[0]); + $this->_data = substr($this->_data, 1); + + switch ($this->_encoding) { + case self::UTF16: + list ($this->_seller, $this->_description, $this->_data) = + $this->explodeString16($this->_data, 3); + $this->_seller = Transform::fromString16($this->_seller); + $this->_description = Transform::fromString16($this->_description); + break; + case self::UTF16BE: + list ($this->_seller, $this->_description, $this->_data) = + $this->explodeString16($this->_data, 3); + $this->_seller = Transform::fromString16BE($this->_seller); + $this->_description = Transform::fromString16BE($this->_description); + break; + default: + list ($this->_seller, $this->_description, $this->_data) = + $this->explodeString8($this->_data, 3); + $this->_seller = Transform::fromString8($this->_seller); + $this->_description = Transform::fromString8($this->_description); + } + + if (strlen($this->_data) == 0) + return; + + list($this->_mimeType, $this->_imageData) = + $this->explodeString8($this->_data, 2); + + $this->_imageSize = strlen($this->_imageData); + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the currency code, encoded according to + * {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm + * ISO 4217} alphabetic currency code. + * + * @return string + */ + public function getCurrency() { return $this->_currency; } + + /** + * Sets the currency used in transaction, encoded according to + * {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm + * ISO 4217} alphabetic currency code. + * + * @param string $currency The currency code. + */ + public function setCurrency($currency) { $this->_currency = $currency; } + + /** + * Returns the price as a numerical string using "." as the decimal separator. + * + * In the price string several prices may be concatenated, separated by a "/" + * character, but there may only be one currency of each type. + * + * @return string + */ + public function getPrice() { return $this->_price; } + + /** + * Sets the price. The price must use "." as the decimal separator and have + * multiple values be separated by a "/" character. + * + * @param string $price The price. + */ + public function setPrice($price) + { + $this->_price = $price; + } + + /** + * Returns the date as an 8 character date string (YYYYMMDD), describing for + * how long the price is valid. + * + * @return string + */ + public function getDate() { return $this->_date; } + + /** + * Sets the date describing for how long the price is valid for. The date must + * be an 8 character date string (YYYYMMDD). + * + * @param string $date The date string. + */ + public function setDate($date) { $this->_date = $date; } + + /** + * Returns the contact URL, with which the user can contact the seller. + * + * @return string + */ + public function getContact() { return $this->_contact; } + + /** + * Sets the contact URL, with which the user can contact the seller. + * + * @param string $contact The contact URL. + */ + public function setContact($contact) { $this->_contact = $contact; } + + /** + * Returns the delivery type with whitch the audio was delivered when bought. + * + * @return integer + */ + public function getDelivery() { return $this->_delivery; } + + /** + * Sets the delivery type with whitch the audio was delivered when bought. + * + * @param integer $delivery The delivery type code. + */ + public function setDelivery($delivery) { $this->_delivery = $delivery; } + + /** + * Returns the name of the seller. + * + * @return string + */ + public function getSeller() { return $this->_seller; } + + /** + * Sets the name of the seller using given encoding. The seller text encoding + * must be that of the description text. + * + * @param string $seller The name of the seller. + * @param integer $encoding The text encoding. + */ + public function setSeller($seller, $encoding = false) + { + $this->_seller = $seller; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the short description of the product. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. The description + * encoding must be that of the seller text. + * + * @param string $description The content description text. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $encoding = false) + { + $this->_description = $description; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the MIME type of the seller's company logo, if attached, or + * false otherwise. Currently only "image/png" and "image/jpeg" + * are allowed. + * + * @return string + */ + public function getMimeType() { return $this->_mimeType; } + + /** + * Sets the MIME type. Currently only "image/png" and "image/jpeg" are + * allowed. The MIME type is always ISO-8859-1 encoded. + * + * @param string $mimeType The MIME type. + */ + public function setMimeType($mimeType) { $this->_mimeType = $mimeType; } + + /** + * Returns the embedded image binary data. + * + * @return string + */ + public function getImageData() { return $this->_imageData; } + + /** + * Sets the embedded image data. Also updates the image size to correspond the + * new data. + * + * @param string $imageData The image data. + */ + public function setImageData($imageData) + { + $this->_imageData = $imageData; + $this->_imageSize = strlen($imageData); + } + + /** + * Returns the size of the embedded image data. + * + * @return integer + */ + public function getImageSize() { return $this->_imageSize; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_currency . + $this->_price . "\0" . $this->_date . $this->_contact . "\0" . + Transform::toUInt8($this->_delivery); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + $data .= Transform::toString16($this->_seller, $order) . "\0\0" . + Transform::toString16($this->_description, $order) . "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE + ($this->_seller . "\0\0" . $this->_description . "\0\0"); + break; + default: + $data .= $this->_seller . "\0" . $this->_description . "\0"; + } + parent::setData + ($data . ($this->_mimeType ? + $this->_mimeType . "\0" . $this->_imageData : "")); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php new file mode 100644 index 0000000..881823f --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php @@ -0,0 +1,156 @@ +Encryption method + * registration frame. + * + * The owner identifier a URL containing an email address, or a link to a + * location where an email address can be found, that belongs to the + * organisation responsible for this specific encryption method. Questions + * regarding the encryption method should be sent to the indicated email + * address. + * + * The method symbol contains a value that is associated with this method + * throughout the whole tag, in the range $80-F0. All other values are reserved. + * The method symbol may optionally be followed by encryption specific data. + * + * There may be several ENCR frames in a tag but only one containing the same + * symbol and only one containing the same owner identifier. The method must be + * used somewhere in the tag. See {@link ID3_Frame#ENCRYPTION} for more + * information. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_ENCR extends ID3_Frame +{ + /** @var string */ + private $_owner; + + /** @var integer */ + private $_method; + + /** @var string */ + private $_encryptionData; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list($this->_owner, $this->_data) = $this->explodeString8($this->_data, 2); + $this->_method = Transform::fromInt8($this->_data[0]); + $this->_encryptionData = substr($this->_data, 1); + } + + /** + * Returns the owner identifier string. + * + * @return string + */ + public function getOwner() { return $this->_owner; } + + /** + * Sets the owner identifier string. + * + * @param string $owner The owner identifier string. + */ + public function setOwner($owner) { $this->_owner = $owner; } + + /** + * Returns the method symbol. + * + * @return integer + */ + public function getMethod() { return $this->_method; } + + /** + * Sets the method symbol. + * + * @param integer $method The method symbol byte. + */ + public function setMethod($method) { $this->_method = $method; } + + /** + * Returns the encryption data. + * + * @return string + */ + public function getEncryptionData() { return $this->_encryptionData; } + + /** + * Sets the encryption data. + * + * @param string $encryptionData The encryption data string. + */ + public function setEncryptionData($encryptionData) + { + $this->_encryptionData = $encryptionData; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + parent::setData + ($this->_owner . "\0" . Transform::toInt8($this->_method) . + $this->_encryptionData); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php new file mode 100644 index 0000000..3721121 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php @@ -0,0 +1,193 @@ +Equalisation (2) is another subjective, alignment frame. It allows + * the user to predefine an equalisation curve within the audio file. There may + * be more than one EQU2 frame in each tag, but only one with the same + * identification string. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_EQU2 extends ID3_Frame +{ + /** + * Interpolation type that defines that no interpolation is made. A jump from + * one adjustment level to another occurs in the middle between two adjustment + * points. + */ + const BAND = 0; + + /** + * Interpolation type that defines that interpolation between adjustment + * points is linear. + */ + const LINEAR = 1; + + /** @var integer */ + private $_interpolation; + + /** @var string */ + private $_device; + + /** @var Array */ + private $_adjustments; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_interpolation = Transform::fromInt8($this->_data[0]); + list ($this->_device, $this->_data) = + $this->explodeString8(substr($this->_data, 1), 2); + + for ($i = 0; $i < strlen($this->_data); $i += 4) + $this->_adjustments + [(int)(Transform::fromUInt16BE(substr($this->_data, $i, 2)) / 2)] = + Transform::fromInt16BE(substr($this->_data, $i + 2, 2)) / 512.0; + ksort($this->_adjustments); + } + + /** + * Returns the interpolation method. The interpolation method describes which + * method is preferred when an interpolation between the adjustment point that + * follows. + * + * @return integer + */ + public function getInterpolation() { return $this->_interpolation; } + + /** + * Sets the interpolation method. The interpolation method describes which + * method is preferred when an interpolation between the adjustment point that + * follows. + * + * @param integer $interpolation The interpolation method code. + */ + public function setInterpolation($interpolation) + { + $this->_interpolation = $interpolation; + } + + /** + * Returns the device where the adjustments should apply. + * + * @return string + */ + public function getDevice() { return $this->_device; } + + /** + * Sets the device where the adjustments should apply. + * + * @param string $device The device. + */ + public function setDevice($device) { $this->_device = $device; } + + /** + * Returns the array containing adjustments having frequencies as keys and + * their corresponding adjustments as values. + * + * Adjustment points are ordered by frequency. + * + * @return Array + */ + public function getAdjustments() { return $this->_adjustments; } + + /** + * Adds a volume adjustment setting for given frequency. The frequency can + * have a value from 0 to 32767 Hz, and the adjustment +/- 64 dB with a + * precision of 0.001953125 dB. + * + * @param integer $frequency The frequency, in hertz. + * @param integer $adjustment The adjustment, in dB. + */ + public function addAdjustment($frequency, $adjustment) + { + $this->_adjustments[$frequency] = $adjustment; + ksort($this->_adjustments); + } + + /** + * Sets the adjustments array. The array must have frequencies as keys and + * their corresponding adjustments as values. The frequency can have a value + * from 0 to 32767 Hz, and the adjustment +/- 64 dB with a precision of + * 0.001953125 dB. One frequency should only be described once in the frame. + * + * @param Array $adjustments The adjustments array. + */ + public function setAdjustments($adjustments) + { + $this->_adjustments = $adjustments; + ksort($this->_adjustments); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toInt8($this->_interpolation) . $this->_device . "\0"; + foreach ($this->_adjustments as $frequency => $adjustment) + $data .= Transform::toUInt16BE($frequency * 2) . + Transform::toInt16BE($adjustment * 512); + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php new file mode 100644 index 0000000..42adab2 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php @@ -0,0 +1,140 @@ +Equalisation frame is another subjective, alignment frame. It + * allows the user to predefine an equalisation curve within the audio file. + * There may only be one EQUA frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_EQUA extends ID3_Frame +{ + /** @var Array */ + private $_adjustments; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + $adjustmentBits = Transform::fromInt8($this->_data[0]); + if ($adjustmentBits <= 8 || $adjustmentBits > 16) + throw new ID3_Exception + ("Unsupported adjustment bit size of: " . $adjustmentBits); + + for ($i = 1; $i < strlen($this->_data); $i += 4) { + $frequency = Transform::fromUInt16BE(substr($this->_data, $i, 2)); + $this->_adjustments[($frequency & 0x7fff)] = + ($frequency & 0x8000) == 0x8000 ? + Transform::fromUInt16BE(substr($this->_data, $i + 2, 2)) : + -Transform::fromUInt16BE(substr($this->_data, $i + 2, 2)); + } + ksort($this->_adjustments); + } + + /** + * Returns the array containing adjustments having frequencies as keys and + * their corresponding adjustments as values. + * + * @return Array + */ + public function getAdjustments() { return $this->_adjustments; } + + /** + * Adds a volume adjustment setting for given frequency. The frequency can + * have a value from 0 to 32767 Hz. + * + * @param integer $frequency The frequency, in hertz. + * @param integer $adjustment The adjustment, in dB. + */ + public function addAdjustment($frequency, $adjustment) + { + $this->_adjustments[$frequency] = $adjustment; + ksort($this->_adjustments); + } + + /** + * Sets the adjustments array. The array must have frequencies as keys and + * their corresponding adjustments as values. The frequency can have a value + * from 0 to 32767 Hz. One frequency should only be described once in the + * frame. + * + * @param Array $adjustments The adjustments array. + */ + public function setAdjustments($adjustments) + { + $this->_adjustments = $adjustments; + ksort($this->_adjustments); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toInt8(16); + foreach ($this->_adjustments as $frequency => $adjustment) + $data .= Transform::toUInt16BE + ($adjustment > 0 ? $frequency | 0x8000 : $frequency & ~0x8000) . + Transform::toUInt16BE(abs($adjustment)); + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php new file mode 100644 index 0000000..14e8516 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php @@ -0,0 +1,168 @@ +Event timing codes allows synchronisation with key events in the + * audio. + * + * The events are an array of timestamp and type pairs. The time stamp is set to + * zero if directly at the beginning of the sound or after the previous event. + * All events are sorted in chronological order. + * + * The events $E0-EF are for user events. You might want to synchronise your + * music to something, like setting off an explosion on-stage, activating a + * screensaver etc. + * + * There may only be one ETCO frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_ETCO extends ID3_Frame + implements ID3_Timing +{ + /** + * The list of event types. + * + * @var Array + */ + public static $types = array + ("Padding", "End of initial silence", "Intro start", "Main part start", + "Outro start", "Outro end", "Verse start","Refrain start", + "Interlude start", "Theme start", "Variation start", "Key change", + "Time change", "Momentary unwanted noise", "Sustained noise", + "Sustained noise end", "Intro end", "Main part end", "Verse end", + "Refrain end", "Theme end", "Profanity", "Profanity end", + + 0xe0 => "User event", "User event", "User event", "User event", + "User event", "User event", "User event", "User event", "User event", + "User event", "User event", "User event", "User event", "User event", + + 0xfd => "Audio end (start of silence)", "Audio file ends", + "One more byte of events follows"); + + /** @var integer */ + private $_format = ID3_Timing::MPEG_FRAMES; + + /** @var Array */ + private $_events = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_format = Transform::fromUInt8($this->_data[0]); + for ($i = 1; $i < $this->getSize(); $i += 5) { + $this->_events[Transform::fromUInt32BE(substr($this->_data, $i + 1, 4))] = + $data = Transform::fromUInt8($this->_data[$i]); + if ($data == 0xff) + break; + } + ksort($this->_events); + } + + /** + * Returns the timing format. + * + * @return integer + */ + public function getFormat() { return $this->_format; } + + /** + * Sets the timing format. + * + * @see ID3_Timing + * @param integer $format The timing format. + */ + public function setFormat($format) { $this->_format = $format; } + + /** + * Returns the events as an associated array having the timestamps as keys and + * the event types as values. + * + * @return Array + */ + public function getEvents() { return $this->_events; } + + /** + * Sets the events using given format. The value must be an associated array + * having the timestamps as keys and the event types as values. + * + * @param Array $events The events array. + * @param integer $format The timing format. + */ + public function setEvents($events, $format = false) + { + $this->_events = $events; + if ($format !== false) + $this->_format = $format; + ksort($this->_events); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_format); + foreach ($this->_events as $timestamp => $type) + $data .= Transform::toUInt8($type) . Transform::toUInt32BE($timestamp); + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php new file mode 100644 index 0000000..dbfcc84 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php @@ -0,0 +1,226 @@ +General encapsulated object frame any type of file can be + * encapsulated. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_GEOB extends ID3_Frame + implements ID3_Encoding +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_mimeType; + + /** @var string */ + private $_filename; + + /** @var string */ + private $_description; + + /** @var string */ + private $_objectData; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_mimeType = substr + ($this->_data, 1, ($pos = strpos($this->_data, "\0", 1)) - 1); + $this->_data = substr($this->_data, $pos + 1); + + switch ($this->_encoding) { + case self::UTF16: + list ($this->_filename, $this->_description, $this->_objectData) = + $this->explodeString16($this->_data, 3); + $this->_filename = Transform::fromString16($this->_filename); + $this->_description = Transform::fromString16($this->_description); + break; + case self::UTF16BE: + list ($this->_filename, $this->_description, $this->_objectData) = + $this->explodeString16($this->_data, 3); + $this->_filename = Transform::fromString16BE($this->_filename); + $this->_description = Transform::fromString16BE($this->_description); + break; + default: + list ($this->_filename, $this->_description, $this->_objectData) = + $this->explodeString8($this->_data, 3); + $this->_filename = Transform::fromString8($this->_filename); + $this->_description = Transform::fromString8($this->_description); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the MIME type. The MIME type is always encoded with ISO-8859-1. + * + * @return string + */ + public function getMimeType() { return $this->_mimeType; } + + /** + * Sets the MIME type. The MIME type is always ISO-8859-1 encoded. + * + * @param string $mimeType The MIME type. + */ + public function setMimeType($mimeType) { $this->_mimeType = $mimeType; } + + /** + * Returns the file name. + * + * @return string + */ + public function getFilename() { return $this->_filename; } + + /** + * Sets the file name using given encoding. The file name encoding must be + * that of the description text. + * + * @param string $description The file description text. + * @param integer $encoding The text encoding. + */ + public function setFilename($filename, $encoding = false) + { + $this->_filename = $filename; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the file description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the file description text using given encoding. The description + * encoding must be that of the file name. + * + * @param string $description The file description text. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $encoding = false) + { + $this->_description = $description; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the embedded object binary data. + * + * @return string + */ + public function getObjectData() { return $this->_objectData; } + + /** + * Sets the embedded object binary data. + * + * @param string $objectData The object data. + */ + public function setObjectData($objectData) + { + $this->_objectData = $objectData; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_mimeType . "\0"; + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + $data .= Transform::toString16($this->_filename, $order) . "\0\0" . + Transform::toString16($this->_description, $order) . "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE + ($this->_filename . "\0\0" . $this->_description . "\0\0"); + break; + default: + $data .= $this->_filename . "\0" . $this->_description . "\0"; + } + $this->setData($data . $this->_objectData); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GRID.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GRID.php new file mode 100644 index 0000000..513654d --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GRID.php @@ -0,0 +1,152 @@ +Group identification registration frame enables grouping of + * otherwise unrelated frames. This can be used when some frames are to be + * signed. To identify which frames belongs to a set of frames a group + * identifier must be registered in the tag with this frame. + * + * The owner identifier is a URL containing an email address, or a link to a + * location where an email address can be found, that belongs to the + * organisation responsible for this grouping. Questions regarding the grouping + * should be sent to the indicated email address. + * + * The group symbol contains a value that associates the frame with this group + * throughout the whole tag, in the range $80-F0. All other values are reserved. + * The group symbol may optionally be followed by some group specific data, e.g. + * a digital signature. There may be several GRID frames in a tag but only one + * containing the same symbol and only one containing the same owner identifier. + * The group symbol must be used somewhere in the tag. See + * {@link ID3_Frame#GROUPING_ownerENTITY} for more information. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_GRID extends ID3_Frame +{ + /** @var string */ + private $_owner; + + /** @var integer */ + private $_group; + + /** @var string */ + private $_groupData; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list($this->_owner, $this->_data) = $this->explodeString8($this->_data, 2); + $this->_group = Transform::fromUInt8($this->_data[0]); + $this->_groupData = substr($this->_data, 1); + } + + /** + * Returns the owner identifier string. + * + * @return string + */ + public function getOwner() { return $this->_owner; } + + /** + * Sets the owner identifier string. + * + * @param string $owner The owner identifier string. + */ + public function setOwner($owner) { $this->_owner = $owner; } + + /** + * Returns the group symbol. + * + * @return integer + */ + public function getGroup() { return $this->_group; } + + /** + * Sets the group symbol. + * + * @param integer $group The group symbol. + */ + public function setGroup($group) { $this->_group = $group; } + + /** + * Returns the group dependent data. + * + * @return string + */ + public function getGroupData() { return $this->_groupData; } + + /** + * Sets the group dependent data. + * + * @param string $groupData The data. + */ + public function setGroupData($groupData) { $this->_groupData = $groupData; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + parent::setData + ($this->_owner . "\0" . Transform::toUInt8($this->_group) . + $this->_groupData); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php new file mode 100644 index 0000000..3200a11 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php @@ -0,0 +1,174 @@ +Involved people list is a frame containing the names of those + * involved, and how they were involved. There may only be one IPLS frame in + * each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_IPLS extends ID3_Frame + implements ID3_Encoding +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var Array */ + private $_people = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $data = substr($this->_data, 1); + $order = Transform::MACHINE_ENDIAN_ORDER; + switch ($this->_encoding) { + case self::UTF16: + $data = $this->explodeString16($data); + foreach ($data as &$str) + $str = Transform::fromString16($str, $order); + break; + case self::UTF16BE: + $data = $this->explodeString16($data); + foreach ($data as &$str) + $str = Transform::fromString16BE($str); + break; + default: + $data = $this->explodeString8($data); + } + + for ($i = 0; $i < count($data) - 1; $i += 2) + $this->_people[] = array($data[$i] => @$data[$i + 1]); + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the involved people list as an array. For each person, the array + * contains an entry, which too is an associate array with involvement as its + * key and involvee as its value. + * + * @return Array + */ + public function getPeople() { return $this->_people; } + + /** + * Adds a person with his involvement. + * + * @return string + */ + public function addPerson($involvement, $person) + { + $this->_people[] = array($involvement => $person); + } + + /** + * Sets the involved people list array. For each person, the array must + * contain an associate array with involvement as its key and involvee as its + * value. + * + * @param Array $people The involved people list. + */ + public function setPeople($people) { $this->_people = $people; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding); + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + foreach ($this->_people as $entry) { + foreach ($entry as $key => $val) { + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16($key, $order) . "\0\0" . + Transform::toString16($val, $order) . "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE($key . "\0\0" . $val . "\0\0"); + break; + default: + $data .= $key . "\0" . $val . "\0"; + } + } + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/LINK.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/LINK.php new file mode 100644 index 0000000..b01a9de --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/LINK.php @@ -0,0 +1,173 @@ +Linked information frame is used to keep information duplication + * as low as possible by linking information from another ID3v2 tag that might + * reside in another audio file or alone in a binary file. It is recommended + * that this method is only used when the files are stored on a CD-ROM or other + * circumstances when the risk of file separation is low. + * + * Data should be retrieved from the first tag found in the file to which this + * link points. There may be more than one LINK frame in a tag, but only one + * with the same contents. + * + * A linked frame is to be considered as part of the tag and has the same + * restrictions as if it was a physical part of the tag (i.e. only one + * {@link ID3_Frame_RVRB} frame allowed, whether it's linked or not). + * + * Frames that may be linked and need no additional data are + * {@link ID3_Frame_ASPI}, {@link ID3_Frame_ETCO}, {@link ID3_Frame_EQU2}, + * {@link ID3_Frame_MCDI}, {@link ID3_Frame_MLLT}, {@link ID3_Frame_OWNE}, + * {@link ID3_Frame_RVA2}, {@link ID3_Frame_RVRB}, {@link ID3_Frame_SYTC}, the + * text information frames (ie frames descendats of + * {@link ID3_Frame_AbstractText}) and the URL link frames (ie frames descendants + * of {@link ID3_Frame_AbstractLink}). + * + * The {@link ID3_Frame_AENC}, {@link ID3_Frame_APIC}, {@link ID3_Frame_GEOB} + * and {@link ID3_Frame_TXXX} frames may be linked with the content descriptor + * as additional ID data. + * + * The {@link ID3_Frame_USER} frame may be linked with the language field as + * additional ID data. + * + * The {@link ID3_Frame_PRIV} frame may be linked with the owner identifier as + * additional ID data. + * + * The {@link ID3_Frame_COMM}, {@link ID3_Frame_SYLT} and {@link ID3_Frame_USLT} + * frames may be linked with three bytes of language descriptor directly + * followed by a content descriptor as additional ID data. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_LINK extends ID3_Frame +{ + /** @var string */ + private $_target; + + /** @var string */ + private $_url; + + /** @var string */ + private $_qualifier; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_target = substr($this->_data, 0, 4); + list($this->_url, $this->_qualifier) = + $this->explodeString8(substr($this->_data, 4), 2); + } + + /** + * Returns the target tag identifier. + * + * @return string + */ + public function getTarget() { return $this->_target; } + + /** + * Sets the target tag identifier. + * + * @param string $target The target tag identifier. + */ + public function setTarget($target) { $this->_target = $target; } + + /** + * Returns the target tag URL. + * + * @return string + */ + public function getUrl() { return $this->_url; } + + /** + * Sets the target tag URL. + * + * @param string $url The target URL. + */ + public function setUrl($url) { $this->_url = $url; } + + /** + * Returns the additional data to identify further the tag. + * + * @return string + */ + public function getQualifier() { return $this->_qualifier; } + + /** + * Sets the additional data to be used in tag identification. + * + * @param string $identifier The qualifier. + */ + public function setQualifier($qualifier) + { + $this->_qualifier = $qualifier; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + (Transform::toString8(substr($this->_target, 0, 4), 4) . + $this->_url . "\0" . $this->_qualifier); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php new file mode 100644 index 0000000..d5b99c4 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php @@ -0,0 +1,78 @@ + + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_MCDI extends ID3_Frame +{ + /** + * Returns the CD TOC binary dump. + * + * @return string + */ + public function getData() { return $this->_data; } + + /** + * Sets the CD TOC binary dump. + * + * @param string $data The CD TOC binary dump string. + */ + public function setData($data) { parent::setData($data); } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php new file mode 100644 index 0000000..05aa6a0 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php @@ -0,0 +1,169 @@ +MPEG location lookup table frame includes references that the + * software can use to calculate positions in the file. + * + * The MPEG frames between reference describes how much the frame counter should + * be increased for every reference. If this value is two then the first + * reference points out the second frame, the 2nd reference the 4th frame, the + * 3rd reference the 6th frame etc. In a similar way the bytes between reference + * and milliseconds between reference points out bytes and milliseconds + * respectively. + * + * Each reference consists of two parts; a certain number of bits that describes + * the difference between what is said in bytes between reference and the + * reality and a certain number of bits that describes the difference between + * what is said in milliseconds between reference and the reality. + * + * There may only be one MLLT frame in each tag. + * + * @todo Data parsing and write support + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + */ +final class ID3_Frame_MLLT extends ID3_Frame +{ + /** @var integer */ + private $_frames; + + /** @var integer */ + private $_bytes; + + /** @var integer */ + private $_milliseconds; + + /** @var Array */ + private $_deviation = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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) + throw new ID3_Exception("Write not supported yet"); + + $this->_frames = Transform::fromInt16BE(substr($this->_data, 0, 2)); + $this->_bytes = Transform::fromInt32BE(substr($this->_data, 2, 3)); + $this->_milliseconds = Transform::fromInt32BE(substr($this->_data, 5, 3)); + + $byteDevBits = Transform::fromInt8($this->_data[8]); + $millisDevBits = Transform::fromInt8($this->_data[9]); + + // $data = substr($this->_data, 10); + } + + /** + * Returns the number of MPEG frames between reference. + * + * @return integer + */ + public function getFrames() { return $this->_frames; } + + /** + * Sets the number of MPEG frames between reference. + * + * @param integer $frames The number of MPEG frames. + */ + public function setFrames($frames) { $this->_frames = $frames; } + + /** + * Returns the number of bytes between reference. + * + * @return integer + */ + public function getBytes() { return $this->_bytes; } + + /** + * Sets the number of bytes between reference. + * + * @param integer $bytes The number of bytes. + */ + public function setBytes($bytes) { $this->_bytes = $bytes; } + + /** + * Returns the number of milliseconds between references. + * + * @return integer + */ + public function getMilliseconds() { return $this->_milliseconds; } + + /** + * Sets the number of milliseconds between references. + * + * @param integer $milliseconds The number of milliseconds. + */ + public function setMilliseconds($milliseconds) + { + return $this->_milliseconds; + } + + /** + * Returns the deviations as an array. Each value is an array containing two + * values, ie the deviation in bytes, and the deviation in milliseconds, + * respectively. + * + * @return Array + */ + public function getDeviation() { return $this->_deviation; } + + /** + * Sets the deviations array. The array must consist of arrays, each of which + * having two values, the deviation in bytes, and the deviation in + * milliseconds, respectively. + * + * @param Array $deviation The deviations array. + */ + public function setDeviation($deviation) { $this->_deviation = $deviation; } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php new file mode 100644 index 0000000..3258f71 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php @@ -0,0 +1,219 @@ +Ownership frame might be used as a reminder of a made transaction + * or, if signed, as proof. Note that the {@link ID3_Frame_USER} and + * {@link ID3_Frame_TOWN} frames are good to use in conjunction with this one. + * + * There may only be one OWNE frame in a tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_OWNE extends ID3_Frame + implements ID3_Encoding +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_currency = "EUR"; + + /** @var string */ + private $_price; + + /** @var string */ + private $_date; + + /** @var string */ + private $_seller; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + list($tmp, $this->_data) = + $this->explodeString8(substr($this->_data, 1), 2); + $this->_currency = substr($tmp, 0, 3); + $this->_price = substr($tmp, 3); + $this->_date = substr($this->_data, 0, 8); + $this->_data = substr($this->_data, 8); + + switch ($this->_encoding) { + case self::UTF16: + $this->_seller = Transform::fromString16($this->_data); + break; + case self::UTF16BE: + $this->_seller = Transform::fromString16BE($this->_data); + break; + default: + $this->_seller = Transform::fromString8($this->_data); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the currency used in transaction, encoded according to + * {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm + * ISO 4217} alphabetic currency code. + * + * @return string + */ + public function getCurrency() { return $this->_currency; } + + /** + * Sets the currency used in transaction, encoded according to + * {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm + * ISO 4217} alphabetic currency code. + * + * @param string $currency The currency code. + */ + public function setCurrency($currency) { $this->_currency = $currency; } + + /** + * Returns the price as a numerical string using "." as the decimal separator. + * + * @return string + */ + public function getPrice() { return $this->_price; } + + /** + * Sets the price. + * + * @param integer $price The price. + */ + public function setPrice($price) + { + $this->_price = number_format($price, 2, ".", ""); + } + + /** + * Returns the date of purchase as an 8 character date string (YYYYMMDD). + * + * @return string + */ + public function getDate() { return $this->_date; } + + /** + * Sets the date of purchase. The date must be an 8 character date string + * (YYYYMMDD). + * + * @param string $date The date string. + */ + public function setDate($date) { $this->_date = $date; } + + /** + * Returns the name of the seller. + * + * @return string + */ + public function getSeller() { return $this->_seller; } + + /** + * Sets the name of the seller using given encoding. + * + * @param string $seller The name of the seller. + * @param integer $encoding The text encoding. + */ + public function setSeller($seller, $encoding = false) + { + $this->_seller = $seller; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_currency . + $this->_price . "\0" . $this->_date; + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($this->_seller, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER); + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_seller); + break; + default: + $data .= $this->_seller; + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php new file mode 100644 index 0000000..aeff277 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php @@ -0,0 +1,111 @@ +Play counter is simply a counter of the number of times a file has + * been played. The value is increased by one every time the file begins to + * play. There may only be one PCNT frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_PCNT extends ID3_Frame +{ + /** @var integer */ + private $_counter = 0; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + if (strlen($this->_data) > 4) + $this->_counter = Transform::fromInt64BE($this->_data); // UInt64 + else + $this->_counter = Transform::fromUInt32BE($this->_data); + } + + /** + * Returns the counter. + * + * @return integer + */ + public function getCounter() { return $this->_counter; } + + /** + * Adds counter by one. + */ + public function addCounter() { $this->_counter++; } + + /** + * Sets the counter value. + * + * @param integer $counter The counter value. + */ + public function setCounter($counter) { $this->_counter = $counter; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + ($this->_counter > 4294967295 ? + Transform::toInt64BE($this->_counter) : // UInt64 + Transform::toUInt32BE($this->_counter)); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POPM.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POPM.php new file mode 100644 index 0000000..332abef --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POPM.php @@ -0,0 +1,161 @@ +Popularimeter frame is to specify how good an audio + * file is. Many interesting applications could be found to this frame such as a + * playlist that features better audio files more often than others or it could + * be used to profile a person's taste and find other good files by comparing + * people's profiles. The frame contains the email address to the user, one + * rating byte and a four byte play counter, intended to be increased with one + * for every time the file is played. + * + * The rating is 1-255 where 1 is worst and 255 is best. 0 is unknown. If no + * personal counter is wanted it may be omitted. When the counter reaches all + * one's, one byte is inserted in front of the counter thus making the counter + * eight bits bigger in the same away as the play counter + * {@link ID3_Frame_PCNT}. There may be more than one POPM frame in each tag, + * but only one with the same email address. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_POPM extends ID3_Frame +{ + /** @var string */ + private $_owner; + + /** @var integer */ + private $_rating = 0; + + /** @var integer */ + private $_counter = 0; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list($this->_owner, $this->_data) = $this->explodeString8($this->_data, 2); + $this->_rating = Transform::fromUInt8($this->_data[0]); + $this->_data = substr($this->_data, 1); + + if (strlen($this->_data) > 4) + $this->_counter = Transform::fromInt64BE($this->_data); // UInt64 + else if (strlen($this->_data) > 0) + $this->_counter = Transform::fromUInt32BE($this->_data); + } + + /** + * Returns the owner identifier string. + * + * @return string + */ + public function getOwner() { return $this->_owner; } + + /** + * Sets the owner identifier string. + * + * @param string $owner The owner identifier string. + */ + public function setOwner($owner) { return $this->_owner = $owner; } + + /** + * Returns the user rating. + * + * @return integer + */ + public function getRating() { return $this->_rating; } + + /** + * Sets the user rating. + * + * @param integer $rating The user rating. + */ + public function setRating($rating) { $this->_rating = $rating; } + + /** + * Returns the counter. + * + * @return integer + */ + public function getCounter() { return $this->_counter; } + + /** + * Adds counter by one. + */ + public function addCounter() { $this->_counter++; } + + /** + * Sets the counter value. + * + * @param integer $counter The counter value. + */ + public function setCounter($counter) { $this->_counter = $counter; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + ($this->_owner . "\0" . Transform::toInt8($this->_rating) . + ($this->_counter > 0xffffffff ? + Transform::toInt64BE($this->_counter) : + ($this->_counter > 0 ? Transform::toUInt32BE($this->_counter) : 0))); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POSS.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POSS.php new file mode 100644 index 0000000..3de3f27 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POSS.php @@ -0,0 +1,132 @@ +Position synchronisation frame delivers information to the + * listener of how far into the audio stream he picked up; in effect, it states + * the time offset from the first frame in the stream. There may only be one + * POSS frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_POSS extends ID3_Frame + implements ID3_Timing +{ + /** @var integer */ + private $_format = ID3_Timing::MPEG_FRAMES; + + /** @var integer */ + private $_position; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_format = Transform::fromUInt8($this->_data[0]); + $this->_position = Transform::fromUInt32BE(substr($this->_data, 1, 4)); + } + + /** + * Returns the timing format. + * + * @return integer + */ + public function getFormat() { return $this->_format; } + + /** + * Sets the timing format. + * + * @see ID3_Timing + * @param integer $format The timing format. + */ + public function setFormat($format) { $this->_format = $format; } + + /** + * Returns the position where in the audio the listener starts to receive, + * i.e. the beginning of the next frame. + * + * @return integer + */ + public function getPosition() { return $this->_position; } + + /** + * Sets the position where in the audio the listener starts to receive, + * i.e. the beginning of the next frame, using given format. + * + * @param integer $position The position. + * @param integer $format The timing format. + */ + public function setPosition($position, $format = false) + { + $this->_position = $position; + if ($format !== false) + $this->_format = $format; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + (Transform::toUInt8($this->_format) . + Transform::toUInt32BE($this->_position)); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php new file mode 100644 index 0000000..4097204 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php @@ -0,0 +1,126 @@ +Private frame is used to contain information from a software + * producer that its program uses and does not fit into the other frames. The + * frame consists of an owner identifier string and the binary data. The owner + * identifier is URL containing an email address, or a link to a location where + * an email address can be found, that belongs to the organisation responsible + * for the frame. Questions regarding the frame should be sent to the indicated + * email address. The tag may contain more than one PRIV frame but only with + * different contents. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_PRIV extends ID3_Frame +{ + /** @var string */ + private $_owner; + + /** @var string */ + private $_privateData; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list($this->_owner, $this->_privateData) = + $this->explodeString8($this->_data, 2); + } + + /** + * Returns the owner identifier string. + * + * @return string + */ + public function getOwner() { return $this->_owner; } + + /** + * Sets the owner identifier string. + * + * @param string $owner The owner identifier string. + */ + public function setOwner($owner) { $this->_owner = $owner; } + + /** + * Returns the private binary data associated with the frame. + * + * @return string + */ + public function getPrivateData() { return $this->_privateData; } + + /** + * Sets the private binary data associated with the frame. + * + * @param string $privateData The private binary data string. + */ + public function setPrivateData($privateData) + { + $this->_privateData = $privateData; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + parent::setData($this->_owner . "\0" . $this->_privateData); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php new file mode 100644 index 0000000..83c4cc0 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php @@ -0,0 +1,181 @@ +Recommended buffer size frame. If the embedded info + * flag is set then this indicates that an ID3 tag with the maximum size + * described in buffer size may occur in the audio stream. In such case the tag + * should reside between two MPEG frames, if the audio is MPEG encoded. If the + * position of the next tag is known, offset to next tag may be used. The offset + * is calculated from the end of tag in which this frame resides to the first + * byte of the header in the next. This field may be omitted. Embedded tags are + * generally not recommended since this could render unpredictable behaviour + * from present software/hardware. + * + * For applications like streaming audio it might be an idea to embed tags into + * the audio stream though. If the clients connects to individual connections + * like HTTP and there is a possibility to begin every transmission with a tag, + * then this tag should include a recommended buffer size frame. If the client + * is connected to a arbitrary point in the stream, such as radio or multicast, + * then the recommended buffer size frame should be included in every tag. + * + * The buffer size should be kept to a minimum. There may only be one RBUF + * frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_RBUF extends ID3_Frame +{ + /** + * A flag to denote that an ID3 tag with the maximum size described in buffer + * size may occur in the audio stream. + */ + const EMBEDDED = 0x1; + + /** @var integer */ + private $_bufferSize; + + /** @var integer */ + private $_infoFlags; + + /** @var integer */ + private $_offset = 0; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_bufferSize = + Transform::fromUInt32BE("\0" . substr($this->_data, 0, 3)); + $this->_infoFlags = Transform::fromInt8($this->_data[3]); + if ($this->getSize() > 4) + $this->_offset = Transform::fromInt32BE(substr($this->_data, 4, 4)); + } + + /** + * Returns the buffer size. + * + * @return integer + */ + public function getBufferSize() { return $this->_bufferSize; } + + /** + * Sets the buffer size. + * + * @param integer $size The buffer size. + */ + public function setBufferSize($bufferSize) + { + $this->_bufferSize = $bufferSize; + } + + /** + * 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 hasInfoFlag($flag) + { + return ($this->_infoFlags & $flag) == $flag; + } + + /** + * Returns the flags byte. + * + * @return integer + */ + public function getInfoFlags() { return $this->_infoFlags; } + + /** + * Sets the flags byte. + * + * @param string $flags The flags byte. + */ + public function setInfoFlags($infoFlags) { $this->_infoFlags = $infoFlags; } + + /** + * Returns the offset to next tag. + * + * @return integer + */ + public function getOffset() { return $this->_offset; } + + /** + * Sets the offset to next tag. + * + * @param integer $offset The offset. + */ + public function setOffset($offset) { $this->_offset = $offset; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + (substr(Transform::toUInt32BE($this->_bufferSize), 1, 3) . + Transform::toInt8($this->_infoFlags) . + Transform::toInt32BE($this->_offset)); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php new file mode 100644 index 0000000..bfdd287 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php @@ -0,0 +1,217 @@ +Relative volume adjustment (2) frame is a more subjective frame than + * the previous ones. It allows the user to say how much he wants to + * increase/decrease the volume on each channel when the file is played. The + * purpose is to be able to align all files to a reference volume, so that you + * don't have to change the volume constantly. This frame may also be used to + * balance adjust the audio. The volume adjustment is encoded as a fixed point + * decibel value, 16 bit signed integer representing (adjustment*512), giving + * +/- 64 dB with a precision of 0.001953125 dB. E.g. +2 dB is stored as $04 00 + * and -2 dB is $FC 00. + * + * There may be more than one RVA2 frame in each tag, but only one with the same + * identification string. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_RVA2 extends ID3_Frame +{ + /** + * The channel type key. + * + * @see $types + * @var string + */ + const channelType = "channelType"; + + /** + * The volume adjustment key. Adjustments are +/- 64 dB with a precision of + * 0.001953125 dB. + * + * @var string + */ + const volumeAdjustment = "volumeAdjustment"; + + /** + * The peak volume key. + * + * @var string + */ + const peakVolume = "peakVolume"; + + /** + * The list of channel types. + * + * @var Array + */ + public static $types = array + ("Other", "Master volume", "Front right", "Front left", "Back right", + "Back left", "Front centre", "Back centre", "Subwoofer"); + + /** @var string */ + private $_device; + + /** @var Array */ + private $_adjustments; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + list ($this->_device, $this->_data) = + $this->explodeString8($this->_data, 2); + + for ($i = $j = 0; $i < 9; $i++) { + $this->_adjustments[$i] = array + (self::channelType => Transform::fromInt8($this->_data[$j++]), + self::volumeAdjustment => + Transform::fromInt16BE(substr($this->_data, $j++, 2)) / 512.0); + $j++; + $bitsInPeak = Transform::fromInt8($this->_data[$j++]); + $bytesInPeak = $bitsInPeak > 0 ? ceil($bitsInPeak / 8) : 0; + switch ($bytesInPeak) { + case 8: + case 7: + case 6: + case 5: + $this->_adjustments[$i][self::peakVolume] = + Transform::fromInt64BE(substr($this->_data, $j, $bytesInPeak)); + break; + case 4: + case 3: + $this->_adjustments[$i][self::peakVolume] = + Transform::fromUInt32BE(substr($this->_data, $j, $bytesInPeak)); + break; + case 2: + $this->_adjustments[$i][self::peakVolume] = + Transform::fromUInt16BE(substr($this->_data, $j, $bytesInPeak)); + break; + case 1: + $this->_adjustments[$i][self::peakVolume] = + Transform::fromUInt8(substr($this->_data, $j, $bytesInPeak)); + } + $j += $bytesInPeak; + } + } + + /** + * Returns the device where the adjustments should apply. + * + * @return string + */ + public function getDevice() { return $this->_device; } + + /** + * Sets the device where the adjustments should apply. + * + * @param string $device The device. + */ + public function setDevice($device) { $this->_device = $device; } + + /** + * Returns the array containing volume adjustments for each channel. Volume + * adjustments are arrays themselves containing the following keys: + * channelType, volumeAdjustment, peakVolume. + * + * @return Array + */ + public function getAdjustments() { return $this->_adjustments; } + + /** + * Sets the array of volume adjustments for each channel. Each volume + * adjustment is an array too containing the following keys: channelType, + * volumeAdjustment, peakVolume. + * + * @param Array $adjustments The volume adjustments array. + */ + public function setAdjustments($adjustments) + { + $this->_adjustments = $adjustments; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = $this->_device . "\0"; + foreach ($this->_adjustments as $channel) { + $data .= Transform::toInt8($channel[self::channelType]) . + Transform::toInt16BE($channel[self::volumeAdjustment] * 512); + if (abs($channel[self::peakVolume]) <= 0xff) + $data .= Transform::toInt8(8) . + Transform::toUInt8($channel[self::peakVolume]); + else if (abs($channel[self::peakVolume]) <= 0xffff) + $data .= Transform::toInt8(16) . + Transform::toUInt16BE($channel[self::peakVolume]); + else if (abs($channel[self::peakVolume]) <= 0xffffffff) + $data .= Transform::toInt8(32) . + Transform::toUInt32BE($channel[self::peakVolume]); + else + $data .= Transform::toInt8(64) . + Transform::toInt64BE($channel[self::peakVolume]); // UInt64 + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php new file mode 100644 index 0000000..c377aa7 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php @@ -0,0 +1,252 @@ +Relative volume adjustment frame is a more subjective function + * than the previous ones. It allows the user to say how much he wants to + * increase/decrease the volume on each channel while the file is played. The + * purpose is to be able to align all files to a reference volume, so that you + * don't have to change the volume constantly. This frame may also be used to + * balance adjust the audio. + * + * There may only be one RVAD frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_RVAD extends ID3_Frame +{ + /* The required keys. */ + + /** @var string */ + const right = "right"; + + /** @var string */ + const left = "left"; + + /** @var string */ + const peakRight = "peakRight"; + + /** @var string */ + const peakLeft = "peakLeft"; + + /* The optional keys. */ + + /** @var string */ + const rightBack = "rightBack"; + + /** @var string */ + const leftBack = "leftBack"; + + /** @var string */ + const peakRightBack = "peakRightBack"; + + /** @var string */ + const peakLeftBack = "peakLeftBack"; + + /** @var string */ + const center = "center"; + + /** @var string */ + const peakCenter = "peakCenter"; + + /** @var string */ + const bass = "bass"; + + /** @var string */ + const peakBass = "peakBass"; + + /** @var Array */ + private $_adjustments; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + $flags = Transform::fromInt8($this->_data[0]); + $descriptionBits = Transform::fromInt8($this->_data[1]); + if ($descriptionBits <= 8 || $descriptionBits > 16) + throw new ID3_Exception + ("Unsupported description bit size of: " . $descriptionBits); + + $this->_adjustments[self::right] = + ($flags & 0x1) == 0x1 ? + Transform::fromUInt16BE(substr($this->_data, 2, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 2, 2)); + $this->_adjustments[self::left] = + ($flags & 0x2) == 0x2 ? + Transform::fromUInt16BE(substr($this->_data, 4, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 4, 2)); + $this->_adjustments[self::peakRight] = + Transform::fromUInt16BE(substr($this->_data, 6, 2)); + $this->_adjustments[self::peakLeft] = + Transform::fromUInt16BE(substr($this->_data, 8, 2)); + + if ($this->getSize() <= 10) + return; + + $this->_adjustments[self::rightBack] = + ($flags & 0x4) == 0x4 ? + Transform::fromUInt16BE(substr($this->_data, 10, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 10, 2)); + $this->_adjustments[self::leftBack] = + ($flags & 0x8) == 0x8 ? + Transform::fromUInt16BE(substr($this->_data, 12, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 12, 2)); + $this->_adjustments[self::peakRightBack] = + Transform::fromUInt16BE(substr($this->_data, 14, 2)); + $this->_adjustments[self::peakLeftBack] = + Transform::fromUInt16BE(substr($this->_data, 16, 2)); + + if ($this->getSize() <= 18) + return; + + $this->_adjustments[self::center] = + ($flags & 0x10) == 0x10 ? + Transform::fromUInt16BE(substr($this->_data, 18, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 18, 2)); + $this->_adjustments[self::peakCenter] = + Transform::fromUInt16BE(substr($this->_data, 20, 2)); + + if ($this->getSize() <= 22) + return; + + $this->_adjustments[self::bass] = + ($flags & 0x20) == 0x20 ? + Transform::fromUInt16BE(substr($this->_data, 22, 2)) : + -Transform::fromUInt16BE(substr($this->_data, 22, 2)); + $this->_adjustments[self::peakBass] = + Transform::fromUInt16BE(substr($this->_data, 24, 2)); + } + + /** + * Returns the array containing the volume adjustments. The array must contain + * the following keys: right, left, peakRight, peakLeft. It may optionally + * contain the following keys: rightBack, leftBack, peakRightBack, + * peakLeftBack, center, peakCenter, bass, and peakBass. + * + * @return Array + */ + public function getAdjustments() { return $this->_adjustments; } + + /** + * Sets the array of volume adjustments. The array must contain the following + * keys: right, left, peakRight, peakLeft. It may optionally contain the + * following keys: rightBack, leftBack, peakRightBack, peakLeftBack, center, + * peakCenter, bass, and peakBass. + * + * @param Array $adjustments The volume adjustments array. + */ + public function setAdjustments($adjustments) + { + $this->_adjustments = $adjustments; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $flags = 0; + if ($this->_adjustments[self::right] > 0) + $flags = $flags | 0x1; + if ($this->_adjustments[self::left] > 0) + $flags = $flags | 0x2; + $data = Transform::toInt8(16) . + Transform::toUInt16BE(abs($this->_adjustments[self::right])) . + Transform::toUInt16BE(abs($this->_adjustments[self::left])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakRight])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakLeft])); + + if (isset($this->_adjustments[self::rightBack]) && + isset($this->_adjustments[self::leftBack]) && + isset($this->_adjustments[self::peakRightBack]) && + isset($this->_adjustments[self::peakLeftBack])) { + if ($this->_adjustments[self::rightBack] > 0) + $flags = $flags | 0x4; + if ($this->_adjustments[self::leftBack] > 0) + $flags = $flags | 0x8; + $data .= + Transform::toUInt16BE(abs($this->_adjustments[self::rightBack])) . + Transform::toUInt16BE(abs($this->_adjustments[self::leftBack])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakRightBack])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakLeftBack])); + } + + if (isset($this->_adjustments[self::center]) && + isset($this->_adjustments[self::peakCenter])) { + if ($this->_adjustments[self::center] > 0) + $flags = $flags | 0x10; + $data .= + Transform::toUInt16BE(abs($this->_adjustments[self::center])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakCenter])); + } + + if (isset($this->_adjustments[self::bass]) && + isset($this->_adjustments[self::peakBass])) { + if ($this->_adjustments[self::bass] > 0) + $flags = $flags | 0x20; + $data .= + Transform::toUInt16BE(abs($this->_adjustments[self::bass])) . + Transform::toUInt16BE(abs($this->_adjustments[self::peakBass])); + } + $this->setData(Transform::toInt8($flags) . $data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php new file mode 100644 index 0000000..1027ea8 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php @@ -0,0 +1,314 @@ +Reverb is yet another subjective frame, with which you can adjust + * echoes of different kinds. Reverb left/right is the delay between every + * bounce in milliseconds. Reverb bounces left/right is the number of bounces + * that should be made. $FF equals an infinite number of bounces. Feedback is + * the amount of volume that should be returned to the next echo bounce. $00 is + * 0%, $FF is 100%. If this value were $7F, there would be 50% volume reduction + * on the first bounce, 50% of that on the second and so on. Left to left means + * the sound from the left bounce to be played in the left speaker, while left + * to right means sound from the left bounce to be played in the right speaker. + * + * Premix left to right is the amount of left sound to be mixed in the right + * before any reverb is applied, where $00 id 0% and $FF is 100%. Premix right + * to left does the same thing, but right to left. Setting both premix to $FF + * would result in a mono output (if the reverb is applied symmetric). There may + * only be one RVRB frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_RVRB extends ID3_Frame +{ + /** @var integer */ + private $_reverbLeft; + + /** @var integer */ + private $_reverbRight; + + /** @var integer */ + private $_reverbBouncesLeft; + + /** @var integer */ + private $_reverbBouncesRight; + + /** @var integer */ + private $_reverbFeedbackLtoL; + + /** @var integer */ + private $_reverbFeedbackLtoR; + + /** @var integer */ + private $_reverbFeedbackRtoR; + + /** @var integer */ + private $_reverbFeedbackRtoL; + + /** @var integer */ + private $_premixLtoR; + + /** @var integer */ + private $_premixRtoL; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_reverbLeft = Transform::fromUInt16BE(substr($this->_data, 0, 2)); + $this->_reverbRight = Transform::fromUInt16BE(substr($this->_data, 2, 2)); + $this->_reverbBouncesLeft = Transform::fromUInt8($this->_data[4]); + $this->_reverbBouncesRight = Transform::fromUInt8($this->_data[5]); + $this->_reverbFeedbackLtoL = Transform::fromUInt8($this->_data[6]); + $this->_reverbFeedbackLtoR = Transform::fromUInt8($this->_data[7]); + $this->_reverbFeedbackRtoR = Transform::fromUInt8($this->_data[8]); + $this->_reverbFeedbackRtoL = Transform::fromUInt8($this->_data[9]); + $this->_premixLtoR = Transform::fromUInt8($this->_data[10]); + $this->_premixRtoL = Transform::fromUInt8($this->_data[11]); + } + + /** + * Returns the left reverb. + * + * @return integer + */ + public function getReverbLeft() { return $this->_reverbLeft; } + + /** + * Sets the left reverb. + * + * @param integer $reverbLeft The left reverb. + */ + public function setReverbLeft($reverbLeft) + { + return $this->_reverbLeft = $reverbLeft; + } + + /** + * Returns the right reverb. + * + * @return integer + */ + public function getReverbRight() { return $this->_reverbRight; } + + /** + * Sets the right reverb. + * + * @param integer $reverbRight The right reverb. + */ + public function setReverbRight($reverbRight) + { + return $this->_reverbRight = $reverbRight; + } + + /** + * Returns the left reverb bounces. + * + * @return integer + */ + public function getReverbBouncesLeft() { return $this->_reverbBouncesLeft; } + + /** + * Sets the left reverb bounces. + * + * @param integer $reverbBouncesLeft The left reverb bounces. + */ + public function setReverbBouncesLeft($reverbBouncesLeft) + { + $this->_reverbBouncesLeft = $reverbBouncesLeft; + } + + /** + * Returns the right reverb bounces. + * + * @return integer + */ + public function getReverbBouncesRight() { return $this->_reverbBouncesRight; } + + /** + * Sets the right reverb bounces. + * + * @param integer $reverbBouncesRight The right reverb bounces. + */ + public function setReverbBouncesRight($reverbBouncesRight) + { + $this->_reverbBouncesRight = $reverbBouncesRight; + } + + /** + * Returns the left-to-left reverb feedback. + * + * @return integer + */ + public function getReverbFeedbackLtoL() { return $this->_reverbFeedbackLtoL; } + + /** + * Sets the left-to-left reverb feedback. + * + * @param integer $reverbFeedbackLtoL The left-to-left reverb feedback. + */ + public function setReverbFeedbackLtoL($reverbFeedbackLtoL) + { + $this->_reverbFeedbackLtoL = $reverbFeedbackLtoL; + } + + /** + * Returns the left-to-right reverb feedback. + * + * @return integer + */ + public function getReverbFeedbackLtoR() { return $this->_reverbFeedbackLtoR; } + + /** + * Sets the left-to-right reverb feedback. + * + * @param integer $reverbFeedbackLtoR The left-to-right reverb feedback. + */ + public function setReverbFeedbackLtoR($reverbFeedbackLtoR) + { + $this->_reverbFeedbackLtoR = $reverbFeedbackLtoR; + } + + /** + * Returns the right-to-right reverb feedback. + * + * @return integer + */ + public function getReverbFeedbackRtoR() { return $this->_reverbFeedbackRtoR; } + + /** + * Sets the right-to-right reverb feedback. + * + * @param integer $reverbFeedbackRtoR The right-to-right reverb feedback. + */ + public function setReverbFeedbackRtoR($reverbFeedbackRtoR) + { + $this->_reverbFeedbackRtoR = $reverbFeedbackRtoR; + } + + /** + * Returns the right-to-left reverb feedback. + * + * @return integer + */ + public function getReverbFeedbackRtoL() { return $this->_reverbFeedbackRtoL; } + + /** + * Sets the right-to-left reverb feedback. + * + * @param integer $reverbFeedbackRtoL The right-to-left reverb feedback. + */ + public function setReverbFeedbackRtoL($reverbFeedbackRtoL) + { + $this->_reverbFeedbackRtoL = $reverbFeedbackRtoL; + } + + /** + * Returns the left-to-right premix. + * + * @return integer + */ + public function getPremixLtoR() { return $this->_premixLtoR; } + + /** + * Sets the left-to-right premix. + * + * @param integer $premixLtoR The left-to-right premix. + */ + public function setPremixLtoR($premixLtoR) + { + $this->_premixLtoR = $premixLtoR; + } + + /** + * Returns the right-to-left premix. + * + * @return integer + */ + public function getPremixRtoL() { return $this->_premixRtoL; } + + /** + * Sets the right-to-left premix. + * + * @param integer $premixRtoL The right-to-left premix. + */ + public function setPremixRtoL($premixRtoL) + { + $this->_premixRtoL = $premixRtoL; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData + (Transform::toUInt16BE($this->_reverbLeft) . + Transform::toUInt16BE($this->_reverbRight) . + Transform::toUInt8($this->_reverbBouncesLeft) . + Transform::toUInt8($this->_reverbBouncesRight) . + Transform::toUInt8($this->_reverbFeedbackLtoL) . + Transform::toUInt8($this->_reverbFeedbackLtoR) . + Transform::toUInt8($this->_reverbFeedbackRtoR) . + Transform::toUInt8($this->_reverbFeedbackRtoL) . + Transform::toUInt8($this->_premixLtoR) . + Transform::toUInt8($this->_premixRtoL)); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php new file mode 100644 index 0000000..d211bf6 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php @@ -0,0 +1,104 @@ +Seek frame indicates where other tags in a file/stream can be + * found. The minimum offset to next tag is calculated from the end of this tag + * to the beginning of the next. There may only be one seek frame in a tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_SEEK extends ID3_Frame +{ + /** @var integer */ + private $_minOffset; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_minOffset = Transform::fromInt32BE($this->_data); + } + + /** + * Returns the minimum offset to next tag in bytes. + * + * @return integer + */ + public function getMinimumOffset() { return $this->_minOffset; } + + /** + * Sets the minimum offset to next tag in bytes. + * + * @param integer $minOffset The minimum offset. + */ + public function setMinimumOffset($minOffset) + { + $this->_minOffset = $minOffset; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData(Transform::toInt32BE($this->_minOffset)); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php new file mode 100644 index 0000000..ff37c63 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php @@ -0,0 +1,122 @@ +Group identification registration, to be signed. Although signatures + * can reside inside the registration frame, it might be desired to store the + * signature elsewhere, e.g. in watermarks. There may be more than one signature + * frame in a tag, but no two may be identical. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_SIGN extends ID3_Frame +{ + /** @var integer */ + private $_group; + + /** @var string */ + private $_signature; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_group = Transform::fromUInt8(substr($this->_data, 0, 1)); + $this->_signature = substr($this->_data, 1); + } + + /** + * Returns the group symbol byte. + * + * @return integer + */ + public function getGroup() { return $this->_group; } + + /** + * Sets the group symbol byte. + * + * @param integer $group The group symbol byte. + */ + public function setGroup($group) { $this->_group = $group; } + + /** + * Returns the signature binary data. + * + * @return string + */ + public function getSignature() { return $this->_signature; } + + /** + * Sets the signature binary data. + * + * @param string $signature The signature binary data string. + */ + public function setSignature($signature) { $this->_signature = $signature; } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $this->setData(Transform::toUInt8($this->_group) . $this->_signature); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php new file mode 100644 index 0000000..f1995cc --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php @@ -0,0 +1,313 @@ +Synchronised lyrics/text frame is another way of incorporating the + * words, said or sung lyrics, in the audio file as text, this time, however, + * in sync with the audio. It might also be used to describing events e.g. + * occurring on a stage or on the screen in sync with the audio. + * + * There may be more than one SYLT frame in each tag, but only one with the + * same language and content descriptor. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_SYLT extends ID3_Frame + implements ID3_Encoding, ID3_Language, ID3_Timing +{ + /** + * The list of content types. + * + * @var Array + */ + public static $types = array + ("Other", "Lyrics", "Text transcription", "Movement/Part name", "Events", + "Chord", "Trivia", "URLs to webpages", "URLs to images"); + + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_language = "und"; + + /** @var integer */ + private $_format = ID3_Timing::MPEG_FRAMES; + + /** @var integer */ + private $_type = 0; + + /** @var string */ + private $_description; + + /** @var Array */ + private $_events = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_language = substr($this->_data, 1, 3); + if ($this->_language == "XXX") + $this->_language = "und"; + $this->_format = Transform::fromUInt8($this->_data[4]); + $this->_type = Transform::fromUInt8($this->_data[5]); + $this->_data = substr($this->_data, 6); + + switch ($this->_encoding) { + case self::UTF16: + list($this->_description, $this->_data) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + break; + case self::UTF16BE: + list($this->_description, $this->_data) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + break; + default: + list($this->_description, $this->_data) = + $this->explodeString8($this->_data, 2); + $this->_description = Transform::fromString8($this->_description); + } + + while (strlen($this->_data) > 0) { + switch ($this->_encoding) { + case self::UTF16: + list($syllable, $this->_data) = + $this->explodeString16($this->_data, 2); + $syllable = Transform::fromString16($syllable); + break; + case self::UTF16BE: + list($syllable, $this->_data) = + $this->explodeString16($this->_data, 2); + $syllable = Transform::fromString16BE($syllable); + break; + default: + list($syllable, $this->_data) = + $this->explodeString8($this->_data, 2); + $syllable = Transform::fromString8($syllable); + } + $this->_events[Transform::fromUInt32BE(substr($this->_data, 0, 4))] = + $syllable; + $this->_data = substr($this->_data, 4); + } + ksort($this->_events); + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @return string + */ + public function getLanguage() { return $this->_language; } + + /** + * Sets the text language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @see ID3_Language + * @param string $language The language code. + */ + public function setLanguage($language) + { + if ($language == "XXX") + $language = "und"; + $this->_language = substr($language, 0, 3); + } + + /** + * Returns the timing format. + * + * @return integer + */ + public function getFormat() { return $this->_format; } + + /** + * Sets the timing format. + * + * @see ID3_Timing + * @param integer $format The timing format. + */ + public function setFormat($format) { $this->_format = $format; } + + /** + * Returns the content type code. + * + * @return integer + */ + public function getType() { return $this->_type; } + + /** + * Sets the content type code. + * + * @param integer $type The content type code. + */ + public function setType($type) { $this->_type = $type; } + + /** + * Returns the content description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. The description + * language and encoding must be that of the actual text. + * + * @param string $description The content description text. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $language = false, + $encoding = false) + { + $this->_description = $description; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the syllable events with their timestamps. + * + * @return Array + */ + public function getEvents() { return $this->_events; } + + /** + * Sets the syllable events with their timestamps using given encoding. + * The text language and encoding must be that of the description text. + * + * @param Array $text The test string. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setEvents($events, $language = false, $encoding = false) + { + $this->_events = $events; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + ksort($this->_events); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_language . + Transform::toUInt8($this->_format) . Transform::toUInt8($this->_type); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($this->_description, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) . + "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_description) . "\0\0"; + break; + default: + $data .= $this->_description . "\0"; + } + foreach ($this->_events as $timestamp => $syllable) { + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($syllable, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) . + "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE($syllable) . "\0\0"; + break; + default: + $data .= $syllable . "\0"; + } + $data .= Transform::toUInt32BE($timestamp); + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php new file mode 100644 index 0000000..5673a4e --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php @@ -0,0 +1,161 @@ +Synchronised tempo codes frame might be used. + * + * The tempo data consists of one or more tempo codes. Each tempo code consists + * of one tempo part and one time part. The tempo is in BPM described with one + * or two bytes. If the first byte has the value $FF, one more byte follows, + * which is added to the first giving a range from 2 - 510 BPM, since $00 and + * $01 is reserved. $00 is used to describe a beat-free time period, which is + * not the same as a music-free time period. $01 is used to indicate one single + * beat-stroke followed by a beat-free period. + * + * The tempo descriptor is followed by a time stamp. Every time the tempo in the + * music changes, a tempo descriptor may indicate this for the player. All tempo + * descriptors must be sorted in chronological order. The first beat-stroke in + * a time-period is at the same time as the beat description occurs. There may + * only be one SYTC frame in each tag. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @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_Frame_SYTC extends ID3_Frame + implements ID3_Timing +{ + /** Describes a beat-free time period. */ + const BEAT_FREE = 0x00; + + /** Indicate one single beat-stroke followed by a beat-free period. */ + const SINGLE_BEAT = 0x01; + + /** @var integer */ + private $_format = ID3_Timing::MPEG_FRAMES; + + /** @var Array */ + private $_events = array(); + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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; + + $offset = 0; + $this->_format = Transform::fromUInt8($this->_data[$offset++]); + while ($offset < strlen($this->_data)) { + $tempo = Transform::fromUInt8($this->_data[$offset++]); + if ($tempo == 0xff) + $tempo += Transform::fromUInt8($this->_data[$offset++]); + $this->_events + [Transform::fromUInt32BE(substr($this->_data, $offset, 4))] = $tempo; + $offset += 4; + } + ksort($this->_events); + } + + /** + * Returns the timing format. + * + * @return integer + */ + public function getFormat() { return $this->_format; } + + /** + * Sets the timing format. + * + * @see ID3_Timing + * @param integer $format The timing format. + */ + public function setFormat($format) { $this->_format = $format; } + + /** + * Returns the time-bpm tempo events. + * + * @return Array + */ + public function getEvents() { return $this->_events; } + + /** + * Sets the time-bpm tempo events. + * + * @param Array $events The time-bpm tempo events. + */ + public function setEvents($events) + { + $this->_events = $events; + ksort($this->_events); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_format); + foreach ($this->_events as $timestamp => $tempo) { + if ($tempo >= 0xff) + $data .= Transform::toUInt8(0xff) . Transform::toUInt8($tempo - 0xff); + else + $data .= Transform::toUInt8($tempo); + $data .= Transform::toUInt32BE($timestamp); + } + parent::setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TALB.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TALB.php new file mode 100644 index 0000000..e3834f6 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TALB.php @@ -0,0 +1,53 @@ +Album/Movie/Show title frame is intended for the title of the + * recording (or source of sound) from which the audio in the file is taken. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TALB extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php new file mode 100644 index 0000000..775d55f --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php @@ -0,0 +1,53 @@ +BPM frame contains the number of beats per minute in the main part + * of the audio. The BPM is an integer and represented as a numerical string. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TBPM extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php new file mode 100644 index 0000000..d5e79c8 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php @@ -0,0 +1,52 @@ +Composer frame is intended for the name of the composer. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TCOM extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCON.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCON.php new file mode 100644 index 0000000..41abd78 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCON.php @@ -0,0 +1,62 @@ +Content type, which ID3v1 was stored as a one byte numeric value + * only, is now a string. You may use one or several of the ID3v1 types as + * numerical strings, or, since the category list would be impossible to + * maintain with accurate and up to date categories, define your own. + * + * You may also use any of the following keywords: + * + *
+ *  RX  Remix
+ *  CR  Cover
+ * 
+ * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TCON extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php new file mode 100644 index 0000000..7cbed31 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php @@ -0,0 +1,59 @@ +Copyright message frame, in which the string must begin with a + * year and a space character (making five characters), is intended for the + * copyright holder of the original sound, not the audio file itself. The + * absence of this frame means only that the copyright information is + * unavailable or has been removed, and must not be interpreted to mean that the + * audio is public domain. Every time this field is displayed the field must be + * preceded with "Copyright " (C) " ", where (C) is one character showing a C in + * a circle. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TCOP extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php new file mode 100644 index 0000000..de8dda2 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php @@ -0,0 +1,55 @@ +Date frame is a numeric string in the DDMM format containing the + * date for the recording. This field is always four characters long. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TDAT extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php new file mode 100644 index 0000000..3c55b51 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php @@ -0,0 +1,56 @@ +Encoding time frame contains a timestamp describing when the audio + * was encoded. Timestamp format is described in the + * {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TDEN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php new file mode 100644 index 0000000..59d2779 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php @@ -0,0 +1,54 @@ +Playlist delay defines the numbers of milliseconds of silence that + * should be inserted before this audio. The value zero indicates that this is a + * part of a multifile audio track that should be played continuously. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TDLY extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php new file mode 100644 index 0000000..46a2acd --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php @@ -0,0 +1,57 @@ +Original release time frame contains a timestamp describing when + * the original recording of the audio was released. Timestamp format is + * described in the {@link http://www.id3.org/id3v2.4.0-structure ID3v2 + * structure document}. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TDOR extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php new file mode 100644 index 0000000..fc6a871 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php @@ -0,0 +1,56 @@ +Recording time frame contains a timestamp describing when the + * audio was recorded. Timestamp format is described in the + * {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TDRC extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php new file mode 100644 index 0000000..b3cdddf --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php @@ -0,0 +1,56 @@ +Release time frame contains a timestamp describing when the audio + * was first released. Timestamp format is described in the + * {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TDRL extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php new file mode 100644 index 0000000..9e724e5 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php @@ -0,0 +1,56 @@ +Tagging time frame contains a timestamp describing then the audio + * was tagged. Timestamp format is described in the + * {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TDTG extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TENC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TENC.php new file mode 100644 index 0000000..f55becd --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TENC.php @@ -0,0 +1,54 @@ +Encoded by frame contains the name of the person or organisation + * that encoded the audio file. This field may contain a copyright message, if + * the audio file also is copyrighted by the encoder. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TENC extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php new file mode 100644 index 0000000..fc4cc76 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php @@ -0,0 +1,53 @@ +Lyricist/Text writer frame is intended for the writer of the text + * or lyrics in the recording. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TEXT extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php new file mode 100644 index 0000000..2e7279f --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php @@ -0,0 +1,69 @@ +File type frame indicates which type of audio this tag defines. + * The following types and refinements are defined: + * + *
+ * MIME   MIME type follows
+ *  MPG    MPEG Audio
+ *    /1     MPEG 1/2 layer I
+ *    /2     MPEG 1/2 layer II
+ *    /3     MPEG 1/2 layer III
+ *    /2.5   MPEG 2.5
+ *    /AAC   Advanced audio compression
+ *  VQF    Transform-domain Weighted Interleave Vector Quantisation
+ *  PCM    Pulse Code Modulated audio
+ * 
+ * + * but other types may be used, but not for these types though. This is used in + * a similar way to the predefined types in the {@link ID3_Frame_TMED} + * frame. If this frame is not present audio type is assumed to be MPG. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TFLT extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIME.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIME.php new file mode 100644 index 0000000..1165986 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIME.php @@ -0,0 +1,55 @@ +Time frame is a numeric string in the HHMM format containing the + * time for the recording. This field is always four characters long. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TIME extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php new file mode 100644 index 0000000..3882383 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php @@ -0,0 +1,55 @@ +Involved people list is very similar to the musician credits list, + * but maps between functions, like producer, and names. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TIPL extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php new file mode 100644 index 0000000..929dd75 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php @@ -0,0 +1,54 @@ +Content group description frame is used if the sound belongs to a + * larger category of sounds/music. For example, classical music is often sorted + * in different musical sections (e.g. "Piano Concerto", "Weather - Hurricane"). + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TIT1 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php new file mode 100644 index 0000000..b1128b3 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php @@ -0,0 +1,53 @@ +Title/Songname/Content description frame is the actual name of the + * piece (e.g. "Adagio", "Hurricane Donna"). + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TIT2 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php new file mode 100644 index 0000000..2b03f5a --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php @@ -0,0 +1,54 @@ +Subtitle/Description refinement frame is used for information + * directly related to the contents title (e.g. "Op. 16" or "Performed live at + * Wembley"). + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TIT3 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php new file mode 100644 index 0000000..b0cbe72 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php @@ -0,0 +1,56 @@ +Initial key frame contains the musical key in which the sound + * starts. It is represented as a string with a maximum length of three + * characters. The ground keys are represented with "A", "B", "C", "D", "E", "F" + * and "G" and halfkeys represented with "b" and "#". Minor is represented as + * "m", e.g. "Dbm" $00. Off key is represented with an "o" only. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TKEY extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php new file mode 100644 index 0000000..61b07ad --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php @@ -0,0 +1,57 @@ +Language frame should contain the languages of the text or lyrics + * spoken or sung in the audio. The language is represented with three + * characters according to {@link http://www.loc.gov/standards/iso639-2/ + * ISO-639-2}. If more than one language is used in the text their language + * codes should follow according to the amount of their usage, e.g. + * "eng" $00 "sve" $00. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TLAN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php new file mode 100644 index 0000000..3ba2c2e --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php @@ -0,0 +1,53 @@ +Length frame contains the length of the audio file in + * milliseconds, represented as a numeric string. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TLEN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php new file mode 100644 index 0000000..8cf57e7 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php @@ -0,0 +1,56 @@ +Musician credits list is intended as a mapping between instruments + * and the musician that played it. Every odd field is an instrument and every + * even is an artist or a comma delimited list of artists. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TMCL extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMED.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMED.php new file mode 100644 index 0000000..ef70d69 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMED.php @@ -0,0 +1,137 @@ +Media type frame describes from which media the sound originated. + * This may be a text string or a reference to the predefined media types found + * in the list below. Example: "VID/PAL/VHS" $00. + * + *
+ *  DIG    Other digital media
+ *    /A    Analogue transfer from media
+ *
+ *  ANA    Other analogue media
+ *    /WAC  Wax cylinder
+ *    /8CA  8-track tape cassette
+ *
+ *  CD     CD
+ *    /A    Analogue transfer from media
+ *    /DD   DDD
+ *    /AD   ADD
+ *    /AA   AAD
+ *
+ *  LD     Laserdisc
+ *
+ *  TT     Turntable records
+ *    /33    33.33 rpm
+ *    /45    45 rpm
+ *    /71    71.29 rpm
+ *    /76    76.59 rpm
+ *    /78    78.26 rpm
+ *    /80    80 rpm
+ *
+ *  MD     MiniDisc
+ *    /A    Analogue transfer from media
+ *
+ *  DAT    DAT
+ *    /A    Analogue transfer from media
+ *    /1    standard, 48 kHz/16 bits, linear
+ *    /2    mode 2, 32 kHz/16 bits, linear
+ *    /3    mode 3, 32 kHz/12 bits, non-linear, low speed
+ *    /4    mode 4, 32 kHz/12 bits, 4 channels
+ *    /5    mode 5, 44.1 kHz/16 bits, linear
+ *    /6    mode 6, 44.1 kHz/16 bits, 'wide track' play
+ *
+ *  DCC    DCC
+ *    /A    Analogue transfer from media
+ *
+ *  DVD    DVD
+ *    /A    Analogue transfer from media
+ *
+ *  TV     Television
+ *    /PAL    PAL
+ *    /NTSC   NTSC
+ *    /SECAM  SECAM
+ *
+ *  VID    Video
+ *    /PAL    PAL
+ *    /NTSC   NTSC
+ *    /SECAM  SECAM
+ *    /VHS    VHS
+ *    /SVHS   S-VHS
+ *    /BETA   BETAMAX
+ *
+ *  RAD    Radio
+ *    /FM   FM
+ *    /AM   AM
+ *    /LW   LW
+ *    /MW   MW
+ *
+ *  TEL    Telephone
+ *    /I    ISDN
+ *
+ *  MC     MC (normal cassette)
+ *    /4    4.75 cm/s (normal speed for a two sided cassette)
+ *    /9    9.5 cm/s
+ *    /I    Type I cassette (ferric/normal)
+ *    /II   Type II cassette (chrome)
+ *    /III  Type III cassette (ferric chrome)
+ *    /IV   Type IV cassette (metal)
+ *
+ *  REE    Reel
+ *    /9    9.5 cm/s
+ *    /19   19 cm/s
+ *    /38   38 cm/s
+ *    /76   76 cm/s
+ *    /I    Type I cassette (ferric/normal)
+ *    /II   Type II cassette (chrome)
+ *    /III  Type III cassette (ferric chrome)
+ *    /IV   Type IV cassette (metal)
+ * 
+ * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TMED extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php new file mode 100644 index 0000000..eb4cd8f --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php @@ -0,0 +1,55 @@ +Mood frame is intended to reflect the mood of the audio with a few + * keywords, e.g. "Romantic" or "Sad". + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TMOO extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php new file mode 100644 index 0000000..11ec617 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php @@ -0,0 +1,54 @@ +Original album/movie/show title frame is intended for the title of + * the original recording (or source of sound), if for example the music in the + * file should be a cover of a previously released song. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TOAL extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php new file mode 100644 index 0000000..f923049 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php @@ -0,0 +1,54 @@ +Original filename frame contains the preferred filename for the + * file, since some media doesn't allow the desired length of the filename. The + * filename is case sensitive and includes its suffix. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TOFN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php new file mode 100644 index 0000000..ee6acc6 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php @@ -0,0 +1,54 @@ +Original lyricist/text writer frame is intended for the text + * writer of the original recording, if for example the music in the file should + * be a cover of a previously released song. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TOLY extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php new file mode 100644 index 0000000..e77bff0 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php @@ -0,0 +1,54 @@ +Original artist/performer frame is intended for the performer of + * the original recording, if for example the music in the file should be a + * cover of a previously released song. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TOPE extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TORY.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TORY.php new file mode 100644 index 0000000..41d5ab3 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TORY.php @@ -0,0 +1,57 @@ +Original release year frame is intended for the year when the + * original recording, if for example the music in the file should be a cover of + * a previously released song, was released. The field is formatted as in the + * {@link ID3_Frame_TYER} frame. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TORY extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php new file mode 100644 index 0000000..780a0e6 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php @@ -0,0 +1,53 @@ +File owner/licensee frame contains the name of the owner or + * licensee of the file and it's contents. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TOWN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php new file mode 100644 index 0000000..478c3ba --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php @@ -0,0 +1,53 @@ +Lead artist/Lead performer/Soloist/Performing group is used for + * the main artist. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPE1 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php new file mode 100644 index 0000000..13032d3 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php @@ -0,0 +1,53 @@ +Band/Orchestra/Accompaniment frame is used for additional + * information about the performers in the recording. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPE2 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php new file mode 100644 index 0000000..79c5da8 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php @@ -0,0 +1,52 @@ +Conductor frame is used for the name of the conductor. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPE3 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php new file mode 100644 index 0000000..d1fe19c --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php @@ -0,0 +1,54 @@ +Interpreted, remixed, or otherwise modified by frame contains more + * information about the people behind a remix and similar interpretations of + * another existing piece. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPE4 extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php new file mode 100644 index 0000000..3f578c1 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php @@ -0,0 +1,56 @@ +Part of a set frame is a numeric string that describes which part + * of a set the audio came from. This frame is used if the source described in + * the {@link ID3_Frame_TALB} frame is divided into several mediums, e.g. + * a double CD. The value may be extended with a "/" character and a numeric + * string containing the total number of parts in the set. E.g. "1/2". + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPOS extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php new file mode 100644 index 0000000..152c555 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php @@ -0,0 +1,61 @@ +Produced notice frame, in which the string must begin with a year + * and a space character (making five characters), is intended for the + * production copyright holder of the original sound, not the audio file itself. + * The absence of this frame means only that the production copyright + * information is unavailable or has been removed, and must not be interpreted + * to mean that the audio is public domain. Every time this field is displayed + * the field must be preceded with "Produced " (P) " ", where (P) is one + * character showing a P in a circle. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TPRO extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php new file mode 100644 index 0000000..f55a62e --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php @@ -0,0 +1,53 @@ +Publisher frame simply contains the name of the label or + * publisher. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TPUB extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php new file mode 100644 index 0000000..c2461ed --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php @@ -0,0 +1,55 @@ +Track number/Position in set frame is a numeric string containing + * the order number of the audio-file on its original recording. This may be + * extended with a "/" character and a numeric string containing the total + * number of tracks/elements on the original recording. E.g. "4/9". + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TRCK extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php new file mode 100644 index 0000000..3cef5c9 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php @@ -0,0 +1,57 @@ +Recording dates frame is intended to be used as complement to + * the {@link ID3_Frame_TYER}, {@link ID3_Frame_TDAT} and {@link ID3_Frame_TIME} + * frames. E.g. "4th-7th June, 12th June" in combination with the + * {@link ID3_Frame_TYER} frame. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TRDA extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php new file mode 100644 index 0000000..ba58981 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php @@ -0,0 +1,53 @@ +Internet radio station name frame contains the name of the + * internet radio station from which the audio is streamed. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TRSN extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php new file mode 100644 index 0000000..7c58a0c --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php @@ -0,0 +1,53 @@ +Internet radio station owner frame contains the name of the owner + * of the internet radio station from which the audio is streamed. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TRSO extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php new file mode 100644 index 0000000..b4cfab6 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php @@ -0,0 +1,55 @@ +Size frame contains the size of the audiofile in bytes, excluding + * the ID3v2 tag, represented as a numeric string. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TSIZ extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php new file mode 100644 index 0000000..1ba7d79 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php @@ -0,0 +1,55 @@ +Album sort order frame defines a string which should be used + * instead of the {@link ID3_Frame_TALB} album name frame for sorting purposes. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TSOA extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php new file mode 100644 index 0000000..764fc91 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php @@ -0,0 +1,55 @@ +Performer sort order frame defines a string which should be used + * instead of the {@link ID3_Frame_TPE2} performer frame for sorting purposes. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TSOP extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php new file mode 100644 index 0000000..bf96f7c --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php @@ -0,0 +1,55 @@ +Title sort order frame defines a string which should be used + * instead of the {@link ID3_Frame_TIT2} title frame for sorting purposes. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TSOT extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php new file mode 100644 index 0000000..b74ba10 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php @@ -0,0 +1,53 @@ +ISRC frame should contain the International Standard Recording + * Code (12 characters). + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_ISRC extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php new file mode 100644 index 0000000..a342b65 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php @@ -0,0 +1,54 @@ +Software/Hardware and settings used for encoding frame includes + * the used audio encoder and its settings when the file was encoded. Hardware + * refers to hardware encoders, not the computer on which a program was run. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_TSSE extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSST.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSST.php new file mode 100644 index 0000000..b13b41b --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSST.php @@ -0,0 +1,55 @@ +Set subtitle frame is intended for the subtitle of the part of a + * set this track belongs to. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + * @since ID3v2.4.0 + */ +final class ID3_Frame_TSST extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php new file mode 100644 index 0000000..f1facd1 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php @@ -0,0 +1,148 @@ + + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_TXXX extends ID3_Frame_AbstractText +{ + /** @var string */ + private $_description; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @param Reader $reader The reader object. + * @param Array $options The options array. + */ + public function __construct($reader = null, &$options = array()) + { + ID3_Frame::__construct($reader, $options); + + if ($reader === null) + return; + + $this->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_data = substr($this->_data, 1); + + switch ($this->_encoding) { + case self::UTF16: + list($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + $this->_text = array(Transform::fromString16($this->_text)); + break; + case self::UTF16BE: + list($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + $this->_text = array(Transform::fromString16BE($this->_text)); + break; + default: + list($this->_description, $this->_text) = + $this->explodeString8($this->_data, 2); + $this->_text = array($this->_text); + } + } + + /** + * Returns the description text. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the description text using given encoding. + * + * @param string $description The content description text. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $encoding = false) + { + $this->_description = $description; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + $data .= Transform::toString16($this->_description, $order) . "\0\0" . + Transform::toString16($this->_text[0], $order); + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_description) . "\0\0" . + Transform::toString16BE($this->_text[0]); + break; + default: + $data .= $this->_description . "\0" . $this->_text[0]; + } + $this->setData($data); + return ID3_Frame::__toString(); + } +} + diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TYER.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TYER.php new file mode 100644 index 0000000..ed338bf --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TYER.php @@ -0,0 +1,55 @@ +Year frame is a numeric string with a year of the recording. This + * frames is always four characters long (until the year 10000). + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 75 $ + * @deprecated ID3v2.3.0 + */ +final class ID3_Frame_TYER extends ID3_Frame_AbstractText {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USER.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USER.php new file mode 100644 index 0000000..a46cfd7 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USER.php @@ -0,0 +1,186 @@ +Terms of use frame contains a brief description of the terms of + * use and ownership of the file. More detailed information concerning the legal + * terms might be available through the {@link ID3_Frame_WCOP} frame. Newlines + * are allowed in the text. There may be more than one Terms of use frames in a + * tag, but only one with the same language. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_USER extends ID3_Frame + implements ID3_Encoding, ID3_Language +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_language = "und"; + + /** @var string */ + private $_text; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_language = substr($this->_data, 1, 3); + if ($this->_language == "XXX") + $this->_language = "und"; + $this->_data = substr($this->_data, 4); + + switch ($this->_encoding) { + case self::UTF16: + $this->_text = Transform::fromString16($this->_data); + break; + case self::UTF16BE: + $this->_text = Transform::fromString16BE($this->_data); + break; + default: + $this->_text = Transform::fromString8($this->_data); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @return string + */ + public function getLanguage() { return $this->_language; } + + /** + * Sets the text language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @see ID3_Language + * @param string $language The language code. + */ + public function setLanguage($language) + { + if ($language == "XXX") + $language = "und"; + $this->_language = substr($language, 0, 3); + } + + /** + * Returns the text. + * + * @return string + */ + public function getText() { return $this->_text; } + + /** + * Sets the text using given language and encoding. + * + * @param string $text The text. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setText($text, $language = false, $encoding = false) + { + $this->_text = $text; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_language; + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($this->_text, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER); + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_text); + break; + default: + $data .= $this->_text; + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USLT.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USLT.php new file mode 100644 index 0000000..000a540 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USLT.php @@ -0,0 +1,225 @@ +Unsynchronised lyrics/text transcription frame contains the lyrics + * of the song or a text transcription of other vocal activities. There may be + * more than one unsynchronised lyrics/text transcription frame in each tag, but + * only one with the same language and content descriptor. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_USLT extends ID3_Frame + implements ID3_Encoding, ID3_Language +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_language = "und"; + + /** @var string */ + private $_description; + + /** @var string */ + private $_text; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @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->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_language = substr($this->_data, 1, 3); + if ($this->_language == "XXX") + $this->_language = "und"; + $this->_data = substr($this->_data, 4); + + switch ($this->_encoding) { + case self::UTF16: + list ($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + $this->_text = Transform::fromString16($this->_text); + break; + case self::UTF16BE: + list ($this->_description, $this->_text) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + $this->_text = Transform::fromString16BE($this->_text); + break; + default: + list ($this->_description, $this->_text) = + $this->explodeString8($this->_data, 2); + $this->_description = Transform::fromString8($this->_description); + $this->_text = Transform::fromString8($this->_text); + } + } + + /** + * Returns the text encoding. + * + * @return integer + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @return string + */ + public function getLanguage() { return $this->_language; } + + /** + * Sets the text language code as specified in the + * {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard. + * + * @see ID3_Language + * @param string $language The language code. + */ + public function setLanguage($language) + { + if ($language == "XXX") + $language = "und"; + $this->_language = substr($language, 0, 3); + } + + /** + * Returns the short content description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. The description + * language and encoding must be that of the actual text. + * + * @param string $description The content description text. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $language = false, + $encoding = false) + { + $this->_description = $description; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the lyrics/text. + * + * @return string + */ + public function getText() { return $this->_text; } + + /** + * Sets the text using given encoding. The text language and encoding must be + * that of the description text. + * + * @param mixed $text The test string. + * @param string $language The language code. + * @param integer $encoding The text encoding. + */ + public function setText($text, $language = false, $encoding = false) + { + $this->_text = $text; + if ($language !== false) + $this->setLanguage($language); + if ($encoding !== false) + $this->setEncoding($encoding); + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding) . $this->_language; + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $order = $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER; + $data .= Transform::toString16($this->_description, $order) . "\0\0" . + Transform::toString16($this->_text, $order); + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_description) . "\0\0" . + Transform::toString16BE($this->_text); + break; + default: + $data .= $this->_description . "\0" . $this->_text; + } + $this->setData($data); + return parent::__toString(); + } +} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php new file mode 100644 index 0000000..e3fd209 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php @@ -0,0 +1,54 @@ +Commercial information frame is a URL pointing at a webpage with + * information such as where the album can be bought. There may be more than one + * WCOM frame in a tag, but not with the same content. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WCOM extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php new file mode 100644 index 0000000..42f1d90 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php @@ -0,0 +1,53 @@ +Copyright/Legal information frame is a URL pointing at a webpage + * where the terms of use and ownership of the file is described. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WCOP extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php new file mode 100644 index 0000000..2eabc45 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php @@ -0,0 +1,53 @@ +Official audio file webpage frame is a URL pointing at a file + * specific webpage. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WOAF extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php new file mode 100644 index 0000000..c4e736e --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php @@ -0,0 +1,54 @@ +Official artist/performer webpage frame is a URL pointing at the + * artists official webpage. There may be more than one WOAR frame in a tag if + * the audio contains more than one performer, but not with the same content. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WOAR extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php new file mode 100644 index 0000000..b867e26 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php @@ -0,0 +1,53 @@ +Official audio source webpage frame is a URL pointing at the + * official webpage for the source of the audio file, e.g. a movie. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WOAS extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WORS.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WORS.php new file mode 100644 index 0000000..5529ff9 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WORS.php @@ -0,0 +1,53 @@ +Official Internet radio station homepage contains a URL pointing + * at the homepage of the internet radio station. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WORS extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php new file mode 100644 index 0000000..2215755 --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php @@ -0,0 +1,53 @@ +Payment frame is a URL pointing at a webpage that will handle the + * process of paying for this file. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WPAY extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php new file mode 100644 index 0000000..832bdec --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php @@ -0,0 +1,53 @@ +Publishers official webpage frame is a URL pointing at the + * official webpage for the publisher. + * + * @package php-reader + * @subpackage ID3 + * @author Sven Vollbehr + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 65 $ + */ +final class ID3_Frame_WPUB extends ID3_Frame_AbstractLink {} diff --git a/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php new file mode 100644 index 0000000..7d2dfad --- /dev/null +++ b/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php @@ -0,0 +1,162 @@ + + * @author Ryan Butterfield + * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup + * @license http://code.google.com/p/php-reader/wiki/License New BSD License + * @version $Rev: 105 $ + */ +final class ID3_Frame_WXXX extends ID3_Frame_AbstractLink + implements ID3_Encoding +{ + /** @var integer */ + private $_encoding = ID3_Encoding::UTF8; + + /** @var string */ + private $_description; + + /** + * Constructs the class with given parameters and parses object related data. + * + * @param Reader $reader The reader object. + * @param Array $options The options array. + */ + public function __construct($reader = null, &$options = array()) + { + ID3_Frame::__construct($reader, $options); + + if ($reader === null) + return; + + $this->_encoding = Transform::fromUInt8($this->_data[0]); + $this->_data = substr($this->_data, 1); + + switch ($this->_encoding) { + case self::UTF16: + list($this->_description, $this->_link) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16($this->_description); + break; + case self::UTF16BE: + list($this->_description, $this->_link) = + $this->explodeString16($this->_data, 2); + $this->_description = Transform::fromString16BE($this->_description); + break; + default: + list($this->_description, $this->_link) = + $this->explodeString8($this->_data, 2); + break; + } + $this->_link = implode($this->explodeString8($this->_link, 1), ""); + } + + /** + * Returns the text encoding. + * + * @return integer The encoding. + */ + public function getEncoding() { return $this->_encoding; } + + /** + * Sets the text encoding. + * + * @see ID3_Encoding + * @param integer $encoding The text encoding. + */ + public function setEncoding($encoding) { $this->_encoding = $encoding; } + + /** + * Returns the link description. + * + * @return string + */ + public function getDescription() { return $this->_description; } + + /** + * Sets the content description text using given encoding. + * + * @param string $description The content description text. + * @param integer $encoding The text encoding. + */ + public function setDescription($description, $encoding = false) + { + $this->_description = $description; + if ($encoding !== false) + $this->_encoding = $encoding; + } + + /** + * Returns the frame raw data. + * + * @return string + */ + public function __toString() + { + $data = Transform::toUInt8($this->_encoding); + switch ($this->_encoding) { + case self::UTF16: + case self::UTF16LE: + $data .= Transform::toString16 + ($this->_description, $this->_encoding == self::UTF16 ? + Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) . + "\0\0"; + break; + case self::UTF16BE: + $data .= Transform::toString16BE($this->_description) . "\0\0"; + break; + default: + $data .= $this->_description . "\0"; + } + $this->setData($data . $this->_link); + return ID3_Frame::__toString(); + } +} -- cgit v1.2.3