* Video overlays * * @api */ class AudioSource extends AssetBasedSource { use VideoTransformationTrait; // FIXME: keep only relevant audio transformations. use AudioSourceTrait; /** * AudioSource constructor. * * @param $source */ public function __construct($source) { parent::__construct(ClassUtils::verifyInstance($source, AudioSourceQualifier::class)); } /** * Getter for the audio (video) transformation. * * Creates a new VideoTransformation if not initialized. * * @return VideoTransformation * * @internal */ public function getTransformation() { if (! isset($this->transformation)) { $this->transformation = new VideoTransformation(); } return $this->transformation; } /** * Getter for the layer qualifier. * * @return AudioSourceQualifier * * @internal */ protected function getSourceQualifier() { if (! isset($this->qualifiers['source'])) { $this->qualifiers['source'] = new AudioSourceQualifier(null); } return $this->qualifiers['source']; } /** * Named constructor. * * @param BaseSource|string $source The layer source. * * @return static */ protected static function createWithSource($source) { return $source; } }