All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.cloud.video.livestream.v1.Manifest Maven / Gradle / Ivy

There is a newer version: 0.57.0
Show newest version
/*
 * Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/video/livestream/v1/outputs.proto

// Protobuf Java Version: 3.25.5
package com.google.cloud.video.livestream.v1;

/**
 *
 *
 * 
 * Manifest configuration.
 * 
* * Protobuf type {@code google.cloud.video.livestream.v1.Manifest} */ public final class Manifest extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:google.cloud.video.livestream.v1.Manifest) ManifestOrBuilder { private static final long serialVersionUID = 0L; // Use Manifest.newBuilder() to construct. private Manifest(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Manifest() { fileName_ = ""; type_ = 0; muxStreams_ = com.google.protobuf.LazyStringArrayList.emptyList(); key_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { return new Manifest(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.cloud.video.livestream.v1.OutputsProto .internal_static_google_cloud_video_livestream_v1_Manifest_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.cloud.video.livestream.v1.OutputsProto .internal_static_google_cloud_video_livestream_v1_Manifest_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.cloud.video.livestream.v1.Manifest.class, com.google.cloud.video.livestream.v1.Manifest.Builder.class); } /** * * *
   * The manifest type can be either `HLS` or `DASH`.
   * 
* * Protobuf enum {@code google.cloud.video.livestream.v1.Manifest.ManifestType} */ public enum ManifestType implements com.google.protobuf.ProtocolMessageEnum { /** * * *
     * The manifest type is not specified.
     * 
* * MANIFEST_TYPE_UNSPECIFIED = 0; */ MANIFEST_TYPE_UNSPECIFIED(0), /** * * *
     * Create an `HLS` manifest. The corresponding file extension is `.m3u8`.
     * 
* * HLS = 1; */ HLS(1), /** * * *
     * Create a `DASH` manifest. The corresponding file extension is `.mpd`.
     * 
* * DASH = 2; */ DASH(2), UNRECOGNIZED(-1), ; /** * * *
     * The manifest type is not specified.
     * 
* * MANIFEST_TYPE_UNSPECIFIED = 0; */ public static final int MANIFEST_TYPE_UNSPECIFIED_VALUE = 0; /** * * *
     * Create an `HLS` manifest. The corresponding file extension is `.m3u8`.
     * 
* * HLS = 1; */ public static final int HLS_VALUE = 1; /** * * *
     * Create a `DASH` manifest. The corresponding file extension is `.mpd`.
     * 
* * DASH = 2; */ public static final int DASH_VALUE = 2; public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException( "Can't get the number of an unknown enum value."); } return value; } /** * @param value The numeric wire value of the corresponding enum entry. * @return The enum associated with the given numeric wire value. * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static ManifestType valueOf(int value) { return forNumber(value); } /** * @param value The numeric wire value of the corresponding enum entry. * @return The enum associated with the given numeric wire value. */ public static ManifestType forNumber(int value) { switch (value) { case 0: return MANIFEST_TYPE_UNSPECIFIED; case 1: return HLS; case 2: return DASH; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public ManifestType findValueByNumber(int number) { return ManifestType.forNumber(number); } }; public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalStateException( "Can't get the descriptor of an unrecognized enum value."); } return getDescriptor().getValues().get(ordinal()); } public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { return getDescriptor(); } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return com.google.cloud.video.livestream.v1.Manifest.getDescriptor().getEnumTypes().get(0); } private static final ManifestType[] VALUES = values(); public static ManifestType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { if (desc.getType() != getDescriptor()) { throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } if (desc.getIndex() == -1) { return UNRECOGNIZED; } return VALUES[desc.getIndex()]; } private final int value; private ManifestType(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:google.cloud.video.livestream.v1.Manifest.ManifestType) } private int bitField0_; public static final int FILE_NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object fileName_ = ""; /** * * *
   * The name of the generated file. The default is `manifest` with the
   * extension suffix corresponding to the `Manifest`
   * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
   * manifests are added to the channel, each must have a unique file name.
   * 
* * string file_name = 1; * * @return The fileName. */ @java.lang.Override public java.lang.String getFileName() { java.lang.Object ref = fileName_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); fileName_ = s; return s; } } /** * * *
   * The name of the generated file. The default is `manifest` with the
   * extension suffix corresponding to the `Manifest`
   * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
   * manifests are added to the channel, each must have a unique file name.
   * 
* * string file_name = 1; * * @return The bytes for fileName. */ @java.lang.Override public com.google.protobuf.ByteString getFileNameBytes() { java.lang.Object ref = fileName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); fileName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int TYPE_FIELD_NUMBER = 2; private int type_ = 0; /** * * *
   * Required. Type of the manifest, can be `HLS` or `DASH`.
   * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @return The enum numeric value on the wire for type. */ @java.lang.Override public int getTypeValue() { return type_; } /** * * *
   * Required. Type of the manifest, can be `HLS` or `DASH`.
   * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @return The type. */ @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest.ManifestType getType() { com.google.cloud.video.livestream.v1.Manifest.ManifestType result = com.google.cloud.video.livestream.v1.Manifest.ManifestType.forNumber(type_); return result == null ? com.google.cloud.video.livestream.v1.Manifest.ManifestType.UNRECOGNIZED : result; } public static final int MUX_STREAMS_FIELD_NUMBER = 3; @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList muxStreams_ = com.google.protobuf.LazyStringArrayList.emptyList(); /** * * *
   * Required. List of `MuxStream`
   * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
   * in this manifest.
   *
   * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
   * mixed.
   * - For DASH, only `fmp4` mux streams can be specified.
   * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @return A list containing the muxStreams. */ public com.google.protobuf.ProtocolStringList getMuxStreamsList() { return muxStreams_; } /** * * *
   * Required. List of `MuxStream`
   * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
   * in this manifest.
   *
   * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
   * mixed.
   * - For DASH, only `fmp4` mux streams can be specified.
   * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @return The count of muxStreams. */ public int getMuxStreamsCount() { return muxStreams_.size(); } /** * * *
   * Required. List of `MuxStream`
   * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
   * in this manifest.
   *
   * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
   * mixed.
   * - For DASH, only `fmp4` mux streams can be specified.
   * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param index The index of the element to return. * @return The muxStreams at the given index. */ public java.lang.String getMuxStreams(int index) { return muxStreams_.get(index); } /** * * *
   * Required. List of `MuxStream`
   * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
   * in this manifest.
   *
   * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
   * mixed.
   * - For DASH, only `fmp4` mux streams can be specified.
   * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param index The index of the value to return. * @return The bytes of the muxStreams at the given index. */ public com.google.protobuf.ByteString getMuxStreamsBytes(int index) { return muxStreams_.getByteString(index); } public static final int MAX_SEGMENT_COUNT_FIELD_NUMBER = 4; private int maxSegmentCount_ = 0; /** * * *
   * Maximum number of segments that this manifest holds. Once the manifest
   * reaches this maximum number of segments, whenever a new segment is added to
   * the manifest, the oldest segment will be removed from the manifest.
   * The minimum value is 3 and the default value is 5.
   * 
* * int32 max_segment_count = 4; * * @return The maxSegmentCount. */ @java.lang.Override public int getMaxSegmentCount() { return maxSegmentCount_; } public static final int SEGMENT_KEEP_DURATION_FIELD_NUMBER = 5; private com.google.protobuf.Duration segmentKeepDuration_; /** * * *
   * How long to keep a segment on the output Google Cloud Storage bucket after
   * it is removed from the manifest. This field should be large enough to cover
   * the manifest propagation delay. Otherwise, a player could receive 404
   * errors while accessing segments which are listed in the manifest that the
   * player has, but were already deleted from the output Google Cloud Storage
   * bucket. Default value is `60s`.
   *
   * If both segment_keep_duration and
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * are set,
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * is used and segment_keep_duration is ignored.
   * 
* * .google.protobuf.Duration segment_keep_duration = 5; * * @return Whether the segmentKeepDuration field is set. */ @java.lang.Override public boolean hasSegmentKeepDuration() { return ((bitField0_ & 0x00000001) != 0); } /** * * *
   * How long to keep a segment on the output Google Cloud Storage bucket after
   * it is removed from the manifest. This field should be large enough to cover
   * the manifest propagation delay. Otherwise, a player could receive 404
   * errors while accessing segments which are listed in the manifest that the
   * player has, but were already deleted from the output Google Cloud Storage
   * bucket. Default value is `60s`.
   *
   * If both segment_keep_duration and
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * are set,
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * is used and segment_keep_duration is ignored.
   * 
* * .google.protobuf.Duration segment_keep_duration = 5; * * @return The segmentKeepDuration. */ @java.lang.Override public com.google.protobuf.Duration getSegmentKeepDuration() { return segmentKeepDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : segmentKeepDuration_; } /** * * *
   * How long to keep a segment on the output Google Cloud Storage bucket after
   * it is removed from the manifest. This field should be large enough to cover
   * the manifest propagation delay. Otherwise, a player could receive 404
   * errors while accessing segments which are listed in the manifest that the
   * player has, but were already deleted from the output Google Cloud Storage
   * bucket. Default value is `60s`.
   *
   * If both segment_keep_duration and
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * are set,
   * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
   * is used and segment_keep_duration is ignored.
   * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getSegmentKeepDurationOrBuilder() { return segmentKeepDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : segmentKeepDuration_; } public static final int USE_TIMECODE_AS_TIMELINE_FIELD_NUMBER = 6; private boolean useTimecodeAsTimeline_ = false; /** * * *
   * Whether to use the timecode, as specified in timecode config, when setting:
   *
   * - `availabilityStartTime` attribute in DASH manifests.
   * - `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.
   *
   * If false, ignore the input timecode and use the time from system clock
   * when the manifest is first generated. This is the default behavior.
   * 
* * bool use_timecode_as_timeline = 6; * * @return The useTimecodeAsTimeline. */ @java.lang.Override public boolean getUseTimecodeAsTimeline() { return useTimecodeAsTimeline_; } public static final int KEY_FIELD_NUMBER = 7; @SuppressWarnings("serial") private volatile java.lang.Object key_ = ""; /** * * *
   * Optional. A unique key for this manifest.
   * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The key. */ @java.lang.Override public java.lang.String getKey() { java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); key_ = s; return s; } } /** * * *
   * Optional. A unique key for this manifest.
   * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString getKeyBytes() { java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fileName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, fileName_); } if (type_ != com.google.cloud.video.livestream.v1.Manifest.ManifestType.MANIFEST_TYPE_UNSPECIFIED .getNumber()) { output.writeEnum(2, type_); } for (int i = 0; i < muxStreams_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, muxStreams_.getRaw(i)); } if (maxSegmentCount_ != 0) { output.writeInt32(4, maxSegmentCount_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(5, getSegmentKeepDuration()); } if (useTimecodeAsTimeline_ != false) { output.writeBool(6, useTimecodeAsTimeline_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 7, key_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fileName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, fileName_); } if (type_ != com.google.cloud.video.livestream.v1.Manifest.ManifestType.MANIFEST_TYPE_UNSPECIFIED .getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, type_); } { int dataSize = 0; for (int i = 0; i < muxStreams_.size(); i++) { dataSize += computeStringSizeNoTag(muxStreams_.getRaw(i)); } size += dataSize; size += 1 * getMuxStreamsList().size(); } if (maxSegmentCount_ != 0) { size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, maxSegmentCount_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSegmentKeepDuration()); } if (useTimecodeAsTimeline_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, useTimecodeAsTimeline_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, key_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.google.cloud.video.livestream.v1.Manifest)) { return super.equals(obj); } com.google.cloud.video.livestream.v1.Manifest other = (com.google.cloud.video.livestream.v1.Manifest) obj; if (!getFileName().equals(other.getFileName())) return false; if (type_ != other.type_) return false; if (!getMuxStreamsList().equals(other.getMuxStreamsList())) return false; if (getMaxSegmentCount() != other.getMaxSegmentCount()) return false; if (hasSegmentKeepDuration() != other.hasSegmentKeepDuration()) return false; if (hasSegmentKeepDuration()) { if (!getSegmentKeepDuration().equals(other.getSegmentKeepDuration())) return false; } if (getUseTimecodeAsTimeline() != other.getUseTimecodeAsTimeline()) return false; if (!getKey().equals(other.getKey())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + FILE_NAME_FIELD_NUMBER; hash = (53 * hash) + getFileName().hashCode(); hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + type_; if (getMuxStreamsCount() > 0) { hash = (37 * hash) + MUX_STREAMS_FIELD_NUMBER; hash = (53 * hash) + getMuxStreamsList().hashCode(); } hash = (37 * hash) + MAX_SEGMENT_COUNT_FIELD_NUMBER; hash = (53 * hash) + getMaxSegmentCount(); if (hasSegmentKeepDuration()) { hash = (37 * hash) + SEGMENT_KEEP_DURATION_FIELD_NUMBER; hash = (53 * hash) + getSegmentKeepDuration().hashCode(); } hash = (37 * hash) + USE_TIMECODE_AS_TIMELINE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUseTimecodeAsTimeline()); hash = (37 * hash) + KEY_FIELD_NUMBER; hash = (53 * hash) + getKey().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static com.google.cloud.video.livestream.v1.Manifest parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException( PARSER, input, extensionRegistry); } public static com.google.cloud.video.livestream.v1.Manifest parseDelimitedFrom( java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } public static com.google.cloud.video.livestream.v1.Manifest parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( PARSER, input, extensionRegistry); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } public static com.google.cloud.video.livestream.v1.Manifest parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException( PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(com.google.cloud.video.livestream.v1.Manifest prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * * *
   * Manifest configuration.
   * 
* * Protobuf type {@code google.cloud.video.livestream.v1.Manifest} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:google.cloud.video.livestream.v1.Manifest) com.google.cloud.video.livestream.v1.ManifestOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.cloud.video.livestream.v1.OutputsProto .internal_static_google_cloud_video_livestream_v1_Manifest_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.cloud.video.livestream.v1.OutputsProto .internal_static_google_cloud_video_livestream_v1_Manifest_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.cloud.video.livestream.v1.Manifest.class, com.google.cloud.video.livestream.v1.Manifest.Builder.class); } // Construct using com.google.cloud.video.livestream.v1.Manifest.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { getSegmentKeepDurationFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; fileName_ = ""; type_ = 0; muxStreams_ = com.google.protobuf.LazyStringArrayList.emptyList(); maxSegmentCount_ = 0; segmentKeepDuration_ = null; if (segmentKeepDurationBuilder_ != null) { segmentKeepDurationBuilder_.dispose(); segmentKeepDurationBuilder_ = null; } useTimecodeAsTimeline_ = false; key_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return com.google.cloud.video.livestream.v1.OutputsProto .internal_static_google_cloud_video_livestream_v1_Manifest_descriptor; } @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest getDefaultInstanceForType() { return com.google.cloud.video.livestream.v1.Manifest.getDefaultInstance(); } @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest build() { com.google.cloud.video.livestream.v1.Manifest result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest buildPartial() { com.google.cloud.video.livestream.v1.Manifest result = new com.google.cloud.video.livestream.v1.Manifest(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(com.google.cloud.video.livestream.v1.Manifest result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.fileName_ = fileName_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.type_ = type_; } if (((from_bitField0_ & 0x00000004) != 0)) { muxStreams_.makeImmutable(); result.muxStreams_ = muxStreams_; } if (((from_bitField0_ & 0x00000008) != 0)) { result.maxSegmentCount_ = maxSegmentCount_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000010) != 0)) { result.segmentKeepDuration_ = segmentKeepDurationBuilder_ == null ? segmentKeepDuration_ : segmentKeepDurationBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000020) != 0)) { result.useTimecodeAsTimeline_ = useTimecodeAsTimeline_; } if (((from_bitField0_ & 0x00000040) != 0)) { result.key_ = key_; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.cloud.video.livestream.v1.Manifest) { return mergeFrom((com.google.cloud.video.livestream.v1.Manifest) other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(com.google.cloud.video.livestream.v1.Manifest other) { if (other == com.google.cloud.video.livestream.v1.Manifest.getDefaultInstance()) return this; if (!other.getFileName().isEmpty()) { fileName_ = other.fileName_; bitField0_ |= 0x00000001; onChanged(); } if (other.type_ != 0) { setTypeValue(other.getTypeValue()); } if (!other.muxStreams_.isEmpty()) { if (muxStreams_.isEmpty()) { muxStreams_ = other.muxStreams_; bitField0_ |= 0x00000004; } else { ensureMuxStreamsIsMutable(); muxStreams_.addAll(other.muxStreams_); } onChanged(); } if (other.getMaxSegmentCount() != 0) { setMaxSegmentCount(other.getMaxSegmentCount()); } if (other.hasSegmentKeepDuration()) { mergeSegmentKeepDuration(other.getSegmentKeepDuration()); } if (other.getUseTimecodeAsTimeline() != false) { setUseTimecodeAsTimeline(other.getUseTimecodeAsTimeline()); } if (!other.getKey().isEmpty()) { key_ = other.key_; bitField0_ |= 0x00000040; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @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; break; case 10: { fileName_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 16: { type_ = input.readEnum(); bitField0_ |= 0x00000002; break; } // case 16 case 26: { java.lang.String s = input.readStringRequireUtf8(); ensureMuxStreamsIsMutable(); muxStreams_.add(s); break; } // case 26 case 32: { maxSegmentCount_ = input.readInt32(); bitField0_ |= 0x00000008; break; } // case 32 case 42: { input.readMessage( getSegmentKeepDurationFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000010; break; } // case 42 case 48: { useTimecodeAsTimeline_ = input.readBool(); bitField0_ |= 0x00000020; break; } // case 48 case 58: { key_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000040; break; } // case 58 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object fileName_ = ""; /** * * *
     * The name of the generated file. The default is `manifest` with the
     * extension suffix corresponding to the `Manifest`
     * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
     * manifests are added to the channel, each must have a unique file name.
     * 
* * string file_name = 1; * * @return The fileName. */ public java.lang.String getFileName() { java.lang.Object ref = fileName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); fileName_ = s; return s; } else { return (java.lang.String) ref; } } /** * * *
     * The name of the generated file. The default is `manifest` with the
     * extension suffix corresponding to the `Manifest`
     * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
     * manifests are added to the channel, each must have a unique file name.
     * 
* * string file_name = 1; * * @return The bytes for fileName. */ public com.google.protobuf.ByteString getFileNameBytes() { java.lang.Object ref = fileName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); fileName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * * *
     * The name of the generated file. The default is `manifest` with the
     * extension suffix corresponding to the `Manifest`
     * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
     * manifests are added to the channel, each must have a unique file name.
     * 
