/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaConvert { namespace Model { /** * Settings for deinterlacer

See Also:

AWS * API Reference

*/ class Deinterlacer { public: AWS_MEDIACONVERT_API Deinterlacer(); AWS_MEDIACONVERT_API Deinterlacer(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIACONVERT_API Deinterlacer& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIACONVERT_API Aws::Utils::Json::JsonValue Jsonize() const; /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline const DeinterlaceAlgorithm& GetAlgorithm() const{ return m_algorithm; } /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline bool AlgorithmHasBeenSet() const { return m_algorithmHasBeenSet; } /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline void SetAlgorithm(const DeinterlaceAlgorithm& value) { m_algorithmHasBeenSet = true; m_algorithm = value; } /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline void SetAlgorithm(DeinterlaceAlgorithm&& value) { m_algorithmHasBeenSet = true; m_algorithm = std::move(value); } /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline Deinterlacer& WithAlgorithm(const DeinterlaceAlgorithm& value) { SetAlgorithm(value); return *this;} /** * Only applies when you set Deinterlace mode to Deinterlace or Adaptive. * Interpolate produces sharper pictures, while blend produces smoother motion. If * your source file includes a ticker, such as a scrolling headline at the bottom * of the frame: Choose Interpolate ticker or Blend ticker. To apply field * doubling: Choose Linear interpolation. Note that Linear interpolation may * introduce video artifacts into your output. */ inline Deinterlacer& WithAlgorithm(DeinterlaceAlgorithm&& value) { SetAlgorithm(std::move(value)); return *this;} /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline const DeinterlacerControl& GetControl() const{ return m_control; } /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline bool ControlHasBeenSet() const { return m_controlHasBeenSet; } /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline void SetControl(const DeinterlacerControl& value) { m_controlHasBeenSet = true; m_control = value; } /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline void SetControl(DeinterlacerControl&& value) { m_controlHasBeenSet = true; m_control = std::move(value); } /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline Deinterlacer& WithControl(const DeinterlacerControl& value) { SetControl(value); return *this;} /** * - When set to NORMAL (default), the deinterlacer does not convert frames that * are tagged in metadata as progressive. It will only convert those that are * tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer * converts every frame to progressive - even those that are already tagged as * progressive. Turn Force mode on only if there is a good chance that the metadata * has tagged frames as progressive when they are not progressive. Do not turn on * otherwise; processing frames that are already progressive into progressive will * probably result in lower quality video. */ inline Deinterlacer& WithControl(DeinterlacerControl&& value) { SetControl(std::move(value)); return *this;} /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline const DeinterlacerMode& GetMode() const{ return m_mode; } /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; } /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline void SetMode(const DeinterlacerMode& value) { m_modeHasBeenSet = true; m_mode = value; } /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline void SetMode(DeinterlacerMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); } /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline Deinterlacer& WithMode(const DeinterlacerMode& value) { SetMode(value); return *this;} /** * Use Deinterlacer to choose how the service will do deinterlacing. Default is * Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse * telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive * auto-detects and converts to progressive. */ inline Deinterlacer& WithMode(DeinterlacerMode&& value) { SetMode(std::move(value)); return *this;} private: DeinterlaceAlgorithm m_algorithm; bool m_algorithmHasBeenSet = false; DeinterlacerControl m_control; bool m_controlHasBeenSet = false; DeinterlacerMode m_mode; bool m_modeHasBeenSet = false; }; } // namespace Model } // namespace MediaConvert } // namespace Aws