Merge branch 'dev' into vod

This commit is contained in:
Ingo Oppermann
2023-04-13 15:23:09 +02:00
6 changed files with 81 additions and 21 deletions

View File

@@ -3761,6 +3761,20 @@ const docTemplate = `{
"type": "integer",
"format": "uint64"
},
"framerate": {
"type": "object",
"properties": {
"avg": {
"type": "number"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
}
}
},
"height": {
"type": "integer",
"format": "uint64"

View File

@@ -3754,6 +3754,20 @@
"type": "integer",
"format": "uint64"
},
"framerate": {
"type": "object",
"properties": {
"avg": {
"type": "number"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
}
}
},
"height": {
"type": "integer",
"format": "uint64"

View File

@@ -1011,6 +1011,15 @@ definitions:
frame:
format: uint64
type: integer
framerate:
properties:
avg:
type: number
max:
type: number
min:
type: number
type: object
height:
format: uint64
type: integer

View File

@@ -96,6 +96,11 @@ type ffmpegProgressIO struct {
Bitrate float64 `json:"-"` // bit/s
Frame uint64 `json:"frame"` // counter
Keyframe uint64 `json:"keyframe"` // counter
Framerate struct {
Min float64 `json:"min"`
Max float64 `json:"max"`
Average float64 `json:"avg"`
} `json:"framerate"`
Packet uint64 `json:"packet"` // counter
Extradata uint64 `json:"extradata_size_bytes"` // bytes
FPS float64 `json:"-"` // rate, frames per second
@@ -110,6 +115,9 @@ func (io *ffmpegProgressIO) exportTo(progress *ProgressIO) {
progress.Stream = io.Stream
progress.Frame = io.Frame
progress.Keyframe = io.Keyframe
progress.Framerate.Min = io.Framerate.Min
progress.Framerate.Max = io.Framerate.Max
progress.Framerate.Average = io.Framerate.Average
progress.Packet = io.Packet
progress.FPS = io.FPS
progress.PPS = io.PPS

View File

@@ -7,6 +7,12 @@ import (
"github.com/datarhei/core/v16/restream/app"
)
type ProgressIOFramerate struct {
Min json.Number `json:"min" swaggertype:"number" jsonschema:"type=number"`
Max json.Number `json:"max" swaggertype:"number" jsonschema:"type=number"`
Average json.Number `json:"avg" swaggertype:"number" jsonschema:"type=number"`
}
// ProgressIO represents the progress of an ffmpeg input or output
type ProgressIO struct {
ID string `json:"id" jsonschema:"minLength=1"`
@@ -21,6 +27,7 @@ type ProgressIO struct {
Coder string `json:"coder"`
Frame uint64 `json:"frame" format:"uint64"`
Keyframe uint64 `json:"keyframe" format:"uint64"`
Framerate ProgressIOFramerate `json:"framerate"`
FPS json.Number `json:"fps" swaggertype:"number" jsonschema:"type=number"`
Packet uint64 `json:"packet" format:"uint64"`
PPS json.Number `json:"pps" swaggertype:"number" jsonschema:"type=number"`
@@ -59,6 +66,9 @@ func (i *ProgressIO) Unmarshal(io *app.ProgressIO) {
i.Coder = io.Coder
i.Frame = io.Frame
i.Keyframe = io.Keyframe
i.Framerate.Min = json.Number(fmt.Sprintf("%.3f", io.Framerate.Min))
i.Framerate.Max = json.Number(fmt.Sprintf("%.3f", io.Framerate.Max))
i.Framerate.Average = json.Number(fmt.Sprintf("%.3f", io.Framerate.Average))
i.FPS = json.Number(fmt.Sprintf("%.3f", io.FPS))
i.Packet = io.Packet
i.PPS = json.Number(fmt.Sprintf("%.3f", io.PPS))

View File

@@ -13,6 +13,11 @@ type ProgressIO struct {
Coder string
Frame uint64 // counter
Keyframe uint64 // counter
Framerate struct {
Min float64
Max float64
Average float64
}
FPS float64 // rate, frames per second
Packet uint64 // counter
PPS float64 // rate, packets per second