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

http://php-reader.googlecode.com/ · PHP · 109 lines · 28 code · 8 blank · 73 comment · 0 complexity · bb3c4b031d18ffea0f45273ee49d72f1 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: Ndrm.php 210 2010-12-28 16:46:58Z svollbehr $
  33. */
  34. /**#@+ @ignore */
  35. require_once 'Zend/Media/Iso14496/FullBox.php';
  36. /**#@-*/
  37. /**
  38. * The <i>Nero Digital Rights Management Box</i>.
  39. *
  40. * @category Zend
  41. * @package Zend_Media
  42. * @subpackage ISO14496
  43. * @author Sven Vollbehr <sven@vollbehr.eu>
  44. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  45. * @license http://framework.zend.com/license/new-bsd New BSD License
  46. * @version $Id: Ndrm.php 210 2010-12-28 16:46:58Z svollbehr $
  47. */
  48. final class Zend_Media_Iso14496_Box_Ndrm extends Zend_Media_Iso14496_FullBox
  49. {
  50. private $_data;
  51. /**
  52. * Constructs the class with given parameters and reads box related data
  53. * from the ISO Base Media file.
  54. *
  55. * @param Zend_Io_Reader $reader The reader object.
  56. * @param Array $options The options array.
  57. */
  58. public function __construct($reader, &$options = array())
  59. {
  60. parent::__construct($reader, $options);
  61. $this->_data = $reader->read($this->getSize() - 12);
  62. }
  63. /**
  64. * Returns the raw binary data.
  65. *
  66. * @return string
  67. */
  68. public function getData()
  69. {
  70. return $this->_data;
  71. }
  72. /**
  73. * Sets the raw binary data.
  74. *
  75. * @param string $data The data.
  76. */
  77. public function setData($data)
  78. {
  79. $this->_data = $data;
  80. }
  81. /**
  82. * Returns the box heap size in bytes.
  83. *
  84. * @return integer
  85. */
  86. public function getHeapSize()
  87. {
  88. return parent::getHeapSize() + $this->getSize() - 12;
  89. }
  90. /**
  91. * Writes the box data.
  92. *
  93. * @param Zend_Io_Writer $writer The writer object.
  94. * @return void
  95. */
  96. protected function _writeData($writer)
  97. {
  98. parent::_writeData($writer);
  99. $writer->write($this->_data);
  100. }
  101. }