Bitrate Mutual Exclusion Object identifies video streams that have * a mutual exclusion relationship to each other (in other words, only one of * the streams within such a relationship can be streamed at any given time and * the rest are ignored). One instance of this object must be present for each * set of objects that contains a mutual exclusion relationship. All video * streams in this relationship must have the same frame size. The exclusion * type is used so that implementations can allow user selection of common * choices, such as bit rate. * * @package php-reader * @subpackage ASF * @author Sven Vollbehr * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup * @license http://code.google.com/p/php-reader/wiki/License New BSD License * @version $Rev: 108 $ */ final class ASF_Object_BitrateMutualExclusion extends ASF_Object { const MUTEX_LANGUAGE = "d6e22a00-35da-11d1-9034-00a0c90349be"; const MUTEX_BITRATE = "d6e22a01-35da-11d1-9034-00a0c90349be"; const MUTEX_UNKNOWN = "d6e22a02-35da-11d1-9034-00a0c90349be"; /** @var string */ private $_exclusionType; /** @var Array */ private $_streamNumbers = array(); /** * Constructs the class with given parameters and reads object related data * from the ASF file. * * @param Reader $reader The reader object. * @param Array $options The options array. */ public function __construct($reader, &$options = array()) { parent::__construct($reader, $options); $this->_exclusionType = $this->_reader->readGUID(); $streamNumbersCount = $this->_reader->readUInt16LE(); for ($i = 0; $i < $streamNumbersCount; $i++) $this->_streamNumbers[] = $this->_reader->readUInt16LE(); } /** * Returns the nature of the mutual exclusion relationship. * * @return string */ public function getExclusionType() { return $this->_exclusionType; } /** * Returns an array of stream numbers. * * @return Array */ public function getStreamNumbers() { return $this->_streamNumbers; } }