@ -162,20 +162,20 @@ type program struct {
sources [ ] * source
sources [ ] * source
publishers map [ string ] publisher
publishers map [ string ] publisher
publisherCount int
publisherCount int
receiverCount int
readerCount int
events chan programEvent
events chan programEvent
done chan struct { }
done chan struct { }
}
}
func newProgram ( s args [ ] string , stdin io . Reader ) ( * program , error ) {
func newProgram ( args [ ] string , stdin io . Reader ) ( * program , error ) {
k := kingpin . New ( "rtsp-simple-server" ,
k := kingpin . New ( "rtsp-simple-server" ,
"rtsp-simple-server " + Version + "\n\nRTSP server." )
"rtsp-simple-server " + Version + "\n\nRTSP server." )
argVersion := k . Flag ( "version" , "print version" ) . Bool ( )
argVersion := k . Flag ( "version" , "print version" ) . Bool ( )
argConfPath := k . Arg ( "confpath" , "path to a config file. The default is rtsp-simple-server.yml. Use 'stdin' to read config from stdin" ) . Default ( "rtsp-simple-server.yml" ) . String ( )
argConfPath := k . Arg ( "confpath" , "path to a config file. The default is rtsp-simple-server.yml. Use 'stdin' to read config from stdin" ) . Default ( "rtsp-simple-server.yml" ) . String ( )
kingpin . MustParse ( k . Parse ( s args) )
kingpin . MustParse ( k . Parse ( args ) )
if * argVersion == true {
if * argVersion == true {
fmt . Println ( Version )
fmt . Println ( Version )
@ -197,11 +197,7 @@ func newProgram(sargs []string, stdin io.Reader) (*program, error) {
for path , pconf := range conf . Paths {
for path , pconf := range conf . Paths {
if pconf . Source != "record" {
if pconf . Source != "record" {
s , err := newSource ( p , path , pconf . Source , pconf . SourceProtocol )
s := newSource ( p , path , pconf . sourceUrl , pconf . sourceProtocolParsed )
if err != nil {
return nil , err
}
p . sources = append ( p . sources , s )
p . sources = append ( p . sources , s )
p . publishers [ path ] = s
p . publishers [ path ] = s
}
}
@ -249,7 +245,7 @@ func newProgram(sargs []string, stdin io.Reader) (*program, error) {
func ( p * program ) log ( format string , args ... interface { } ) {
func ( p * program ) log ( format string , args ... interface { } ) {
log . Printf ( "[%d/%d/%d] " + format , append ( [ ] interface { } { len ( p . clients ) ,
log . Printf ( "[%d/%d/%d] " + format , append ( [ ] interface { } { len ( p . clients ) ,
p . publisherCount , p . receiv erCount } , args ... ) ... )
p . publisherCount , p . read erCount } , args ... ) ... )
}
}
func ( p * program ) run ( ) {
func ( p * program ) run ( ) {
@ -349,12 +345,12 @@ outer:
evt . res <- nil
evt . res <- nil
case programEventClientPlay2 :
case programEventClientPlay2 :
p . receiv erCount += 1
p . read erCount += 1
evt . client . state = clientStatePlay
evt . client . state = clientStatePlay
close ( evt . done )
close ( evt . done )
case programEventClientPlayStop :
case programEventClientPlayStop :
p . receiv erCount -= 1
p . read erCount -= 1
evt . client . state = clientStatePrePlay
evt . client . state = clientStatePrePlay
close ( evt . done )
close ( evt . done )