@java.lang.Override
    public int hashCode() {
        if (memoizedHashCode != 0) {
            return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIDEO_CODEC_FIELD_NUMBER;
        hash = (53 * hash) + videoCodec_;
        hash = (37 * hash) + FRAME_RATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal
                .hashLong(java.lang.Double.doubleToLongBits(getFrameRate()));
        if (getLayersCount() > 0) {
            hash = (37 * hash) + LAYERS_FIELD_NUMBER;
            hash = (53 * hash) + getLayersList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
    }
<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