* * string file_name = 1; * * @param value The fileName to set. * @return This builder for chaining. */ public Builder setFileName(java.lang.String value) { if (value == null) { throw new NullPointerException(); } fileName_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * * *
     * The name of the generated file. The default is `manifest` with the
     * extension suffix corresponding to the `Manifest`
     * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
     * manifests are added to the channel, each must have a unique file name.
     * 
* * string file_name = 1; * * @return This builder for chaining. */ public Builder clearFileName() { fileName_ = getDefaultInstance().getFileName(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * * *
     * The name of the generated file. The default is `manifest` with the
     * extension suffix corresponding to the `Manifest`
     * [type][google.cloud.video.livestream.v1.Manifest.type]. If multiple
     * manifests are added to the channel, each must have a unique file name.
     * 
* * string file_name = 1; * * @param value The bytes for fileName to set. * @return This builder for chaining. */ public Builder setFileNameBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); fileName_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private int type_ = 0; /** * * *
     * Required. Type of the manifest, can be `HLS` or `DASH`.
     * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @return The enum numeric value on the wire for type. */ @java.lang.Override public int getTypeValue() { return type_; } /** * * *
     * Required. Type of the manifest, can be `HLS` or `DASH`.
     * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @param value The enum numeric value on the wire for type to set. * @return This builder for chaining. */ public Builder setTypeValue(int value) { type_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } /** * * *
     * Required. Type of the manifest, can be `HLS` or `DASH`.
     * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @return The type. */ @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest.ManifestType getType() { com.google.cloud.video.livestream.v1.Manifest.ManifestType result = com.google.cloud.video.livestream.v1.Manifest.ManifestType.forNumber(type_); return result == null ? com.google.cloud.video.livestream.v1.Manifest.ManifestType.UNRECOGNIZED : result; } /** * * *
     * Required. Type of the manifest, can be `HLS` or `DASH`.
     * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @param value The type to set. * @return This builder for chaining. */ public Builder setType(com.google.cloud.video.livestream.v1.Manifest.ManifestType value) { if (value == null) { throw new NullPointerException(); } bitField0_ |= 0x00000002; type_ = value.getNumber(); onChanged(); return this; } /** * * *
     * Required. Type of the manifest, can be `HLS` or `DASH`.
     * 
* * * .google.cloud.video.livestream.v1.Manifest.ManifestType type = 2 [(.google.api.field_behavior) = REQUIRED]; * * * @return This builder for chaining. */ public Builder clearType() { bitField0_ = (bitField0_ & ~0x00000002); type_ = 0; onChanged(); return this; } private com.google.protobuf.LazyStringArrayList muxStreams_ = com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureMuxStreamsIsMutable() { if (!muxStreams_.isModifiable()) { muxStreams_ = new com.google.protobuf.LazyStringArrayList(muxStreams_); } bitField0_ |= 0x00000004; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @return A list containing the muxStreams. */ public com.google.protobuf.ProtocolStringList getMuxStreamsList() { muxStreams_.makeImmutable(); return muxStreams_; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @return The count of muxStreams. */ public int getMuxStreamsCount() { return muxStreams_.size(); } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param index The index of the element to return. * @return The muxStreams at the given index. */ public java.lang.String getMuxStreams(int index) { return muxStreams_.get(index); } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param index The index of the value to return. * @return The bytes of the muxStreams at the given index. */ public com.google.protobuf.ByteString getMuxStreamsBytes(int index) { return muxStreams_.getByteString(index); } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param index The index to set the value at. * @param value The muxStreams to set. * @return This builder for chaining. */ public Builder setMuxStreams(int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureMuxStreamsIsMutable(); muxStreams_.set(index, value); bitField0_ |= 0x00000004; onChanged(); return this; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param value The muxStreams to add. * @return This builder for chaining. */ public Builder addMuxStreams(java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureMuxStreamsIsMutable(); muxStreams_.add(value); bitField0_ |= 0x00000004; onChanged(); return this; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param values The muxStreams to add. * @return This builder for chaining. */ public Builder addAllMuxStreams(java.lang.Iterable values) { ensureMuxStreamsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, muxStreams_); bitField0_ |= 0x00000004; onChanged(); return this; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @return This builder for chaining. */ public Builder clearMuxStreams() { muxStreams_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); ; onChanged(); return this; } /** * * *
     * Required. List of `MuxStream`
     * [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear
     * in this manifest.
     *
     * - For HLS, either `fmp4` or `ts` mux streams can be specified but not
     * mixed.
     * - For DASH, only `fmp4` mux streams can be specified.
     * 
* * repeated string mux_streams = 3 [(.google.api.field_behavior) = REQUIRED]; * * @param value The bytes of the muxStreams to add. * @return This builder for chaining. */ public Builder addMuxStreamsBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureMuxStreamsIsMutable(); muxStreams_.add(value); bitField0_ |= 0x00000004; onChanged(); return this; } private int maxSegmentCount_; /** * * *
     * Maximum number of segments that this manifest holds. Once the manifest
     * reaches this maximum number of segments, whenever a new segment is added to
     * the manifest, the oldest segment will be removed from the manifest.
     * The minimum value is 3 and the default value is 5.
     * 
* * int32 max_segment_count = 4; * * @return The maxSegmentCount. */ @java.lang.Override public int getMaxSegmentCount() { return maxSegmentCount_; } /** * * *
     * Maximum number of segments that this manifest holds. Once the manifest
     * reaches this maximum number of segments, whenever a new segment is added to
     * the manifest, the oldest segment will be removed from the manifest.
     * The minimum value is 3 and the default value is 5.
     * 
* * int32 max_segment_count = 4; * * @param value The maxSegmentCount to set. * @return This builder for chaining. */ public Builder setMaxSegmentCount(int value) { maxSegmentCount_ = value; bitField0_ |= 0x00000008; onChanged(); return this; } /** * * *
     * Maximum number of segments that this manifest holds. Once the manifest
     * reaches this maximum number of segments, whenever a new segment is added to
     * the manifest, the oldest segment will be removed from the manifest.
     * The minimum value is 3 and the default value is 5.
     * 
* * int32 max_segment_count = 4; * * @return This builder for chaining. */ public Builder clearMaxSegmentCount() { bitField0_ = (bitField0_ & ~0x00000008); maxSegmentCount_ = 0; onChanged(); return this; } private com.google.protobuf.Duration segmentKeepDuration_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> segmentKeepDurationBuilder_; /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; * * @return Whether the segmentKeepDuration field is set. */ public boolean hasSegmentKeepDuration() { return ((bitField0_ & 0x00000010) != 0); } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; * * @return The segmentKeepDuration. */ public com.google.protobuf.Duration getSegmentKeepDuration() { if (segmentKeepDurationBuilder_ == null) { return segmentKeepDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : segmentKeepDuration_; } else { return segmentKeepDurationBuilder_.getMessage(); } } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public Builder setSegmentKeepDuration(com.google.protobuf.Duration value) { if (segmentKeepDurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } segmentKeepDuration_ = value; } else { segmentKeepDurationBuilder_.setMessage(value); } bitField0_ |= 0x00000010; onChanged(); return this; } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public Builder setSegmentKeepDuration(com.google.protobuf.Duration.Builder builderForValue) { if (segmentKeepDurationBuilder_ == null) { segmentKeepDuration_ = builderForValue.build(); } else { segmentKeepDurationBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000010; onChanged(); return this; } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public Builder mergeSegmentKeepDuration(com.google.protobuf.Duration value) { if (segmentKeepDurationBuilder_ == null) { if (((bitField0_ & 0x00000010) != 0) && segmentKeepDuration_ != null && segmentKeepDuration_ != com.google.protobuf.Duration.getDefaultInstance()) { getSegmentKeepDurationBuilder().mergeFrom(value); } else { segmentKeepDuration_ = value; } } else { segmentKeepDurationBuilder_.mergeFrom(value); } if (segmentKeepDuration_ != null) { bitField0_ |= 0x00000010; onChanged(); } return this; } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public Builder clearSegmentKeepDuration() { bitField0_ = (bitField0_ & ~0x00000010); segmentKeepDuration_ = null; if (segmentKeepDurationBuilder_ != null) { segmentKeepDurationBuilder_.dispose(); segmentKeepDurationBuilder_ = null; } onChanged(); return this; } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public com.google.protobuf.Duration.Builder getSegmentKeepDurationBuilder() { bitField0_ |= 0x00000010; onChanged(); return getSegmentKeepDurationFieldBuilder().getBuilder(); } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ public com.google.protobuf.DurationOrBuilder getSegmentKeepDurationOrBuilder() { if (segmentKeepDurationBuilder_ != null) { return segmentKeepDurationBuilder_.getMessageOrBuilder(); } else { return segmentKeepDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : segmentKeepDuration_; } } /** * * *
     * How long to keep a segment on the output Google Cloud Storage bucket after
     * it is removed from the manifest. This field should be large enough to cover
     * the manifest propagation delay. Otherwise, a player could receive 404
     * errors while accessing segments which are listed in the manifest that the
     * player has, but were already deleted from the output Google Cloud Storage
     * bucket. Default value is `60s`.
     *
     * If both segment_keep_duration and
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * are set,
     * [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration]
     * is used and segment_keep_duration is ignored.
     * 
* * .google.protobuf.Duration segment_keep_duration = 5; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getSegmentKeepDurationFieldBuilder() { if (segmentKeepDurationBuilder_ == null) { segmentKeepDurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getSegmentKeepDuration(), getParentForChildren(), isClean()); segmentKeepDuration_ = null; } return segmentKeepDurationBuilder_; } private boolean useTimecodeAsTimeline_; /** * * *
     * Whether to use the timecode, as specified in timecode config, when setting:
     *
     * - `availabilityStartTime` attribute in DASH manifests.
     * - `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.
     *
     * If false, ignore the input timecode and use the time from system clock
     * when the manifest is first generated. This is the default behavior.
     * 
* * bool use_timecode_as_timeline = 6; * * @return The useTimecodeAsTimeline. */ @java.lang.Override public boolean getUseTimecodeAsTimeline() { return useTimecodeAsTimeline_; } /** * * *
     * Whether to use the timecode, as specified in timecode config, when setting:
     *
     * - `availabilityStartTime` attribute in DASH manifests.
     * - `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.
     *
     * If false, ignore the input timecode and use the time from system clock
     * when the manifest is first generated. This is the default behavior.
     * 
* * bool use_timecode_as_timeline = 6; * * @param value The useTimecodeAsTimeline to set. * @return This builder for chaining. */ public Builder setUseTimecodeAsTimeline(boolean value) { useTimecodeAsTimeline_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } /** * * *
     * Whether to use the timecode, as specified in timecode config, when setting:
     *
     * - `availabilityStartTime` attribute in DASH manifests.
     * - `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.
     *
     * If false, ignore the input timecode and use the time from system clock
     * when the manifest is first generated. This is the default behavior.
     * 
* * bool use_timecode_as_timeline = 6; * * @return This builder for chaining. */ public Builder clearUseTimecodeAsTimeline() { bitField0_ = (bitField0_ & ~0x00000020); useTimecodeAsTimeline_ = false; onChanged(); return this; } private java.lang.Object key_ = ""; /** * * *
     * Optional. A unique key for this manifest.
     * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The key. */ public java.lang.String getKey() { java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); key_ = s; return s; } else { return (java.lang.String) ref; } } /** * * *
     * Optional. A unique key for this manifest.
     * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return The bytes for key. */ public com.google.protobuf.ByteString getKeyBytes() { java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * * *
     * Optional. A unique key for this manifest.
     * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The key to set. * @return This builder for chaining. */ public Builder setKey(java.lang.String value) { if (value == null) { throw new NullPointerException(); } key_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } /** * * *
     * Optional. A unique key for this manifest.
     * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ public Builder clearKey() { key_ = getDefaultInstance().getKey(); bitField0_ = (bitField0_ & ~0x00000040); onChanged(); return this; } /** * * *
     * Optional. A unique key for this manifest.
     * 
* * string key = 7 [(.google.api.field_behavior) = OPTIONAL]; * * @param value The bytes for key to set. * @return This builder for chaining. */ public Builder setKeyBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); key_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:google.cloud.video.livestream.v1.Manifest) } // @@protoc_insertion_point(class_scope:google.cloud.video.livestream.v1.Manifest) private static final com.google.cloud.video.livestream.v1.Manifest DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new com.google.cloud.video.livestream.v1.Manifest(); } public static com.google.cloud.video.livestream.v1.Manifest getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Manifest parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public com.google.cloud.video.livestream.v1.Manifest getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy