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/mediaconvert/MediaConvert_EXPORTS.h> 8 #include <aws/mediaconvert/model/Vc3FramerateControl.h> 9 #include <aws/mediaconvert/model/Vc3FramerateConversionAlgorithm.h> 10 #include <aws/mediaconvert/model/Vc3InterlaceMode.h> 11 #include <aws/mediaconvert/model/Vc3ScanTypeConversionMode.h> 12 #include <aws/mediaconvert/model/Vc3SlowPal.h> 13 #include <aws/mediaconvert/model/Vc3Telecine.h> 14 #include <aws/mediaconvert/model/Vc3Class.h> 15 #include <utility> 16 17 namespace Aws 18 { 19 namespace Utils 20 { 21 namespace Json 22 { 23 class JsonValue; 24 class JsonView; 25 } // namespace Json 26 } // namespace Utils 27 namespace MediaConvert 28 { 29 namespace Model 30 { 31 32 /** 33 * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the 34 * value VC3<p><h3>See Also:</h3> <a 35 * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/Vc3Settings">AWS 36 * API Reference</a></p> 37 */ 38 class AWS_MEDIACONVERT_API Vc3Settings 39 { 40 public: 41 Vc3Settings(); 42 Vc3Settings(Aws::Utils::Json::JsonView jsonValue); 43 Vc3Settings& operator=(Aws::Utils::Json::JsonView jsonValue); 44 Aws::Utils::Json::JsonValue Jsonize() const; 45 46 47 /** 48 * If you are using the console, use the Framerate setting to specify the frame 49 * rate for this output. If you want to keep the same frame rate as the input 50 * video, choose Follow source. If you want to do frame rate conversion, choose a 51 * frame rate from the dropdown list or choose Custom. The framerates shown in the 52 * dropdown list are decimal approximations of fractions. If you choose Custom, 53 * specify your frame rate as a fraction. If you are creating your transcoding job 54 * specification as a JSON file without the console, use FramerateControl to 55 * specify which value the service uses for the frame rate for this output. Choose 56 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 57 * input. Choose SPECIFIED if you want the service to use the frame rate you 58 * specify in the settings FramerateNumerator and FramerateDenominator. 59 */ GetFramerateControl()60 inline const Vc3FramerateControl& GetFramerateControl() const{ return m_framerateControl; } 61 62 /** 63 * If you are using the console, use the Framerate setting to specify the frame 64 * rate for this output. If you want to keep the same frame rate as the input 65 * video, choose Follow source. If you want to do frame rate conversion, choose a 66 * frame rate from the dropdown list or choose Custom. The framerates shown in the 67 * dropdown list are decimal approximations of fractions. If you choose Custom, 68 * specify your frame rate as a fraction. If you are creating your transcoding job 69 * specification as a JSON file without the console, use FramerateControl to 70 * specify which value the service uses for the frame rate for this output. Choose 71 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 72 * input. Choose SPECIFIED if you want the service to use the frame rate you 73 * specify in the settings FramerateNumerator and FramerateDenominator. 74 */ FramerateControlHasBeenSet()75 inline bool FramerateControlHasBeenSet() const { return m_framerateControlHasBeenSet; } 76 77 /** 78 * If you are using the console, use the Framerate setting to specify the frame 79 * rate for this output. If you want to keep the same frame rate as the input 80 * video, choose Follow source. If you want to do frame rate conversion, choose a 81 * frame rate from the dropdown list or choose Custom. The framerates shown in the 82 * dropdown list are decimal approximations of fractions. If you choose Custom, 83 * specify your frame rate as a fraction. If you are creating your transcoding job 84 * specification as a JSON file without the console, use FramerateControl to 85 * specify which value the service uses for the frame rate for this output. Choose 86 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 87 * input. Choose SPECIFIED if you want the service to use the frame rate you 88 * specify in the settings FramerateNumerator and FramerateDenominator. 89 */ SetFramerateControl(const Vc3FramerateControl & value)90 inline void SetFramerateControl(const Vc3FramerateControl& value) { m_framerateControlHasBeenSet = true; m_framerateControl = value; } 91 92 /** 93 * If you are using the console, use the Framerate setting to specify the frame 94 * rate for this output. If you want to keep the same frame rate as the input 95 * video, choose Follow source. If you want to do frame rate conversion, choose a 96 * frame rate from the dropdown list or choose Custom. The framerates shown in the 97 * dropdown list are decimal approximations of fractions. If you choose Custom, 98 * specify your frame rate as a fraction. If you are creating your transcoding job 99 * specification as a JSON file without the console, use FramerateControl to 100 * specify which value the service uses for the frame rate for this output. Choose 101 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 102 * input. Choose SPECIFIED if you want the service to use the frame rate you 103 * specify in the settings FramerateNumerator and FramerateDenominator. 104 */ SetFramerateControl(Vc3FramerateControl && value)105 inline void SetFramerateControl(Vc3FramerateControl&& value) { m_framerateControlHasBeenSet = true; m_framerateControl = std::move(value); } 106 107 /** 108 * If you are using the console, use the Framerate setting to specify the frame 109 * rate for this output. If you want to keep the same frame rate as the input 110 * video, choose Follow source. If you want to do frame rate conversion, choose a 111 * frame rate from the dropdown list or choose Custom. The framerates shown in the 112 * dropdown list are decimal approximations of fractions. If you choose Custom, 113 * specify your frame rate as a fraction. If you are creating your transcoding job 114 * specification as a JSON file without the console, use FramerateControl to 115 * specify which value the service uses for the frame rate for this output. Choose 116 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 117 * input. Choose SPECIFIED if you want the service to use the frame rate you 118 * specify in the settings FramerateNumerator and FramerateDenominator. 119 */ WithFramerateControl(const Vc3FramerateControl & value)120 inline Vc3Settings& WithFramerateControl(const Vc3FramerateControl& value) { SetFramerateControl(value); return *this;} 121 122 /** 123 * If you are using the console, use the Framerate setting to specify the frame 124 * rate for this output. If you want to keep the same frame rate as the input 125 * video, choose Follow source. If you want to do frame rate conversion, choose a 126 * frame rate from the dropdown list or choose Custom. The framerates shown in the 127 * dropdown list are decimal approximations of fractions. If you choose Custom, 128 * specify your frame rate as a fraction. If you are creating your transcoding job 129 * specification as a JSON file without the console, use FramerateControl to 130 * specify which value the service uses for the frame rate for this output. Choose 131 * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the 132 * input. Choose SPECIFIED if you want the service to use the frame rate you 133 * specify in the settings FramerateNumerator and FramerateDenominator. 134 */ WithFramerateControl(Vc3FramerateControl && value)135 inline Vc3Settings& WithFramerateControl(Vc3FramerateControl&& value) { SetFramerateControl(std::move(value)); return *this;} 136 137 138 /** 139 * Choose the method that you want MediaConvert to use when increasing or 140 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 141 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 142 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 143 * This results in a smooth picture, but might introduce undesirable video 144 * artifacts. For complex frame rate conversions, especially if your source video 145 * has already been converted from its original cadence, use FrameFormer 146 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 147 * best conversion method frame by frame. Note that using FrameFormer increases the 148 * transcoding time and incurs a significant add-on cost. 149 */ GetFramerateConversionAlgorithm()150 inline const Vc3FramerateConversionAlgorithm& GetFramerateConversionAlgorithm() const{ return m_framerateConversionAlgorithm; } 151 152 /** 153 * Choose the method that you want MediaConvert to use when increasing or 154 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 155 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 156 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 157 * This results in a smooth picture, but might introduce undesirable video 158 * artifacts. For complex frame rate conversions, especially if your source video 159 * has already been converted from its original cadence, use FrameFormer 160 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 161 * best conversion method frame by frame. Note that using FrameFormer increases the 162 * transcoding time and incurs a significant add-on cost. 163 */ FramerateConversionAlgorithmHasBeenSet()164 inline bool FramerateConversionAlgorithmHasBeenSet() const { return m_framerateConversionAlgorithmHasBeenSet; } 165 166 /** 167 * Choose the method that you want MediaConvert to use when increasing or 168 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 169 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 170 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 171 * This results in a smooth picture, but might introduce undesirable video 172 * artifacts. For complex frame rate conversions, especially if your source video 173 * has already been converted from its original cadence, use FrameFormer 174 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 175 * best conversion method frame by frame. Note that using FrameFormer increases the 176 * transcoding time and incurs a significant add-on cost. 177 */ SetFramerateConversionAlgorithm(const Vc3FramerateConversionAlgorithm & value)178 inline void SetFramerateConversionAlgorithm(const Vc3FramerateConversionAlgorithm& value) { m_framerateConversionAlgorithmHasBeenSet = true; m_framerateConversionAlgorithm = value; } 179 180 /** 181 * Choose the method that you want MediaConvert to use when increasing or 182 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 183 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 184 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 185 * This results in a smooth picture, but might introduce undesirable video 186 * artifacts. For complex frame rate conversions, especially if your source video 187 * has already been converted from its original cadence, use FrameFormer 188 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 189 * best conversion method frame by frame. Note that using FrameFormer increases the 190 * transcoding time and incurs a significant add-on cost. 191 */ SetFramerateConversionAlgorithm(Vc3FramerateConversionAlgorithm && value)192 inline void SetFramerateConversionAlgorithm(Vc3FramerateConversionAlgorithm&& value) { m_framerateConversionAlgorithmHasBeenSet = true; m_framerateConversionAlgorithm = std::move(value); } 193 194 /** 195 * Choose the method that you want MediaConvert to use when increasing or 196 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 197 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 198 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 199 * This results in a smooth picture, but might introduce undesirable video 200 * artifacts. For complex frame rate conversions, especially if your source video 201 * has already been converted from its original cadence, use FrameFormer 202 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 203 * best conversion method frame by frame. Note that using FrameFormer increases the 204 * transcoding time and incurs a significant add-on cost. 205 */ WithFramerateConversionAlgorithm(const Vc3FramerateConversionAlgorithm & value)206 inline Vc3Settings& WithFramerateConversionAlgorithm(const Vc3FramerateConversionAlgorithm& value) { SetFramerateConversionAlgorithm(value); return *this;} 207 208 /** 209 * Choose the method that you want MediaConvert to use when increasing or 210 * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP) 211 * for numerically simple conversions, such as 60 fps to 30 fps. For numerically 212 * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter. 213 * This results in a smooth picture, but might introduce undesirable video 214 * artifacts. For complex frame rate conversions, especially if your source video 215 * has already been converted from its original cadence, use FrameFormer 216 * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the 217 * best conversion method frame by frame. Note that using FrameFormer increases the 218 * transcoding time and incurs a significant add-on cost. 219 */ WithFramerateConversionAlgorithm(Vc3FramerateConversionAlgorithm && value)220 inline Vc3Settings& WithFramerateConversionAlgorithm(Vc3FramerateConversionAlgorithm&& value) { SetFramerateConversionAlgorithm(std::move(value)); return *this;} 221 222 223 /** 224 * When you use the API for transcode jobs that use frame rate conversion, specify 225 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 226 * FramerateDenominator to specify the denominator of this fraction. In this 227 * example, use 1001 for the value of FramerateDenominator. When you use the 228 * console for transcode jobs that use frame rate conversion, provide the value as 229 * a decimal number for Framerate. In this example, specify 23.976. 230 */ GetFramerateDenominator()231 inline int GetFramerateDenominator() const{ return m_framerateDenominator; } 232 233 /** 234 * When you use the API for transcode jobs that use frame rate conversion, specify 235 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 236 * FramerateDenominator to specify the denominator of this fraction. In this 237 * example, use 1001 for the value of FramerateDenominator. When you use the 238 * console for transcode jobs that use frame rate conversion, provide the value as 239 * a decimal number for Framerate. In this example, specify 23.976. 240 */ FramerateDenominatorHasBeenSet()241 inline bool FramerateDenominatorHasBeenSet() const { return m_framerateDenominatorHasBeenSet; } 242 243 /** 244 * When you use the API for transcode jobs that use frame rate conversion, specify 245 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 246 * FramerateDenominator to specify the denominator of this fraction. In this 247 * example, use 1001 for the value of FramerateDenominator. When you use the 248 * console for transcode jobs that use frame rate conversion, provide the value as 249 * a decimal number for Framerate. In this example, specify 23.976. 250 */ SetFramerateDenominator(int value)251 inline void SetFramerateDenominator(int value) { m_framerateDenominatorHasBeenSet = true; m_framerateDenominator = value; } 252 253 /** 254 * When you use the API for transcode jobs that use frame rate conversion, specify 255 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 256 * FramerateDenominator to specify the denominator of this fraction. In this 257 * example, use 1001 for the value of FramerateDenominator. When you use the 258 * console for transcode jobs that use frame rate conversion, provide the value as 259 * a decimal number for Framerate. In this example, specify 23.976. 260 */ WithFramerateDenominator(int value)261 inline Vc3Settings& WithFramerateDenominator(int value) { SetFramerateDenominator(value); return *this;} 262 263 264 /** 265 * When you use the API for transcode jobs that use frame rate conversion, specify 266 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 267 * FramerateNumerator to specify the numerator of this fraction. In this example, 268 * use 24000 for the value of FramerateNumerator. When you use the console for 269 * transcode jobs that use frame rate conversion, provide the value as a decimal 270 * number for Framerate. In this example, specify 23.976. 271 */ GetFramerateNumerator()272 inline int GetFramerateNumerator() const{ return m_framerateNumerator; } 273 274 /** 275 * When you use the API for transcode jobs that use frame rate conversion, specify 276 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 277 * FramerateNumerator to specify the numerator of this fraction. In this example, 278 * use 24000 for the value of FramerateNumerator. When you use the console for 279 * transcode jobs that use frame rate conversion, provide the value as a decimal 280 * number for Framerate. In this example, specify 23.976. 281 */ FramerateNumeratorHasBeenSet()282 inline bool FramerateNumeratorHasBeenSet() const { return m_framerateNumeratorHasBeenSet; } 283 284 /** 285 * When you use the API for transcode jobs that use frame rate conversion, specify 286 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 287 * FramerateNumerator to specify the numerator of this fraction. In this example, 288 * use 24000 for the value of FramerateNumerator. When you use the console for 289 * transcode jobs that use frame rate conversion, provide the value as a decimal 290 * number for Framerate. In this example, specify 23.976. 291 */ SetFramerateNumerator(int value)292 inline void SetFramerateNumerator(int value) { m_framerateNumeratorHasBeenSet = true; m_framerateNumerator = value; } 293 294 /** 295 * When you use the API for transcode jobs that use frame rate conversion, specify 296 * the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use 297 * FramerateNumerator to specify the numerator of this fraction. In this example, 298 * use 24000 for the value of FramerateNumerator. When you use the console for 299 * transcode jobs that use frame rate conversion, provide the value as a decimal 300 * number for Framerate. In this example, specify 23.976. 301 */ WithFramerateNumerator(int value)302 inline Vc3Settings& WithFramerateNumerator(int value) { SetFramerateNumerator(value); return *this;} 303 304 305 /** 306 * Optional. Choose the scan line type for this output. If you don't specify a 307 * value, MediaConvert will create a progressive output. 308 */ GetInterlaceMode()309 inline const Vc3InterlaceMode& GetInterlaceMode() const{ return m_interlaceMode; } 310 311 /** 312 * Optional. Choose the scan line type for this output. If you don't specify a 313 * value, MediaConvert will create a progressive output. 314 */ InterlaceModeHasBeenSet()315 inline bool InterlaceModeHasBeenSet() const { return m_interlaceModeHasBeenSet; } 316 317 /** 318 * Optional. Choose the scan line type for this output. If you don't specify a 319 * value, MediaConvert will create a progressive output. 320 */ SetInterlaceMode(const Vc3InterlaceMode & value)321 inline void SetInterlaceMode(const Vc3InterlaceMode& value) { m_interlaceModeHasBeenSet = true; m_interlaceMode = value; } 322 323 /** 324 * Optional. Choose the scan line type for this output. If you don't specify a 325 * value, MediaConvert will create a progressive output. 326 */ SetInterlaceMode(Vc3InterlaceMode && value)327 inline void SetInterlaceMode(Vc3InterlaceMode&& value) { m_interlaceModeHasBeenSet = true; m_interlaceMode = std::move(value); } 328 329 /** 330 * Optional. Choose the scan line type for this output. If you don't specify a 331 * value, MediaConvert will create a progressive output. 332 */ WithInterlaceMode(const Vc3InterlaceMode & value)333 inline Vc3Settings& WithInterlaceMode(const Vc3InterlaceMode& value) { SetInterlaceMode(value); return *this;} 334 335 /** 336 * Optional. Choose the scan line type for this output. If you don't specify a 337 * value, MediaConvert will create a progressive output. 338 */ WithInterlaceMode(Vc3InterlaceMode && value)339 inline Vc3Settings& WithInterlaceMode(Vc3InterlaceMode&& value) { SetInterlaceMode(std::move(value)); return *this;} 340 341 342 /** 343 * Use this setting for interlaced outputs, when your output frame rate is half of 344 * your input frame rate. In this situation, choose Optimized interlacing 345 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 346 * case, each progressive frame from the input corresponds to an interlaced field 347 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 348 * other output frame rates. With basic interlacing, MediaConvert performs any 349 * frame rate conversion first and then interlaces the frames. When you choose 350 * Optimized interlacing and you set your output frame rate to a value that isn't 351 * suitable for optimized interlacing, MediaConvert automatically falls back to 352 * basic interlacing. Required settings: To use optimized interlacing, you must set 353 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 354 * interlacing for hard telecine outputs. You must also set Interlace mode 355 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 356 */ GetScanTypeConversionMode()357 inline const Vc3ScanTypeConversionMode& GetScanTypeConversionMode() const{ return m_scanTypeConversionMode; } 358 359 /** 360 * Use this setting for interlaced outputs, when your output frame rate is half of 361 * your input frame rate. In this situation, choose Optimized interlacing 362 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 363 * case, each progressive frame from the input corresponds to an interlaced field 364 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 365 * other output frame rates. With basic interlacing, MediaConvert performs any 366 * frame rate conversion first and then interlaces the frames. When you choose 367 * Optimized interlacing and you set your output frame rate to a value that isn't 368 * suitable for optimized interlacing, MediaConvert automatically falls back to 369 * basic interlacing. Required settings: To use optimized interlacing, you must set 370 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 371 * interlacing for hard telecine outputs. You must also set Interlace mode 372 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 373 */ ScanTypeConversionModeHasBeenSet()374 inline bool ScanTypeConversionModeHasBeenSet() const { return m_scanTypeConversionModeHasBeenSet; } 375 376 /** 377 * Use this setting for interlaced outputs, when your output frame rate is half of 378 * your input frame rate. In this situation, choose Optimized interlacing 379 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 380 * case, each progressive frame from the input corresponds to an interlaced field 381 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 382 * other output frame rates. With basic interlacing, MediaConvert performs any 383 * frame rate conversion first and then interlaces the frames. When you choose 384 * Optimized interlacing and you set your output frame rate to a value that isn't 385 * suitable for optimized interlacing, MediaConvert automatically falls back to 386 * basic interlacing. Required settings: To use optimized interlacing, you must set 387 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 388 * interlacing for hard telecine outputs. You must also set Interlace mode 389 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 390 */ SetScanTypeConversionMode(const Vc3ScanTypeConversionMode & value)391 inline void SetScanTypeConversionMode(const Vc3ScanTypeConversionMode& value) { m_scanTypeConversionModeHasBeenSet = true; m_scanTypeConversionMode = value; } 392 393 /** 394 * Use this setting for interlaced outputs, when your output frame rate is half of 395 * your input frame rate. In this situation, choose Optimized interlacing 396 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 397 * case, each progressive frame from the input corresponds to an interlaced field 398 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 399 * other output frame rates. With basic interlacing, MediaConvert performs any 400 * frame rate conversion first and then interlaces the frames. When you choose 401 * Optimized interlacing and you set your output frame rate to a value that isn't 402 * suitable for optimized interlacing, MediaConvert automatically falls back to 403 * basic interlacing. Required settings: To use optimized interlacing, you must set 404 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 405 * interlacing for hard telecine outputs. You must also set Interlace mode 406 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 407 */ SetScanTypeConversionMode(Vc3ScanTypeConversionMode && value)408 inline void SetScanTypeConversionMode(Vc3ScanTypeConversionMode&& value) { m_scanTypeConversionModeHasBeenSet = true; m_scanTypeConversionMode = std::move(value); } 409 410 /** 411 * Use this setting for interlaced outputs, when your output frame rate is half of 412 * your input frame rate. In this situation, choose Optimized interlacing 413 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 414 * case, each progressive frame from the input corresponds to an interlaced field 415 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 416 * other output frame rates. With basic interlacing, MediaConvert performs any 417 * frame rate conversion first and then interlaces the frames. When you choose 418 * Optimized interlacing and you set your output frame rate to a value that isn't 419 * suitable for optimized interlacing, MediaConvert automatically falls back to 420 * basic interlacing. Required settings: To use optimized interlacing, you must set 421 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 422 * interlacing for hard telecine outputs. You must also set Interlace mode 423 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 424 */ WithScanTypeConversionMode(const Vc3ScanTypeConversionMode & value)425 inline Vc3Settings& WithScanTypeConversionMode(const Vc3ScanTypeConversionMode& value) { SetScanTypeConversionMode(value); return *this;} 426 427 /** 428 * Use this setting for interlaced outputs, when your output frame rate is half of 429 * your input frame rate. In this situation, choose Optimized interlacing 430 * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this 431 * case, each progressive frame from the input corresponds to an interlaced field 432 * in the output. Keep the default value, Basic interlacing (INTERLACED), for all 433 * other output frame rates. With basic interlacing, MediaConvert performs any 434 * frame rate conversion first and then interlaces the frames. When you choose 435 * Optimized interlacing and you set your output frame rate to a value that isn't 436 * suitable for optimized interlacing, MediaConvert automatically falls back to 437 * basic interlacing. Required settings: To use optimized interlacing, you must set 438 * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized 439 * interlacing for hard telecine outputs. You must also set Interlace mode 440 * (interlaceMode) to a value other than Progressive (PROGRESSIVE). 441 */ WithScanTypeConversionMode(Vc3ScanTypeConversionMode && value)442 inline Vc3Settings& WithScanTypeConversionMode(Vc3ScanTypeConversionMode&& value) { SetScanTypeConversionMode(std::move(value)); return *this;} 443 444 445 /** 446 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 447 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 448 * frames and resampling your audio. Note that enabling this setting will slightly 449 * reduce the duration of your video. Related settings: You must also set Framerate 450 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 451 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 452 */ GetSlowPal()453 inline const Vc3SlowPal& GetSlowPal() const{ return m_slowPal; } 454 455 /** 456 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 457 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 458 * frames and resampling your audio. Note that enabling this setting will slightly 459 * reduce the duration of your video. Related settings: You must also set Framerate 460 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 461 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 462 */ SlowPalHasBeenSet()463 inline bool SlowPalHasBeenSet() const { return m_slowPalHasBeenSet; } 464 465 /** 466 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 467 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 468 * frames and resampling your audio. Note that enabling this setting will slightly 469 * reduce the duration of your video. Related settings: You must also set Framerate 470 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 471 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 472 */ SetSlowPal(const Vc3SlowPal & value)473 inline void SetSlowPal(const Vc3SlowPal& value) { m_slowPalHasBeenSet = true; m_slowPal = value; } 474 475 /** 476 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 477 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 478 * frames and resampling your audio. Note that enabling this setting will slightly 479 * reduce the duration of your video. Related settings: You must also set Framerate 480 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 481 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 482 */ SetSlowPal(Vc3SlowPal && value)483 inline void SetSlowPal(Vc3SlowPal&& value) { m_slowPalHasBeenSet = true; m_slowPal = std::move(value); } 484 485 /** 486 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 487 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 488 * frames and resampling your audio. Note that enabling this setting will slightly 489 * reduce the duration of your video. Related settings: You must also set Framerate 490 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 491 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 492 */ WithSlowPal(const Vc3SlowPal & value)493 inline Vc3Settings& WithSlowPal(const Vc3SlowPal& value) { SetSlowPal(value); return *this;} 494 495 /** 496 * Ignore this setting unless your input frame rate is 23.976 or 24 frames per 497 * second (fps). Enable slow PAL to create a 25 fps output by relabeling the video 498 * frames and resampling your audio. Note that enabling this setting will slightly 499 * reduce the duration of your video. Related settings: You must also set Framerate 500 * to 25. In your JSON job specification, set (framerateControl) to (SPECIFIED), 501 * (framerateNumerator) to 25 and (framerateDenominator) to 1. 502 */ WithSlowPal(Vc3SlowPal && value)503 inline Vc3Settings& WithSlowPal(Vc3SlowPal&& value) { SetSlowPal(std::move(value)); return *this;} 504 505 506 /** 507 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 508 * fps, and your output scan type is interlaced, you can optionally enable hard 509 * telecine (HARD) to create a smoother picture. When you keep the default value, 510 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 511 * doing anything with the field polarity to create a smoother picture. 512 */ GetTelecine()513 inline const Vc3Telecine& GetTelecine() const{ return m_telecine; } 514 515 /** 516 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 517 * fps, and your output scan type is interlaced, you can optionally enable hard 518 * telecine (HARD) to create a smoother picture. When you keep the default value, 519 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 520 * doing anything with the field polarity to create a smoother picture. 521 */ TelecineHasBeenSet()522 inline bool TelecineHasBeenSet() const { return m_telecineHasBeenSet; } 523 524 /** 525 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 526 * fps, and your output scan type is interlaced, you can optionally enable hard 527 * telecine (HARD) to create a smoother picture. When you keep the default value, 528 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 529 * doing anything with the field polarity to create a smoother picture. 530 */ SetTelecine(const Vc3Telecine & value)531 inline void SetTelecine(const Vc3Telecine& value) { m_telecineHasBeenSet = true; m_telecine = value; } 532 533 /** 534 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 535 * fps, and your output scan type is interlaced, you can optionally enable hard 536 * telecine (HARD) to create a smoother picture. When you keep the default value, 537 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 538 * doing anything with the field polarity to create a smoother picture. 539 */ SetTelecine(Vc3Telecine && value)540 inline void SetTelecine(Vc3Telecine&& value) { m_telecineHasBeenSet = true; m_telecine = std::move(value); } 541 542 /** 543 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 544 * fps, and your output scan type is interlaced, you can optionally enable hard 545 * telecine (HARD) to create a smoother picture. When you keep the default value, 546 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 547 * doing anything with the field polarity to create a smoother picture. 548 */ WithTelecine(const Vc3Telecine & value)549 inline Vc3Settings& WithTelecine(const Vc3Telecine& value) { SetTelecine(value); return *this;} 550 551 /** 552 * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 553 * fps, and your output scan type is interlaced, you can optionally enable hard 554 * telecine (HARD) to create a smoother picture. When you keep the default value, 555 * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without 556 * doing anything with the field polarity to create a smoother picture. 557 */ WithTelecine(Vc3Telecine && value)558 inline Vc3Settings& WithTelecine(Vc3Telecine&& value) { SetTelecine(std::move(value)); return *this;} 559 560 561 /** 562 * Specify the VC3 class to choose the quality characteristics for this output. VC3 563 * class, together with the settings Framerate (framerateNumerator and 564 * framerateDenominator) and Resolution (height and width), determine your output 565 * bitrate. For example, say that your video resolution is 1920x1080 and your 566 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 567 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 568 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 569 * depth of your output. 570 */ GetVc3Class()571 inline const Vc3Class& GetVc3Class() const{ return m_vc3Class; } 572 573 /** 574 * Specify the VC3 class to choose the quality characteristics for this output. VC3 575 * class, together with the settings Framerate (framerateNumerator and 576 * framerateDenominator) and Resolution (height and width), determine your output 577 * bitrate. For example, say that your video resolution is 1920x1080 and your 578 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 579 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 580 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 581 * depth of your output. 582 */ Vc3ClassHasBeenSet()583 inline bool Vc3ClassHasBeenSet() const { return m_vc3ClassHasBeenSet; } 584 585 /** 586 * Specify the VC3 class to choose the quality characteristics for this output. VC3 587 * class, together with the settings Framerate (framerateNumerator and 588 * framerateDenominator) and Resolution (height and width), determine your output 589 * bitrate. For example, say that your video resolution is 1920x1080 and your 590 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 591 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 592 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 593 * depth of your output. 594 */ SetVc3Class(const Vc3Class & value)595 inline void SetVc3Class(const Vc3Class& value) { m_vc3ClassHasBeenSet = true; m_vc3Class = value; } 596 597 /** 598 * Specify the VC3 class to choose the quality characteristics for this output. VC3 599 * class, together with the settings Framerate (framerateNumerator and 600 * framerateDenominator) and Resolution (height and width), determine your output 601 * bitrate. For example, say that your video resolution is 1920x1080 and your 602 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 603 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 604 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 605 * depth of your output. 606 */ SetVc3Class(Vc3Class && value)607 inline void SetVc3Class(Vc3Class&& value) { m_vc3ClassHasBeenSet = true; m_vc3Class = std::move(value); } 608 609 /** 610 * Specify the VC3 class to choose the quality characteristics for this output. VC3 611 * class, together with the settings Framerate (framerateNumerator and 612 * framerateDenominator) and Resolution (height and width), determine your output 613 * bitrate. For example, say that your video resolution is 1920x1080 and your 614 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 615 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 616 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 617 * depth of your output. 618 */ WithVc3Class(const Vc3Class & value)619 inline Vc3Settings& WithVc3Class(const Vc3Class& value) { SetVc3Class(value); return *this;} 620 621 /** 622 * Specify the VC3 class to choose the quality characteristics for this output. VC3 623 * class, together with the settings Framerate (framerateNumerator and 624 * framerateDenominator) and Resolution (height and width), determine your output 625 * bitrate. For example, say that your video resolution is 1920x1080 and your 626 * framerate is 29.97. Then Class 145 (CLASS_145) gives you an output with a 627 * bitrate of approximately 145 Mbps and Class 220 (CLASS_220) gives you and output 628 * with a bitrate of approximately 220 Mbps. VC3 class also specifies the color bit 629 * depth of your output. 630 */ WithVc3Class(Vc3Class && value)631 inline Vc3Settings& WithVc3Class(Vc3Class&& value) { SetVc3Class(std::move(value)); return *this;} 632 633 private: 634 635 Vc3FramerateControl m_framerateControl; 636 bool m_framerateControlHasBeenSet; 637 638 Vc3FramerateConversionAlgorithm m_framerateConversionAlgorithm; 639 bool m_framerateConversionAlgorithmHasBeenSet; 640 641 int m_framerateDenominator; 642 bool m_framerateDenominatorHasBeenSet; 643 644 int m_framerateNumerator; 645 bool m_framerateNumeratorHasBeenSet; 646 647 Vc3InterlaceMode m_interlaceMode; 648 bool m_interlaceModeHasBeenSet; 649 650 Vc3ScanTypeConversionMode m_scanTypeConversionMode; 651 bool m_scanTypeConversionModeHasBeenSet; 652 653 Vc3SlowPal m_slowPal; 654 bool m_slowPalHasBeenSet; 655 656 Vc3Telecine m_telecine; 657 bool m_telecineHasBeenSet; 658 659 Vc3Class m_vc3Class; 660 bool m_vc3ClassHasBeenSet; 661 }; 662 663 } // namespace Model 664 } // namespace MediaConvert 665 } // namespace Aws 666