/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the elastictranscoder-2012-09-25.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.ElasticTranscoder.Model
{
///
///
///
/// Outputs recommended instead.
///
///
///
/// If you specified one output for a job, information about that output. If you specified
/// multiple outputs for a job, the Output
object lists information about
/// the first output. This duplicates the information that is listed for the first output
/// in the Outputs
object.
///
///
public partial class JobOutput
{
private JobAlbumArt _albumArt;
private string _appliedColorSpaceConversion;
private Captions _captions;
private List _composition = new List();
private long? _duration;
private long? _durationMillis;
private Encryption _encryption;
private long? _fileSize;
private string _frameRate;
private int? _height;
private string _id;
private string _key;
private string _presetId;
private string _rotate;
private string _segmentDuration;
private string _status;
private string _statusDetail;
private Encryption _thumbnailEncryption;
private string _thumbnailPattern;
private List _watermarks = new List();
private int? _width;
///
/// Gets and sets the property AlbumArt.
///
/// The album art to be associated with the output file, if any.
///
///
public JobAlbumArt AlbumArt
{
get { return this._albumArt; }
set { this._albumArt = value; }
}
// Check to see if AlbumArt property is set
internal bool IsSetAlbumArt()
{
return this._albumArt != null;
}
///
/// Gets and sets the property AppliedColorSpaceConversion.
///
/// If Elastic Transcoder used a preset with a ColorSpaceConversionMode
to
/// transcode the output file, the AppliedColorSpaceConversion
parameter
/// shows the conversion used. If no ColorSpaceConversionMode
was defined
/// in the preset, this parameter is not be included in the job response.
///
///
public string AppliedColorSpaceConversion
{
get { return this._appliedColorSpaceConversion; }
set { this._appliedColorSpaceConversion = value; }
}
// Check to see if AppliedColorSpaceConversion property is set
internal bool IsSetAppliedColorSpaceConversion()
{
return this._appliedColorSpaceConversion != null;
}
///
/// Gets and sets the property Captions.
///
/// You can configure Elastic Transcoder to transcode captions, or subtitles, from one
/// format to another. All captions must be in UTF-8. Elastic Transcoder supports two
/// types of captions:
///
/// -
///
/// Embedded: Embedded captions are included in the same file as the audio and
/// video. Elastic Transcoder supports only one embedded caption per language, to a maximum
/// of 300 embedded captions per file.
///
///
///
/// Valid input values include:
CEA-608 (EIA-608
, first non-empty channel
/// only), CEA-708 (EIA-708
, first non-empty channel only), and mov-text
///
///
///
///
/// Valid outputs include: mov-text
///
///
///
/// Elastic Transcoder supports a maximum of one embedded format per output.
///
/// -
///
/// Sidecar: Sidecar captions are kept in a separate metadata file from the audio
/// and video data. Sidecar captions require a player that is capable of understanding
/// the relationship between the video file and the sidecar file. Elastic Transcoder supports
/// only one sidecar caption per language, to a maximum of 20 sidecar captions per file.
///
///
///
/// Valid input values include:
dfxp
(first div element only), ebu-tt
,
/// scc
, smpt
, srt
, ttml
(first div
/// element only), and webvtt
///
///
///
/// Valid outputs include: dfxp
(first div element only), scc
,
/// srt
, and webvtt
.
///
///
///
/// If you want ttml or smpte-tt compatible captions, specify dfxp as your output format.
///
///
///
/// Elastic Transcoder does not support OCR (Optical Character Recognition), does not
/// accept pictures as a valid input for captions, and is not available for audio-only
/// transcoding. Elastic Transcoder does not preserve text formatting (for example, italics)
/// during the transcoding process.
///
///
///
/// To remove captions or leave the captions empty, set Captions
to null.
/// To pass through existing captions unchanged, set the MergePolicy
to MergeRetain
,
/// and pass in a null CaptionSources
array.
///
///
///
/// For more information on embedded files, see the Subtitles Wikipedia page.
///
///
///
/// For more information on sidecar files, see the Extensible Metadata Platform and Sidecar
/// file Wikipedia pages.
///
///
public Captions Captions
{
get { return this._captions; }
set { this._captions = value; }
}
// Check to see if Captions property is set
internal bool IsSetCaptions()
{
return this._captions != null;
}
///
/// Gets and sets the property Composition.
///
/// You can create an output file that contains an excerpt from the input file. This excerpt,
/// called a clip, can come from the beginning, middle, or end of the file. The Composition
/// object contains settings for the clips that make up an output file. For the current
/// release, you can only specify settings for a single clip per output file. The Composition
/// object cannot be null.
///
///
[Obsolete("This property is deprecated")]
public List Composition
{
get { return this._composition; }
set { this._composition = value; }
}
// Check to see if Composition property is set
internal bool IsSetComposition()
{
return this._composition != null && this._composition.Count > 0;
}
///
/// Gets and sets the property Duration.
///
/// Duration of the output file, in seconds.
///
///
public long Duration
{
get { return this._duration.GetValueOrDefault(); }
set { this._duration = value; }
}
// Check to see if Duration property is set
internal bool IsSetDuration()
{
return this._duration.HasValue;
}
///
/// Gets and sets the property DurationMillis.
///
/// Duration of the output file, in milliseconds.
///
///
public long DurationMillis
{
get { return this._durationMillis.GetValueOrDefault(); }
set { this._durationMillis = value; }
}
// Check to see if DurationMillis property is set
internal bool IsSetDurationMillis()
{
return this._durationMillis.HasValue;
}
///
/// Gets and sets the property Encryption.
///
/// The encryption settings, if any, that you want Elastic Transcoder to apply to your
/// output files. If you choose to use encryption, you must specify a mode to use. If
/// you choose not to use encryption, Elastic Transcoder writes an unencrypted file to
/// your Amazon S3 bucket.
///
///
public Encryption Encryption
{
get { return this._encryption; }
set { this._encryption = value; }
}
// Check to see if Encryption property is set
internal bool IsSetEncryption()
{
return this._encryption != null;
}
///
/// Gets and sets the property FileSize.
///
/// File size of the output file, in bytes.
///
///
public long FileSize
{
get { return this._fileSize.GetValueOrDefault(); }
set { this._fileSize = value; }
}
// Check to see if FileSize property is set
internal bool IsSetFileSize()
{
return this._fileSize.HasValue;
}
///
/// Gets and sets the property FrameRate.
///
/// Frame rate of the output file, in frames per second.
///
///
public string FrameRate
{
get { return this._frameRate; }
set { this._frameRate = value; }
}
// Check to see if FrameRate property is set
internal bool IsSetFrameRate()
{
return this._frameRate != null;
}
///
/// Gets and sets the property Height.
///
/// Height of the output file, in pixels.
///
///
public int Height
{
get { return this._height.GetValueOrDefault(); }
set { this._height = value; }
}
// Check to see if Height property is set
internal bool IsSetHeight()
{
return this._height.HasValue;
}
///
/// Gets and sets the property Id.
///
/// A sequential counter, starting with 1, that identifies an output among the outputs
/// from the current job. In the Output syntax, this value is always 1.
///
///
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property Key.
///
/// The name to assign to the transcoded file. Elastic Transcoder saves the file in the
/// Amazon S3 bucket specified by the OutputBucket
object in the pipeline
/// that is specified by the pipeline ID.
///
///
[AWSProperty(Min=1, Max=255)]
public string Key
{
get { return this._key; }
set { this._key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
return this._key != null;
}
///
/// Gets and sets the property PresetId.
///
/// The value of the Id
object for the preset that you want to use for this
/// job. The preset determines the audio, video, and thumbnail settings that Elastic Transcoder
/// uses for transcoding. To use a preset that you created, specify the preset ID that
/// Elastic Transcoder returned in the response when you created the preset. You can also
/// use the Elastic Transcoder system presets, which you can get with ListPresets
.
///
///
public string PresetId
{
get { return this._presetId; }
set { this._presetId = value; }
}
// Check to see if PresetId property is set
internal bool IsSetPresetId()
{
return this._presetId != null;
}
///
/// Gets and sets the property Rotate.
///
/// The number of degrees clockwise by which you want Elastic Transcoder to rotate the
/// output relative to the input. Enter one of the following values:
///
///
///
/// auto
, 0
, 90
, 180
, 270
///
///
///
///
/// The value auto
generally works only if the file that you're transcoding
/// contains rotation metadata.
///
///
public string Rotate
{
get { return this._rotate; }
set { this._rotate = value; }
}
// Check to see if Rotate property is set
internal bool IsSetRotate()
{
return this._rotate != null;
}
///
/// Gets and sets the property SegmentDuration.
///
/// (Outputs in Fragmented MP4 or MPEG-TS format only.
///
///
///
/// If you specify a preset in PresetId
for which the value of Container
/// is fmp4
(Fragmented MP4) or ts
(MPEG-TS), SegmentDuration
/// is the target maximum duration of each segment in seconds. For HLSv3
/// format playlists, each media segment is stored in a separate .ts
file.
/// For HLSv4
, MPEG-DASH
, and Smooth
playlists,
/// all media segments for an output are stored in a single file. Each segment is approximately
/// the length of the SegmentDuration
, though individual segments might be
/// shorter or longer.
///
///
///
/// The range of valid values is 1 to 60 seconds. If the duration of the video is not
/// evenly divisible by SegmentDuration
, the duration of the last segment
/// is the remainder of total length/SegmentDuration.
///
///
///
/// Elastic Transcoder creates an output-specific playlist for each output HLS
/// output that you specify in OutputKeys. To add an output to the master playlist for
/// this job, include it in the OutputKeys
of the associated playlist.
///
///
public string SegmentDuration
{
get { return this._segmentDuration; }
set { this._segmentDuration = value; }
}
// Check to see if SegmentDuration property is set
internal bool IsSetSegmentDuration()
{
return this._segmentDuration != null;
}
///
/// Gets and sets the property Status.
///
/// The status of one output in a job. If you specified only one output for the job,
/// Outputs:Status
is always the same as Job:Status
. If you
/// specified more than one output:
///
/// -
///
///
Job:Status
and Outputs:Status
for all of the outputs is
/// Submitted until Elastic Transcoder starts to process the first output.
///
/// -
///
/// When Elastic Transcoder starts to process the first output,
Outputs:Status
/// for that output and Job:Status
both change to Progressing. For each output,
/// the value of Outputs:Status
remains Submitted until Elastic Transcoder
/// starts to process the output.
///
/// -
///
/// Job:Status remains Progressing until all of the outputs reach a terminal status, either
/// Complete or Error.
///
///
-
///
/// When all of the outputs reach a terminal status,
Job:Status
changes to
/// Complete only if Outputs:Status
for all of the outputs is Complete
.
/// If Outputs:Status
for one or more outputs is Error
, the
/// terminal status for Job:Status
is also Error
.
///
///
///
/// The value of Status
is one of the following: Submitted
,
/// Progressing
, Complete
, Canceled
, or Error
.
///
///
///
public string Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property StatusDetail.
///
/// Information that further explains Status
.
///
///
[AWSProperty(Min=0, Max=255)]
public string StatusDetail
{
get { return this._statusDetail; }
set { this._statusDetail = value; }
}
// Check to see if StatusDetail property is set
internal bool IsSetStatusDetail()
{
return this._statusDetail != null;
}
///
/// Gets and sets the property ThumbnailEncryption.
///
/// The encryption settings, if any, that you want Elastic Transcoder to apply to your
/// thumbnail.
///
///
public Encryption ThumbnailEncryption
{
get { return this._thumbnailEncryption; }
set { this._thumbnailEncryption = value; }
}
// Check to see if ThumbnailEncryption property is set
internal bool IsSetThumbnailEncryption()
{
return this._thumbnailEncryption != null;
}
///
/// Gets and sets the property ThumbnailPattern.
///
/// Whether you want Elastic Transcoder to create thumbnails for your videos and, if so,
/// how you want Elastic Transcoder to name the files.
///
///
///
/// If you don't want Elastic Transcoder to create thumbnails, specify "".
///
///
///
/// If you do want Elastic Transcoder to create thumbnails, specify the information that
/// you want to include in the file name for each thumbnail. You can specify the following
/// values in any sequence:
///
/// -
///
///
{count}
(Required): If you want to create thumbnails, you must
/// include {count}
in the ThumbnailPattern
object. Wherever
/// you specify {count}
, Elastic Transcoder adds a five-digit sequence number
/// (beginning with 00001) to thumbnail file names. The number indicates where
/// a given thumbnail appears in the sequence of thumbnails for a transcoded file.
///
///
///
/// If you specify a literal value and/or {resolution}
but you omit {count}
,
/// Elastic Transcoder returns a validation error and does not create the job.
///
/// -
///
/// Literal values (Optional): You can specify literal values anywhere in the
///
ThumbnailPattern
object. For example, you can include them as a file
/// name prefix or as a delimiter between {resolution}
and {count}
.
///
///
/// -
///
///
{resolution}
(Optional): If you want Elastic Transcoder to include
/// the resolution in the file name, include {resolution}
in the ThumbnailPattern
/// object.
///
///
///
/// When creating thumbnails, Elastic Transcoder automatically saves the files in the
/// format (.jpg or .png) that appears in the preset that you specified in the PresetID
/// value of CreateJobOutput
. Elastic Transcoder also appends the applicable
/// file name extension.
///
///
public string ThumbnailPattern
{
get { return this._thumbnailPattern; }
set { this._thumbnailPattern = value; }
}
// Check to see if ThumbnailPattern property is set
internal bool IsSetThumbnailPattern()
{
return this._thumbnailPattern != null;
}
///
/// Gets and sets the property Watermarks.
///
/// Information about the watermarks that you want Elastic Transcoder to add to the video
/// during transcoding. You can specify up to four watermarks for each output. Settings
/// for each watermark must be defined in the preset that you specify in Preset
/// for the current output.
///
///
///
/// Watermarks are added to the output video in the sequence in which you list them in
/// the job output—the first watermark in the list is added to the output video first,
/// the second watermark in the list is added next, and so on. As a result, if the settings
/// in a preset cause Elastic Transcoder to place all watermarks in the same location,
/// the second watermark that you add covers the first one, the third one covers the second,
/// and the fourth one covers the third.
///
///
public List Watermarks
{
get { return this._watermarks; }
set { this._watermarks = value; }
}
// Check to see if Watermarks property is set
internal bool IsSetWatermarks()
{
return this._watermarks != null && this._watermarks.Count > 0;
}
///
/// Gets and sets the property Width.
///
/// Specifies the width of the output file in pixels.
///
///
public int Width
{
get { return this._width.GetValueOrDefault(); }
set { this._width = value; }
}
// Check to see if Width property is set
internal bool IsSetWidth()
{
return this._width.HasValue;
}
}
}