viewNextBytes(2)) { AbstractExtension::MARKER . GraphicControlExtension::LABEL => GraphicControlExtension::decode($this->handle), AbstractExtension::MARKER . NetscapeApplicationExtension::LABEL => NetscapeApplicationExtension::decode($this->handle), AbstractExtension::MARKER . ApplicationExtension::LABEL => ApplicationExtension::decode($this->handle), AbstractExtension::MARKER . PlainTextExtension::LABEL => PlainTextExtension::decode($this->handle), AbstractExtension::MARKER . CommentExtension::LABEL => CommentExtension::decode($this->handle), default => match ($this->viewNextByte()) { ImageDescriptor::SEPARATOR => TableBasedImage::decode($this->handle), default => throw new DecoderException('Unable to decode Data Block'), } }; $frame->addEntity($block); } while (!($block instanceof TableBasedImage)); return $frame; } }