services/live/start_live_mpu_task.go (159 lines of code) (raw):
package live
//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
//
// Code generated by Alibaba Cloud SDK Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
import (
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
)
// StartLiveMPUTask invokes the live.StartLiveMPUTask API synchronously
func (client *Client) StartLiveMPUTask(request *StartLiveMPUTaskRequest) (response *StartLiveMPUTaskResponse, err error) {
response = CreateStartLiveMPUTaskResponse()
err = client.DoAction(request, response)
return
}
// StartLiveMPUTaskWithChan invokes the live.StartLiveMPUTask API asynchronously
func (client *Client) StartLiveMPUTaskWithChan(request *StartLiveMPUTaskRequest) (<-chan *StartLiveMPUTaskResponse, <-chan error) {
responseChan := make(chan *StartLiveMPUTaskResponse, 1)
errChan := make(chan error, 1)
err := client.AddAsyncTask(func() {
defer close(responseChan)
defer close(errChan)
response, err := client.StartLiveMPUTask(request)
if err != nil {
errChan <- err
} else {
responseChan <- response
}
})
if err != nil {
errChan <- err
close(responseChan)
close(errChan)
}
return responseChan, errChan
}
// StartLiveMPUTaskWithCallback invokes the live.StartLiveMPUTask API asynchronously
func (client *Client) StartLiveMPUTaskWithCallback(request *StartLiveMPUTaskRequest, callback func(response *StartLiveMPUTaskResponse, err error)) <-chan int {
result := make(chan int, 1)
err := client.AddAsyncTask(func() {
var response *StartLiveMPUTaskResponse
var err error
defer close(result)
response, err = client.StartLiveMPUTask(request)
callback(response, err)
result <- 1
})
if err != nil {
defer close(result)
callback(nil, err)
result <- 0
}
return result
}
// StartLiveMPUTaskRequest is the request struct for api StartLiveMPUTask
type StartLiveMPUTaskRequest struct {
*requests.RpcRequest
SingleSubParams StartLiveMPUTaskSingleSubParams `position:"Query" name:"SingleSubParams" type:"Struct"`
TaskId string `position:"Query" name:"TaskId"`
StreamURL string `position:"Query" name:"StreamURL"`
MultiStreamURL *[]StartLiveMPUTaskMultiStreamURL `position:"Query" name:"MultiStreamURL" type:"Json"`
MaxIdleTime string `position:"Query" name:"MaxIdleTime"`
SeiParams StartLiveMPUTaskSeiParams `position:"Query" name:"SeiParams" type:"Struct"`
TranscodeParams StartLiveMPUTaskTranscodeParams `position:"Query" name:"TranscodeParams" type:"Struct"`
AppId string `position:"Query" name:"AppId"`
Region string `position:"Query" name:"Region"`
MixMode string `position:"Query" name:"MixMode"`
ChannelId string `position:"Query" name:"ChannelId"`
}
// StartLiveMPUTaskMultiStreamURL is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskMultiStreamURL struct {
IsAliCdn string `name:"IsAliCdn"`
URL string `name:"URL"`
}
// StartLiveMPUTaskSingleSubParams is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskSingleSubParams struct {
MixAudioUserIds *[]string `name:"MixAudioUserIds" type:"Repeated"`
StreamType string `name:"StreamType"`
SourceType string `name:"SourceType"`
UserId string `name:"UserId"`
}
// StartLiveMPUTaskSeiParams is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskSeiParams struct {
PayloadType string `name:"PayloadType"`
LayoutVolume StartLiveMPUTaskSeiParamsLayoutVolume `name:"LayoutVolume" type:"Struct"`
PassThrough StartLiveMPUTaskSeiParamsPassThrough `name:"PassThrough" type:"Struct"`
}
// StartLiveMPUTaskTranscodeParams is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParams struct {
Layout StartLiveMPUTaskTranscodeParamsLayout `name:"Layout" type:"Struct"`
Background StartLiveMPUTaskTranscodeParamsBackground `name:"Background" type:"Struct"`
UserInfos *[]StartLiveMPUTaskTranscodeParamsUserInfosItem `name:"UserInfos" type:"Repeated"`
EncodeParams StartLiveMPUTaskTranscodeParamsEncodeParams `name:"EncodeParams" type:"Struct"`
}
// StartLiveMPUTaskSeiParamsLayoutVolume is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskSeiParamsLayoutVolume struct {
FollowIdr string `name:"FollowIdr"`
Interval string `name:"Interval"`
}
// StartLiveMPUTaskSeiParamsPassThrough is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskSeiParamsPassThrough struct {
FollowIdr string `name:"FollowIdr"`
PayloadContentKey string `name:"PayloadContentKey"`
PayloadContent string `name:"PayloadContent"`
Interval string `name:"Interval"`
}
// StartLiveMPUTaskTranscodeParamsLayout is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsLayout struct {
UserPanes *[]StartLiveMPUTaskTranscodeParamsLayoutUserPanesItem `name:"UserPanes" type:"Repeated"`
LayoutMode string `name:"LayoutMode"`
MaxVideoUser StartLiveMPUTaskTranscodeParamsLayoutMaxVideoUser `name:"MaxVideoUser" type:"Struct"`
}
// StartLiveMPUTaskTranscodeParamsBackground is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsBackground struct {
RenderMode string `name:"RenderMode"`
URL string `name:"URL"`
}
// StartLiveMPUTaskTranscodeParamsUserInfosItem is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsUserInfosItem struct {
StreamType string `name:"StreamType"`
SourceType string `name:"SourceType"`
UserId string `name:"UserId"`
ChannelId string `name:"ChannelId"`
}
// StartLiveMPUTaskTranscodeParamsEncodeParams is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsEncodeParams struct {
AudioOnly string `name:"AudioOnly"`
VideoWidth string `name:"VideoWidth"`
AudioBitrate string `name:"AudioBitrate"`
EnhancedParam string `name:"EnhancedParam"`
VideoFramerate string `name:"VideoFramerate"`
VideoHeight string `name:"VideoHeight"`
AudioSampleRate string `name:"AudioSampleRate"`
VideoBitrate string `name:"VideoBitrate"`
VideoCodec string `name:"VideoCodec"`
AudioChannels string `name:"AudioChannels"`
VideoGop string `name:"VideoGop"`
}
// StartLiveMPUTaskTranscodeParamsLayoutUserPanesItem is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsLayoutUserPanesItem struct {
BackgroundImageUrl string `name:"BackgroundImageUrl"`
ZOrder string `name:"ZOrder"`
Width string `name:"Width"`
X string `name:"X"`
Y string `name:"Y"`
UserInfo StartLiveMPUTaskTranscodeParamsLayoutUserPanesItemUserInfo `name:"UserInfo" type:"Struct"`
RenderMode string `name:"RenderMode"`
Height string `name:"Height"`
}
// StartLiveMPUTaskTranscodeParamsLayoutMaxVideoUser is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsLayoutMaxVideoUser struct {
StreamType string `name:"StreamType"`
SourceType string `name:"SourceType"`
UserId string `name:"UserId"`
ChannelId string `name:"ChannelId"`
}
// StartLiveMPUTaskTranscodeParamsLayoutUserPanesItemUserInfo is a repeated param struct in StartLiveMPUTaskRequest
type StartLiveMPUTaskTranscodeParamsLayoutUserPanesItemUserInfo struct {
SourceType string `name:"SourceType"`
UserId string `name:"UserId"`
ChannelId string `name:"ChannelId"`
}
// StartLiveMPUTaskResponse is the response struct for api StartLiveMPUTask
type StartLiveMPUTaskResponse struct {
*responses.BaseResponse
RequestId string `json:"RequestId" xml:"RequestId"`
}
// CreateStartLiveMPUTaskRequest creates a request to invoke StartLiveMPUTask API
func CreateStartLiveMPUTaskRequest() (request *StartLiveMPUTaskRequest) {
request = &StartLiveMPUTaskRequest{
RpcRequest: &requests.RpcRequest{},
}
request.InitWithApiInfo("live", "2016-11-01", "StartLiveMPUTask", "live", "openAPI")
request.Method = requests.POST
return
}
// CreateStartLiveMPUTaskResponse creates a response to parse from StartLiveMPUTask response
func CreateStartLiveMPUTaskResponse() (response *StartLiveMPUTaskResponse) {
response = &StartLiveMPUTaskResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}