aboutsummaryrefslogtreecommitdiff
path: root/libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame')
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AENC.php171
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/APIC.php253
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ASPI.php157
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractLink.php96
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/AbstractText.php170
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMM.php228
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/COMR.php373
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ENCR.php156
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQU2.php193
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/EQUA.php140
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/ETCO.php168
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GEOB.php226
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/GRID.php152
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/IPLS.php174
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/LINK.php173
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MCDI.php78
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/MLLT.php169
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/OWNE.php219
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PCNT.php111
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POPM.php161
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/POSS.php132
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/PRIV.php126
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RBUF.php181
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVA2.php217
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVAD.php252
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/RVRB.php314
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SEEK.php104
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SIGN.php122
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYLT.php313
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/SYTC.php161
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TALB.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TBPM.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOM.php52
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCON.php62
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TCOP.php59
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDAT.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDEN.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDLY.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDOR.php57
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRC.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDRL.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TDTG.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TENC.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TEXT.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TFLT.php69
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIME.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIPL.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT1.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT2.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TIT3.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TKEY.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLAN.php57
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TLEN.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMCL.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMED.php137
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TMOO.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOAL.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOFN.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOLY.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOPE.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TORY.php57
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TOWN.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE1.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE2.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE3.php52
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPE4.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPOS.php56
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPRO.php61
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TPUB.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRCK.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRDA.php57
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSN.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TRSO.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSIZ.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOA.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOP.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSOT.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSRC.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSSE.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TSST.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TXXX.php148
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/TYER.php55
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USER.php186
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/USLT.php225
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOM.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WCOP.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAF.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAR.php54
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WOAS.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WORS.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPAY.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WPUB.php53
-rw-r--r--libraries/phpvideotoolkit/adapters/ffmpeg-php/php-reader/src/ID3/Frame/WXXX.php162
93 files changed, 9530 insertions, 0 deletions
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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: AENC.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Audio encryption</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: APIC.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * The <i>Attached picture</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: ASPI.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * Audio files with variable bit rates are intrinsically difficult to deal with
+ * in the case of seeking within the file. The <i>Audio seek point index</i> 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 <svollbehr@gmail.com>
+ * @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 <var>false</var> 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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: AbstractLink.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * A base class for all the URL link frames.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: AbstractText.php 107 2008-08-03 19:09:16Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * A base class for all the text frames.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: COMM.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+require_once("ID3/Language.php");
+require_once("ID3/Exception.php");
+/**#@-*/
+
+/**
+ * The <i>Comments</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: COMR.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * The <i>Commercial frame</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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
+ * <var>false</var> 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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: ENCR.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * To identify with which method a frame has been encrypted the encryption
+ * method must be registered in the tag with the <i>Encryption method
+ * registration</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: EQU2.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Equalisation (2)</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: EQUA.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Equalisation</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: ETCO.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Timing.php");
+/**#@-*/
+
+/**
+ * The <i>Event timing codes</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: GEOB.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * In the <i>General encapsulated object</i> frame any type of file can be
+ * encapsulated.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: GRID.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Group identification registration</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: IPLS.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * The <i>Involved people list</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: LINK.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Linked information</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: MCDI.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * This frame is intended for music that comes from a CD, so that the CD can be
+ * identified in databases such as the CDDB. The frame consists of a binary dump
+ * of the Table Of Contents, TOC, from the CD, which is a header of 4 bytes and
+ * then 8 bytes/track on the CD plus 8 bytes for the lead out, making a
+ * maximum of 804 bytes. The offset to the beginning of every track on the CD
+ * should be described with a four bytes absolute CD-frame address per track,
+ * and not with absolute time. When this frame is used the presence of a valid
+ * {@link ID3_Frame_TRCK} frame is required, even if the CD's only got one
+ * track. It is recommended that this frame is always added to tags originating
+ * from CDs.
+ *
+ * There may only be one MCDI frame in each tag.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: MLLT.php 75 2008-04-14 23:57:21Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * To increase performance and accuracy of jumps within a MPEG audio file,
+ * frames with time codes in different locations in the file might be useful.
+ * The <i>MPEG location lookup table</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: OWNE.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * The <i>Ownership frame</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: PCNT.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Play counter</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: POPM.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The purpose of the <i>Popularimeter</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: POSS.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Timing.php");
+/**#@-*/
+
+/**
+ * The <i>Position synchronisation frame</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: PRIV.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Private frame</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: RBUF.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * Sometimes the server from which an audio file is streamed is aware of
+ * transmission or coding problems resulting in interruptions in the audio
+ * stream. In these cases, the size of the buffer can be recommended by the
+ * server using the <i>Recommended buffer size</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 <var>true</var> if the flag
+ * is set, <var>false</var> 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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: RVA2.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Relative volume adjustment (2)</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: RVAD.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Relative volume adjustment</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: RVRB.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Reverb</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: SEEK.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * The <i>Seek</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: SIGN.php 105 2008-07-30 14:56:47Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+/**#@-*/
+
+/**
+ * This frame enables a group of frames, grouped with the
+ * <i>Group identification registration</i>, 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: SYLT.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+require_once("ID3/Language.php");
+require_once("ID3/Timing.php");
+/**#@-*/
+
+/**
+ * The <i>Synchronised lyrics/text</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: SYTC.php 107 2008-08-03 19:09:16Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Timing.php");
+/**#@-*/
+
+/**
+ * For a more accurate description of the tempo of a musical piece, the
+ * <i>Synchronised tempo codes</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TALB.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Album/Movie/Show title</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TBPM.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>BPM</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TCOM.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Composer</i> frame is intended for the name of the composer.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TCON.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Content type</i>, 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:
+ *
+ * <pre>
+ * RX Remix
+ * CR Cover
+ * </pre>
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TCOP.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Copyright message</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDAT.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Date</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDEN.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Encoding time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDLY.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Playlist delay</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDOR.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original release time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDRC.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Recording time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDRL.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Release time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TDTG.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Tagging time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TENC.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Encoded by</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TEXT.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Lyricist/Text writer</i> frame is intended for the writer of the text
+ * or lyrics in the recording.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TFLT.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>File type</i> frame indicates which type of audio this tag defines.
+ * The following types and refinements are defined:
+ *
+ * <pre>
+ * 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
+ * </pre>
+ *
+ * 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TIME.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Time</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TIPL.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Involved people list</i> is very similar to the musician credits list,
+ * but maps between functions, like producer, and names.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TIT1.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Content group description</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TIT2.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Title/Songname/Content description</i> frame is the actual name of the
+ * piece (e.g. "Adagio", "Hurricane Donna").
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TIT3.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Subtitle/Description refinement</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TKEY.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Initial key</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TLAN.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Language</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TLEN.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Length</i> frame contains the length of the audio file in
+ * milliseconds, represented as a numeric string.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TMCL.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Musician credits list</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TMED.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Media type</i> 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.
+ *
+ * <pre>
+ * 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)
+ * </pre>
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TMOO.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Mood</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TOAL.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original album/movie/show title</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TOFN.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original filename</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TOLY.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original lyricist/text writer</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TOPE.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original artist/performer</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TORY.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Original release year</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TOWN.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>File owner/licensee</i> frame contains the name of the owner or
+ * licensee of the file and it's contents.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPE1.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Lead artist/Lead performer/Soloist/Performing group</i> is used for
+ * the main artist.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPE2.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Band/Orchestra/Accompaniment</i> frame is used for additional
+ * information about the performers in the recording.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPE3.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Conductor</i> frame is used for the name of the conductor.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPE4.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Interpreted, remixed, or otherwise modified by</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPOS.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Part of a set</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPRO.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Produced notice</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TPUB.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Publisher</i> frame simply contains the name of the label or
+ * publisher.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TRCK.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Track number/Position in set</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TRDA.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Recording dates</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TRSN.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Internet radio station name</i> frame contains the name of the
+ * internet radio station from which the audio is streamed.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TRSO.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Internet radio station owner</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSIZ.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Size</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSOA.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Album sort order</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSOP.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Performer sort order</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSOT.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Title sort order</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSRC.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>ISRC</i> frame should contain the International Standard Recording
+ * Code (12 characters).
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSSE.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Software/Hardware and settings used for encoding</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TSST.php 65 2008-04-02 15:22:46Z svollbehr $
+ * @since ID3v2.4.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Set subtitle</i> frame is intended for the subtitle of the part of a
+ * set this track belongs to.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TXXX.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * This frame is intended for one-string text information concerning the audio
+ * file in a similar way to the other T-frames. The frame body consists of a
+ * description of the string, represented as a terminated string, followed by
+ * the actual string. There may be more than one TXXX frame in each tag, but
+ * only one with the same description.
+ *
+ * The description is the first value, and the its value the second in the text
+ * array.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: TYER.php 75 2008-04-14 23:57:21Z svollbehr $
+ * @deprecated ID3v2.3.0
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractText.php");
+/**#@-*/
+
+/**
+ * The <i>Year</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: USER.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+require_once("ID3/Language.php");
+/**#@-*/
+
+/**
+ * The <i>Terms of use frame</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: USLT.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame.php");
+require_once("ID3/Encoding.php");
+require_once("ID3/Language.php");
+/**#@-*/
+
+/**
+ * The <i>Unsynchronised lyrics/text transcription</i> 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 <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WCOM.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Commercial information</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WCOP.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Copyright/Legal information</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WOAF.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Official audio file webpage</i> frame is a URL pointing at a file
+ * specific webpage.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WOAR.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Official artist/performer webpage</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WOAS.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Official audio source webpage</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WORS.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Official Internet radio station homepage</i> contains a URL pointing
+ * at the homepage of the internet radio station.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WPAY.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Payment</i> 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 <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WPUB.php 65 2008-04-02 15:22:46Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+/**#@-*/
+
+/**
+ * The <i>Publishers official webpage</i> frame is a URL pointing at the
+ * official webpage for the publisher.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @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 @@
+<?php
+/**
+ * PHP Reader Library
+ *
+ * Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * - Neither the name of the project workgroup nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
+ * @license http://code.google.com/p/php-reader/wiki/License New BSD License
+ * @version $Id: WXXX.php 105 2008-07-30 14:56:47Z svollbehr $
+ */
+
+/**#@+ @ignore */
+require_once("ID3/Frame/AbstractLink.php");
+require_once("ID3/Encoding.php");
+/**#@-*/
+
+/**
+ * This frame is intended for URL links concerning the audio file in a similar
+ * way to the other "W"-frames. The frame body consists of a description of the
+ * string, represented as a terminated string, followed by the actual URL. The
+ * URL is always encoded with ISO-8859-1. There may be more than one "WXXX"
+ * frame in each tag, but only one with the same description.
+ *
+ * @package php-reader
+ * @subpackage ID3
+ * @author Sven Vollbehr <svollbehr@gmail.com>
+ * @author Ryan Butterfield <buttza@gmail.com>
+ * @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();
+ }
+}