diff --git a/app/build.gradle b/app/build.gradle index 7f762d7..3d405f2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 27 targetSdkVersion 31 versionCode 1 - versionName "1.14" + versionName "1.15" setProperty("archivesBaseName", applicationId + "-v" + versionName) } buildTypes { diff --git a/app/releases/com.facebook.encapp-v1.15-debug.apk b/app/releases/com.facebook.encapp-v1.15-debug.apk new file mode 100644 index 0000000..711b15e Binary files /dev/null and b/app/releases/com.facebook.encapp-v1.15-debug.apk differ diff --git a/app/src/main/java/com/facebook/encapp/Encoder.java b/app/src/main/java/com/facebook/encapp/Encoder.java index feef1bd..bf350e0 100644 --- a/app/src/main/java/com/facebook/encapp/Encoder.java +++ b/app/src/main/java/com/facebook/encapp/Encoder.java @@ -19,6 +19,7 @@ import com.facebook.encapp.proto.Configure; import com.facebook.encapp.proto.DataValueType; +import com.facebook.encapp.proto.Parameter; import com.facebook.encapp.proto.Runtime; import com.facebook.encapp.proto.Test; import com.facebook.encapp.utils.Assert; @@ -278,8 +279,8 @@ protected Test setCodecNameAndIdentifier(Test test) throws Exception { } protected void setConfigureParams(Test test, MediaFormat format) { - List params = test.getConfigure().getParameterList(); - for (Configure.Parameter param : params) { + List params = test.getConfigure().getParameterList(); + for (Parameter param : params) { switch (param.getType().getNumber()) { case DataValueType.stringType_VALUE: format.setString(param.getKey(), param.getValue()); @@ -345,7 +346,7 @@ public void setRuntimeParameters(int frame) { } } - for (Runtime.Parameter param : mRuntimeParams.getParameterList()) { + for (Parameter param : mRuntimeParams.getParameterList()) { if (param.getFramenum() == frame) { Log.d(TAG, "Set runtime parameter @ " + frame + " key: " + param.getKey() + ", " + param.getType() + ", " + param.getValue()); switch (param.getType().getNumber()) { diff --git a/app/src/main/java/com/facebook/encapp/SurfaceTranscoder.java b/app/src/main/java/com/facebook/encapp/SurfaceTranscoder.java index d4f9206..53c986c 100644 --- a/app/src/main/java/com/facebook/encapp/SurfaceTranscoder.java +++ b/app/src/main/java/com/facebook/encapp/SurfaceTranscoder.java @@ -17,6 +17,7 @@ import com.facebook.encapp.proto.DataValueType; import com.facebook.encapp.proto.DecoderRuntime; +import com.facebook.encapp.proto.Parameter; import com.facebook.encapp.proto.Test; import com.facebook.encapp.utils.FileReader; import com.facebook.encapp.utils.FrameInfo; @@ -309,7 +310,7 @@ public void setDecoderRuntimeParameters(Test mTest, int frame) { if (mDecoderRuntimeParams == null) return; Bundle bundle = new Bundle(); - for (DecoderRuntime.Parameter param : mDecoderRuntimeParams.getParameterList()) { + for (Parameter param : mDecoderRuntimeParams.getParameterList()) { if (param.getFramenum() == frame) { switch (param.getType().getNumber()) { case DataValueType.floatType_VALUE: diff --git a/app/src/main/java/com/facebook/encapp/utils/TestDefinitionHelper.java b/app/src/main/java/com/facebook/encapp/utils/TestDefinitionHelper.java index ebb998b..d48364e 100644 --- a/app/src/main/java/com/facebook/encapp/utils/TestDefinitionHelper.java +++ b/app/src/main/java/com/facebook/encapp/utils/TestDefinitionHelper.java @@ -9,6 +9,7 @@ import com.facebook.encapp.proto.DataValueType; import com.facebook.encapp.proto.DecoderConfigure; import com.facebook.encapp.proto.Input; +import com.facebook.encapp.proto.Parameter; import com.facebook.encapp.proto.PixFmt; import com.facebook.encapp.proto.Test; import com.facebook.encapp.utils.MediaCodecInfoHelper; @@ -85,7 +86,7 @@ public static MediaFormat buildMediaFormat(Test test) { } // set all the available values - for (Configure.Parameter param : config.getParameterList()) { + for (Parameter param : config.getParameterList()) { switch (param.getType().getNumber()) { case DataValueType.floatType_VALUE: float fval = Float.parseFloat(param.getValue()); @@ -222,9 +223,9 @@ public static Test updateBasicSettings(Test test) { public static void setDecoderConfigureParams(Test mTest, MediaFormat format) { DecoderConfigure config = mTest.getDecoderConfigure(); - List params = config.getParameterList(); + List params = config.getParameterList(); Log.d(TAG, "Set decoder config: " + params); - for (DecoderConfigure.Parameter param : params) { + for (Parameter param : params) { switch (param.getType().getNumber()) { case DataValueType.intType_VALUE: format.setInteger(param.getKey(), Integer.parseInt(param.getValue())); diff --git a/ios/Encapp/tests.pb.swift b/ios/Encapp/tests.pb.swift index a359c97..1b5cfbf 100644 --- a/ios/Encapp/tests.pb.swift +++ b/ios/Encapp/tests.pb.swift @@ -157,6 +157,58 @@ struct Common { fileprivate var _start: String? = nil } +struct Parameter { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String { + get {return _key ?? String()} + set {_key = newValue} + } + /// Returns true if `key` has been explicitly set. + var hasKey: Bool {return self._key != nil} + /// Clears the value of `key`. Subsequent reads from it will return its default value. + mutating func clearKey() {self._key = nil} + + var type: DataValueType { + get {return _type ?? .stringType} + set {_type = newValue} + } + /// Returns true if `type` has been explicitly set. + var hasType: Bool {return self._type != nil} + /// Clears the value of `type`. Subsequent reads from it will return its default value. + mutating func clearType() {self._type = nil} + + var value: String { + get {return _value ?? String()} + set {_value = newValue} + } + /// Returns true if `value` has been explicitly set. + var hasValue: Bool {return self._value != nil} + /// Clears the value of `value`. Subsequent reads from it will return its default value. + mutating func clearValue() {self._value = nil} + + /// For runtime purposes + var framenum: Int64 { + get {return _framenum ?? 0} + set {_framenum = newValue} + } + /// Returns true if `framenum` has been explicitly set. + var hasFramenum: Bool {return self._framenum != nil} + /// Clears the value of `framenum`. Subsequent reads from it will return its default value. + mutating func clearFramenum() {self._framenum = nil} + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _key: String? = nil + fileprivate var _type: DataValueType? = nil + fileprivate var _value: String? = nil + fileprivate var _framenum: Int64? = nil +} + struct Input { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for @@ -263,7 +315,7 @@ struct Configure { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var parameter: [Configure.Parameter] { + var parameter: [Parameter] { get {return _storage._parameter} set {_uniqueStorage()._parameter = newValue} } @@ -591,47 +643,6 @@ struct Configure { } - struct Parameter { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var key: String { - get {return _key ?? String()} - set {_key = newValue} - } - /// Returns true if `key` has been explicitly set. - var hasKey: Bool {return self._key != nil} - /// Clears the value of `key`. Subsequent reads from it will return its default value. - mutating func clearKey() {self._key = nil} - - var type: DataValueType { - get {return _type ?? .stringType} - set {_type = newValue} - } - /// Returns true if `type` has been explicitly set. - var hasType: Bool {return self._type != nil} - /// Clears the value of `type`. Subsequent reads from it will return its default value. - mutating func clearType() {self._type = nil} - - var value: String { - get {return _value ?? String()} - set {_value = newValue} - } - /// Returns true if `value` has been explicitly set. - var hasValue: Bool {return self._value != nil} - /// Clears the value of `value`. Subsequent reads from it will return its default value. - mutating func clearValue() {self._value = nil} - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} - - fileprivate var _key: String? = nil - fileprivate var _type: DataValueType? = nil - fileprivate var _value: String? = nil - } - init() {} fileprivate var _storage = _StorageClass.defaultInstance @@ -662,7 +673,7 @@ struct Runtime { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var parameter: [Runtime.Parameter] = [] + var parameter: [Parameter] = [] var videoBitrate: [Runtime.VideoBitrateParameter] = [] @@ -674,57 +685,6 @@ struct Runtime { var unknownFields = SwiftProtobuf.UnknownStorage() - struct Parameter { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var framenum: Int64 { - get {return _framenum ?? 0} - set {_framenum = newValue} - } - /// Returns true if `framenum` has been explicitly set. - var hasFramenum: Bool {return self._framenum != nil} - /// Clears the value of `framenum`. Subsequent reads from it will return its default value. - mutating func clearFramenum() {self._framenum = nil} - - var key: String { - get {return _key ?? String()} - set {_key = newValue} - } - /// Returns true if `key` has been explicitly set. - var hasKey: Bool {return self._key != nil} - /// Clears the value of `key`. Subsequent reads from it will return its default value. - mutating func clearKey() {self._key = nil} - - var type: DataValueType { - get {return _type ?? .stringType} - set {_type = newValue} - } - /// Returns true if `type` has been explicitly set. - var hasType: Bool {return self._type != nil} - /// Clears the value of `type`. Subsequent reads from it will return its default value. - mutating func clearType() {self._type = nil} - - var value: String { - get {return _value ?? String()} - set {_value = newValue} - } - /// Returns true if `value` has been explicitly set. - var hasValue: Bool {return self._value != nil} - /// Clears the value of `value`. Subsequent reads from it will return its default value. - mutating func clearValue() {self._value = nil} - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} - - fileprivate var _framenum: Int64? = nil - fileprivate var _key: String? = nil - fileprivate var _type: DataValueType? = nil - fileprivate var _value: String? = nil - } - /// known shortcuts struct VideoBitrateParameter { // SwiftProtobuf.Message conformance is added in an extension below. See the @@ -797,7 +757,7 @@ struct DecoderConfigure { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var parameter: [DecoderConfigure.Parameter] = [] + var parameter: [Parameter] = [] var codec: String { get {return _codec ?? String()} @@ -810,47 +770,6 @@ struct DecoderConfigure { var unknownFields = SwiftProtobuf.UnknownStorage() - struct Parameter { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var key: String { - get {return _key ?? String()} - set {_key = newValue} - } - /// Returns true if `key` has been explicitly set. - var hasKey: Bool {return self._key != nil} - /// Clears the value of `key`. Subsequent reads from it will return its default value. - mutating func clearKey() {self._key = nil} - - var type: DataValueType { - get {return _type ?? .stringType} - set {_type = newValue} - } - /// Returns true if `type` has been explicitly set. - var hasType: Bool {return self._type != nil} - /// Clears the value of `type`. Subsequent reads from it will return its default value. - mutating func clearType() {self._type = nil} - - var value: String { - get {return _value ?? String()} - set {_value = newValue} - } - /// Returns true if `value` has been explicitly set. - var hasValue: Bool {return self._value != nil} - /// Clears the value of `value`. Subsequent reads from it will return its default value. - mutating func clearValue() {self._value = nil} - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} - - fileprivate var _key: String? = nil - fileprivate var _type: DataValueType? = nil - fileprivate var _value: String? = nil - } - init() {} fileprivate var _codec: String? = nil @@ -861,61 +780,10 @@ struct DecoderRuntime { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var parameter: [DecoderRuntime.Parameter] = [] + var parameter: [Parameter] = [] var unknownFields = SwiftProtobuf.UnknownStorage() - struct Parameter { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var framenum: Int64 { - get {return _framenum ?? 0} - set {_framenum = newValue} - } - /// Returns true if `framenum` has been explicitly set. - var hasFramenum: Bool {return self._framenum != nil} - /// Clears the value of `framenum`. Subsequent reads from it will return its default value. - mutating func clearFramenum() {self._framenum = nil} - - var key: String { - get {return _key ?? String()} - set {_key = newValue} - } - /// Returns true if `key` has been explicitly set. - var hasKey: Bool {return self._key != nil} - /// Clears the value of `key`. Subsequent reads from it will return its default value. - mutating func clearKey() {self._key = nil} - - var type: DataValueType { - get {return _type ?? .stringType} - set {_type = newValue} - } - /// Returns true if `type` has been explicitly set. - var hasType: Bool {return self._type != nil} - /// Clears the value of `type`. Subsequent reads from it will return its default value. - mutating func clearType() {self._type = nil} - - var value: String { - get {return _value ?? String()} - set {_value = newValue} - } - /// Returns true if `value` has been explicitly set. - var hasValue: Bool {return self._value != nil} - /// Clears the value of `value`. Subsequent reads from it will return its default value. - mutating func clearValue() {self._value = nil} - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} - - fileprivate var _framenum: Int64? = nil - fileprivate var _key: String? = nil - fileprivate var _type: DataValueType? = nil - fileprivate var _value: String? = nil - } - init() {} } @@ -1035,21 +903,18 @@ struct TestSuite { extension DataValueType: @unchecked Sendable {} extension PixFmt: @unchecked Sendable {} extension Common: @unchecked Sendable {} +extension Parameter: @unchecked Sendable {} extension Input: @unchecked Sendable {} extension Configure: @unchecked Sendable {} extension Configure.BitrateMode: @unchecked Sendable {} extension Configure.ColorStandard: @unchecked Sendable {} extension Configure.ColorRange: @unchecked Sendable {} extension Configure.ColorTransfer: @unchecked Sendable {} -extension Configure.Parameter: @unchecked Sendable {} extension Runtime: @unchecked Sendable {} -extension Runtime.Parameter: @unchecked Sendable {} extension Runtime.VideoBitrateParameter: @unchecked Sendable {} extension Runtime.DynamicFramerateParameter: @unchecked Sendable {} extension DecoderConfigure: @unchecked Sendable {} -extension DecoderConfigure.Parameter: @unchecked Sendable {} extension DecoderRuntime: @unchecked Sendable {} -extension DecoderRuntime.Parameter: @unchecked Sendable {} extension Parallel: @unchecked Sendable {} extension Serial: @unchecked Sendable {} extension Test: @unchecked Sendable {} @@ -1132,6 +997,60 @@ extension Common: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBas } } +extension Parameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = "Parameter" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "type"), + 3: .same(proto: "value"), + 4: .same(proto: "framenum"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self._key) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self._type) }() + case 3: try { try decoder.decodeSingularStringField(value: &self._value) }() + case 4: try { try decoder.decodeSingularInt64Field(value: &self._framenum) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = self._key { + try visitor.visitSingularStringField(value: v, fieldNumber: 1) + } }() + try { if let v = self._type { + try visitor.visitSingularEnumField(value: v, fieldNumber: 2) + } }() + try { if let v = self._value { + try visitor.visitSingularStringField(value: v, fieldNumber: 3) + } }() + try { if let v = self._framenum { + try visitor.visitSingularInt64Field(value: v, fieldNumber: 4) + } }() + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Parameter, rhs: Parameter) -> Bool { + if lhs._key != rhs._key {return false} + if lhs._type != rhs._type {return false} + if lhs._value != rhs._value {return false} + if lhs._framenum != rhs._framenum {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + extension Input: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "Input" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ @@ -1245,7 +1164,7 @@ extension Configure: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation ] fileprivate class _StorageClass { - var _parameter: [Configure.Parameter] = [] + var _parameter: [Parameter] = [] var _codec: String? = nil var _encode: Bool? = nil var _surface: Bool? = nil @@ -1494,54 +1413,6 @@ extension Configure.ColorTransfer: SwiftProtobuf._ProtoNameProviding { ] } -extension Configure.Parameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = Configure.protoMessageName + ".Parameter" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "key"), - 2: .same(proto: "type"), - 3: .same(proto: "value"), - ] - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularStringField(value: &self._key) }() - case 2: try { try decoder.decodeSingularEnumField(value: &self._type) }() - case 3: try { try decoder.decodeSingularStringField(value: &self._value) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every if/case branch local when no optimizations - // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and - // https://github.com/apple/swift-protobuf/issues/1182 - try { if let v = self._key { - try visitor.visitSingularStringField(value: v, fieldNumber: 1) - } }() - try { if let v = self._type { - try visitor.visitSingularEnumField(value: v, fieldNumber: 2) - } }() - try { if let v = self._value { - try visitor.visitSingularStringField(value: v, fieldNumber: 3) - } }() - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: Configure.Parameter, rhs: Configure.Parameter) -> Bool { - if lhs._key != rhs._key {return false} - if lhs._type != rhs._type {return false} - if lhs._value != rhs._value {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension Runtime: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "Runtime" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ @@ -1598,60 +1469,6 @@ extension Runtime: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBa } } -extension Runtime.Parameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = Runtime.protoMessageName + ".Parameter" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "framenum"), - 2: .same(proto: "key"), - 3: .same(proto: "type"), - 4: .same(proto: "value"), - ] - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularInt64Field(value: &self._framenum) }() - case 2: try { try decoder.decodeSingularStringField(value: &self._key) }() - case 3: try { try decoder.decodeSingularEnumField(value: &self._type) }() - case 4: try { try decoder.decodeSingularStringField(value: &self._value) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every if/case branch local when no optimizations - // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and - // https://github.com/apple/swift-protobuf/issues/1182 - try { if let v = self._framenum { - try visitor.visitSingularInt64Field(value: v, fieldNumber: 1) - } }() - try { if let v = self._key { - try visitor.visitSingularStringField(value: v, fieldNumber: 2) - } }() - try { if let v = self._type { - try visitor.visitSingularEnumField(value: v, fieldNumber: 3) - } }() - try { if let v = self._value { - try visitor.visitSingularStringField(value: v, fieldNumber: 4) - } }() - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: Runtime.Parameter, rhs: Runtime.Parameter) -> Bool { - if lhs._framenum != rhs._framenum {return false} - if lhs._key != rhs._key {return false} - if lhs._type != rhs._type {return false} - if lhs._value != rhs._value {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension Runtime.VideoBitrateParameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = Runtime.protoMessageName + ".VideoBitrateParameter" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ @@ -1778,54 +1595,6 @@ extension DecoderConfigure: SwiftProtobuf.Message, SwiftProtobuf._MessageImpleme } } -extension DecoderConfigure.Parameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = DecoderConfigure.protoMessageName + ".Parameter" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "key"), - 2: .same(proto: "type"), - 3: .same(proto: "value"), - ] - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularStringField(value: &self._key) }() - case 2: try { try decoder.decodeSingularEnumField(value: &self._type) }() - case 3: try { try decoder.decodeSingularStringField(value: &self._value) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every if/case branch local when no optimizations - // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and - // https://github.com/apple/swift-protobuf/issues/1182 - try { if let v = self._key { - try visitor.visitSingularStringField(value: v, fieldNumber: 1) - } }() - try { if let v = self._type { - try visitor.visitSingularEnumField(value: v, fieldNumber: 2) - } }() - try { if let v = self._value { - try visitor.visitSingularStringField(value: v, fieldNumber: 3) - } }() - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: DecoderConfigure.Parameter, rhs: DecoderConfigure.Parameter) -> Bool { - if lhs._key != rhs._key {return false} - if lhs._type != rhs._type {return false} - if lhs._value != rhs._value {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension DecoderRuntime: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "DecoderRuntime" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ @@ -1858,60 +1627,6 @@ extension DecoderRuntime: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement } } -extension DecoderRuntime.Parameter: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = DecoderRuntime.protoMessageName + ".Parameter" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "framenum"), - 2: .same(proto: "key"), - 3: .same(proto: "type"), - 4: .same(proto: "value"), - ] - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularInt64Field(value: &self._framenum) }() - case 2: try { try decoder.decodeSingularStringField(value: &self._key) }() - case 3: try { try decoder.decodeSingularEnumField(value: &self._type) }() - case 4: try { try decoder.decodeSingularStringField(value: &self._value) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every if/case branch local when no optimizations - // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and - // https://github.com/apple/swift-protobuf/issues/1182 - try { if let v = self._framenum { - try visitor.visitSingularInt64Field(value: v, fieldNumber: 1) - } }() - try { if let v = self._key { - try visitor.visitSingularStringField(value: v, fieldNumber: 2) - } }() - try { if let v = self._type { - try visitor.visitSingularEnumField(value: v, fieldNumber: 3) - } }() - try { if let v = self._value { - try visitor.visitSingularStringField(value: v, fieldNumber: 4) - } }() - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: DecoderRuntime.Parameter, rhs: DecoderRuntime.Parameter) -> Bool { - if lhs._framenum != rhs._framenum {return false} - if lhs._key != rhs._key {return false} - if lhs._type != rhs._type {return false} - if lhs._value != rhs._value {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension Parallel: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "Parallel" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ diff --git a/proto/tests.proto b/proto/tests.proto index f0227ae..a8a5e50 100644 --- a/proto/tests.proto +++ b/proto/tests.proto @@ -27,6 +27,13 @@ enum PixFmt { p010le = 54; } +message Parameter { + optional string key = 1; + optional DataValueType type = 2; + optional string value = 3; + // For runtime purposes + optional int64 framenum = 4; +} message Input { optional string filepath = 1; optional string resolution = 2; @@ -40,11 +47,6 @@ message Input { } message Configure { - message Parameter { - optional string key = 1; - optional DataValueType type = 2; - optional string value = 3; - } repeated Parameter parameter = 1; // known shortcuts optional string codec = 2; @@ -95,12 +97,6 @@ message Configure { } message Runtime { - message Parameter { - optional int64 framenum = 1; - optional string key = 2; - optional DataValueType type = 3; - optional string value = 4; - } repeated Parameter parameter = 1; // known shortcuts message VideoBitrateParameter { @@ -119,22 +115,11 @@ message Runtime { } message DecoderConfigure { - message Parameter { - optional string key = 1; - optional DataValueType type = 2; - optional string value = 3; - } repeated Parameter parameter = 1; optional string codec = 2; } message DecoderRuntime { - message Parameter { - optional int64 framenum = 1; - optional string key = 2; - optional DataValueType type = 3; - optional string value = 4; - } repeated Parameter parameter = 1; } diff --git a/scripts/proto/tests_pb2.py b/scripts/proto/tests_pb2.py index bef4c77..f850ba8 100644 --- a/scripts/proto/tests_pb2.py +++ b/scripts/proto/tests_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btests.proto\"K\n\x06\x43ommon\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12\r\n\x05start\x18\x04 \x01(\t\"\xb9\x01\n\x05Input\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x12\n\nresolution\x18\x02 \x01(\t\x12\x18\n\x07pix_fmt\x18\x03 \x01(\x0e\x32\x07.PixFmt\x12\x11\n\tframerate\x18\x04 \x01(\x02\x12\x16\n\x0eplayout_frames\x18\x05 \x01(\x05\x12\x0f\n\x07pursuit\x18\x06 \x01(\x05\x12\x10\n\x08realtime\x18\x07 \x01(\x08\x12\x14\n\x0cstoptime_sec\x18\x08 \x01(\x02\x12\x0c\n\x04show\x18\t \x01(\x08\"\x9d\x07\n\tConfigure\x12\'\n\tparameter\x18\x01 \x03(\x0b\x32\x14.Configure.Parameter\x12\r\n\x05\x63odec\x18\x02 \x01(\t\x12\x0e\n\x06\x65ncode\x18\x03 \x01(\x08\x12\x0f\n\x07surface\x18\x04 \x01(\x08\x12\x0c\n\x04mime\x18\x05 \x01(\t\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\t\x12,\n\x0c\x62itrate_mode\x18\x07 \x01(\x0e\x32\x16.Configure.BitrateMode\x12\x12\n\ndurationUs\x18\x08 \x01(\x04\x12\x12\n\nresolution\x18\t \x01(\t\x12\x14\n\x0c\x63olor_format\x18\n \x01(\x05\x12\x30\n\x0e\x63olor_standard\x18\x0b \x01(\x0e\x32\x18.Configure.ColorStandard\x12*\n\x0b\x63olor_range\x18\x0c \x01(\x0e\x32\x15.Configure.ColorRange\x12\x30\n\x0e\x63olor_transfer\x18\r \x01(\x0e\x32\x18.Configure.ColorTransfer\x12\x1e\n\x16\x63olor_transfer_request\x18\x0e \x01(\t\x12\x11\n\tframerate\x18\x0f \x01(\x02\x12\x18\n\x10i_frame_interval\x18\x10 \x01(\x05\x12\x1c\n\x14intra_refresh_period\x18\x11 \x01(\x05\x12\x0f\n\x07latency\x18\x12 \x01(\x05\x12#\n\x1brepeat_previous_frame_after\x18\x13 \x01(\x03\x12\x11\n\tts_schema\x18\x14 \x01(\t\x12\x0f\n\x07quality\x18\x15 \x01(\x05\x12\x12\n\ncomplexity\x18\x16 \x01(\x05\x12\x1a\n\x0b\x64\x65\x63ode_dump\x18\x17 \x01(\x08:\x05\x66\x61lse\x1a\x45\n\tParameter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x04type\x18\x02 \x01(\x0e\x32\x0e.DataValueType\x12\r\n\x05value\x18\x03 \x01(\t\"3\n\x0b\x42itrateMode\x12\x06\n\x02\x63q\x10\x00\x12\x07\n\x03vbr\x10\x01\x12\x07\n\x03\x63\x62r\x10\x02\x12\n\n\x06\x63\x62r_fd\x10\x03\"E\n\rColorStandard\x12\r\n\tbt601_pal\x10\x02\x12\x0e\n\nbt601_ntsc\x10\x04\x12\t\n\x05\x62t709\x10\x01\x12\n\n\x06\x62t2020\x10\x06\"#\n\nColorRange\x12\x08\n\x04\x66ull\x10\x01\x12\x0b\n\x07limited\x10\x02\"?\n\rColorTransfer\x12\n\n\x06linear\x10\x01\x12\r\n\tsdr_video\x10\x03\x12\n\n\x06st2084\x10\x06\x12\x07\n\x03hlg\x10\x07\"\xa1\x03\n\x07Runtime\x12%\n\tparameter\x18\x01 \x03(\x0b\x32\x12.Runtime.Parameter\x12\x35\n\rvideo_bitrate\x18\x02 \x03(\x0b\x32\x1e.Runtime.VideoBitrateParameter\x12\x0c\n\x04\x64rop\x18\x03 \x03(\x03\x12=\n\x11\x64ynamic_framerate\x18\x04 \x03(\x0b\x32\".Runtime.DynamicFramerateParameter\x12\x14\n\x0crequest_sync\x18\x05 \x03(\x03\x1aW\n\tParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x1c\n\x04type\x18\x03 \x01(\x0e\x32\x0e.DataValueType\x12\r\n\x05value\x18\x04 \x01(\t\x1a:\n\x15VideoBitrateParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x0f\n\x07\x62itrate\x18\x02 \x01(\t\x1a@\n\x19\x44ynamicFramerateParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x11\n\tframerate\x18\x02 \x01(\x02\"\x98\x01\n\x10\x44\x65\x63oderConfigure\x12.\n\tparameter\x18\x01 \x03(\x0b\x32\x1b.DecoderConfigure.Parameter\x12\r\n\x05\x63odec\x18\x02 \x01(\t\x1a\x45\n\tParameter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x04type\x18\x02 \x01(\x0e\x32\x0e.DataValueType\x12\r\n\x05value\x18\x03 \x01(\t\"\x97\x01\n\x0e\x44\x65\x63oderRuntime\x12,\n\tparameter\x18\x01 \x03(\x0b\x32\x19.DecoderRuntime.Parameter\x1aW\n\tParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x1c\n\x04type\x18\x03 \x01(\x0e\x32\x0e.DataValueType\x12\r\n\x05value\x18\x04 \x01(\t\"\x1f\n\x08Parallel\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test\"\x1d\n\x06Serial\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test\"\xe5\x01\n\x04Test\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x15\n\x05input\x18\x02 \x01(\x0b\x32\x06.Input\x12\x1d\n\tconfigure\x18\x03 \x01(\x0b\x32\n.Configure\x12\x19\n\x07runtime\x18\x04 \x01(\x0b\x32\x08.Runtime\x12,\n\x11\x64\x65\x63oder_configure\x18\x05 \x01(\x0b\x32\x11.DecoderConfigure\x12(\n\x0f\x64\x65\x63oder_runtime\x18\x06 \x01(\x0b\x32\x0f.DecoderRuntime\x12\x1b\n\x08parallel\x18\x07 \x01(\x0b\x32\t.Parallel\" \n\tTestSuite\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test*I\n\rDataValueType\x12\x0e\n\nstringType\x10\x00\x12\x0b\n\x07intType\x10\x01\x12\r\n\tfloatType\x10\x02\x12\x0c\n\x08longType\x10\x03*L\n\x06PixFmt\x12\x0b\n\x07yuv420p\x10\x00\x12\x0b\n\x07yvu420p\x10\x01\x12\x08\n\x04nv12\x10\x02\x12\x08\n\x04nv21\x10\x03\x12\x08\n\x04rgba\x10\x04\x12\n\n\x06p010le\x10\x36\x42-\n\x19\x63om.facebook.encapp.protoB\x0eTestDefinitionP\x01') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btests.proto\"K\n\x06\x43ommon\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12\r\n\x05start\x18\x04 \x01(\t\"W\n\tParameter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x04type\x18\x02 \x01(\x0e\x32\x0e.DataValueType\x12\r\n\x05value\x18\x03 \x01(\t\x12\x10\n\x08\x66ramenum\x18\x04 \x01(\x03\"\xb9\x01\n\x05Input\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x12\n\nresolution\x18\x02 \x01(\t\x12\x18\n\x07pix_fmt\x18\x03 \x01(\x0e\x32\x07.PixFmt\x12\x11\n\tframerate\x18\x04 \x01(\x02\x12\x16\n\x0eplayout_frames\x18\x05 \x01(\x05\x12\x0f\n\x07pursuit\x18\x06 \x01(\x05\x12\x10\n\x08realtime\x18\x07 \x01(\x08\x12\x14\n\x0cstoptime_sec\x18\x08 \x01(\x02\x12\x0c\n\x04show\x18\t \x01(\x08\"\xcc\x06\n\tConfigure\x12\x1d\n\tparameter\x18\x01 \x03(\x0b\x32\n.Parameter\x12\r\n\x05\x63odec\x18\x02 \x01(\t\x12\x0e\n\x06\x65ncode\x18\x03 \x01(\x08\x12\x0f\n\x07surface\x18\x04 \x01(\x08\x12\x0c\n\x04mime\x18\x05 \x01(\t\x12\x0f\n\x07\x62itrate\x18\x06 \x01(\t\x12,\n\x0c\x62itrate_mode\x18\x07 \x01(\x0e\x32\x16.Configure.BitrateMode\x12\x12\n\ndurationUs\x18\x08 \x01(\x04\x12\x12\n\nresolution\x18\t \x01(\t\x12\x14\n\x0c\x63olor_format\x18\n \x01(\x05\x12\x30\n\x0e\x63olor_standard\x18\x0b \x01(\x0e\x32\x18.Configure.ColorStandard\x12*\n\x0b\x63olor_range\x18\x0c \x01(\x0e\x32\x15.Configure.ColorRange\x12\x30\n\x0e\x63olor_transfer\x18\r \x01(\x0e\x32\x18.Configure.ColorTransfer\x12\x1e\n\x16\x63olor_transfer_request\x18\x0e \x01(\t\x12\x11\n\tframerate\x18\x0f \x01(\x02\x12\x18\n\x10i_frame_interval\x18\x10 \x01(\x05\x12\x1c\n\x14intra_refresh_period\x18\x11 \x01(\x05\x12\x0f\n\x07latency\x18\x12 \x01(\x05\x12#\n\x1brepeat_previous_frame_after\x18\x13 \x01(\x03\x12\x11\n\tts_schema\x18\x14 \x01(\t\x12\x0f\n\x07quality\x18\x15 \x01(\x05\x12\x12\n\ncomplexity\x18\x16 \x01(\x05\x12\x1a\n\x0b\x64\x65\x63ode_dump\x18\x17 \x01(\x08:\x05\x66\x61lse\"3\n\x0b\x42itrateMode\x12\x06\n\x02\x63q\x10\x00\x12\x07\n\x03vbr\x10\x01\x12\x07\n\x03\x63\x62r\x10\x02\x12\n\n\x06\x63\x62r_fd\x10\x03\"E\n\rColorStandard\x12\r\n\tbt601_pal\x10\x02\x12\x0e\n\nbt601_ntsc\x10\x04\x12\t\n\x05\x62t709\x10\x01\x12\n\n\x06\x62t2020\x10\x06\"#\n\nColorRange\x12\x08\n\x04\x66ull\x10\x01\x12\x0b\n\x07limited\x10\x02\"?\n\rColorTransfer\x12\n\n\x06linear\x10\x01\x12\r\n\tsdr_video\x10\x03\x12\n\n\x06st2084\x10\x06\x12\x07\n\x03hlg\x10\x07\"\xc0\x02\n\x07Runtime\x12\x1d\n\tparameter\x18\x01 \x03(\x0b\x32\n.Parameter\x12\x35\n\rvideo_bitrate\x18\x02 \x03(\x0b\x32\x1e.Runtime.VideoBitrateParameter\x12\x0c\n\x04\x64rop\x18\x03 \x03(\x03\x12=\n\x11\x64ynamic_framerate\x18\x04 \x03(\x0b\x32\".Runtime.DynamicFramerateParameter\x12\x14\n\x0crequest_sync\x18\x05 \x03(\x03\x1a:\n\x15VideoBitrateParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x0f\n\x07\x62itrate\x18\x02 \x01(\t\x1a@\n\x19\x44ynamicFramerateParameter\x12\x10\n\x08\x66ramenum\x18\x01 \x01(\x03\x12\x11\n\tframerate\x18\x02 \x01(\x02\"@\n\x10\x44\x65\x63oderConfigure\x12\x1d\n\tparameter\x18\x01 \x03(\x0b\x32\n.Parameter\x12\r\n\x05\x63odec\x18\x02 \x01(\t\"/\n\x0e\x44\x65\x63oderRuntime\x12\x1d\n\tparameter\x18\x01 \x03(\x0b\x32\n.Parameter\"\x1f\n\x08Parallel\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test\"\x1d\n\x06Serial\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test\"\xe5\x01\n\x04Test\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x15\n\x05input\x18\x02 \x01(\x0b\x32\x06.Input\x12\x1d\n\tconfigure\x18\x03 \x01(\x0b\x32\n.Configure\x12\x19\n\x07runtime\x18\x04 \x01(\x0b\x32\x08.Runtime\x12,\n\x11\x64\x65\x63oder_configure\x18\x05 \x01(\x0b\x32\x11.DecoderConfigure\x12(\n\x0f\x64\x65\x63oder_runtime\x18\x06 \x01(\x0b\x32\x0f.DecoderRuntime\x12\x1b\n\x08parallel\x18\x07 \x01(\x0b\x32\t.Parallel\" \n\tTestSuite\x12\x13\n\x04test\x18\x01 \x03(\x0b\x32\x05.Test*I\n\rDataValueType\x12\x0e\n\nstringType\x10\x00\x12\x0b\n\x07intType\x10\x01\x12\r\n\tfloatType\x10\x02\x12\x0c\n\x08longType\x10\x03*L\n\x06PixFmt\x12\x0b\n\x07yuv420p\x10\x00\x12\x0b\n\x07yvu420p\x10\x01\x12\x08\n\x04nv12\x10\x02\x12\x08\n\x04nv21\x10\x03\x12\x08\n\x04rgba\x10\x04\x12\n\n\x06p010le\x10\x36\x42-\n\x19\x63om.facebook.encapp.protoB\x0eTestDefinitionP\x01') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -21,48 +21,42 @@ if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\031com.facebook.encapp.protoB\016TestDefinitionP\001' - _globals['_DATAVALUETYPE']._serialized_start=2267 - _globals['_DATAVALUETYPE']._serialized_end=2340 - _globals['_PIXFMT']._serialized_start=2342 - _globals['_PIXFMT']._serialized_end=2418 + _globals['_DATAVALUETYPE']._serialized_start=1984 + _globals['_DATAVALUETYPE']._serialized_end=2057 + _globals['_PIXFMT']._serialized_start=2059 + _globals['_PIXFMT']._serialized_end=2135 _globals['_COMMON']._serialized_start=15 _globals['_COMMON']._serialized_end=90 - _globals['_INPUT']._serialized_start=93 - _globals['_INPUT']._serialized_end=278 - _globals['_CONFIGURE']._serialized_start=281 - _globals['_CONFIGURE']._serialized_end=1206 - _globals['_CONFIGURE_PARAMETER']._serialized_start=911 - _globals['_CONFIGURE_PARAMETER']._serialized_end=980 - _globals['_CONFIGURE_BITRATEMODE']._serialized_start=982 - _globals['_CONFIGURE_BITRATEMODE']._serialized_end=1033 - _globals['_CONFIGURE_COLORSTANDARD']._serialized_start=1035 - _globals['_CONFIGURE_COLORSTANDARD']._serialized_end=1104 - _globals['_CONFIGURE_COLORRANGE']._serialized_start=1106 - _globals['_CONFIGURE_COLORRANGE']._serialized_end=1141 - _globals['_CONFIGURE_COLORTRANSFER']._serialized_start=1143 - _globals['_CONFIGURE_COLORTRANSFER']._serialized_end=1206 - _globals['_RUNTIME']._serialized_start=1209 - _globals['_RUNTIME']._serialized_end=1626 - _globals['_RUNTIME_PARAMETER']._serialized_start=1413 - _globals['_RUNTIME_PARAMETER']._serialized_end=1500 - _globals['_RUNTIME_VIDEOBITRATEPARAMETER']._serialized_start=1502 - _globals['_RUNTIME_VIDEOBITRATEPARAMETER']._serialized_end=1560 - _globals['_RUNTIME_DYNAMICFRAMERATEPARAMETER']._serialized_start=1562 - _globals['_RUNTIME_DYNAMICFRAMERATEPARAMETER']._serialized_end=1626 - _globals['_DECODERCONFIGURE']._serialized_start=1629 - _globals['_DECODERCONFIGURE']._serialized_end=1781 - _globals['_DECODERCONFIGURE_PARAMETER']._serialized_start=911 - _globals['_DECODERCONFIGURE_PARAMETER']._serialized_end=980 - _globals['_DECODERRUNTIME']._serialized_start=1784 - _globals['_DECODERRUNTIME']._serialized_end=1935 - _globals['_DECODERRUNTIME_PARAMETER']._serialized_start=1413 - _globals['_DECODERRUNTIME_PARAMETER']._serialized_end=1500 - _globals['_PARALLEL']._serialized_start=1937 - _globals['_PARALLEL']._serialized_end=1968 - _globals['_SERIAL']._serialized_start=1970 - _globals['_SERIAL']._serialized_end=1999 - _globals['_TEST']._serialized_start=2002 - _globals['_TEST']._serialized_end=2231 - _globals['_TESTSUITE']._serialized_start=2233 - _globals['_TESTSUITE']._serialized_end=2265 + _globals['_PARAMETER']._serialized_start=92 + _globals['_PARAMETER']._serialized_end=179 + _globals['_INPUT']._serialized_start=182 + _globals['_INPUT']._serialized_end=367 + _globals['_CONFIGURE']._serialized_start=370 + _globals['_CONFIGURE']._serialized_end=1214 + _globals['_CONFIGURE_BITRATEMODE']._serialized_start=990 + _globals['_CONFIGURE_BITRATEMODE']._serialized_end=1041 + _globals['_CONFIGURE_COLORSTANDARD']._serialized_start=1043 + _globals['_CONFIGURE_COLORSTANDARD']._serialized_end=1112 + _globals['_CONFIGURE_COLORRANGE']._serialized_start=1114 + _globals['_CONFIGURE_COLORRANGE']._serialized_end=1149 + _globals['_CONFIGURE_COLORTRANSFER']._serialized_start=1151 + _globals['_CONFIGURE_COLORTRANSFER']._serialized_end=1214 + _globals['_RUNTIME']._serialized_start=1217 + _globals['_RUNTIME']._serialized_end=1537 + _globals['_RUNTIME_VIDEOBITRATEPARAMETER']._serialized_start=1413 + _globals['_RUNTIME_VIDEOBITRATEPARAMETER']._serialized_end=1471 + _globals['_RUNTIME_DYNAMICFRAMERATEPARAMETER']._serialized_start=1473 + _globals['_RUNTIME_DYNAMICFRAMERATEPARAMETER']._serialized_end=1537 + _globals['_DECODERCONFIGURE']._serialized_start=1539 + _globals['_DECODERCONFIGURE']._serialized_end=1603 + _globals['_DECODERRUNTIME']._serialized_start=1605 + _globals['_DECODERRUNTIME']._serialized_end=1652 + _globals['_PARALLEL']._serialized_start=1654 + _globals['_PARALLEL']._serialized_end=1685 + _globals['_SERIAL']._serialized_start=1687 + _globals['_SERIAL']._serialized_end=1716 + _globals['_TEST']._serialized_start=1719 + _globals['_TEST']._serialized_end=1948 + _globals['_TESTSUITE']._serialized_start=1950 + _globals['_TESTSUITE']._serialized_end=1982 # @@protoc_insertion_point(module_scope)