in service/medialive/deserializers.go [21372:21919]
func awsRestjson1_deserializeDocumentM2tsSettings(v **types.M2tsSettings, 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.M2tsSettings
if *v == nil {
sv = &types.M2tsSettings{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "absentInputAudioBehavior":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsAbsentInputAudioBehavior to be of type string, got %T instead", value)
}
sv.AbsentInputAudioBehavior = types.M2tsAbsentInputAudioBehavior(jtv)
}
case "arib":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsArib to be of type string, got %T instead", value)
}
sv.Arib = types.M2tsArib(jtv)
}
case "aribCaptionsPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.AribCaptionsPid = ptr.String(jtv)
}
case "aribCaptionsPidControl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsAribCaptionsPidControl to be of type string, got %T instead", value)
}
sv.AribCaptionsPidControl = types.M2tsAribCaptionsPidControl(jtv)
}
case "audioBufferModel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsAudioBufferModel to be of type string, got %T instead", value)
}
sv.AudioBufferModel = types.M2tsAudioBufferModel(jtv)
}
case "audioFramesPerPes":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.AudioFramesPerPes = int32(i64)
}
case "audioPids":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.AudioPids = ptr.String(jtv)
}
case "audioStreamType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsAudioStreamType to be of type string, got %T instead", value)
}
sv.AudioStreamType = types.M2tsAudioStreamType(jtv)
}
case "bitrate":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Bitrate = int32(i64)
}
case "bufferModel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsBufferModel to be of type string, got %T instead", value)
}
sv.BufferModel = types.M2tsBufferModel(jtv)
}
case "ccDescriptor":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsCcDescriptor to be of type string, got %T instead", value)
}
sv.CcDescriptor = types.M2tsCcDescriptor(jtv)
}
case "dvbNitSettings":
if err := awsRestjson1_deserializeDocumentDvbNitSettings(&sv.DvbNitSettings, value); err != nil {
return err
}
case "dvbSdtSettings":
if err := awsRestjson1_deserializeDocumentDvbSdtSettings(&sv.DvbSdtSettings, value); err != nil {
return err
}
case "dvbSubPids":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.DvbSubPids = ptr.String(jtv)
}
case "dvbTdtSettings":
if err := awsRestjson1_deserializeDocumentDvbTdtSettings(&sv.DvbTdtSettings, value); err != nil {
return err
}
case "dvbTeletextPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.DvbTeletextPid = ptr.String(jtv)
}
case "ebif":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsEbifControl to be of type string, got %T instead", value)
}
sv.Ebif = types.M2tsEbifControl(jtv)
}
case "ebpAudioInterval":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsAudioInterval to be of type string, got %T instead", value)
}
sv.EbpAudioInterval = types.M2tsAudioInterval(jtv)
}
case "ebpLookaheadMs":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max10000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.EbpLookaheadMs = int32(i64)
}
case "ebpPlacement":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsEbpPlacement to be of type string, got %T instead", value)
}
sv.EbpPlacement = types.M2tsEbpPlacement(jtv)
}
case "ecmPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.EcmPid = ptr.String(jtv)
}
case "esRateInPes":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsEsRateInPes to be of type string, got %T instead", value)
}
sv.EsRateInPes = types.M2tsEsRateInPes(jtv)
}
case "etvPlatformPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.EtvPlatformPid = ptr.String(jtv)
}
case "etvSignalPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.EtvSignalPid = ptr.String(jtv)
}
case "fragmentTime":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.FragmentTime = 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.FragmentTime = f64
default:
return fmt.Errorf("expected __doubleMin0 to be a JSON Number, got %T instead", value)
}
}
case "klv":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsKlv to be of type string, got %T instead", value)
}
sv.Klv = types.M2tsKlv(jtv)
}
case "klvDataPids":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.KlvDataPids = ptr.String(jtv)
}
case "nielsenId3Behavior":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsNielsenId3Behavior to be of type string, got %T instead", value)
}
sv.NielsenId3Behavior = types.M2tsNielsenId3Behavior(jtv)
}
case "nullPacketBitrate":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.NullPacketBitrate = 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.NullPacketBitrate = f64
default:
return fmt.Errorf("expected __doubleMin0 to be a JSON Number, got %T instead", value)
}
}
case "patInterval":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max1000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.PatInterval = int32(i64)
}
case "pcrControl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsPcrControl to be of type string, got %T instead", value)
}
sv.PcrControl = types.M2tsPcrControl(jtv)
}
case "pcrPeriod":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max500 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.PcrPeriod = int32(i64)
}
case "pcrPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.PcrPid = ptr.String(jtv)
}
case "pmtInterval":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max1000 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.PmtInterval = int32(i64)
}
case "pmtPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.PmtPid = ptr.String(jtv)
}
case "programNum":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max65535 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ProgramNum = int32(i64)
}
case "rateMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsRateMode to be of type string, got %T instead", value)
}
sv.RateMode = types.M2tsRateMode(jtv)
}
case "scte27Pids":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.Scte27Pids = ptr.String(jtv)
}
case "scte35Control":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsScte35Control to be of type string, got %T instead", value)
}
sv.Scte35Control = types.M2tsScte35Control(jtv)
}
case "scte35Pid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.Scte35Pid = ptr.String(jtv)
}
case "segmentationMarkers":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsSegmentationMarkers to be of type string, got %T instead", value)
}
sv.SegmentationMarkers = types.M2tsSegmentationMarkers(jtv)
}
case "segmentationStyle":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsSegmentationStyle to be of type string, got %T instead", value)
}
sv.SegmentationStyle = types.M2tsSegmentationStyle(jtv)
}
case "segmentationTime":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.SegmentationTime = 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.SegmentationTime = f64
default:
return fmt.Errorf("expected __doubleMin1 to be a JSON Number, got %T instead", value)
}
}
case "timedMetadataBehavior":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected M2tsTimedMetadataBehavior to be of type string, got %T instead", value)
}
sv.TimedMetadataBehavior = types.M2tsTimedMetadataBehavior(jtv)
}
case "timedMetadataPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.TimedMetadataPid = ptr.String(jtv)
}
case "transportStreamId":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected __integerMin0Max65535 to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TransportStreamId = int32(i64)
}
case "videoPid":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected __string to be of type string, got %T instead", value)
}
sv.VideoPid = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}