1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/mediaconnect/MediaConnect_EXPORTS.h>
8 #include <aws/mediaconnect/model/EncoderProfile.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace MediaConnect
22 {
23 namespace Model
24 {
25 
26   /**
27    * A collection of parameters that determine how MediaConnect will convert the
28    * content. These fields only apply to outputs on flows that have a CDI
29    * source.<p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/EncodingParametersRequest">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MEDIACONNECT_API EncodingParametersRequest
34   {
35   public:
36     EncodingParametersRequest();
37     EncodingParametersRequest(Aws::Utils::Json::JsonView jsonValue);
38     EncodingParametersRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * A value that is used to calculate compression for an output. The bitrate of the
44      * output is calculated as follows: Output bitrate = (1 / compressionFactor) *
45      * (source bitrate) This property only applies to outputs that use the ST 2110 JPEG
46      * XS protocol, with a flow source that uses the CDI protocol. Valid values are
47      * floating point numbers in the range of 3.0 to 10.0, inclusive.
48      */
GetCompressionFactor()49     inline double GetCompressionFactor() const{ return m_compressionFactor; }
50 
51     /**
52      * A value that is used to calculate compression for an output. The bitrate of the
53      * output is calculated as follows: Output bitrate = (1 / compressionFactor) *
54      * (source bitrate) This property only applies to outputs that use the ST 2110 JPEG
55      * XS protocol, with a flow source that uses the CDI protocol. Valid values are
56      * floating point numbers in the range of 3.0 to 10.0, inclusive.
57      */
CompressionFactorHasBeenSet()58     inline bool CompressionFactorHasBeenSet() const { return m_compressionFactorHasBeenSet; }
59 
60     /**
61      * A value that is used to calculate compression for an output. The bitrate of the
62      * output is calculated as follows: Output bitrate = (1 / compressionFactor) *
63      * (source bitrate) This property only applies to outputs that use the ST 2110 JPEG
64      * XS protocol, with a flow source that uses the CDI protocol. Valid values are
65      * floating point numbers in the range of 3.0 to 10.0, inclusive.
66      */
SetCompressionFactor(double value)67     inline void SetCompressionFactor(double value) { m_compressionFactorHasBeenSet = true; m_compressionFactor = value; }
68 
69     /**
70      * A value that is used to calculate compression for an output. The bitrate of the
71      * output is calculated as follows: Output bitrate = (1 / compressionFactor) *
72      * (source bitrate) This property only applies to outputs that use the ST 2110 JPEG
73      * XS protocol, with a flow source that uses the CDI protocol. Valid values are
74      * floating point numbers in the range of 3.0 to 10.0, inclusive.
75      */
WithCompressionFactor(double value)76     inline EncodingParametersRequest& WithCompressionFactor(double value) { SetCompressionFactor(value); return *this;}
77 
78 
79     /**
80      * A setting on the encoder that drives compression settings. This property only
81      * applies to video media streams associated with outputs that use the ST 2110 JPEG
82      * XS protocol, if at least one source on the flow uses the CDI protocol.
83      */
GetEncoderProfile()84     inline const EncoderProfile& GetEncoderProfile() const{ return m_encoderProfile; }
85 
86     /**
87      * A setting on the encoder that drives compression settings. This property only
88      * applies to video media streams associated with outputs that use the ST 2110 JPEG
89      * XS protocol, if at least one source on the flow uses the CDI protocol.
90      */
EncoderProfileHasBeenSet()91     inline bool EncoderProfileHasBeenSet() const { return m_encoderProfileHasBeenSet; }
92 
93     /**
94      * A setting on the encoder that drives compression settings. This property only
95      * applies to video media streams associated with outputs that use the ST 2110 JPEG
96      * XS protocol, if at least one source on the flow uses the CDI protocol.
97      */
SetEncoderProfile(const EncoderProfile & value)98     inline void SetEncoderProfile(const EncoderProfile& value) { m_encoderProfileHasBeenSet = true; m_encoderProfile = value; }
99 
100     /**
101      * A setting on the encoder that drives compression settings. This property only
102      * applies to video media streams associated with outputs that use the ST 2110 JPEG
103      * XS protocol, if at least one source on the flow uses the CDI protocol.
104      */
SetEncoderProfile(EncoderProfile && value)105     inline void SetEncoderProfile(EncoderProfile&& value) { m_encoderProfileHasBeenSet = true; m_encoderProfile = std::move(value); }
106 
107     /**
108      * A setting on the encoder that drives compression settings. This property only
109      * applies to video media streams associated with outputs that use the ST 2110 JPEG
110      * XS protocol, if at least one source on the flow uses the CDI protocol.
111      */
WithEncoderProfile(const EncoderProfile & value)112     inline EncodingParametersRequest& WithEncoderProfile(const EncoderProfile& value) { SetEncoderProfile(value); return *this;}
113 
114     /**
115      * A setting on the encoder that drives compression settings. This property only
116      * applies to video media streams associated with outputs that use the ST 2110 JPEG
117      * XS protocol, if at least one source on the flow uses the CDI protocol.
118      */
WithEncoderProfile(EncoderProfile && value)119     inline EncodingParametersRequest& WithEncoderProfile(EncoderProfile&& value) { SetEncoderProfile(std::move(value)); return *this;}
120 
121   private:
122 
123     double m_compressionFactor;
124     bool m_compressionFactorHasBeenSet;
125 
126     EncoderProfile m_encoderProfile;
127     bool m_encoderProfileHasBeenSet;
128   };
129 
130 } // namespace Model
131 } // namespace MediaConnect
132 } // namespace Aws
133