Beispiel #1
0
 /**
  * Overwrite the method to read bytes within the Ogg bitstream.
  *
  * @param integer $length The amount of bytes to read within the Ogg bitstream.
  * @return string
  * @throws Zend_Io_Exception if an I/O error occurs
  */
 public function read($length)
 {
     $currentPageSize = $this->_pages[$this->_currentPageNumber]['page']->getPageSize();
     if ($this->_currentPagePosition + $length >= $currentPageSize) {
         $buffer = parent::read($currentPageSize - $this->_currentPagePosition);
         parent::skip($this->_pages[++$this->_currentPageNumber]['page']->getHeaderSize());
         return $buffer . parent::read($this->_currentPagePosition = $length - ($currentPageSize - $this->_currentPagePosition));
     } else {
         $buffer = parent::read($length);
         $this->_currentPagePosition += $length;
         return $buffer;
     }
 }