fix3
parent
2e35b99cee
commit
a5352a067e
19
api.go
19
api.go
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var gMergeStatus SpeedStatus
|
var gMergeStatus SpeedStatus
|
||||||
|
|
@ -19,13 +18,25 @@ type MergeTsDir_Resp struct {
|
||||||
IsCancel bool
|
IsCancel bool
|
||||||
}
|
}
|
||||||
|
|
||||||
var gMergeIsRunning atomic.Bool
|
var gMergeIsRunning bool
|
||||||
|
var gMergeIsRunningLocker sync.Mutex
|
||||||
|
|
||||||
func MergeTsDir(InputTsDir string, OutputMp4Name string) (resp MergeTsDir_Resp) {
|
func MergeTsDir(InputTsDir string, OutputMp4Name string) (resp MergeTsDir_Resp) {
|
||||||
if !gMergeIsRunning.CompareAndSwap(false, true) {
|
{
|
||||||
|
gMergeIsRunningLocker.Lock()
|
||||||
|
defer gMergeIsRunningLocker.Unlock()
|
||||||
|
|
||||||
|
if gMergeIsRunning != false {
|
||||||
return resp
|
return resp
|
||||||
}
|
}
|
||||||
defer gMergeIsRunning.Store(false)
|
gMergeIsRunning = true
|
||||||
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
gMergeIsRunningLocker.Lock()
|
||||||
|
gMergeIsRunning = false
|
||||||
|
gMergeIsRunningLocker.Unlock()
|
||||||
|
}()
|
||||||
|
|
||||||
fList, err := ioutil.ReadDir(InputTsDir)
|
fList, err := ioutil.ReadDir(InputTsDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue