You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-library/vendor/github.com/tencentyun/cos-go-sdk-v5/ci_media.go

2732 lines
99 KiB

2 years ago
package cos
import (
"context"
"encoding/xml"
"errors"
"fmt"
"net/http"
"strings"
"github.com/clbanning/mxj"
"github.com/mitchellh/mapstructure"
)
// JobInput TODO
type JobInput struct {
Object string `xml:"Object,omitempty"`
Lang string `xml:"Lang,omitempty"`
Type string `xml:"Type,omitempty"`
BasicType string `xml:"BasicType,omitempty"`
2 years ago
}
// StreamExtract TODO
type StreamExtract struct {
Index string `xml:"Index,omitempty"`
Object string `xml:"Object,omitempty"`
}
// JobOutput TODO
type JobOutput struct {
Region string `xml:"Region,omitempty"`
Bucket string `xml:"Bucket,omitempty"`
Object string `xml:"Object,omitempty"`
SpriteObject string `xml:"SpriteObject,omitempty"`
AuObject string `xml:"AuObject,omitempty"`
StreamExtract []StreamExtract `xml:"StreamExtract,omitempty"`
}
// ClipConfig TODO
type ClipConfig struct {
Duration string `xml:"Duration"`
}
// Container TODO
type Container struct {
Format string `xml:"Format,omitempty"`
ClipConfig *ClipConfig `xml:"ClipConfig,omitempty"`
2 years ago
}
// Video TODO
type Video struct {
1 year ago
Codec string `xml:"Codec"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
Fps string `xml:"Fps,omitempty"`
Remove string `xml:"Remove,omitempty"`
Profile string `xml:"Profile,omitempty"`
Bitrate string `xml:"Bitrate,omitempty"`
Crf string `xml:"Crf,omitempty"`
Gop string `xml:"Gop,omitempty"`
Preset string `xml:"Preset,omitempty"`
Bufsize string `xml:"Bufsize,omitempty"`
Maxrate string `xml:"Maxrate,omitempty"`
HlsTsTime string `xml:"HlsTsTime,omitempty"`
DashSegment string `xml:"DashSegment,omitempty"`
Pixfmt string `xml:"Pixfmt,omitempty"`
LongShortMode string `xml:"LongShortMode,omitempty"`
Rotate string `xml:"Rotate,omitempty"`
AnimateOnlyKeepKeyFrame string `xml:"AnimateOnlyKeepKeyFrame"`
AnimateTimeIntervalOfFrame string `xml:"AnimateTimeIntervalOfFrame"`
AnimateFramesPerSecond string `xml:"AnimateFramesPerSecond"`
Quality string `xml:"Quality"`
2 years ago
}
// TranscodeProVideo TODO
type TranscodeProVideo struct {
Codec string `xml:"Codec,omitempty"`
Profile string `xml:"Profile,omitempty"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
Interlaced string `xml:"Interlaced,omitempty"`
Fps string `xml:"Fps,omitempty"`
Bitrate string `xml:"Bitrate,omitempty"`
Rotate string `xml:"Rotate,omitempty"`
}
2 years ago
// TimeInterval TODO
type TimeInterval struct {
Start string `xml:"Start,omitempty"`
Duration string `xml:"Duration,omitempty"`
}
// Audio TODO
type Audio struct {
Codec string `xml:"Codec,omitempty"`
Samplerate string `xml:"Samplerate,omitempty"`
Bitrate string `xml:"Bitrate,omitempty"`
Channels string `xml:"Channels,omitempty"`
Remove string `xml:"Remove,omitempty"`
KeepTwoTracks string `xml:"KeepTwoTracks,omitempty"`
SwitchTrack string `xml:"SwitchTrack,omitempty"`
SampleFormat string `xml:"SampleFormat,omitempty"`
}
// TranscodeProAudio TODO
type TranscodeProAudio struct {
Codec string `xml:"Codec,omitempty"`
Remove string `xml:"Remove,omitempty"`
}
2 years ago
// TransConfig TODO
type TransConfig struct {
AdjDarMethod string `xml:"AdjDarMethod,omitempty"`
IsCheckReso string `xml:"IsCheckReso,omitempty"`
ResoAdjMethod string `xml:"ResoAdjMethod,omitempty"`
IsCheckVideoBitrate string `xml:"IsCheckVideoBitrate,omitempty"`
VideoBitrateAdjMethod string `xml:"VideoBitrateAdjMethod,omitempty"`
IsCheckAudioBitrate string `xml:"IsCheckAudioBitrate,omitempty"`
AudioBitrateAdjMethod string `xml:"AudioBitrateAdjMethod,omitempty"`
DeleteMetadata string `xml:"DeleteMetadata,omitempty"`
IsHdr2Sdr string `xml:"IsHdr2Sdr,omitempty"`
HlsEncrypt *HlsEncrypt `xml:"HlsEncrypt,omitempty"`
}
// Transcode TODO
type Transcode struct {
Container *Container `xml:"Container,omitempty"`
Video *Video `xml:"Video,omitempty"`
TimeInterval *TimeInterval `xml:"TimeInterval,omitempty"`
Audio *Audio `xml:"Audio,omitempty"`
TransConfig *TransConfig `xml:"TransConfig,omitempty"`
1 year ago
AudioMix *AudioMix `xml:"AudioMix,omitempty"`
2 years ago
}
// Image TODO
type Image struct {
Url string `xml:"Url,omitempty"`
Mode string `xml:"Mode,omitempty"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
Transparency string `xml:"Transparency,omitempty"`
Background string `xml:"Background,omitempty"`
}
// Text TODO
type Text struct {
FontSize string `xml:"FontSize,omitempty"`
FontType string `xml:"FontType,omitempty"`
FontColor string `xml:"FontColor,omitempty"`
Transparency string `xml:"Transparency,omitempty"`
Text string `xml:"Text,omitempty"`
}
// TtsTpl TODO
type TtsTpl struct {
Mode string `xml:"Mode,omitempty"`
Codec string `xml:"Codec,omitempty"`
VoiceType string `xml:"VoiceType,omitempty"`
Volume string `xml:"Volume,omitempty"`
Speed string `xml:"Speed,omitempty"`
}
// TtsConfig TODO
type TtsConfig struct {
Input string `xml:"Input,omitempty"`
InputType string `xml:"InputType,omitempty"`
}
// Translation TODO
type Translation struct {
Lang string `xml:"Lang,omitempty"`
Type string `xml:"Type,omitempty"`
}
// WordsGeneralize TODO
type WordsGeneralize struct {
NerMethod string `xml:"NerMethod,omitempty"`
SegMethod string `xml:"SegMethod,omitempty"`
}
// WordsGeneralizeResult TODO
type WordsGeneralizeResult struct {
WordsGeneralizeLable []WordsGeneralizeResulteLable `xml:"WordsGeneralizeLable,omitempty"`
WordsGeneralizeToken []WordsGeneralizeResulteToken `xml:"WordsGeneralizeToken,omitempty"`
}
// WordsGeneralizeResulteLable TODO
type WordsGeneralizeResulteLable struct {
Category string `xml:"Category,omitempty"`
Word string `xml:"Word,omitempty"`
}
// WordsGeneralizeResulteToken TODO
type WordsGeneralizeResulteToken struct {
Length string `xml:"Length,omitempty"`
Offset string `xml:"Offset,omitempty"`
Pos string `xml:"Pos,omitempty"`
Word string `xml:"Word,omitempty"`
}
2 years ago
// Watermark TODO
type Watermark struct {
Type string `xml:"Type,omitempty"`
Pos string `xml:"Pos,omitempty"` // TopLeft左上; Top上居中; TopRight右上; Left左居中; Center正中心; Right右居中; BottomLeft左下; Bottom下居中; BottomRight右下
LocMode string `xml:"LocMode,omitempty"`
Dx string `xml:"Dx,omitempty"`
Dy string `xml:"Dy,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
Image *Image `xml:"Image,omitempty"`
Text *Text `xml:"Text,omitempty"`
}
// EffectConfig TODO
type EffectConfig struct {
EnableStartFadein string `xml:"EnableStartFadein,omitempty"`
StartFadeinTime string `xml:"StartFadeinTime,omitempty"`
EnableEndFadeout string `xml:"EnableEndFadeout,omitempty"`
EndFadeoutTime string `xml:"EndFadeoutTime,omitempty"`
EnableBgmFade string `xml:"EnableBgmFade,omitempty"`
BgmFadeTime string `xml:"BgmFadeTime,omitempty"`
}
// AudioMix TODO
type AudioMix struct {
AudioSource string `xml:"AudioSource,omitempty"`
MixMode string `xml:"MixMode,omitempty"`
Replace string `xml:"Replace,omitempty"`
EffectConfig *EffectConfig `xml:"EffectConfig,omitempty"`
}
// ConcatFragment TODO
type ConcatFragment struct {
Url string `xml:"Url,omitempty"`
Mode string `xml:"Mode,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
FragmentIndex string `xml:"FragmentIndex,omitempty"`
2 years ago
}
// ConcatTemplate TODO
type ConcatTemplate struct {
ConcatFragment []ConcatFragment `xml:"ConcatFragment,omitempty"`
Audio *Audio `xml:"Audio,omitempty"`
Video *Video `xml:"Video,omitempty"`
Container *Container `xml:"Container,omitempty"`
Index string `xml:"Index,omitempty"`
1 year ago
AudioMix *AudioMix `xml:"AudioMix,omitempty"`
2 years ago
}
// SpriteSnapshotConfig TODO
type SpriteSnapshotConfig struct {
CellHeight string `xml:"CellHeight,omitempty"`
CellWidth string `xml:"CellWidth,omitempty"`
Color string `xml:"Color,omitempty"`
Columns string `xml:"Columns,omitempty"`
Lines string `xml:"Lines,omitempty"`
Margin string `xml:"Margin,omitempty"`
Padding string `xml:"Padding,omitempty"`
}
// Snapshot TODO
type Snapshot struct {
Mode string `xml:"Mode,omitempty"`
Start string `xml:"Start,omitempty"`
TimeInterval string `xml:"TimeInterval,omitempty"`
Count string `xml:"Count,omitempty"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
CIParam string `xml:"CIParam,omitempty"`
IsCheckCount bool `xml:"IsCheckCount,omitempty"`
IsCheckBlack bool `xml:"IsCheckBlack,omitempty"`
BlackLevel string `xml:"BlackLevel,omitempty"`
PixelBlackThreshold string `xml:"PixelBlackThreshold,omitempty"`
SnapshotOutMode string `xml:"SnapshotOutMode,omitempty"`
SpriteSnapshotConfig *SpriteSnapshotConfig `xml:"SpriteSnapshotConfig,omitempty"`
}
// AnimationVideo TODO
// 有意和转码区分,两种任务关注的参数不一样避免干扰
type AnimationVideo struct {
Codec string `xml:"Codec"`
Width string `xml:"Width"`
Height string `xml:"Height"`
Fps string `xml:"Fps"`
AnimateOnlyKeepKeyFrame string `xml:"AnimateOnlyKeepKeyFrame"`
AnimateTimeIntervalOfFrame string `xml:"AnimateTimeIntervalOfFrame"`
AnimateFramesPerSecond string `xml:"AnimateFramesPerSecond"`
Quality string `xml:"Quality"`
}
// Animation TODO
type Animation struct {
Container *Container `xml:"Container,omitempty"`
Video *AnimationVideo `xml:"Video,omitempty"`
TimeInterval *TimeInterval `xml:"TimeInterval,omitempty"`
}
// HlsEncrypt TODO
type HlsEncrypt struct {
IsHlsEncrypt bool `xml:"IsHlsEncrypt,omitempty"`
UriKey string `xml:"UriKey,omitempty"`
}
// Segment TODO
type Segment struct {
Format string `xml:"Format,omitempty"`
Duration string `xml:"Duration,omitempty"`
HlsEncrypt *HlsEncrypt `xml:"HlsEncrypt,omitempty"`
}
// VideoMontageVideo TODO
type VideoMontageVideo struct {
Codec string `xml:"Codec"`
Width string `xml:"Width"`
Height string `xml:"Height"`
Fps string `xml:"Fps"`
Remove string `xml:"Remove,omitempty"`
Bitrate string `xml:"Bitrate"`
Crf string `xml:"Crf"`
}
// VideoMontage TODO
type VideoMontage struct {
Container *Container `xml:"Container,omitempty"`
Video *VideoMontageVideo `xml:"Video,omitempty"`
Audio *Audio `xml:"Audio,omitempty"`
Duration string `xml:"Duration,omitempty"`
1 year ago
AudioMix *AudioMix `xml:"AudioMix,omitempty"`
2 years ago
}
// AudioConfig TODO
type AudioConfig struct {
Codec string `xml:"Codec"`
Samplerate string `xml:"Samplerate"`
Bitrate string `xml:"Bitrate"`
Channels string `xml:"Channels"`
}
// VoiceSeparate TODO
type VoiceSeparate struct {
AudioMode string `xml:"AudioMode,omitempty"` // IsAudio 人声, IsBackground 背景声, AudioAndBackground 人声和背景声
AudioConfig *AudioConfig `xml:"AudioConfig,omitempty"`
}
// ColorEnhance TODO
type ColorEnhance struct {
Enable string `xml:"Enable"`
Contrast string `xml:"Contrast"`
Correction string `xml:"Correction"`
Saturation string `xml:"Saturation"`
}
// MsSharpen TODO
type MsSharpen struct {
Enable string `xml:"Enable"`
SharpenLevel string `xml:"SharpenLevel"`
}
// VideoProcess TODO
type VideoProcess struct {
ColorEnhance *ColorEnhance `xml:"ColorEnhance,omitempty"`
MsSharpen *MsSharpen `xml:"MsSharpen,omitempty"`
}
// SDRtoHDR TODO
type SDRtoHDR struct {
HdrMode string `xml:"HdrMode,omitempty"` // HLG、HDR10
}
// SuperResolution TODO
type SuperResolution struct {
Resolution string `xml:"Resolution,omitempty"` // sdtohd、hdto4k
EnableScaleUp string `xml:"EnableScaleUp,omitempty"`
Version string `xml:"Version,omitempty"`
}
// DigitalWatermark TODO
type DigitalWatermark struct {
Message string `xml:"Message"`
Type string `xml:"Type"`
Version string `xml:"Version"`
}
// ExtractDigitalWatermark TODO
type ExtractDigitalWatermark struct {
Type string `xml:"Type"`
Version string `xml:"Version"`
}
// VideoTag TODO
type VideoTag struct {
Scenario string `xml:"Scenario,omitempty"`
}
// VideoTagResult TODO
type VideoTagResult struct {
StreamData *VideoTagResultStreamData `xml:"StreamData,omitempty"`
}
// VideoTagResultStreamData TODO
type VideoTagResultStreamData struct {
SubErrCode string `xml:"SubErrCode,omitempty"`
SubErrMsg string `xml:"SubErrMsg,omitempty"`
Data *VideoTagResultStreamDataData `xml:"Data,omitempty"`
}
// VideoTagResultStreamDataData TODO
type VideoTagResultStreamDataData struct {
Tags []VideoTagResultStreamDataDataTags `xml:"Tags,omitempty"`
PersonTags []VideoTagResultStreamDataDataPersonTags `xml:"PersonTags,omitempty"`
PlaceTags []VideoTagResultStreamDataDataPlaceTags `xml:"PlaceTags,omitempty"`
ActionTags []VideoTagResultStreamDataDataActionTags `xml:"ActionTags,omitempty"`
ObjectTags []VideoTagResultStreamDataDataObjectTags `xml:"ObjectTags,omitempty"`
}
// VideoTagResultStreamDataDataTags TODO
type VideoTagResultStreamDataDataTags struct {
Tag string `xml:"Tag,omitempty"`
TagCls string `xml:"TagCls,omitempty"`
Confidence float64 `xml:"Confidence,omitempty"`
}
// VideoTagResultStreamDataDataPersonTags TODO
type VideoTagResultStreamDataDataPersonTags struct {
Name string `xml:"Name,omitempty"`
Confidence float64 `xml:"Confidence,omitempty"`
Count string `xml:"Count,omitempty"`
DetailPerSecond []VideoTagResultStreamDataDataPersonTagsDetailPerSecond `xml:"DetailPerSecond,omitempty"`
}
// VideoTagResultStreamDataDataPersonTagsDetailPerSecond TODO
type VideoTagResultStreamDataDataPersonTagsDetailPerSecond struct {
TimeStamp string `xml:"TimeStamp,omitempty"`
Name string `xml:"Name,omitempty"`
Confidence float64 `xml:"Confidence,omitempty"`
BBox []VideoTagResultStreamDataDataPersonTagsDetailPerSecondBBox `xml:"BBox,omitempty"`
}
// VideoTagResultStreamDataDataPersonTags TODO
type VideoTagResultStreamDataDataPersonTagsDetailPerSecondBBox struct {
X1 string `xml:"X1,omitempty"`
X2 string `xml:"X2,omitempty"`
Y1 string `xml:"Y1,omitempty"`
Y2 string `xml:"Y2,omitempty"`
}
// VideoTagResultStreamDataDataPlaceTags TODO
type VideoTagResultStreamDataDataPlaceTags struct {
Tags []VideoTagResultStreamDataDataTags `xml:"Tags,omitempty"`
ClipFrameResult []string `xml:"ClipFrameResult,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
StartIndex string `xml:"StartIndex,omitempty"`
EndIndex string `xml:"EndIndex,omitempty"`
}
// VideoTagResultStreamDataDataActionTags TODO
type VideoTagResultStreamDataDataActionTags struct {
Tags []VideoTagResultStreamDataDataTags `xml:"Tags,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
}
// VideoTagResultStreamDataDataObjectTags TODO
type VideoTagResultStreamDataDataObjectTags struct {
Objects []VideoTagResultStreamDataDataPersonTagsDetailPerSecond `xml:"Objects,omitempty"`
TimeStamp string `xml:"TimeStamp,omitempty"`
}
// QualityEstimate TODO
type QualityEstimate struct {
Score string `xml:"Score,omitempty"`
2 years ago
}
1 year ago
// QualityEstimate TODO
type QualityEstimateConfig struct {
Rotate string `xml:"Rotate,omitempty"`
}
2 years ago
// MediaResult TODO
type MediaResult struct {
OutputFile struct {
Bucket string `xml:"Bucket,omitempty"`
Md5Info []struct {
Md5 string `xml:"Md5,omitempty"`
ObjectName string `xml:"ObjectName,omitempty"`
} `xml:"Md5Info,omitempty"`
ObjectName []string `xml:"ObjectName,omitempty"`
ObjectPrefix string `xml:"ObjectPrefix,omitempty"`
Region string `xml:"Region,omitempty"`
SpriteOutputFile struct {
Bucket string `xml:"Bucket,omitempty"`
Md5Info []struct {
Md5 string `xml:"Md5,omitempty"`
ObjectName string `xml:"ObjectName,omitempty"`
} `xml:"Md5Info,omitempty"`
ObjectName []string `xml:"ObjectName,omitempty"`
ObjectPrefix string `xml:"ObjectPrefix,omitempty"`
Region string `xml:"Region,omitempty"`
} `xml:"SpriteOutputFile,omitempty"`
} `xml:"OutputFile,omitempty"`
}
// MediaInfo TODO
type MediaInfo struct {
Format struct {
Bitrate string `xml:"Bitrate"`
Duration string `xml:"Duration"`
FormatLongName string `xml:"FormatLongName"`
FormatName string `xml:"FormatName"`
NumProgram string `xml:"NumProgram"`
NumStream string `xml:"NumStream"`
Size string `xml:"Size"`
StartTime string `xml:"StartTime"`
} `xml:"Format"`
Stream struct {
Audio []struct {
Bitrate string `xml:"Bitrate"`
Channel string `xml:"Channel"`
ChannelLayout string `xml:"ChannelLayout"`
CodecLongName string `xml:"CodecLongName"`
CodecName string `xml:"CodecName"`
CodecTag string `xml:"CodecTag"`
CodecTagString string `xml:"CodecTagString"`
CodecTimeBase string `xml:"CodecTimeBase"`
Duration string `xml:"Duration"`
Index string `xml:"Index"`
Language string `xml:"Language"`
SampleFmt string `xml:"SampleFmt"`
SampleRate string `xml:"SampleRate"`
StartTime string `xml:"StartTime"`
Timebase string `xml:"Timebase"`
} `xml:"Audio"`
Subtitle string `xml:"Subtitle"`
Video []struct {
AvgFps string `xml:"AvgFps"`
Bitrate string `xml:"Bitrate"`
CodecLongName string `xml:"CodecLongName"`
CodecName string `xml:"CodecName"`
CodecTag string `xml:"CodecTag"`
CodecTagString string `xml:"CodecTagString"`
CodecTimeBase string `xml:"CodecTimeBase"`
Dar string `xml:"Dar"`
Duration string `xml:"Duration"`
Fps string `xml:"Fps"`
HasBFrame string `xml:"HasBFrame"`
Height string `xml:"Height"`
Index string `xml:"Index"`
Language string `xml:"Language"`
Level string `xml:"Level"`
NumFrames string `xml:"NumFrames"`
PixFormat string `xml:"PixFormat"`
Profile string `xml:"Profile"`
RefFrames string `xml:"RefFrames"`
Rotation string `xml:"Rotation"`
Sar string `xml:"Sar"`
StartTime string `xml:"StartTime"`
Timebase string `xml:"Timebase"`
Width string `xml:"Width"`
ColorRange string `xml:"ColorRange"`
ColorTransfer string `xml:"ColorTransfer"`
ColorPrimaries string `xml:"ColorPrimaries"`
} `xml:"Video"`
} `xml:"Stream"`
}
// PicProcess TODO
type PicProcess struct {
IsPicInfo string `xml:"IsPicInfo,omitempty"`
ProcessRule string `xml:"ProcessRule,omitempty"`
}
// PicProcessResult TODO
type PicProcessResult struct {
UploadResult struct {
OriginalInfo struct {
Key string `xml:"Key"`
Location string `xml:"Location"`
ETag string `xml:"ETag"`
ImageInfo struct {
Format string `xml:"Format"`
Width int32 `xml:"Width"`
Height int32 `xml:"Height"`
Quality int32 `xml:"Quality"`
Ave string `xml:"Ave"`
Orientation int32 `xml:"Orientation"`
} `xml:"ImageInfo"`
} `xml:"OriginalInfo"`
ProcessResults struct {
Object struct {
Key string `xml:"Key"`
Location string `xml:"Location"`
Format string `xml:"Format"`
Width int32 `xml:"Width"`
Height int32 `xml:"Height"`
Size int32 `xml:"Size"`
Quality int32 `xml:"Quality"`
Etag string `xml:"Etag"`
} `xml:"Object"`
} `xml:"ProcessResults"`
} `xml:"UploadResult"`
}
// PicProcessJobOperation TODO
type PicProcessJobOperation struct {
PicProcess *PicProcess `xml:"PicProcess,omitempty"`
PicProcessResult *PicProcessResult `xml:"PicProcessResult,omitempty"`
Output *JobOutput `xml:"Output,omitempty"`
}
// MediaProcessJobOperation TODO
type MediaProcessJobOperation struct {
Tag string `xml:"Tag,omitempty"`
Output *JobOutput `xml:"Output,omitempty"`
MediaResult *MediaResult `xml:"MediaResult,omitempty"`
MediaInfo *MediaInfo `xml:"MediaInfo,omitempty"`
Transcode *Transcode `xml:"Transcode,omitempty"`
Watermark []Watermark `xml:"Watermark,omitempty"`
TemplateId string `xml:"TemplateId,omitempty"`
WatermarkTemplateId []string `xml:"WatermarkTemplateId,omitempty"`
ConcatTemplate *ConcatTemplate `xml:"ConcatTemplate,omitempty"`
Snapshot *Snapshot `xml:"Snapshot,omitempty"`
Animation *Animation `xml:"Animation,omitempty"`
Segment *Segment `xml:"Segment,omitempty"`
VideoMontage *VideoMontage `xml:"VideoMontage,omitempty"`
VoiceSeparate *VoiceSeparate `xml:"VoiceSeparate,omitempty"`
VideoProcess *VideoProcess `xml:"VideoProcess,omitempty"`
TranscodeTemplateId string `xml:"TranscodeTemplateId,omitempty"` // 视频增强、超分、SDRtoHDR任务类型可以选择转码模板相关参数
SDRtoHDR *SDRtoHDR `xml:"SDRtoHDR,omitempty"`
SuperResolution *SuperResolution `xml:"SuperResolution,omitempty"`
DigitalWatermark *DigitalWatermark `xml:"DigitalWatermark,omitempty"`
ExtractDigitalWatermark *ExtractDigitalWatermark `xml:"ExtractDigitalWatermark,omitempty"`
VideoTag *VideoTag `xml:"VideoTag,omitempty"`
VideoTagResult *VideoTagResult `xml:"VideoTagResult,omitempty"`
SmartCover *NodeSmartCover `xml:"SmartCover,omitempty"`
UserData string `xml:"UserData,omitempty"`
JobLevel int `xml:"JobLevel,omitempty"`
QualityEstimate *QualityEstimate `xml:"QualityEstimate,omitempty"`
TtsTpl *TtsTpl `xml:"TtsTpl,omitempty"`
TtsConfig *TtsConfig `xml:"TtsConfig,omitempty"`
Translation *Translation `xml:"Translation,omitempty"`
WordsGeneralize *WordsGeneralize `xml:"WordsGeneralize,omitempty"`
WordsGeneralizeResult *WordsGeneralizeResult `xml:"WordsGeneralizeResult,omitempty"`
1 year ago
QualityEstimateConfig *QualityEstimateConfig `xml:"QualityEstimateConfig,omitempty"`
2 years ago
}
// CreatePicJobsOptions TODO
type CreatePicJobsOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation *PicProcessJobOperation `xml:"Operation,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
CallBack string `xml:"CallBack,omitempty"`
}
// CreateAIJobsOptions TODO
type CreateAIJobsOptions CreateMediaJobsOptions
2 years ago
// CreateMediaJobsOptions TODO
type CreateMediaJobsOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation *MediaProcessJobOperation `xml:"Operation,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
CallBackFormat string `xml:"CallBackFormat,omitempty"`
CallBackType string `xml:"CallBackType,omitempty"`
CallBack string `xml:"CallBack,omitempty"`
CallBackMqConfig *NotifyConfigCallBackMqConfig `xml:"CallBackMqConfig,omitempty"`
}
// NotifyConfigCallBackMqConfig TODO
type NotifyConfigCallBackMqConfig struct {
MqMode string `xml:"MqMode,omitempty"`
MqRegion string `xml:"MqRegion,omitempty"`
MqName string `xml:"MqName,omitempty"`
2 years ago
}
// MediaProcessJobDetail TODO
type MediaProcessJobDetail struct {
Code string `xml:"Code,omitempty"`
Message string `xml:"Message,omitempty"`
JobId string `xml:"JobId,omitempty"`
Tag string `xml:"Tag,omitempty"`
Progress string `xml:"Progress,omitempty"`
State string `xml:"State,omitempty"`
CreationTime string `xml:"CreationTime,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation *MediaProcessJobOperation `xml:"Operation,omitempty"`
}
// CreatePicJobsResult TODO
type CreatePicJobsResult CreateMediaJobsResult
// CreateAIJobsResult TODO
type CreateAIJobsResult CreateMediaJobsResult
2 years ago
// CreateMediaJobsResult TODO
type CreateMediaJobsResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail *MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
}
// CreateMultiMediaJobsOptions TODO
type CreateMultiMediaJobsOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation []MediaProcessJobOperation `xml:"Operation,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
CallBack string `xml:"CallBack,omitempty"`
}
// CreateMultiMediaJobsResult TODO
type CreateMultiMediaJobsResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail []MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
}
// MediaProcessJobsNotifyBody TODO
type MediaProcessJobsNotifyBody struct {
XMLName xml.Name `xml:"Response"`
EventName string `xml:"EventName"`
JobsDetail *MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
2 years ago
}
// WorkflowExecutionNotifyBody TODO
type WorkflowExecutionNotifyBody struct {
XMLName xml.Name `xml:"Response"`
EventName string `xml:"EventName"`
WorkflowExecution struct {
RunId string `xml:"RunId"`
BucketId string `xml:"BucketId"`
Object string `xml:"Object"`
CosHeaders []struct {
Key string `xml:"Key"`
Value string `xml:"Value"`
} `xml:"CosHeaders"`
WorkflowId string `xml:"WorkflowId"`
WorkflowName string `xml:"WorkflowName"`
CreateTime string `xml:"CreateTime"`
State string `xml:"State"`
Tasks []struct {
Type string `xml:"Type"`
CreateTime string `xml:"CreateTime"`
EndTime string `xml:"EndTime"`
State string `xml:"State"`
JobId string `xml:"JobId"`
Name string `xml:"Name"`
TemplateId string `xml:"TemplateId"`
TemplateName string `xml:"TemplateName"`
TranscodeTemplateId string `xml:"TranscodeTemplateId,omitempty"`
TranscodeTemplateName string `xml:"TranscodeTemplateName,omitempty"`
HdrMode string `xml:"HdrMode,omitempty"`
} `xml:"Tasks"`
} `xml:"WorkflowExecution"`
}
// CreateMultiMediaJobs TODO
func (s *CIService) CreateMultiMediaJobs(ctx context.Context, opt *CreateMultiMediaJobsOptions) (*CreateMultiMediaJobsResult, *Response, error) {
var res CreateMultiMediaJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/jobs",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaJobs TODO
func (s *CIService) CreateMediaJobs(ctx context.Context, opt *CreateMediaJobsOptions) (*CreateMediaJobsResult, *Response, error) {
var res CreateMediaJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/jobs",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreatePicProcessJobs TODO
func (s *CIService) CreatePicProcessJobs(ctx context.Context, opt *CreatePicJobsOptions) (*CreatePicJobsResult, *Response, error) {
var res CreatePicJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/pic_jobs",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateAIJobs TODO
func (s *CIService) CreateAIJobs(ctx context.Context, opt *CreateAIJobsOptions) (*CreateAIJobsResult, *Response, error) {
var res CreateAIJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/ai_jobs",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// DescribePicProcessJobResult TODO
type DescribePicProcessJobResult DescribeMediaProcessJobResult
// DescribeAIJobResult TODO
type DescribeAIJobResult DescribeMediaProcessJobResult
2 years ago
// DescribeMediaProcessJobResult TODO
type DescribeMediaProcessJobResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail *MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
NonExistJobIds string `xml:"NonExistJobIds,omitempty"`
}
// DescribeMediaJob TODO
func (s *CIService) DescribeMediaJob(ctx context.Context, jobid string) (*DescribeMediaProcessJobResult, *Response, error) {
var res DescribeMediaProcessJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/jobs/" + jobid,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribePicProcessJob TODO
func (s *CIService) DescribePicProcessJob(ctx context.Context, jobid string) (*DescribePicProcessJobResult, *Response, error) {
var res DescribePicProcessJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/pic_jobs/" + jobid,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeAIJob TODO
func (s *CIService) DescribeAIJob(ctx context.Context, jobid string) (*DescribeAIJobResult, *Response, error) {
var res DescribeAIJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/ai_jobs/" + jobid,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// DescribeMutilMediaProcessJobResult TODO
type DescribeMutilMediaProcessJobResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail []MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
NonExistJobIds []string `xml:"NonExistJobIds,omitempty"`
}
// DescribeMultiMediaJob TODO
func (s *CIService) DescribeMultiMediaJob(ctx context.Context, jobids []string) (*DescribeMutilMediaProcessJobResult, *Response, error) {
jobidsStr := ""
if len(jobids) < 1 {
return nil, nil, errors.New("empty param jobids")
} else {
jobidsStr = strings.Join(jobids, ",")
}
var res DescribeMutilMediaProcessJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/jobs/" + jobidsStr,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeMediaJobsOptions TODO
type DescribeMediaJobsOptions struct {
QueueId string `url:"queueId,omitempty"`
Tag string `url:"tag,omitempty"`
OrderByTime string `url:"orderByTime,omitempty"`
NextToken string `url:"nextToken,omitempty"`
Size int `url:"size,omitempty"`
States string `url:"states,omitempty"`
StartCreationTime string `url:"startCreationTime,omitempty"`
EndCreationTime string `url:"endCreationTime,omitempty"`
WorkflowId string `url:"workflowId,omitempty"`
InventoryTriggerJobId string `url:"inventoryTriggerJobId,omitempty"`
InputObject string `url:"inputObject,omitempty"`
2 years ago
}
// DescribeMediaJobsResult TODO
type DescribeMediaJobsResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail []MediaProcessJobDetail `xml:"JobsDetail,omitempty"`
NextToken string `xml:"NextToken,omitempty"`
}
// DescribeMediaJobs TODO
// https://cloud.tencent.com/document/product/460/48235
func (s *CIService) DescribeMediaJobs(ctx context.Context, opt *DescribeMediaJobsOptions) (*DescribeMediaJobsResult, *Response, error) {
var res DescribeMediaJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/jobs",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribePicProcessQueuesOptions TODO
type DescribePicProcessQueuesOptions DescribeMediaProcessQueuesOptions
// DescribeMediaProcessQueuesOptions TODO
type DescribeMediaProcessQueuesOptions struct {
QueueIds string `url:"queueIds,omitempty"`
State string `url:"state,omitempty"`
PageNumber int `url:"pageNumber,omitempty"`
PageSize int `url:"pageSize,omitempty"`
Category string `url:"category,omitempty"`
2 years ago
}
// DescribePicProcessQueuesResult TODO
type DescribePicProcessQueuesResult DescribeMediaProcessQueuesResult
// DescribeMediaProcessQueuesResult TODO
type DescribeMediaProcessQueuesResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
QueueList []MediaProcessQueue `xml:"QueueList,omitempty"`
NonExistPIDs []string `xml:"NonExistPIDs,omitempty"`
}
// MediaProcessQueue TODO
type MediaProcessQueue struct {
QueueId string `xml:"QueueId,omitempty"`
Name string `xml:"Name,omitempty"`
State string `xml:"State,omitempty"`
MaxSize int `xml:"MaxSize,omitempty"`
MaxConcurrent int `xml:"MaxConcurrent,omitempty"`
UpdateTime string `xml:"UpdateTime,omitempty"`
CreateTime string `xml:"CreateTime,omitempty"`
NotifyConfig *MediaProcessQueueNotifyConfig `xml:"NotifyConfig,omitempty"`
}
// MediaProcessQueueNotifyConfig TODO
type MediaProcessQueueNotifyConfig struct {
Url string `xml:"Url,omitempty"`
State string `xml:"State,omitempty"`
Type string `xml:"Type,omitempty"`
Event string `xml:"Event,omitempty"`
ResultFormat string `xml:"ResultFormat,omitempty"`
MqMode string `xml:"MqMode,omitempty"`
MqRegion string `xml:"MqRegion,omitempty"`
MqName string `xml:"MqName,omitempty"`
2 years ago
}
// DescribeMediaProcessQueues TODO
func (s *CIService) DescribeMediaProcessQueues(ctx context.Context, opt *DescribeMediaProcessQueuesOptions) (*DescribeMediaProcessQueuesResult, *Response, error) {
var res DescribeMediaProcessQueuesResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/queue",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribePicProcessQueues TODO
func (s *CIService) DescribePicProcessQueues(ctx context.Context, opt *DescribePicProcessQueuesOptions) (*DescribePicProcessQueuesResult, *Response, error) {
var res DescribePicProcessQueuesResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/picqueue",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeAIProcessQueues TODO
func (s *CIService) DescribeAIProcessQueues(ctx context.Context, opt *DescribeMediaProcessQueuesOptions) (*DescribeMediaProcessQueuesResult, *Response, error) {
var res DescribeMediaProcessQueuesResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/ai_queue",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeASRQueues TODO
func (s *CIService) DescribeASRProcessQueues(ctx context.Context, opt *DescribeMediaProcessQueuesOptions) (*DescribeMediaProcessQueuesResult, *Response, error) {
var res DescribeMediaProcessQueuesResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/asrqueue",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// UpdateMediaProcessQueueOptions TODO
type UpdateMediaProcessQueueOptions struct {
XMLName xml.Name `xml:"Request"`
Name string `xml:"Name,omitempty"`
QueueID string `xml:"QueueID,omitempty"`
State string `xml:"State,omitempty"`
NotifyConfig *MediaProcessQueueNotifyConfig `xml:"NotifyConfig,omitempty"`
}
// UpdateMediaProcessQueueResult TODO
type UpdateMediaProcessQueueResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId"`
Queue *MediaProcessQueue `xml:"Queue"`
}
// UpdateMediaProcessQueue TODO
func (s *CIService) UpdateMediaProcessQueue(ctx context.Context, opt *UpdateMediaProcessQueueOptions) (*UpdateMediaProcessQueueResult, *Response, error) {
var res UpdateMediaProcessQueueResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/queue/" + opt.QueueID,
body: opt,
method: http.MethodPut,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribePicProcessBucketsOptions TODO
type DescribePicProcessBucketsOptions DescribeMediaProcessBucketsOptions
// DescribeAIProcessBucketsOptions TODO
type DescribeAIProcessBucketsOptions DescribeMediaProcessBucketsOptions
// DescribeASRProcessBucketsOptions TODO
type DescribeASRProcessBucketsOptions DescribeMediaProcessBucketsOptions
2 years ago
// DescribeMediaProcessBucketsOptions TODO
type DescribeMediaProcessBucketsOptions struct {
Regions string `url:"regions,omitempty"`
BucketNames string `url:"bucketNames,omitempty"`
BucketName string `url:"bucketName,omitempty"`
PageNumber int `url:"pageNumber,omitempty"`
PageSize int `url:"pageSize,omitempty"`
}
// DescribeMediaProcessBucketsResult TODO
type DescribeMediaProcessBucketsResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
MediaBucketList []MediaProcessBucket `xml:"MediaBucketList,omitempty"`
}
// DescribeMediaProcessBucketsResult TODO
type DescribePicProcessBucketsResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
MediaBucketList []MediaProcessBucket `xml:"PicBucketList,omitempty"`
}
// DescribeMediaProcessBucketsResult TODO
type DescribeAIProcessBucketsResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
MediaBucketList []MediaProcessBucket `xml:"AiBucketList,omitempty"`
}
// DescribeMediaProcessBucketsResult TODO
type DescribeASRProcessBucketsResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
MediaBucketList []MediaProcessBucket `xml:"AsrBucketList,omitempty"`
}
2 years ago
// MediaProcessBucket TODO
type MediaProcessBucket struct {
Name string `xml:"Name,omitempty"`
2 years ago
BucketId string `xml:"BucketId,omitempty"`
Region string `xml:"Region,omitempty"`
CreateTime string `xml:"CreateTime,omitempty"`
}
// DescribeMediaProcessBuckets TODO
// 媒体bucket接口 https://cloud.tencent.com/document/product/436/48988
func (s *CIService) DescribeMediaProcessBuckets(ctx context.Context, opt *DescribeMediaProcessBucketsOptions) (*DescribeMediaProcessBucketsResult, *Response, error) {
var res DescribeMediaProcessBucketsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/mediabucket",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribePicProcessBuckets TODO
func (s *CIService) DescribePicProcessBuckets(ctx context.Context, opt *DescribePicProcessBucketsOptions) (*DescribePicProcessBucketsResult, *Response, error) {
var res DescribePicProcessBucketsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/picbucket",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeAIProcessBuckets TODO
func (s *CIService) DescribeAIProcessBuckets(ctx context.Context, opt *DescribeAIProcessBucketsOptions) (*DescribeAIProcessBucketsResult, *Response, error) {
var res DescribeAIProcessBucketsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/ai_bucket",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeASRProcessBuckets TODO
func (s *CIService) DescribeASRProcessBuckets(ctx context.Context, opt *DescribeASRProcessBucketsOptions) (*DescribeASRProcessBucketsResult, *Response, error) {
var res DescribeASRProcessBucketsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/asrbucket",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// GetMediaInfoResult TODO
type GetMediaInfoResult struct {
XMLName xml.Name `xml:"Response"`
MediaInfo *MediaInfo `xml:"MediaInfo"`
}
// GetMediaInfo TODO
// 媒体信息接口 https://cloud.tencent.com/document/product/436/55672
func (s *CIService) GetMediaInfo(ctx context.Context, name string, opt *ObjectGetOptions, id ...string) (*GetMediaInfoResult, *Response, error) {
var u string
if len(id) == 1 {
u = fmt.Sprintf("/%s?versionId=%s&ci-process=videoinfo", encodeURIComponent(name), id[0])
} else if len(id) == 0 {
u = fmt.Sprintf("/%s?ci-process=videoinfo", encodeURIComponent(name))
} else {
return nil, nil, fmt.Errorf("wrong params")
}
var res GetMediaInfoResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.BucketURL,
uri: u,
method: http.MethodGet,
optQuery: opt,
optHeader: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// GenerateMediaInfoOptions TODO
type GenerateMediaInfoOptions struct {
XMLName xml.Name `xml:"Request"`
Input *JobInput `xml:"Input,omitempty"`
}
// GenerateMediaInfo TODO
// 生成媒体信息接口,支持大文件,耗时较大请求
func (s *CIService) GenerateMediaInfo(ctx context.Context, opt *GenerateMediaInfoOptions) (*GetMediaInfoResult, *Response, error) {
var res GetMediaInfoResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/mediainfo",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// GetSnapshotOptions TODO
type GetSnapshotOptions struct {
Time float32 `url:"time,omitempty"`
Height int `url:"height,omitempty"`
Width int `url:"width,omitempty"`
Format string `url:"format,omitempty"`
Rotate string `url:"rotate,omitempty"`
Mode string `url:"mode,omitempty"`
}
// GetSnapshot TODO
// 媒体截图接口 https://cloud.tencent.com/document/product/436/55671
func (s *CIService) GetSnapshot(ctx context.Context, name string, opt *GetSnapshotOptions, id ...string) (*Response, error) {
var u string
if len(id) == 1 {
u = fmt.Sprintf("/%s?versionId=%s&ci-process=snapshot", encodeURIComponent(name), id[0])
} else if len(id) == 0 {
u = fmt.Sprintf("/%s?ci-process=snapshot", encodeURIComponent(name))
} else {
return nil, fmt.Errorf("wrong params")
}
sendOpt := sendOptions{
baseURL: s.client.BaseURL.BucketURL,
uri: u,
method: http.MethodGet,
optQuery: opt,
disableCloseBody: true,
}
resp, err := s.client.send(ctx, &sendOpt)
return resp, err
}
type PostSnapshotOptions struct {
XMLName xml.Name `xml:"Request"`
Input *JobInput `xml:"Input,omitempty"`
Time string `xml:"Time,omitempty"`
Width int `xml:"Width,omitempty"`
Height int `xml:"Height,omitempty"`
Mode string `xml:"Mode,omitempty"`
Rotate string `xml:"Rotate,omitempty"`
Format string `xml:"Format,omitempty"`
Output *JobOutput `xml:"Output,omitempty"`
}
type PostSnapshotResult struct {
XMLName xml.Name `xml:"Response"`
Output *JobOutput `xml:"Output, omitempty"`
}
// PostSnapshot
// https://cloud.tencent.com/document/product/460/73407
// upload snapshot image to cos
func (s *CIService) PostSnapshot(ctx context.Context, opt *PostSnapshotOptions) (*PostSnapshotResult, *Response, error) {
var res PostSnapshotResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/snapshot",
body: opt,
method: http.MethodPost,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// GetPrivateM3U8Options TODO
type GetPrivateM3U8Options struct {
Expires int `url:"expires"`
}
// GetPrivateM3U8 TODO
// 获取私有m3u8资源接口 https://cloud.tencent.com/document/product/460/63738
func (s *CIService) GetPrivateM3U8(ctx context.Context, name string, opt *GetPrivateM3U8Options, id ...string) (*Response, error) {
var u string
if len(id) == 1 {
u = fmt.Sprintf("/%s?versionId=%s&ci-process=pm3u8", encodeURIComponent(name), id[0])
} else if len(id) == 0 {
u = fmt.Sprintf("/%s?ci-process=pm3u8", encodeURIComponent(name))
} else {
return nil, fmt.Errorf("wrong params")
}
sendOpt := sendOptions{
baseURL: s.client.BaseURL.BucketURL,
uri: u,
method: http.MethodGet,
optQuery: opt,
disableCloseBody: true,
}
resp, err := s.client.send(ctx, &sendOpt)
return resp, err
}
// TriggerWorkflowOptions TODO
type TriggerWorkflowOptions struct {
WorkflowId string `url:"workflowId"`
Object string `url:"object"`
}
// TriggerWorkflowResult TODO
type TriggerWorkflowResult struct {
XMLName xml.Name `xml:"Response"`
InstanceId string `xml:"InstanceId"`
RequestId string `xml:"RequestId"`
}
// TriggerWorkflow TODO
// 单文件触发工作流 https://cloud.tencent.com/document/product/460/54640
func (s *CIService) TriggerWorkflow(ctx context.Context, opt *TriggerWorkflowOptions) (*TriggerWorkflowResult, *Response, error) {
var res TriggerWorkflowResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/triggerworkflow",
optQuery: opt,
method: http.MethodPost,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeWorkflowExecutionsOptions TODO
type DescribeWorkflowExecutionsOptions struct {
WorkflowId string `url:"workflowId,omitempty"`
Name string `url:"Name,omitempty"`
OrderByTime string `url:"orderByTime,omitempty"`
NextToken string `url:"nextToken,omitempty"`
Size int `url:"size,omitempty"`
States string `url:"states,omitempty"`
StartCreationTime string `url:"startCreationTime,omitempty"`
EndCreationTime string `url:"endCreationTime,omitempty"`
}
// WorkflowExecutionList TODO
type WorkflowExecutionList struct {
RunId string `xml:"RunId,omitempty"`
WorkflowId string `xml:"WorkflowId,omitempty"`
State string `xml:"State,omitempty"`
CreationTime string `xml:"CreationTime,omitempty"`
Object string `xml:"Object,omitempty"`
}
// DescribeWorkflowExecutionsResult TODO
type DescribeWorkflowExecutionsResult struct {
XMLName xml.Name `xml:"Response"`
WorkflowExecutionList []WorkflowExecutionList `xml:"WorkflowExecutionList,omitempty"`
NextToken string `xml:"NextToken,omitempty"`
}
// DescribeWorkflowExecutions TODO
// 获取工作流实例列表 https://cloud.tencent.com/document/product/460/45950
func (s *CIService) DescribeWorkflowExecutions(ctx context.Context, opt *DescribeWorkflowExecutionsOptions) (*DescribeWorkflowExecutionsResult, *Response, error) {
var res DescribeWorkflowExecutionsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflowexecution",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// NotifyConfig TODO
type NotifyConfig struct {
URL string `xml:"Url,omitempty"`
Event string `xml:"Event,omitempty"`
Type string `xml:"Type,omitempty"`
ResultFormat string `xml:"ResultFormat,omitempty"`
}
// ExtFilter TODO
type ExtFilter struct {
State string `xml:"State,omitempty"`
Audio string `xml:"Audio,omitempty"`
Custom string `xml:"Custom,omitempty"`
CustomExts string `xml:"CustomExts,omitempty"`
AllFile string `xml:"AllFile,omitempty"`
}
// NodeInput TODO
type NodeInput struct {
QueueId string `xml:"QueueId,omitempty"`
ObjectPrefix string `xml:"ObjectPrefix,omitempty"`
NotifyConfig *NotifyConfig `xml:"NotifyConfig,omitempty" json:"NotifyConfig,omitempty"`
ExtFilter *ExtFilter `xml:"ExtFilter,omitempty" json:"ExtFilter,omitempty"`
}
// NodeOutput TODO
type NodeOutput struct {
Region string `xml:"Region,omitempty"`
Bucket string `xml:"Bucket,omitempty"`
Object string `xml:"Object,omitempty"`
AuObject string `xml:"AuObject,omitempty"`
SpriteObject string `xml:"SpriteObject,omitempty"`
}
// DelogoParam TODO
type DelogoParam struct {
Switch string `xml:"Switch,omitempty"`
Dx string `xml:"Dx,omitempty"`
Dy string `xml:"Dy,omitempty"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
}
// NodeSDRtoHDR TODO
type NodeSDRtoHDR struct {
HdrMode string `xml:"HdrMode,omitempty"`
}
// NodeSCF TODO
type NodeSCF struct {
Region string `xml:"Region,omitempty"`
FunctionName string `xml:"FunctionName,omitempty"`
Namespace string `xml:"Namespace,omitempty"`
}
// VideoStreamConfig TODO
type VideoStreamConfig struct {
VideoStreamName string `xml:"VideoStreamName,omitempty"`
BandWidth string `xml:"BandWidth,omitempty"`
}
// NodeHlsPackInfo TODO
type NodeHlsPackInfo struct {
VideoStreamConfig []VideoStreamConfig `xml:"VideoStreamConfig,omitempty"`
}
// NodeSmartCover TODO
type NodeSmartCover struct {
Format string `xml:"Format,omitempty"`
Width string `xml:"Width,omitempty"`
Height string `xml:"Height,omitempty"`
Count string `xml:"Count,omitempty"`
DeleteDuplicates string `xml:"DeleteDuplicates,omitempty"`
}
// NodeSegmentConfig TODO
type NodeSegmentConfig struct {
Format string `xml:"Format,omitempty"`
Duration string `xml:"Duration,omitempty"`
}
// NodeStreamPackConfigInfo TODO
type NodeStreamPackConfigInfo struct {
PackType string `xml:"PackType,omitempty"`
IgnoreFailedStream bool `xml:"IgnoreFailedStream,omitempty"`
ReserveAllStreamNode string `xml:"ReserveAllStreamNode,omitempty"`
}
// NodeOperation TODO
type NodeOperation struct {
TemplateId string `xml:"TemplateId,omitempty" json:"TemplateId,omitempty"`
Output *NodeOutput `xml:"Output,omitempty" json:"Output,omitempty"`
WatermarkTemplateId []string `xml:"WatermarkTemplateId,omitempty" json:"WatermarkTemplateId,omitempty"`
DelogoParam *DelogoParam `xml:"DelogoParam,omitempty" json:"DelogoParam,omitempty"`
SDRtoHDR *NodeSDRtoHDR `xml:"SDRtoHDR,omitempty" json:"SDRtoHDR,omitempty"`
SCF *NodeSCF `xml:"SCF,omitempty" json:"SCF,omitempty"`
HlsPackInfo *NodeHlsPackInfo `xml:"HlsPackInfo,omitempty" json:"HlsPackInfo,omitempty"`
TranscodeTemplateId string `xml:"TranscodeTemplateId,omitempty" json:"TranscodeTemplateId,omitempty"`
SmartCover *NodeSmartCover `xml:"SmartCover,omitempty" json:"SmartCover,omitempty"`
SegmentConfig *NodeSegmentConfig `xml:"SegmentConfig,omitempty" json:"SegmentConfig,omitempty"`
DigitalWatermark *DigitalWatermark `xml:"DigitalWatermark,omitempty" json:"DigitalWatermark,omitempty"`
StreamPackConfigInfo *NodeStreamPackConfigInfo `xml:"StreamPackConfigInfo,omitempty" json:"StreamPackConfigInfo,omitempty"`
StreamPackInfo *NodeHlsPackInfo `xml:"StreamPackInfo,omitempty" json:"StreamPackInfo,omitempty"`
}
// Node TODO
type Node struct {
Type string `xml:"Type"`
Input *NodeInput `xml:"Input,omitempty" json:"Input,omitempty"`
Operation *NodeOperation `xml:"Operation,omitempty" json:"Operation,omitempty"`
}
// Topology TODO
type Topology struct {
Dependencies map[string]string `json:"Dependencies,omitempty"`
Nodes map[string]Node `json:"Nodes,omitempty"`
}
// UnmarshalXML TODO
func (m *Topology) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
var v struct {
XMLName xml.Name //`xml:"Topology"`
Dependencies struct {
Inner []byte `xml:",innerxml"`
} `xml:"Dependencies"`
Nodes struct {
Inner []byte `xml:",innerxml"`
} `xml:"Nodes"`
}
err := d.DecodeElement(&v, &start)
if err != nil {
return err
}
myMap := make(map[string]interface{})
// ... do the mxj magic here ... -
temp := v.Nodes.Inner
prefix := "<Nodes>"
postfix := "</Nodes>"
str := prefix + string(temp) + postfix
//fmt.Println(str)
myMxjMap, _ := mxj.NewMapXml([]byte(str))
myMap, _ = myMxjMap["Nodes"].(map[string]interface{})
nodesMap := make(map[string]Node)
for k, v := range myMap {
var node Node
mapstructure.Decode(v, &node)
nodesMap[k] = node
}
// fill myMap
m.Nodes = nodesMap
deps := make(map[string]interface{})
tep := "<Dependencies>" + string(v.Dependencies.Inner) + "</Dependencies>"
tepMxjMap, _ := mxj.NewMapXml([]byte(tep))
deps, _ = tepMxjMap["Dependencies"].(map[string]interface{})
depsString := make(map[string]string)
for k, v := range deps {
depsString[k] = v.(string)
}
m.Dependencies = depsString
return nil
}
// WorkflowExecution TODO
type WorkflowExecution struct {
RunId string `xml:"RunId,omitempty" json:"RunId,omitempty"`
WorkflowId string `xml:"WorkflowId,omitempty" json:"WorkflowId,omitempty"`
WorkflowName string `xml:"WorkflowName,omitempty" json:"WorkflowName,omitempty"`
State string `xml:"State,omitempty" json:"State,omitempty"`
CreateTime string `xml:"CreateTime,omitempty" json:"CreateTime,omitempty"`
Object string `xml:"Object,omitempty" json:"Object,omitempty"`
Topology Topology `xml:"Topology,omitempty" json:"Topology,omitempty"`
}
// DescribeWorkflowExecutionResult TODO
type DescribeWorkflowExecutionResult struct {
XMLName xml.Name `xml:"Response"`
WorkflowExecution []WorkflowExecution `xml:"WorkflowExecution,omitempty" json:"WorkflowExecution,omitempty"`
NextToken string `xml:"NextToken,omitempty" json:"NextToken,omitempty"`
}
// DescribeWorkflowExecution TODO
// 获取工作流实例详情 https://cloud.tencent.com/document/product/460/45949
func (s *CIService) DescribeWorkflowExecution(ctx context.Context, runId string) (*DescribeWorkflowExecutionResult, *Response, error) {
var res DescribeWorkflowExecutionResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflowexecution/" + runId,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// SpeechRecognition TODO
type SpeechRecognition struct {
ChannelNum string `xml:"ChannelNum,omitempty"`
ConvertNumMode string `xml:"ConvertNumMode,omitempty"`
EngineModelType string `xml:"EngineModelType,omitempty"`
FilterDirty string `xml:"FilterDirty,omitempty"`
FilterModal string `xml:"FilterModal,omitempty"`
ResTextFormat string `xml:"ResTextFormat,omitempty"`
SpeakerDiarization string `xml:"SpeakerDiarization,omitempty"`
SpeakerNumber string `xml:"SpeakerNumber,omitempty"`
FilterPunc string `xml:"FilterPunc,omitempty"`
OutputFileType string `xml:"OutputFileType,omitempty"`
2 years ago
}
// SpeechRecognitionResult TODO
type SpeechRecognitionResult struct {
AudioTime float64 `xml:"AudioTime,omitempty"`
Result []string `xml:"Result,omitempty"`
}
// ASRJobOperation TODO
type ASRJobOperation struct {
Tag string `xml:"Tag,omitempty"`
Output *JobOutput `xml:"Output,omitempty"`
SpeechRecognition *SpeechRecognition `xml:"SpeechRecognition,omitempty"`
SpeechRecognitionResult *SpeechRecognitionResult `xml:"SpeechRecognitionResult,omitempty"`
}
// CreateASRJobsOptions TODO
type CreateASRJobsOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation *ASRJobOperation `xml:"Operation,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
CallBack string `xml:"CallBack,omitempty"`
}
// ASRJobDetail TODO
type ASRJobDetail struct {
Code string `xml:"Code,omitempty"`
Message string `xml:"Message,omitempty"`
JobId string `xml:"JobId,omitempty"`
Tag string `xml:"Tag,omitempty"`
State string `xml:"State,omitempty"`
CreationTime string `xml:"CreationTime,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
Input *JobInput `xml:"Input,omitempty"`
Operation *ASRJobOperation `xml:"Operation,omitempty"`
}
// CreateASRJobsResult TODO
type CreateASRJobsResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail *ASRJobDetail `xml:"JobsDetail,omitempty"`
}
// CreateASRJobs TODO
func (s *CIService) CreateASRJobs(ctx context.Context, opt *CreateASRJobsOptions) (*CreateASRJobsResult, *Response, error) {
var res CreateASRJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/asr_jobs",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeMutilASRJobResult TODO
type DescribeMutilASRJobResult struct {
XMLName xml.Name `xml:"Response"`
JobsDetail []ASRJobDetail `xml:"JobsDetail,omitempty"`
NonExistJobIds []string `xml:"NonExistJobIds,omitempty"`
}
// DescribeMultiASRJob TODO
func (s *CIService) DescribeMultiASRJob(ctx context.Context, jobids []string) (*DescribeMutilASRJobResult, *Response, error) {
jobidsStr := ""
if len(jobids) < 1 {
return nil, nil, errors.New("empty param jobids")
} else {
jobidsStr = strings.Join(jobids, ",")
}
var res DescribeMutilASRJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/asr_jobs/" + jobidsStr,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeMediaTemplateOptions TODO
type DescribeMediaTemplateOptions struct {
Tag string `url:"tag,omitempty"`
Category string `url:"category,omitempty"`
Ids string `url:"ids,omitempty"`
Name string `url:"name,omitempty"`
PageNumber int `url:"pageNumber,omitempty"`
PageSize int `url:"pageSize,omitempty"`
}
// DescribeMediaTemplateResult TODO
type DescribeMediaTemplateResult struct {
XMLName xml.Name `xml:"Response"`
TemplateList []Template `xml:"TemplateList,omitempty"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
}
// DescribeMediaTemplate 搜索模板
func (s *CIService) DescribeMediaTemplate(ctx context.Context, opt *DescribeMediaTemplateOptions) (*DescribeMediaTemplateResult, *Response, error) {
var res DescribeMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DeleteMediaTemplateResult TODO
type DeleteMediaTemplateResult struct {
RequestId string `xml:"RequestId,omitempty"`
TemplateId string `xml:"TemplateId,omitempty"`
}
// DeleteMediaTemplate TODO
func (s *CIService) DeleteMediaTemplate(ctx context.Context, tempalteId string) (*DeleteMediaTemplateResult, *Response, error) {
var res DeleteMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + tempalteId,
method: http.MethodDelete,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaSnapshotTemplateOptions TODO
type CreateMediaSnapshotTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Snapshot *Snapshot `xml:"Snapshot,omitempty"`
}
// CreateMediaTranscodeTemplateOptions TODO
type CreateMediaTranscodeTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Container *Container `xml:"Container,omitempty"`
Video *Video `xml:"Video,omitempty"`
Audio *Audio `xml:"Audio,omitempty"`
TimeInterval *TimeInterval `xml:"TimeInterval,omitempty"`
TransConfig *TransConfig `xml:"TransConfig,omitempty"`
1 year ago
AudioMix *AudioMix `xml:"AudioMix,omitempty"`
2 years ago
}
// CreateMediaAnimationTemplateOptions TODO
type CreateMediaAnimationTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Container *Container `xml:"Container,omitempty"`
Video *AnimationVideo `xml:"Video,omitempty"`
TimeInterval *TimeInterval `xml:"TimeInterval,omitempty"`
}
// CreateMediaConcatTemplateOptions TODO
type CreateMediaConcatTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
ConcatTemplate *ConcatTemplate `xml:"ConcatTemplate,omitempty"`
}
// CreateMediaVideoProcessTemplateOptions TODO
type CreateMediaVideoProcessTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
ColorEnhance *ColorEnhance `xml:"ColorEnhance,omitempty"`
MsSharpen *MsSharpen `xml:"MsSharpen,omitempty"`
}
// CreateMediaVideoMontageTemplateOptions TODO
type CreateMediaVideoMontageTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Duration string `xml:"Duration,omitempty"`
Container *Container `xml:"Container,omitempty"`
Video *Video `xml:"Video,omitempty"`
Audio *Audio `xml:"Audio,omitempty"`
1 year ago
AudioMix *AudioMix `xml:"AudioMix,omitempty"`
2 years ago
}
// CreateMediaVoiceSeparateTemplateOptions TODO
type CreateMediaVoiceSeparateTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
AudioMode string `xml:"AudioMode,omitempty"`
AudioConfig *AudioConfig `xml:"AudioConfig,omitempty"`
}
// CreateMediaSuperResolutionTemplateOptions TODO
type CreateMediaSuperResolutionTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Resolution string `xml:"Resolution,omitempty"` // sdtohd、hdto4k
EnableScaleUp string `xml:"EnableScaleUp,omitempty"`
Version string `xml:"Version,omitempty"`
}
// CreateMediaPicProcessTemplateOptions TODO
type CreateMediaPicProcessTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
PicProcess *PicProcess `xml:"PicProcess,omitempty"`
}
// CreateMediaWatermarkTemplateOptions TODO
type CreateMediaWatermarkTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Watermark *Watermark `xml:"Watermark,omitempty"`
}
// CreateMediaTranscodeProTemplateOptions TODO
type CreateMediaTranscodeProTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Container *Container `xml:"Container,omitempty"`
Video *TranscodeProVideo `xml:"Video,omitempty"`
Audio *TranscodeProAudio `xml:"Audio,omitempty"`
TimeInterval *TimeInterval `xml:"TimeInterval,omitempty"`
TransConfig *TransConfig `xml:"TransConfig,omitempty"`
}
// CreateMediaTtsTemplateOptions TODO
type CreateMediaTtsTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
Mode string `xml:"Mode,omitempty"`
Codec string `xml:"Codec,omitempty"`
VoiceType string `xml:"VoiceType,omitempty"`
Volume string `xml:"Volume,omitempty"`
Speed string `xml:"Speed,omitempty"`
}
// CreateMediaSmartcoverTemplateOptions TODO
type CreateMediaSmartCoverTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
SmartCover *NodeSmartCover `xml:"SmartCover,omitempty" json:"SmartCover,omitempty"`
}
// CreateMediaSpeechRecognitionTemplateOptions TODO
type CreateMediaSpeechRecognitionTemplateOptions struct {
XMLName xml.Name `xml:"Request"`
Tag string `xml:"Tag,omitempty"`
Name string `xml:"Name,omitempty"`
SpeechRecognition *SpeechRecognition `xml:"SpeechRecognition,omitempty" json:"SpeechRecognition,omitempty"`
}
2 years ago
// CreateMediaTemplateResult TODO
type CreateMediaTemplateResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
Template *Template `xml:"Template,omitempty"`
}
// Template TODO
type Template struct {
TemplateId string `xml:"TemplateId,omitempty"`
Tag string `xml:"Code,omitempty"`
Name string `xml:"Name,omitempty"`
TransTpl *Transcode `xml:"TransTpl,omitempty"`
CreateTime string `xml:"CreateTime,omitempty"`
UpdateTime string `xml:"UpdateTime,omitempty"`
BucketId string `xml:"BucketId,omitempty"`
Category string `xml:"Category,omitempty"`
Snapshot *Snapshot `xml:"Snapshot,omitempty"`
Animation *Animation `xml:"Animation,omitempty"`
ConcatTemplate *ConcatTemplate `xml:"ConcatTemplate,omitempty"`
VideoProcess *VideoProcess `xml:"VideoProcess,omitempty"`
VideoMontage *VideoMontage `xml:"VideoMontage,omitempty"`
VoiceSeparate *VoiceSeparate `xml:"VoiceSeparate,omitempty"`
SuperResolution *SuperResolution `xml:"SuperResolution,omitempty"`
PicProcess *PicProcess `xml:"PicProcess,omitempty"`
Watermark *Watermark `xml:"Watermark,omitempty"`
TransProTpl *Transcode `xml:"TransProTpl,omitempty"`
TtsTpl *TtsTpl `xml:"TtsTpl,omitempty"`
SmartCover *NodeSmartCover `xml:"SmartCover,omitempty" json:"SmartCover,omitempty"`
SpeechRecognition *SpeechRecognition `xml:"SpeechRecognition,omitempty" json:"SpeechRecognition,omitempty"`
2 years ago
}
// CreateMediaSnapshotTemplate 创建截图模板
func (s *CIService) CreateMediaSnapshotTemplate(ctx context.Context, opt *CreateMediaSnapshotTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaSnapshotTemplate 更新截图模板
func (s *CIService) UpdateMediaSnapshotTemplate(ctx context.Context, opt *CreateMediaSnapshotTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaTranscodeTemplate Options 创建转码模板
func (s *CIService) CreateMediaTranscodeTemplate(ctx context.Context, opt *CreateMediaTranscodeTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaTranscodeTemplate 更新转码模板
func (s *CIService) UpdateMediaTranscodeTemplate(ctx context.Context, opt *CreateMediaTranscodeTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaAnimationTemplate 创建动图模板
func (s *CIService) CreateMediaAnimationTemplate(ctx context.Context, opt *CreateMediaAnimationTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaAnimationTemplate 更新动图模板
func (s *CIService) UpdateMediaAnimationTemplate(ctx context.Context, opt *CreateMediaAnimationTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaConcatTemplate 创建拼接模板
func (s *CIService) CreateMediaConcatTemplate(ctx context.Context, opt *CreateMediaConcatTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaConcatTemplate 更新拼接模板
func (s *CIService) UpdateMediaConcatTemplate(ctx context.Context, opt *CreateMediaConcatTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaVideoProcessTemplate 创建视频增强模板
func (s *CIService) CreateMediaVideoProcessTemplate(ctx context.Context, opt *CreateMediaVideoProcessTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaVideoProcessTemplate 更新视频增强模板
func (s *CIService) UpdateMediaVideoProcessTemplate(ctx context.Context, opt *CreateMediaVideoProcessTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaVideoMontageTemplate 创建精彩集锦模板
func (s *CIService) CreateMediaVideoMontageTemplate(ctx context.Context, opt *CreateMediaVideoMontageTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaVideoMontageTemplate 更新精彩集锦模板
func (s *CIService) UpdateMediaVideoMontageTemplate(ctx context.Context, opt *CreateMediaVideoMontageTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaVoiceSeparateTemplate 创建人声分离模板
func (s *CIService) CreateMediaVoiceSeparateTemplate(ctx context.Context, opt *CreateMediaVoiceSeparateTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaVoiceSeparateTemplate 更新人声分离模板
func (s *CIService) UpdateMediaVoiceSeparateTemplate(ctx context.Context, opt *CreateMediaVoiceSeparateTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaSuperResolutionTemplate 创建超级分辨率模板
func (s *CIService) CreateMediaSuperResolutionTemplate(ctx context.Context, opt *CreateMediaSuperResolutionTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaSuperResolutionTemplate 更新超级分辨率模板
func (s *CIService) UpdateMediaSuperResolutionTemplate(ctx context.Context, opt *CreateMediaSuperResolutionTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaPicProcessTemplate 创建图片处理模板
func (s *CIService) CreateMediaPicProcessTemplate(ctx context.Context, opt *CreateMediaPicProcessTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaPicProcessTemplate 更新图片处理模板
func (s *CIService) UpdateMediaPicProcessTemplate(ctx context.Context, opt *CreateMediaPicProcessTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaWatermarkTemplate 创建水印模板
func (s *CIService) CreateMediaWatermarkTemplate(ctx context.Context, opt *CreateMediaWatermarkTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaWatermarkTemplate 更新水印模板
func (s *CIService) UpdateMediaWatermarkTemplate(ctx context.Context, opt *CreateMediaWatermarkTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaTranscodeProTemplate 创建广电转码模板
func (s *CIService) CreateMediaTranscodeProTemplate(ctx context.Context, opt *CreateMediaTranscodeProTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaTranscodeProTemplate 更新广电转码模板
func (s *CIService) UpdateMediaTranscodeProTemplate(ctx context.Context, opt *CreateMediaTranscodeProTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaTtsTemplate 创建语音合成模板
func (s *CIService) CreateMediaTtsTemplate(ctx context.Context, opt *CreateMediaTtsTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaTtsTemplate 更新语音合成模板
func (s *CIService) UpdateMediaTtsTemplate(ctx context.Context, opt *CreateMediaTtsTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaTtsTemplate 创建智能封面模板
func (s *CIService) CreateMediaSmartCoverTemplate(ctx context.Context, opt *CreateMediaSmartCoverTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaTtsTemplate 更新智能封面模板
func (s *CIService) UpdateMediaSmartCoverTemplate(ctx context.Context, opt *CreateMediaSmartCoverTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CreateMediaTtsTemplate 创建语音识别模板
func (s *CIService) CreateMediaSpeechRecognitionTemplate(ctx context.Context, opt *CreateMediaSpeechRecognitionTemplateOptions) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaTtsTemplate 更新语音识别模板
func (s *CIService) UpdateMediaSpeechRecognitionTemplate(ctx context.Context, opt *CreateMediaSpeechRecognitionTemplateOptions, templateId string) (*CreateMediaTemplateResult, *Response, error) {
var res CreateMediaTemplateResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/template/" + templateId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
2 years ago
// MediaWorkflow TODO
type MediaWorkflow struct {
Name string `xml:"Name,omitempty"`
WorkflowId string `xml:"WorkflowId,omitempty"`
State string `xml:"State,omitempty"`
Topology *Topology `xml:"Topology,omitempty"`
CreateTime string `xml:"CreateTime,omitempty"`
UpdateTime string `xml:"UpdateTime,omitempty"`
BucketId string `xml:"BucketId,omitempty"`
}
// MarshalXML TODO
func (m *CreateMediaWorkflowOptions) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if m == nil {
return nil
}
type xmlMapEntry struct {
XMLName xml.Name
Type string `xml:"Type"`
Input interface{} `xml:",innerxml"`
Operation interface{} `xml:",innerxml"`
}
tokens := []xml.Token{}
tokens = append(tokens, xml.StartElement{Name: xml.Name{Local: "Request"}})
tokens = append(tokens, xml.StartElement{Name: xml.Name{Local: "MediaWorkflow"}})
t := xml.StartElement{Name: xml.Name{Local: "Name"}}
tokens = append(tokens, t, xml.CharData(m.MediaWorkflow.Name), xml.EndElement{Name: t.Name})
t = xml.StartElement{Name: xml.Name{Local: "State"}}
tokens = append(tokens, t, xml.CharData(m.MediaWorkflow.State), xml.EndElement{Name: t.Name})
tokens = append(tokens, xml.StartElement{Name: xml.Name{Local: "Topology"}})
tokens = append(tokens, xml.StartElement{Name: xml.Name{Local: "Dependencies"}})
for key, value := range m.MediaWorkflow.Topology.Dependencies {
t := xml.StartElement{Name: xml.Name{Local: key}}
tokens = append(tokens, t, xml.CharData(value), xml.EndElement{Name: t.Name})
}
tokens = append(tokens, xml.EndElement{Name: xml.Name{Local: "Dependencies"}})
// Nodes
tokens = append(tokens, xml.StartElement{Name: xml.Name{Local: "Nodes"}})
for _, t := range tokens {
err := e.EncodeToken(t)
if err != nil {
return err
}
}
tokens = tokens[:0]
for k, v := range m.MediaWorkflow.Topology.Nodes {
e.Encode(xmlMapEntry{XMLName: xml.Name{Local: k}, Type: v.Type, Input: v.Input, Operation: v.Operation})
}
tokens = append(tokens, xml.EndElement{Name: xml.Name{Local: "Nodes"}})
tokens = append(tokens, xml.EndElement{Name: xml.Name{Local: "Topology"}})
tokens = append(tokens, xml.EndElement{Name: xml.Name{Local: "MediaWorkflow"}})
tokens = append(tokens, xml.EndElement{Name: xml.Name{Local: "Request"}})
for _, t := range tokens {
err := e.EncodeToken(t)
if err != nil {
return err
}
}
return e.Flush()
}
// UnmarshalXML TODO
func (m *CreateMediaWorkflowOptions) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
var v struct {
XMLName xml.Name //`xml:"Topology"`
Dependencies struct {
Inner []byte `xml:",innerxml"`
} `xml:"Dependencies"`
Nodes struct {
Inner []byte `xml:",innerxml"`
} `xml:"Nodes"`
}
err := d.DecodeElement(&v, &start)
if err != nil {
return err
}
myMap := make(map[string]interface{})
// ... do the mxj magic here ... -
temp := v.Nodes.Inner
prefix := "<Nodes>"
postfix := "</Nodes>"
str := prefix + string(temp) + postfix
myMxjMap, _ := mxj.NewMapXml([]byte(str))
myMap, _ = myMxjMap["Nodes"].(map[string]interface{})
nodesMap := make(map[string]Node)
for k, v := range myMap {
var node Node
mapstructure.Decode(v, &node)
nodesMap[k] = node
}
// fill myMap
m.MediaWorkflow.Topology.Nodes = nodesMap
deps := make(map[string]interface{})
tep := "<Dependencies>" + string(v.Dependencies.Inner) + "</Dependencies>"
tepMxjMap, _ := mxj.NewMapXml([]byte(tep))
deps, _ = tepMxjMap["Dependencies"].(map[string]interface{})
depsString := make(map[string]string)
for k, v := range deps {
depsString[k] = v.(string)
}
m.MediaWorkflow.Topology.Dependencies = depsString
return nil
}
// CreateMediaWorkflowOptions TODO
type CreateMediaWorkflowOptions struct {
XMLName xml.Name `xml:"Request"`
MediaWorkflow *MediaWorkflow `xml:"MediaWorkflow,omitempty"`
}
// CreateMediaWorkflowResult TODO
type CreateMediaWorkflowResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
MediaWorkflow *MediaWorkflow `xml:"MediaWorkflow,omitempty"`
}
// CreateMediaWorkflow 创建工作流
func (s *CIService) CreateMediaWorkflow(ctx context.Context, opt *CreateMediaWorkflowOptions) (*CreateMediaWorkflowResult, *Response, error) {
var res CreateMediaWorkflowResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflow",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaWorkflow TODO
func (s *CIService) UpdateMediaWorkflow(ctx context.Context, opt *CreateMediaWorkflowOptions, workflowId string) (*CreateMediaWorkflowResult, *Response, error) {
var res CreateMediaWorkflowResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflow/" + workflowId,
method: http.MethodPut,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// UpdateMediaWorkflow TODO
func (s *CIService) ActiveMediaWorkflow(ctx context.Context, workflowId string) (*Response, error) {
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflow/" + workflowId + "?active",
method: http.MethodPut,
}
resp, err := s.client.send(ctx, &sendOpt)
return resp, err
}
// UpdateMediaWorkflow TODO
func (s *CIService) PausedMediaWorkflow(ctx context.Context, workflowId string) (*Response, error) {
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/workflow/" + workflowId + "?paused",
method: http.MethodPut,
}
resp, err := s.client.send(ctx, &sendOpt)
return resp, err
}
2 years ago
// DescribeMediaWorkflowOptions TODO
type DescribeMediaWorkflowOptions struct {
Ids string `url:"ids,omitempty"`
Name string `url:"name,omitempty"`
PageNumber int `url:"pageNumber,omitempty"`
PageSize int `url:"pageSize,omitempty"`
}
// DescribeMediaWorkflowResult TODO
type DescribeMediaWorkflowResult struct {
XMLName xml.Name `xml:"Response"`
MediaWorkflowList []MediaWorkflow `xml:"MediaWorkflowList,omitempty"`
RequestId string `xml:"RequestId,omitempty"`
TotalCount int `xml:"TotalCount,omitempty"`
PageNumber int `xml:"PageNumber,omitempty"`
PageSize int `xml:"PageSize,omitempty"`
NonExistIDs []string `xml:"NonExistIDs,omitempty"`
}
// DescribeMediaWorkflow 搜索工作流
func (s *CIService) DescribeMediaWorkflow(ctx context.Context, opt *DescribeMediaWorkflowOptions) (*DescribeMediaWorkflowResult, *Response, error) {
var res DescribeMediaWorkflowResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/Workflow",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DeleteMediaWorkflowResult TODO
type DeleteMediaWorkflowResult struct {
RequestId string `xml:"RequestId,omitempty"`
WorkflowId string `xml:"WorkflowId,omitempty"`
}
// DeleteMediaWorkflow 删除工作流
func (s *CIService) DeleteMediaWorkflow(ctx context.Context, workflowId string) (*DeleteMediaWorkflowResult, *Response, error) {
var res DeleteMediaWorkflowResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/Workflow/" + workflowId,
method: http.MethodDelete,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// InventoryTriggerJobInput TODO
type InventoryTriggerJobInput struct {
Manifest string `xml:"Manifest,omitempty"`
UrlFile string `xml:"UrlFile,omitempty"`
Prefix string `xml:"Prefix,omitempty"`
Object string `xml:"Object,omitempty"`
}
// InventoryTriggerJobOperationTimeInterval TODO
type InventoryTriggerJobOperationTimeInterval struct {
Start string `xml:"Start,omitempty"`
End string `xml:"End,omitempty"`
}
// InventoryTriggerJobOperation TODO
type InventoryTriggerJobOperation struct {
WorkflowIds string `xml:"WorkflowIds,omitempty"`
TimeInterval InventoryTriggerJobOperationTimeInterval `xml:"TimeInterval,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
UserData string `xml:"UserData,omitempty"`
JobLevel int `xml:"JobLevel,omitempty"`
CallBackFormat string `xml:"CallBackFormat,omitempty"`
CallBackType string `xml:"CallBackType,omitempty"`
CallBack string `xml:"CallBack,omitempty"`
CallBackMqConfig *NotifyConfigCallBackMqConfig `xml:"CallBackMqConfig,omitempty"`
Tag string `xml:"Tag,omitempty"`
JobParam *InventoryTriggerJobOperationJobParam `xml:"JobParam,omitempty"`
Output *JobOutput `xml:"Output,omitempty"`
}
// InventoryTriggerJobOperationJobParam TODO
type InventoryTriggerJobOperationJobParam struct {
MediaResult *MediaResult `xml:"MediaResult,omitempty"`
MediaInfo *MediaInfo `xml:"MediaInfo,omitempty"`
Transcode *Transcode `xml:"Transcode,omitempty"`
Watermark []Watermark `xml:"Watermark,omitempty"`
TemplateId string `xml:"TemplateId,omitempty"`
WatermarkTemplateId []string `xml:"WatermarkTemplateId,omitempty"`
ConcatTemplate *ConcatTemplate `xml:"ConcatTemplate,omitempty"`
Snapshot *Snapshot `xml:"Snapshot,omitempty"`
Animation *Animation `xml:"Animation,omitempty"`
Segment *Segment `xml:"Segment,omitempty"`
VideoMontage *VideoMontage `xml:"VideoMontage,omitempty"`
VoiceSeparate *VoiceSeparate `xml:"VoiceSeparate,omitempty"`
VideoProcess *VideoProcess `xml:"VideoProcess,omitempty"`
TranscodeTemplateId string `xml:"TranscodeTemplateId,omitempty"` // 视频增强、超分、SDRtoHDR任务类型可以选择转码模板相关参数
SDRtoHDR *SDRtoHDR `xml:"SDRtoHDR,omitempty"`
SuperResolution *SuperResolution `xml:"SuperResolution,omitempty"`
DigitalWatermark *DigitalWatermark `xml:"DigitalWatermark,omitempty"`
ExtractDigitalWatermark *ExtractDigitalWatermark `xml:"ExtractDigitalWatermark,omitempty"`
VideoTag *VideoTag `xml:"VideoTag,omitempty"`
VideoTagResult *VideoTagResult `xml:"VideoTagResult,omitempty"`
SmartCover *NodeSmartCover `xml:"SmartCover,omitempty"`
QualityEstimate *QualityEstimate `xml:"QualityEstimate,omitempty"`
TtsTpl *TtsTpl `xml:"TtsTpl,omitempty"`
TtsConfig *TtsConfig `xml:"TtsConfig,omitempty"`
Translation *Translation `xml:"Translation,omitempty"`
WordsGeneralize *WordsGeneralize `xml:"WordsGeneralize,omitempty"`
WordsGeneralizeResult *WordsGeneralizeResult `xml:"WordsGeneralizeResult,omitempty"`
2 years ago
}
// InventoryTriggerJob TODO
type InventoryTriggerJob struct {
Name string `xml:"Name,omitempty"`
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
}
// CreateInventoryTriggerJobOptions TODO
type CreateInventoryTriggerJobOptions struct {
XMLName xml.Name `xml:"Request"`
Name string `xml:"Name,omitempty"`
Type string `xml:"Type,omitempty"`
2 years ago
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
}
// InventoryTriggerJobDetail TODO
type InventoryTriggerJobDetail struct {
Code string `xml:"Code,omitempty"`
Message string `xml:"Message,omitempty"`
JobId string `xml:"JobId,omitempty"`
Tag string `xml:"Tag,omitempty"`
Progress string `xml:"Progress,omitempty"`
State string `xml:"State,omitempty"`
CreationTime string `xml:"CreationTime,omitempty"`
StartTime string `xml:"StartTime,omitempty"`
EndTime string `xml:"EndTime,omitempty"`
QueueId string `xml:"QueueId,omitempty"`
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
}
// CreateInventoryTriggerJobResult TODO
type CreateInventoryTriggerJobResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
}
// CreateInventoryTriggerJob TODO
func (s *CIService) CreateInventoryTriggerJob(ctx context.Context, opt *CreateInventoryTriggerJobOptions) (*CreateInventoryTriggerJobResult, *Response, error) {
var res CreateInventoryTriggerJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/inventorytriggerjob",
method: http.MethodPost,
body: opt,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeInventoryTriggerJobResult TODO
type DescribeInventoryTriggerJobResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
NonExistJobId string `xml:"NonExistJobId,omitempty"`
}
// DescribeInventoryTriggerJob 查询指定存量触发工作流的任务
func (s *CIService) DescribeInventoryTriggerJob(ctx context.Context, jobId string) (*DescribeInventoryTriggerJobResult, *Response, error) {
var res DescribeInventoryTriggerJobResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/inventorytriggerjob/" + jobId,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// DescribeInventoryTriggerJobsOptions TODO
type DescribeInventoryTriggerJobsOptions struct {
NextToken string `url:"nextToken,omitempty"`
Size string `url:"size,omitempty"`
OrderByTime string `url:"orderByTime,omitempty"`
States string `url:"states,omitempty"`
StartCreationTime string `url:"states,omitempty"`
EndCreationTime string `url:"endCreationTime,omitempty"`
WorkflowId string `url:"workflowId,omitempty"`
JobId string `url:"jobId,omitempty"`
Name string `url:"name,omitempty"`
}
// DescribeInventoryTriggerJobsResult TODO
type DescribeInventoryTriggerJobsResult struct {
XMLName xml.Name `xml:"Response"`
RequestId string `xml:"RequestId,omitempty"`
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
NextToken string `xml:"NextToken,omitempty"`
}
// DescribeInventoryTriggerJobs 查询存量触发工作流的任务
func (s *CIService) DescribeInventoryTriggerJobs(ctx context.Context, opt *DescribeInventoryTriggerJobsOptions) (*DescribeInventoryTriggerJobsResult, *Response, error) {
var res DescribeInventoryTriggerJobsResult
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/inventorytriggerjob",
optQuery: opt,
method: http.MethodGet,
result: &res,
}
resp, err := s.client.send(ctx, &sendOpt)
return &res, resp, err
}
// CancelInventoryTriggerJob TODO
func (s *CIService) CancelInventoryTriggerJob(ctx context.Context, jobId string) (*Response, error) {
sendOpt := sendOptions{
baseURL: s.client.BaseURL.CIURL,
uri: "/inventorytriggerjob/" + jobId,
method: http.MethodPut,
}
resp, err := s.client.send(ctx, &sendOpt)
return resp, err
}