Refactor and simplify package structure and interfaces.
Reorganize code by removing unused files, restructuring package organization, and updating import references to new paths. This simplifies handling of smart and protocol-related operations, improves maintainability, and eliminates redundancy.
This commit is contained in:
160
pkg/models/mediastreammodel.go
Normal file
160
pkg/models/mediastreammodel.go
Normal file
@ -0,0 +1,160 @@
|
||||
package models
|
||||
|
||||
import "gitea.unprism.ru/KRBL/n9m/v2/pkg/protocol"
|
||||
|
||||
type StreamType uint
|
||||
|
||||
const (
|
||||
StreamTypeSub StreamType = iota
|
||||
StreamTypeMain
|
||||
StreamTypeMobile
|
||||
)
|
||||
|
||||
type MediaStreamModelRequestLiveVideoRequest struct {
|
||||
SSRC uint `json:"SSRC,omitempty"`
|
||||
StreamName string `json:"STREAMNAME"`
|
||||
StreamType StreamType `json:"STREAMTYPE"`
|
||||
Channel uint `json:"CHANNEL"`
|
||||
AudioValid uint `json:"AUDIOVALID"`
|
||||
Destination string `json:"IPANDPORT,omitempty"`
|
||||
FrameCount uint `json:"FRAMECOUNT,omitempty"`
|
||||
FrameMode uint `json:"FRAMEMODE"`
|
||||
}
|
||||
|
||||
type MediaStreamModelRequestLiveVideoResponse struct {
|
||||
SSRC uint `json:"SSRC"`
|
||||
StreamName string `json:"STREAMNAME"`
|
||||
StreamType StreamType `json:"STREAMTYPE"`
|
||||
ErrorCode uint `json:"ERRORCODE"`
|
||||
ErrorCause string `json:"ERRORCAUSE"`
|
||||
}
|
||||
|
||||
type MediaStreamCommand uint
|
||||
|
||||
const (
|
||||
MediaStreamCommandStop MediaStreamCommand = iota
|
||||
MediaStreamCommandResume
|
||||
MediaStreamCommandPause
|
||||
MediaStreamCommandSwitchVideoStream
|
||||
MediaStreamAudioManagement
|
||||
MediaStreamFrameRate
|
||||
MediaStreamSendingMode
|
||||
)
|
||||
|
||||
type MediaStreamModelControlStreamRequest struct {
|
||||
PayloadType protocol.PayloadType `json:"PT"`
|
||||
SSRC uint16 `json:"SSRC"`
|
||||
StreamName string `json:"STREAMNAME"`
|
||||
Command MediaStreamCommand `json:"CMD"`
|
||||
|
||||
StreamType StreamType `json:"STREAMTYPE,omitempty"`
|
||||
AudioValid uint `json:"AUDIOVALID,omitempty"`
|
||||
FrameMode uint `json:"FRAMEMODE,omitempty"`
|
||||
}
|
||||
|
||||
/*
|
||||
var ip string = os.Getenv("SERVER_IP")
|
||||
|
||||
func (e *Package) MediaRequestDownloadVideo(token int, serial string, session string, camNo int, date string, begin_time string, end_time string, recordID string, serverId int) {
|
||||
e.Payload = map[string]any{
|
||||
"MODULE": "MEDIASTREAMMODEL",
|
||||
"OPERATION": "REQUESTDOWNLOADVIDEO",
|
||||
"PARAMETER": map[string]any{
|
||||
"PT": 3,
|
||||
"SSRC": 1,
|
||||
"STREAMNAME": "DOWNLOAD" + "_" + serial + "_" + fmt.Sprint(camNo) + "_" + fmt.Sprint(serverId),
|
||||
"STREAMTYPE": 1, // main stream
|
||||
"RECORDID": recordID,
|
||||
"CHANNEL": 1 << (camNo - 1),
|
||||
"STARTTIME": date + begin_time,
|
||||
"ENDTIME": date + end_time,
|
||||
"OFFSETFLAG": 1,
|
||||
"OFFSET": 0,
|
||||
"IPANDPORT": ip + ":12092",
|
||||
"SERIAL": token,
|
||||
"DT": 1, // high speed download
|
||||
},
|
||||
"SESSION": session,
|
||||
}
|
||||
}
|
||||
|
||||
// main server util
|
||||
func (e *Package) MediaRequestAliveVideo(token int, camNo int64, Sid string, serial string, quality int64) {
|
||||
|
||||
channel := 0
|
||||
|
||||
if camNo == 1 {
|
||||
channel = 1
|
||||
} else {
|
||||
channel = 1 << (camNo - 1)
|
||||
}
|
||||
e.Payload = map[string]any{
|
||||
"MODULE": "MEDIASTREAMMODEL",
|
||||
"OPERATION": "REQUESTALIVEVIDEO",
|
||||
"PARAMETER": map[string]any{
|
||||
"AUDIOVALID": 1,
|
||||
"CHANNEL": channel,
|
||||
"FRAMEMODE": 0,
|
||||
"IPANDPORT": ip + ":12092",
|
||||
"STREAMNAME": "LIVE" + "_" + serial + "_" + fmt.Sprint(camNo),
|
||||
"STREAMTYPE": quality,
|
||||
"SERIAL": token,
|
||||
},
|
||||
"SESSION": Sid,
|
||||
}
|
||||
}
|
||||
|
||||
// main server util
|
||||
func (e *Package) MediaRequestRemotePlayback(token int, serial string, session string, camNo int, date string, begin_time string, end_time string, serverId int) {
|
||||
if end_time == "" {
|
||||
e.Payload = map[string]any{
|
||||
"MODULE": "MEDIASTREAMMODEL",
|
||||
"OPERATION": "REQUESTREMOTEPLAYBACK",
|
||||
"PARAMETER": map[string]any{
|
||||
"STREAMNAME": "PLAYBACK" + "_" + fmt.Sprint(serial) + "_" + fmt.Sprint(camNo) + "_" + fmt.Sprint(serverId),
|
||||
"STREAMTYPE": 1, // main stream
|
||||
"VIDEOTYPE": 2, // common files
|
||||
"CHANNEL": 1 << (camNo - 1),
|
||||
"STARTTIME": date + begin_time,
|
||||
"IPANDPORT": ip + ":12092",
|
||||
"SERIAL": token,
|
||||
"PBST": 0,
|
||||
},
|
||||
"SESSION": session,
|
||||
}
|
||||
} else {
|
||||
e.Payload = map[string]any{
|
||||
"MODULE": "MEDIASTREAMMODEL",
|
||||
"OPERATION": "REQUESTREMOTEPLAYBACK",
|
||||
"PARAMETER": map[string]any{
|
||||
"STREAMNAME": "PLAYBACK" + "_" + fmt.Sprint(serial) + "_" + fmt.Sprint(camNo) + "_" + fmt.Sprint(serverId),
|
||||
"STREAMTYPE": 1, // main stream
|
||||
"VIDEOTYPE": 2, // common files
|
||||
"CHANNEL": 1 << (camNo - 1),
|
||||
"STARTTIME": date + begin_time,
|
||||
"ENDTIME": date + end_time,
|
||||
"IPANDPORT": ip + ":12092",
|
||||
"SERIAL": token,
|
||||
"PBST": 0,
|
||||
},
|
||||
"SESSION": session,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// main server util
|
||||
func (e *Package) ControlRemotePlayback(token int, serial string, session string, camNo int, date string, begin_time string, end_time string, serverId int) {
|
||||
e.Payload = map[string]any{
|
||||
"MODULE": "MEDIASTREAMMODEL",
|
||||
"OPERATION": "CONTROLREMOTEPLAYBACK",
|
||||
"PARAMETER": map[string]any{
|
||||
"STREAMNAME": fmt.Sprint(serial) + "_" + fmt.Sprint(camNo) + "_" + fmt.Sprint(serverId),
|
||||
"SERIAL": token,
|
||||
"PALYBACKCMD": 5, // main stream
|
||||
"CHANNEL": 268435455, // common files
|
||||
},
|
||||
"SESSION": session,
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
Reference in New Issue
Block a user