Browse Source

normalize configuration (#2399)

pull/2401/head
Alessandro Ros 2 years ago committed by GitHub
parent
commit
3a7d86ec03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      internal/conf/path.go
  2. 34
      internal/conf/rtsp_range_type.go
  3. 14
      internal/core/rtsp_source.go

4
internal/conf/path.go

@ -67,8 +67,8 @@ type PathConf struct {
// RTSP // RTSP
SourceProtocol SourceProtocol `json:"sourceProtocol"` SourceProtocol SourceProtocol `json:"sourceProtocol"`
SourceAnyPortEnable bool `json:"sourceAnyPortEnable"` SourceAnyPortEnable bool `json:"sourceAnyPortEnable"`
RtspRangeType RtspRangeType `json:"rtspRangeType"` RTSPRangeType RTSPRangeType `json:"rtspRangeType"`
RtspRangeStart string `json:"rtspRangeStart"` RTSPRangeStart string `json:"rtspRangeStart"`
// Redirect // Redirect
SourceRedirect string `json:"sourceRedirect"` SourceRedirect string `json:"sourceRedirect"`

34
internal/conf/rtsp_range_type.go

@ -5,32 +5,32 @@ import (
"fmt" "fmt"
) )
// RtspRangeType is the type used in the Range header. // RTSPRangeType is the type used in the Range header.
type RtspRangeType int type RTSPRangeType int
// supported rtsp range types. // supported rtsp range types.
const ( const (
RtspRangeTypeUndefined RtspRangeType = iota RTSPRangeTypeUndefined RTSPRangeType = iota
RtspRangeTypeClock RTSPRangeTypeClock
RtspRangeTypeNPT RTSPRangeTypeNPT
RtspRangeTypeSMPTE RTSPRangeTypeSMPTE
) )
// MarshalJSON implements json.Marshaler. // MarshalJSON implements json.Marshaler.
func (d RtspRangeType) MarshalJSON() ([]byte, error) { func (d RTSPRangeType) MarshalJSON() ([]byte, error) {
var out string var out string
switch d { switch d {
case RtspRangeTypeClock: case RTSPRangeTypeClock:
out = "clock" out = "clock"
case RtspRangeTypeNPT: case RTSPRangeTypeNPT:
out = "npt" out = "npt"
case RtspRangeTypeSMPTE: case RTSPRangeTypeSMPTE:
out = "smpte" out = "smpte"
case RtspRangeTypeUndefined: case RTSPRangeTypeUndefined:
out = "" out = ""
default: default:
@ -41,7 +41,7 @@ func (d RtspRangeType) MarshalJSON() ([]byte, error) {
} }
// UnmarshalJSON implements json.Unmarshaler. // UnmarshalJSON implements json.Unmarshaler.
func (d *RtspRangeType) UnmarshalJSON(b []byte) error { func (d *RTSPRangeType) UnmarshalJSON(b []byte) error {
var in string var in string
if err := json.Unmarshal(b, &in); err != nil { if err := json.Unmarshal(b, &in); err != nil {
return err return err
@ -49,16 +49,16 @@ func (d *RtspRangeType) UnmarshalJSON(b []byte) error {
switch in { switch in {
case "clock": case "clock":
*d = RtspRangeTypeClock *d = RTSPRangeTypeClock
case "npt": case "npt":
*d = RtspRangeTypeNPT *d = RTSPRangeTypeNPT
case "smpte": case "smpte":
*d = RtspRangeTypeSMPTE *d = RTSPRangeTypeSMPTE
case "": case "":
*d = RtspRangeTypeUndefined *d = RTSPRangeTypeUndefined
default: default:
return fmt.Errorf("invalid rtsp range type: '%s'", in) return fmt.Errorf("invalid rtsp range type: '%s'", in)
@ -68,6 +68,6 @@ func (d *RtspRangeType) UnmarshalJSON(b []byte) error {
} }
// UnmarshalEnv implements envUnmarshaler. // UnmarshalEnv implements envUnmarshaler.
func (d *RtspRangeType) UnmarshalEnv(s string) error { func (d *RTSPRangeType) UnmarshalEnv(s string) error {
return d.UnmarshalJSON([]byte(`"` + s + `"`)) return d.UnmarshalJSON([]byte(`"` + s + `"`))
} }

14
internal/core/rtsp_source.go

@ -15,9 +15,9 @@ import (
) )
func createRangeHeader(cnf *conf.PathConf) (*headers.Range, error) { func createRangeHeader(cnf *conf.PathConf) (*headers.Range, error) {
switch cnf.RtspRangeType { switch cnf.RTSPRangeType {
case conf.RtspRangeTypeClock: case conf.RTSPRangeTypeClock:
start, err := time.Parse("20060102T150405Z", cnf.RtspRangeStart) start, err := time.Parse("20060102T150405Z", cnf.RTSPRangeStart)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -28,8 +28,8 @@ func createRangeHeader(cnf *conf.PathConf) (*headers.Range, error) {
}, },
}, nil }, nil
case conf.RtspRangeTypeNPT: case conf.RTSPRangeTypeNPT:
start, err := time.ParseDuration(cnf.RtspRangeStart) start, err := time.ParseDuration(cnf.RTSPRangeStart)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -40,8 +40,8 @@ func createRangeHeader(cnf *conf.PathConf) (*headers.Range, error) {
}, },
}, nil }, nil
case conf.RtspRangeTypeSMPTE: case conf.RTSPRangeTypeSMPTE:
start, err := time.ParseDuration(cnf.RtspRangeStart) start, err := time.ParseDuration(cnf.RTSPRangeStart)
if err != nil { if err != nil {
return nil, err return nil, err
} }

Loading…
Cancel
Save