Beispiel #1
0
 public function generate(ChannelInterface $channel, \DateTime $startsAt = null)
 {
     $targetDuration = $this->options['target_duration'];
     if (null === $startsAt) {
         $startsAt = new \DateTime();
     }
     $segments = $this->manager->findPlaying($channel, $startsAt, $targetDuration * 3);
     $playlist = new Playlist($segments);
     $first = $playlist->getFirst();
     if (null === $first) {
         return;
     }
     $age = $first->getEndsAt()->getTimestamp() - $startsAt->getTimestamp() + 1;
     $playlist->setAge($age);
     $discontinuitySequence = $first->getProgram()->getSequence();
     if ($first->isDiscontinuity()) {
         --$discontinuitySequence;
     }
     return new M3u8($playlist, $this->options['version'], $targetDuration, $discontinuitySequence);
 }