/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaConvert { namespace Model { /** * JobSettings contains all the transcode settings for a job.

See Also:

* AWS * API Reference

*/ class AWS_MEDIACONVERT_API JobSettings { public: JobSettings(); JobSettings(Aws::Utils::Json::JsonView jsonValue); JobSettings& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS * time. */ inline int GetAdAvailOffset() const{ return m_adAvailOffset; } /** * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS * time. */ inline bool AdAvailOffsetHasBeenSet() const { return m_adAvailOffsetHasBeenSet; } /** * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS * time. */ inline void SetAdAvailOffset(int value) { m_adAvailOffsetHasBeenSet = true; m_adAvailOffset = value; } /** * When specified, this offset (in milliseconds) is added to the input Ad Avail PTS * time. */ inline JobSettings& WithAdAvailOffset(int value) { SetAdAvailOffset(value); return *this;} /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline const AvailBlanking& GetAvailBlanking() const{ return m_availBlanking; } /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline bool AvailBlankingHasBeenSet() const { return m_availBlankingHasBeenSet; } /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline void SetAvailBlanking(const AvailBlanking& value) { m_availBlankingHasBeenSet = true; m_availBlanking = value; } /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline void SetAvailBlanking(AvailBlanking&& value) { m_availBlankingHasBeenSet = true; m_availBlanking = std::move(value); } /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline JobSettings& WithAvailBlanking(const AvailBlanking& value) { SetAvailBlanking(value); return *this;} /** * Settings for ad avail blanking. Video can be blanked or overlaid with an image, * and audio muted during SCTE-35 triggered ad avails. */ inline JobSettings& WithAvailBlanking(AvailBlanking&& value) { SetAvailBlanking(std::move(value)); return *this;} /** * Settings for Event Signaling And Messaging (ESAM). */ inline const EsamSettings& GetEsam() const{ return m_esam; } /** * Settings for Event Signaling And Messaging (ESAM). */ inline bool EsamHasBeenSet() const { return m_esamHasBeenSet; } /** * Settings for Event Signaling And Messaging (ESAM). */ inline void SetEsam(const EsamSettings& value) { m_esamHasBeenSet = true; m_esam = value; } /** * Settings for Event Signaling And Messaging (ESAM). */ inline void SetEsam(EsamSettings&& value) { m_esamHasBeenSet = true; m_esam = std::move(value); } /** * Settings for Event Signaling And Messaging (ESAM). */ inline JobSettings& WithEsam(const EsamSettings& value) { SetEsam(value); return *this;} /** * Settings for Event Signaling And Messaging (ESAM). */ inline JobSettings& WithEsam(EsamSettings&& value) { SetEsam(std::move(value)); return *this;} /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline const Aws::Vector& GetInputs() const{ return m_inputs; } /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline bool InputsHasBeenSet() const { return m_inputsHasBeenSet; } /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline void SetInputs(const Aws::Vector& value) { m_inputsHasBeenSet = true; m_inputs = value; } /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline void SetInputs(Aws::Vector&& value) { m_inputsHasBeenSet = true; m_inputs = std::move(value); } /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline JobSettings& WithInputs(const Aws::Vector& value) { SetInputs(value); return *this;} /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline JobSettings& WithInputs(Aws::Vector&& value) { SetInputs(std::move(value)); return *this;} /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline JobSettings& AddInputs(const Input& value) { m_inputsHasBeenSet = true; m_inputs.push_back(value); return *this; } /** * Use Inputs (inputs) to define source file used in the transcode job. There can * be multiple inputs add in a job. These inputs will be concantenated together to * create the output. */ inline JobSettings& AddInputs(Input&& value) { m_inputsHasBeenSet = true; m_inputs.push_back(std::move(value)); return *this; } /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline const MotionImageInserter& GetMotionImageInserter() const{ return m_motionImageInserter; } /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline bool MotionImageInserterHasBeenSet() const { return m_motionImageInserterHasBeenSet; } /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline void SetMotionImageInserter(const MotionImageInserter& value) { m_motionImageInserterHasBeenSet = true; m_motionImageInserter = value; } /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline void SetMotionImageInserter(MotionImageInserter&& value) { m_motionImageInserterHasBeenSet = true; m_motionImageInserter = std::move(value); } /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline JobSettings& WithMotionImageInserter(const MotionImageInserter& value) { SetMotionImageInserter(value); return *this;} /** * Overlay motion graphics on top of your video. The motion graphics that you * specify here appear on all outputs in all output groups. */ inline JobSettings& WithMotionImageInserter(MotionImageInserter&& value) { SetMotionImageInserter(std::move(value)); return *this;} /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline const NielsenConfiguration& GetNielsenConfiguration() const{ return m_nielsenConfiguration; } /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline bool NielsenConfigurationHasBeenSet() const { return m_nielsenConfigurationHasBeenSet; } /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline void SetNielsenConfiguration(const NielsenConfiguration& value) { m_nielsenConfigurationHasBeenSet = true; m_nielsenConfiguration = value; } /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline void SetNielsenConfiguration(NielsenConfiguration&& value) { m_nielsenConfigurationHasBeenSet = true; m_nielsenConfiguration = std::move(value); } /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline JobSettings& WithNielsenConfiguration(const NielsenConfiguration& value) { SetNielsenConfiguration(value); return *this;} /** * Settings for your Nielsen configuration. If you don't do Nielsen measurement and * analytics, ignore these settings. When you enable Nielsen configuration * (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs * in the job. To enable Nielsen configuration programmatically, include an * instance of nielsenConfiguration in your JSON job specification. Even if you * don't include any children of nielsenConfiguration, you still enable the * setting. */ inline JobSettings& WithNielsenConfiguration(NielsenConfiguration&& value) { SetNielsenConfiguration(std::move(value)); return *this;} /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline const Aws::Vector& GetOutputGroups() const{ return m_outputGroups; } /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline bool OutputGroupsHasBeenSet() const { return m_outputGroupsHasBeenSet; } /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline void SetOutputGroups(const Aws::Vector& value) { m_outputGroupsHasBeenSet = true; m_outputGroups = value; } /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline void SetOutputGroups(Aws::Vector&& value) { m_outputGroupsHasBeenSet = true; m_outputGroups = std::move(value); } /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline JobSettings& WithOutputGroups(const Aws::Vector& value) { SetOutputGroups(value); return *this;} /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline JobSettings& WithOutputGroups(Aws::Vector&& value) { SetOutputGroups(std::move(value)); return *this;} /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline JobSettings& AddOutputGroups(const OutputGroup& value) { m_outputGroupsHasBeenSet = true; m_outputGroups.push_back(value); return *this; } /** * (OutputGroups) contains one group of settings for each set of outputs that share * a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, * and no container) are grouped in a single output group as well. Required in * (OutputGroups) is a group of settings that apply to the whole group. This * required object depends on the value you set for (Type) under * (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as * follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, * HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, * CmafGroupSettings */ inline JobSettings& AddOutputGroups(OutputGroup&& value) { m_outputGroupsHasBeenSet = true; m_outputGroups.push_back(std::move(value)); return *this; } /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline const TimecodeConfig& GetTimecodeConfig() const{ return m_timecodeConfig; } /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline bool TimecodeConfigHasBeenSet() const { return m_timecodeConfigHasBeenSet; } /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline void SetTimecodeConfig(const TimecodeConfig& value) { m_timecodeConfigHasBeenSet = true; m_timecodeConfig = value; } /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline void SetTimecodeConfig(TimecodeConfig&& value) { m_timecodeConfigHasBeenSet = true; m_timecodeConfig = std::move(value); } /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline JobSettings& WithTimecodeConfig(const TimecodeConfig& value) { SetTimecodeConfig(value); return *this;} /** * Contains settings used to acquire and adjust timecode information from inputs. */ inline JobSettings& WithTimecodeConfig(TimecodeConfig&& value) { SetTimecodeConfig(std::move(value)); return *this;} /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline const TimedMetadataInsertion& GetTimedMetadataInsertion() const{ return m_timedMetadataInsertion; } /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline bool TimedMetadataInsertionHasBeenSet() const { return m_timedMetadataInsertionHasBeenSet; } /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline void SetTimedMetadataInsertion(const TimedMetadataInsertion& value) { m_timedMetadataInsertionHasBeenSet = true; m_timedMetadataInsertion = value; } /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline void SetTimedMetadataInsertion(TimedMetadataInsertion&& value) { m_timedMetadataInsertionHasBeenSet = true; m_timedMetadataInsertion = std::move(value); } /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline JobSettings& WithTimedMetadataInsertion(const TimedMetadataInsertion& value) { SetTimedMetadataInsertion(value); return *this;} /** * Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in * your job. To include timed metadata, you must enable it here, enable it in each * output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) * objects. */ inline JobSettings& WithTimedMetadataInsertion(TimedMetadataInsertion&& value) { SetTimedMetadataInsertion(std::move(value)); return *this;} private: int m_adAvailOffset; bool m_adAvailOffsetHasBeenSet; AvailBlanking m_availBlanking; bool m_availBlankingHasBeenSet; EsamSettings m_esam; bool m_esamHasBeenSet; Aws::Vector m_inputs; bool m_inputsHasBeenSet; MotionImageInserter m_motionImageInserter; bool m_motionImageInserterHasBeenSet; NielsenConfiguration m_nielsenConfiguration; bool m_nielsenConfigurationHasBeenSet; Aws::Vector m_outputGroups; bool m_outputGroupsHasBeenSet; TimecodeConfig m_timecodeConfig; bool m_timecodeConfigHasBeenSet; TimedMetadataInsertion m_timedMetadataInsertion; bool m_timedMetadataInsertionHasBeenSet; }; } // namespace Model } // namespace MediaConvert } // namespace Aws