in service/mediaconvert/deserializers.go [11894:12356]
func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.H265Settings
if *v == nil {
sv = &types.H265Settings{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "adaptiveQuantization":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265AdaptiveQuantization to be of type string, got %T instead", value)
}
sv.AdaptiveQuantization = types.H265AdaptiveQuantization(jtv)
}
case "alternateTransferFunctionSei":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265AlternateTransferFunctionSei to be of type string, got %T instead", value)
}
sv.AlternateTransferFunctionSei = types.H265AlternateTransferFunctionSei(jtv)
}
case "bitrate":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1000Max1466400000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Bitrate = int32(i64)
}
case "codecLevel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265CodecLevel to be of type string, got %T instead", value)
}
sv.CodecLevel = types.H265CodecLevel(jtv)
}
case "codecProfile":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265CodecProfile to be of type string, got %T instead", value)
}
sv.CodecProfile = types.H265CodecProfile(jtv)
}
case "dynamicSubGop":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265DynamicSubGop to be of type string, got %T instead", value)
}
sv.DynamicSubGop = types.H265DynamicSubGop(jtv)
}
case "flickerAdaptiveQuantization":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265FlickerAdaptiveQuantization to be of type string, got %T instead", value)
}
sv.FlickerAdaptiveQuantization = types.H265FlickerAdaptiveQuantization(jtv)
}
case "framerateControl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265FramerateControl to be of type string, got %T instead", value)
}
sv.FramerateControl = types.H265FramerateControl(jtv)
}
case "framerateConversionAlgorithm":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265FramerateConversionAlgorithm to be of type string, got %T instead", value)
}
sv.FramerateConversionAlgorithm = types.H265FramerateConversionAlgorithm(jtv)
}
case "framerateDenominator":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max2147483647 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.FramerateDenominator = int32(i64)
}
case "framerateNumerator":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max2147483647 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.FramerateNumerator = int32(i64)
}
case "gopBReference":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265GopBReference to be of type string, got %T instead", value)
}
sv.GopBReference = types.H265GopBReference(jtv)
}
case "gopClosedCadence":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max2147483647 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GopClosedCadence = int32(i64)
}
case "gopSize":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.GopSize = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.GopSize = f64
default:
return fmt.Errorf("expected __doubleMin0 to be a JSON Number, got %T instead", value)
}
}
case "gopSizeUnits":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265GopSizeUnits to be of type string, got %T instead", value)
}
sv.GopSizeUnits = types.H265GopSizeUnits(jtv)
}
case "hrdBufferInitialFillPercentage":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max100 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.HrdBufferInitialFillPercentage = int32(i64)
}
case "hrdBufferSize":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max1466400000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.HrdBufferSize = int32(i64)
}
case "interlaceMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265InterlaceMode to be of type string, got %T instead", value)
}
sv.InterlaceMode = types.H265InterlaceMode(jtv)
}
case "maxBitrate":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1000Max1466400000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxBitrate = int32(i64)
}
case "minIInterval":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max30 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MinIInterval = int32(i64)
}
case "numberBFramesBetweenReferenceFrames":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max7 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.NumberBFramesBetweenReferenceFrames = int32(i64)
}
case "numberReferenceFrames":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max6 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.NumberReferenceFrames = int32(i64)
}
case "parControl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265ParControl to be of type string, got %T instead", value)
}
sv.ParControl = types.H265ParControl(jtv)
}
case "parDenominator":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max2147483647 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ParDenominator = int32(i64)
}
case "parNumerator":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max2147483647 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ParNumerator = int32(i64)
}
case "qualityTuningLevel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265QualityTuningLevel to be of type string, got %T instead", value)
}
sv.QualityTuningLevel = types.H265QualityTuningLevel(jtv)
}
case "qvbrSettings":
if err := awsRestjson1_deserializeDocumentH265QvbrSettings(&sv.QvbrSettings, value); err != nil {
return err
}
case "rateControlMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265RateControlMode to be of type string, got %T instead", value)
}
sv.RateControlMode = types.H265RateControlMode(jtv)
}
case "sampleAdaptiveOffsetFilterMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265SampleAdaptiveOffsetFilterMode to be of type string, got %T instead", value)
}
sv.SampleAdaptiveOffsetFilterMode = types.H265SampleAdaptiveOffsetFilterMode(jtv)
}
case "scanTypeConversionMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265ScanTypeConversionMode to be of type string, got %T instead", value)
}
sv.ScanTypeConversionMode = types.H265ScanTypeConversionMode(jtv)
}
case "sceneChangeDetect":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265SceneChangeDetect to be of type string, got %T instead", value)
}
sv.SceneChangeDetect = types.H265SceneChangeDetect(jtv)
}
case "slices":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin1Max32 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Slices = int32(i64)
}
case "slowPal":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265SlowPal to be of type string, got %T instead", value)
}
sv.SlowPal = types.H265SlowPal(jtv)
}
case "spatialAdaptiveQuantization":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265SpatialAdaptiveQuantization to be of type string, got %T instead", value)
}
sv.SpatialAdaptiveQuantization = types.H265SpatialAdaptiveQuantization(jtv)
}
case "telecine":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265Telecine to be of type string, got %T instead", value)
}
sv.Telecine = types.H265Telecine(jtv)
}
case "temporalAdaptiveQuantization":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265TemporalAdaptiveQuantization to be of type string, got %T instead", value)
}
sv.TemporalAdaptiveQuantization = types.H265TemporalAdaptiveQuantization(jtv)
}
case "temporalIds":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265TemporalIds to be of type string, got %T instead", value)
}
sv.TemporalIds = types.H265TemporalIds(jtv)
}
case "tiles":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265Tiles to be of type string, got %T instead", value)
}
sv.Tiles = types.H265Tiles(jtv)
}
case "unregisteredSeiTimecode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265UnregisteredSeiTimecode to be of type string, got %T instead", value)
}
sv.UnregisteredSeiTimecode = types.H265UnregisteredSeiTimecode(jtv)
}
case "writeMp4PackagingType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected H265WriteMp4PackagingType to be of type string, got %T instead", value)
}
sv.WriteMp4PackagingType = types.H265WriteMp4PackagingType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}