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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/medialive/model/FrameCaptureSettings.h>
9 #include <aws/medialive/model/H264Settings.h>
10 #include <aws/medialive/model/H265Settings.h>
11 #include <aws/medialive/model/Mpeg2Settings.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace MediaLive
25 {
26 namespace Model
27 {
28 
29   /**
30    * Video Codec Settings<p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/VideoCodecSettings">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MEDIALIVE_API VideoCodecSettings
35   {
36   public:
37     VideoCodecSettings();
38     VideoCodecSettings(Aws::Utils::Json::JsonView jsonValue);
39     VideoCodecSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43 
GetFrameCaptureSettings()44     inline const FrameCaptureSettings& GetFrameCaptureSettings() const{ return m_frameCaptureSettings; }
45 
46 
FrameCaptureSettingsHasBeenSet()47     inline bool FrameCaptureSettingsHasBeenSet() const { return m_frameCaptureSettingsHasBeenSet; }
48 
49 
SetFrameCaptureSettings(const FrameCaptureSettings & value)50     inline void SetFrameCaptureSettings(const FrameCaptureSettings& value) { m_frameCaptureSettingsHasBeenSet = true; m_frameCaptureSettings = value; }
51 
52 
SetFrameCaptureSettings(FrameCaptureSettings && value)53     inline void SetFrameCaptureSettings(FrameCaptureSettings&& value) { m_frameCaptureSettingsHasBeenSet = true; m_frameCaptureSettings = std::move(value); }
54 
55 
WithFrameCaptureSettings(const FrameCaptureSettings & value)56     inline VideoCodecSettings& WithFrameCaptureSettings(const FrameCaptureSettings& value) { SetFrameCaptureSettings(value); return *this;}
57 
58 
WithFrameCaptureSettings(FrameCaptureSettings && value)59     inline VideoCodecSettings& WithFrameCaptureSettings(FrameCaptureSettings&& value) { SetFrameCaptureSettings(std::move(value)); return *this;}
60 
61 
62 
GetH264Settings()63     inline const H264Settings& GetH264Settings() const{ return m_h264Settings; }
64 
65 
H264SettingsHasBeenSet()66     inline bool H264SettingsHasBeenSet() const { return m_h264SettingsHasBeenSet; }
67 
68 
SetH264Settings(const H264Settings & value)69     inline void SetH264Settings(const H264Settings& value) { m_h264SettingsHasBeenSet = true; m_h264Settings = value; }
70 
71 
SetH264Settings(H264Settings && value)72     inline void SetH264Settings(H264Settings&& value) { m_h264SettingsHasBeenSet = true; m_h264Settings = std::move(value); }
73 
74 
WithH264Settings(const H264Settings & value)75     inline VideoCodecSettings& WithH264Settings(const H264Settings& value) { SetH264Settings(value); return *this;}
76 
77 
WithH264Settings(H264Settings && value)78     inline VideoCodecSettings& WithH264Settings(H264Settings&& value) { SetH264Settings(std::move(value)); return *this;}
79 
80 
81 
GetH265Settings()82     inline const H265Settings& GetH265Settings() const{ return m_h265Settings; }
83 
84 
H265SettingsHasBeenSet()85     inline bool H265SettingsHasBeenSet() const { return m_h265SettingsHasBeenSet; }
86 
87 
SetH265Settings(const H265Settings & value)88     inline void SetH265Settings(const H265Settings& value) { m_h265SettingsHasBeenSet = true; m_h265Settings = value; }
89 
90 
SetH265Settings(H265Settings && value)91     inline void SetH265Settings(H265Settings&& value) { m_h265SettingsHasBeenSet = true; m_h265Settings = std::move(value); }
92 
93 
WithH265Settings(const H265Settings & value)94     inline VideoCodecSettings& WithH265Settings(const H265Settings& value) { SetH265Settings(value); return *this;}
95 
96 
WithH265Settings(H265Settings && value)97     inline VideoCodecSettings& WithH265Settings(H265Settings&& value) { SetH265Settings(std::move(value)); return *this;}
98 
99 
100 
GetMpeg2Settings()101     inline const Mpeg2Settings& GetMpeg2Settings() const{ return m_mpeg2Settings; }
102 
103 
Mpeg2SettingsHasBeenSet()104     inline bool Mpeg2SettingsHasBeenSet() const { return m_mpeg2SettingsHasBeenSet; }
105 
106 
SetMpeg2Settings(const Mpeg2Settings & value)107     inline void SetMpeg2Settings(const Mpeg2Settings& value) { m_mpeg2SettingsHasBeenSet = true; m_mpeg2Settings = value; }
108 
109 
SetMpeg2Settings(Mpeg2Settings && value)110     inline void SetMpeg2Settings(Mpeg2Settings&& value) { m_mpeg2SettingsHasBeenSet = true; m_mpeg2Settings = std::move(value); }
111 
112 
WithMpeg2Settings(const Mpeg2Settings & value)113     inline VideoCodecSettings& WithMpeg2Settings(const Mpeg2Settings& value) { SetMpeg2Settings(value); return *this;}
114 
115 
WithMpeg2Settings(Mpeg2Settings && value)116     inline VideoCodecSettings& WithMpeg2Settings(Mpeg2Settings&& value) { SetMpeg2Settings(std::move(value)); return *this;}
117 
118   private:
119 
120     FrameCaptureSettings m_frameCaptureSettings;
121     bool m_frameCaptureSettingsHasBeenSet;
122 
123     H264Settings m_h264Settings;
124     bool m_h264SettingsHasBeenSet;
125 
126     H265Settings m_h265Settings;
127     bool m_h265SettingsHasBeenSet;
128 
129     Mpeg2Settings m_mpeg2Settings;
130     bool m_mpeg2SettingsHasBeenSet;
131   };
132 
133 } // namespace Model
134 } // namespace MediaLive
135 } // namespace Aws
136