@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 10 -> {
                            roomName_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000001;
                        } // case 10
                        case 18 -> {
                            audioTrackId_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000002;
                        } // case 18
                        case 26 -> {
                            videoTrackId_ = input.readStringRequireUtf8();
                            bitField0_ |= 0x00000004;
                        } // case 26
                        case 34 -> {
                            input.readMessage(getFileFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            outputCase_ = 4;
                        } // case 34
                        case 42 -> {
                            input.readMessage(getStreamFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            outputCase_ = 5;
                        } // case 42
                        case 48 -> {
                            int rawValue = input.readEnum();
                            optionsCase_ = 6;
                            options_ = rawValue;
                        } // case 48
                        case 58 -> {
                            input.readMessage(getAdvancedFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            optionsCase_ = 7;
                        } // case 58
                        case 66 -> {
                            input.readMessage(getSegmentsFieldBuilder().getBuilder(),
                                    extensionRegistry);
                            outputCase_ = 8;
                        } // case 66
                        case 90 -> {
                            EncodedFileOutput m = input.readMessage(EncodedFileOutput.parser(),
                                    extensionRegistry);
                            if (fileOutputsBuilder_ == null) {
                                ensureFileOutputsIsMutable();
                                fileOutputs_.add(m);
                            } else {
                                fileOutputsBuilder_.addMessage(m);
                            }
                        } // case 90
                        case 98 -> {
                            StreamOutput m =
                                    input.readMessage(StreamOutput.parser(), extensionRegistry);
                            if (streamOutputsBuilder_ == null) {
                                ensureStreamOutputsIsMutable();
                                streamOutputs_.add(m);
                            } else {
                                streamOutputsBuilder_.addMessage(m);
                            }
                        } // case 98
                        case 106 -> {
                            SegmentedFileOutput m = input.readMessage(SegmentedFileOutput.parser(),
                                    extensionRegistry);
                            if (segmentOutputsBuilder_ == null) {
                                ensureSegmentOutputsIsMutable();
                                segmentOutputs_.add(m);
                            } else {
                                segmentOutputsBuilder_.addMessage(m);
                            }
                        } // case 106
                        case 114 -> {
                            ImageOutput m =
                                    input.readMessage(ImageOutput.parser(), extensionRegistry);
                            if (imageOutputsBuilder_ == null) {
                                ensureImageOutputsIsMutable();
                                imageOutputs_.add(m);
                            } else {
                                imageOutputsBuilder_.addMessage(m);
                            }
                        } // case 114
                        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>
containerize up to one audio and one video track
</pre>

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