/src/Zend/Media/Iso14496/Box/Iinf.php

http://php-reader.googlecode.com/ · PHP · 100 lines · 24 code · 6 blank · 70 comment · 1 complexity · 2144e9f8e750951fe576f9a0a0cc75a8 MD5 · raw file

  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
  16. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  19. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  20. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  21. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  22. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  23. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  24. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  25. * POSSIBILITY OF SUCH DAMAGE.
  26. *
  27. * @category Zend
  28. * @package Zend_Media
  29. * @subpackage ISO14496
  30. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. * @version $Id: Iinf.php 177 2010-03-09 13:13:34Z svollbehr $
  33. */
  34. /**#@+ @ignore */
  35. require_once 'Zend/Media/Iso14496/Box.php';
  36. /**#@-*/
  37. /**
  38. * The <i>Item Information Box</i> provides extra information about selected
  39. * items, including symbolic (<i>file</i>) names. It may optionally occur, but
  40. * if it does, it must be interpreted, as item protection or content encoding
  41. * may have changed the format of the data in the item. If both content encoding
  42. * and protection are indicated for an item, a reader should first un-protect
  43. * the item, and then decode the item's content encoding. If more control is
  44. * needed, an IPMP sequence code may be used.
  45. *
  46. * @category Zend
  47. * @package Zend_Media
  48. * @subpackage ISO14496
  49. * @author Sven Vollbehr <sven@vollbehr.eu>
  50. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  51. * @license http://framework.zend.com/license/new-bsd New BSD License
  52. * @version $Id: Iinf.php 177 2010-03-09 13:13:34Z svollbehr $
  53. */
  54. final class Zend_Media_Iso14496_Box_Iinf extends Zend_Media_Iso14496_Box
  55. {
  56. /**
  57. * Constructs the class with given parameters and reads box related data
  58. * from the ISO Base Media file.
  59. *
  60. * @param Zend_Io_Reader $reader The reader object.
  61. * @param Array $options The options array.
  62. */
  63. public function __construct($reader = null, &$options = array())
  64. {
  65. parent::__construct($reader, $options);
  66. $this->setContainer(true);
  67. if ($reader === null) {
  68. return;
  69. }
  70. $this->_reader->skip(2);
  71. $this->constructBoxes();
  72. }
  73. /**
  74. * Returns the box heap size in bytes.
  75. *
  76. * @return integer
  77. */
  78. public function getHeapSize()
  79. {
  80. return parent::getHeapSize() + 2;
  81. }
  82. /**
  83. * Writes the box data.
  84. *
  85. * @param Zend_Io_Writer $writer The writer object.
  86. * @return void
  87. */
  88. protected function _writeData($writer)
  89. {
  90. parent::_writeData($writer);
  91. $writer->writeUInt16BE($this->getBoxCount());
  92. }
  93. }