v2.1.1.0110
This commit is contained in:
@@ -261,7 +261,9 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon
|
||||
var oldSegments []string
|
||||
|
||||
for { // Loop 2: Temporäre Datein sind vorhanden, Daten können zum Client gesendet werden
|
||||
|
||||
// HTTP Clientverbindung überwachen
|
||||
|
||||
cn, ok := w.(http.CloseNotifier)
|
||||
if ok {
|
||||
|
||||
@@ -450,6 +452,9 @@ func getTmpFiles(stream *ThisStream) (tmpFiles []string) {
|
||||
|
||||
func killClientConnection(streamID int, playlistID string, force bool) {
|
||||
|
||||
Lock.Lock()
|
||||
defer Lock.Unlock()
|
||||
|
||||
if p, ok := BufferInformation.Load(playlistID); ok {
|
||||
|
||||
var playlist = p.(Playlist)
|
||||
@@ -494,6 +499,8 @@ func killClientConnection(streamID int, playlistID string, force bool) {
|
||||
func clientConnection(stream ThisStream) (status bool) {
|
||||
|
||||
status = true
|
||||
Lock.Lock()
|
||||
defer Lock.Unlock()
|
||||
|
||||
if _, ok := BufferClients.Load(stream.PlaylistID + stream.MD5); !ok {
|
||||
|
||||
@@ -902,6 +909,8 @@ func connectToStreamingServer(streamID int, playlistID string) {
|
||||
// Buffer auf die Festplatte speichern
|
||||
if fileSize >= tmpFileSize/2 || n == 0 {
|
||||
|
||||
Lock.Lock()
|
||||
|
||||
bandwidth.Stop = time.Now()
|
||||
bandwidth.Size += fileSize
|
||||
|
||||
@@ -920,6 +929,7 @@ func connectToStreamingServer(streamID int, playlistID string) {
|
||||
stream.Status = true
|
||||
playlist.Streams[streamID] = stream
|
||||
BufferInformation.Store(playlistID, playlist)
|
||||
Lock.Unlock()
|
||||
|
||||
tmpSegment++
|
||||
|
||||
@@ -1409,8 +1419,37 @@ func thirdPartyBuffer(streamID int, playlistID string) {
|
||||
return
|
||||
}
|
||||
|
||||
var args = strings.Replace(options, "[URL]", url, -1)
|
||||
var cmd = exec.Command(path, strings.Split(args, " ")...)
|
||||
//args = strings.Replace(args, "[USER-AGENT]", Settings.UserAgent, -1)
|
||||
|
||||
// User-Agent setzen
|
||||
var args []string
|
||||
|
||||
for i, a := range strings.Split(options, " ") {
|
||||
|
||||
switch bufferType {
|
||||
case "FFMPEG":
|
||||
a = strings.Replace(a, "[URL]", url, -1)
|
||||
if i == 0 {
|
||||
args = []string{"-user-agent", Settings.UserAgent}
|
||||
}
|
||||
|
||||
args = append(args, a)
|
||||
|
||||
case "VLC":
|
||||
if a == "[URL]" {
|
||||
a = strings.Replace(a, "[URL]", url, -1)
|
||||
args = append(args, a)
|
||||
args = append(args, fmt.Sprintf(":http-user-agent=%s", Settings.UserAgent))
|
||||
|
||||
} else {
|
||||
args = append(args, a)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var cmd = exec.Command(path, args...)
|
||||
|
||||
debug = fmt.Sprintf("%s:%s %s", bufferType, path, args)
|
||||
showDebug(debug, 1)
|
||||
@@ -1552,9 +1591,11 @@ func thirdPartyBuffer(streamID int, playlistID string) {
|
||||
tmpSegment++
|
||||
|
||||
if stream.Status == false {
|
||||
Lock.Lock()
|
||||
stream.Status = true
|
||||
playlist.Streams[streamID] = stream
|
||||
BufferInformation.Store(playlistID, playlist)
|
||||
Lock.Unlock()
|
||||
}
|
||||
|
||||
tmpFile = fmt.Sprintf("%s%d.ts", tmpFolder, tmpSegment)
|
||||
|
||||
Reference in New Issue
Block a user