mirror of
https://github.com/datarhei/core.git
synced 2025-10-05 07:57:13 +08:00
Merge branch 'dev' into cluster
This commit is contained in:
@@ -13,6 +13,10 @@
|
||||
- Fix purging default file from HTTP cache
|
||||
- Fix parsing S3 storage definition from environment variable
|
||||
- Fix checking length of CPU time array ([#10](https://github.com/datarhei/core/issues/10))
|
||||
- Fix possible infinite loop with HLS session rewriter
|
||||
- Fix not propagating process limits
|
||||
- Fix URL validation if the path contains FFmpeg specific placeholders
|
||||
- Fix RTMP DoS attack (thx Johannes Frank)
|
||||
- Deprecate ENV names that do not correspond to JSON name
|
||||
|
||||
### Core v16.11.0 > v16.12.0
|
||||
|
@@ -2172,6 +2172,10 @@ const docTemplate = `{
|
||||
"looping": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"looping_runtime": {
|
||||
"type": "integer",
|
||||
"format": "uint64"
|
||||
},
|
||||
"output": {
|
||||
"$ref": "#/definitions/api.AVstreamIO"
|
||||
},
|
||||
|
@@ -2165,6 +2165,10 @@
|
||||
"looping": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"looping_runtime": {
|
||||
"type": "integer",
|
||||
"format": "uint64"
|
||||
},
|
||||
"output": {
|
||||
"$ref": "#/definitions/api.AVstreamIO"
|
||||
},
|
||||
|
@@ -22,6 +22,9 @@ definitions:
|
||||
$ref: '#/definitions/api.AVstreamIO'
|
||||
looping:
|
||||
type: boolean
|
||||
looping_runtime:
|
||||
format: uint64
|
||||
type: integer
|
||||
output:
|
||||
$ref: '#/definitions/api.AVstreamIO'
|
||||
queue:
|
||||
|
@@ -59,33 +59,35 @@ func (avio *ffmpegAVstreamIO) export() app.AVstreamIO {
|
||||
}
|
||||
|
||||
type ffmpegAVstream struct {
|
||||
Input ffmpegAVstreamIO `json:"input"`
|
||||
Output ffmpegAVstreamIO `json:"output"`
|
||||
Address string `json:"id"`
|
||||
URL string `json:"url"`
|
||||
Stream uint64 `json:"stream"`
|
||||
Aqueue uint64 `json:"aqueue"`
|
||||
Queue uint64 `json:"queue"`
|
||||
Dup uint64 `json:"dup"`
|
||||
Drop uint64 `json:"drop"`
|
||||
Enc uint64 `json:"enc"`
|
||||
Looping bool `json:"looping"`
|
||||
Duplicating bool `json:"duplicating"`
|
||||
GOP string `json:"gop"`
|
||||
Input ffmpegAVstreamIO `json:"input"`
|
||||
Output ffmpegAVstreamIO `json:"output"`
|
||||
Address string `json:"id"`
|
||||
URL string `json:"url"`
|
||||
Stream uint64 `json:"stream"`
|
||||
Aqueue uint64 `json:"aqueue"`
|
||||
Queue uint64 `json:"queue"`
|
||||
Dup uint64 `json:"dup"`
|
||||
Drop uint64 `json:"drop"`
|
||||
Enc uint64 `json:"enc"`
|
||||
Looping bool `json:"looping"`
|
||||
LoopingRuntime uint64 `json:"looping_runtime"`
|
||||
Duplicating bool `json:"duplicating"`
|
||||
GOP string `json:"gop"`
|
||||
}
|
||||
|
||||
func (av *ffmpegAVstream) export() *app.AVstream {
|
||||
return &app.AVstream{
|
||||
Aqueue: av.Aqueue,
|
||||
Queue: av.Queue,
|
||||
Drop: av.Drop,
|
||||
Dup: av.Dup,
|
||||
Enc: av.Enc,
|
||||
Looping: av.Looping,
|
||||
Duplicating: av.Duplicating,
|
||||
GOP: av.GOP,
|
||||
Input: av.Input.export(),
|
||||
Output: av.Output.export(),
|
||||
Aqueue: av.Aqueue,
|
||||
Queue: av.Queue,
|
||||
Drop: av.Drop,
|
||||
Dup: av.Dup,
|
||||
Enc: av.Enc,
|
||||
Looping: av.Looping,
|
||||
LoopingRuntime: av.LoopingRuntime,
|
||||
Duplicating: av.Duplicating,
|
||||
GOP: av.GOP,
|
||||
Input: av.Input.export(),
|
||||
Output: av.Output.export(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -23,16 +23,17 @@ func (i *AVstreamIO) Unmarshal(io *app.AVstreamIO) {
|
||||
}
|
||||
|
||||
type AVstream struct {
|
||||
Input AVstreamIO `json:"input"`
|
||||
Output AVstreamIO `json:"output"`
|
||||
Aqueue uint64 `json:"aqueue" format:"uint64"`
|
||||
Queue uint64 `json:"queue" format:"uint64"`
|
||||
Dup uint64 `json:"dup" format:"uint64"`
|
||||
Drop uint64 `json:"drop" format:"uint64"`
|
||||
Enc uint64 `json:"enc" format:"uint64"`
|
||||
Looping bool `json:"looping"`
|
||||
Duplicating bool `json:"duplicating"`
|
||||
GOP string `json:"gop"`
|
||||
Input AVstreamIO `json:"input"`
|
||||
Output AVstreamIO `json:"output"`
|
||||
Aqueue uint64 `json:"aqueue" format:"uint64"`
|
||||
Queue uint64 `json:"queue" format:"uint64"`
|
||||
Dup uint64 `json:"dup" format:"uint64"`
|
||||
Drop uint64 `json:"drop" format:"uint64"`
|
||||
Enc uint64 `json:"enc" format:"uint64"`
|
||||
Looping bool `json:"looping"`
|
||||
LoopingRuntime uint64 `json:"looping_runtime" format:"uint64"`
|
||||
Duplicating bool `json:"duplicating"`
|
||||
GOP string `json:"gop"`
|
||||
}
|
||||
|
||||
func (a *AVstream) Unmarshal(av *app.AVstream) {
|
||||
@@ -46,6 +47,7 @@ func (a *AVstream) Unmarshal(av *app.AVstream) {
|
||||
a.Drop = av.Drop
|
||||
a.Enc = av.Enc
|
||||
a.Looping = av.Looping
|
||||
a.LoopingRuntime = av.LoopingRuntime
|
||||
a.Duplicating = av.Duplicating
|
||||
a.GOP = av.GOP
|
||||
|
||||
|
@@ -3,19 +3,20 @@ package app
|
||||
type AVstreamIO struct {
|
||||
State string
|
||||
Packet uint64 // counter
|
||||
Time uint64
|
||||
Time uint64 // sec
|
||||
Size uint64 // bytes
|
||||
}
|
||||
|
||||
type AVstream struct {
|
||||
Input AVstreamIO
|
||||
Output AVstreamIO
|
||||
Aqueue uint64 // gauge
|
||||
Queue uint64 // gauge
|
||||
Dup uint64 // counter
|
||||
Drop uint64 // counter
|
||||
Enc uint64 // counter
|
||||
Looping bool
|
||||
Duplicating bool
|
||||
GOP string
|
||||
Input AVstreamIO
|
||||
Output AVstreamIO
|
||||
Aqueue uint64 // gauge
|
||||
Queue uint64 // gauge
|
||||
Dup uint64 // counter
|
||||
Drop uint64 // counter
|
||||
Enc uint64 // counter
|
||||
Looping bool
|
||||
LoopingRuntime uint64 // sec
|
||||
Duplicating bool
|
||||
GOP string
|
||||
}
|
||||
|
Reference in New Issue
Block a user