@java.lang.Override
        public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            if (extensionRegistry == null) {
                throw new java.lang.NullPointerException();
            }
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                        case 0 -> done = true;
                        case 8 -> {
                            protocol_ = input.readEnum();
                            bitField0_ |= 0x00000001;
                        } // case 8
                        case 18 -> {
                            filenamePrefix_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000002;
                        } // case 18
                        case 26 -> {
                            playlistName_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000004;
                        } // case 26
                        case 32 -> {
                            segmentDuration_ = input.readUInt32();
                            bitField0_ |= 0x00000010;
                        } // case 32
                        case 42 -> {
                            input.readMessage(getS3FieldBuilder().getBuilder(), extensionRegistry);
                            outputCase_ = 5;
                        } // case 42
                        case 50 -> {
                            input.readMessage(getGcpFieldBuilder().getBuilder(), extensionRegistry);
                            outputCase_ = 6;
                        } // case 50
                        case 58 -> {
                            input.readMessage(getAzureFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            outputCase_ = 7;
                        } // case 58
                        case 64 -> {
                            disableManifest_ = input.readBool();
                            bitField0_ |= 0x00000040;
                        } // case 64
                        case 74 -> {
                            input.readMessage(getAliOSSFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            outputCase_ = 9;
                        } // case 74
                        case 80 -> {
                            filenameSuffix_ = input.readEnum();
                            bitField0_ |= 0x00000020;
                        } // case 80
                        case 90 -> {
                            livePlaylistName_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000008;
                        } // case 90
                        default -> {
                            if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                done = true; // was an endgroup tag
                            }
                        } // default:
                    } // switch (tag)
                } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.unwrapIOException();
            } finally {
                onChanged();
            } // finally
            return this;
        }
<pre>
Used to generate HLS segments or other kind of segmented output
</pre>

Protobuf type {@code livekit.SegmentedFileOutput}
turms-plugins/turms-plugin-livekit/src/main/java/im/turms/plugin/livekit/core/proto/egress/SegmentedFileOutput.java