@java.lang.Override
    public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) {
            return size;
        }

        size = 0;
        if (videoCodec_ != im.turms.plugin.livekit.core.proto.models.VideoCodec.DEFAULT_VC
                .getNumber()) {
            size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, videoCodec_);
        }
        if (java.lang.Double.doubleToRawLongBits(frameRate_) != 0) {
            size += com.google.protobuf.CodedOutputStream.computeDoubleSize(2, frameRate_);
        }
        for (im.turms.plugin.livekit.core.proto.models.VideoLayer videoLayer : layers_) {
            size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, videoLayer);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
    }
<pre>
simulcast layers to publish, when empty, should usually be set to layers at 1/2 and 1/4 of the dimensions
</pre>

<code>repeated .livekit.VideoLayer layers = 3;</code>
turms-plugins/turms-plugin-livekit/src/main/java/im/turms/plugin/livekit/core/proto/ingress/IngressVideoEncodingOptions.java