mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 23:26:54 +08:00
cleanup server-h264-save-to-disk example
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
|||||||
|
|
||||||
type serverHandler struct {
|
type serverHandler struct {
|
||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
stream *gortsplib.ServerStream
|
publisher *gortsplib.ServerSession
|
||||||
h264TrackID int
|
h264TrackID int
|
||||||
h264track *gortsplib.TrackH264
|
h264track *gortsplib.TrackH264
|
||||||
mpegtsMuxer *mpegtsMuxer
|
mpegtsMuxer *mpegtsMuxer
|
||||||
@@ -44,11 +44,8 @@ func (sh *serverHandler) OnSessionClose(ctx *gortsplib.ServerHandlerOnSessionClo
|
|||||||
sh.mutex.Lock()
|
sh.mutex.Lock()
|
||||||
defer sh.mutex.Unlock()
|
defer sh.mutex.Unlock()
|
||||||
|
|
||||||
// close the stream and disconnect any reader.
|
// allow someone else to publish
|
||||||
if sh.stream != nil {
|
sh.publisher = nil
|
||||||
sh.stream.Close()
|
|
||||||
sh.stream = nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// called after receiving an ANNOUNCE request.
|
// called after receiving an ANNOUNCE request.
|
||||||
@@ -58,7 +55,7 @@ func (sh *serverHandler) OnAnnounce(ctx *gortsplib.ServerHandlerOnAnnounceCtx) (
|
|||||||
sh.mutex.Lock()
|
sh.mutex.Lock()
|
||||||
defer sh.mutex.Unlock()
|
defer sh.mutex.Unlock()
|
||||||
|
|
||||||
if sh.stream != nil {
|
if sh.publisher != nil {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, fmt.Errorf("someone is already publishing")
|
}, fmt.Errorf("someone is already publishing")
|
||||||
@@ -87,8 +84,7 @@ func (sh *serverHandler) OnAnnounce(ctx *gortsplib.ServerHandlerOnAnnounceCtx) (
|
|||||||
}, err
|
}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a stream and save data
|
sh.publisher = ctx.Session
|
||||||
sh.stream = gortsplib.NewServerStream(ctx.Tracks)
|
|
||||||
sh.h264TrackID = h264TrackID
|
sh.h264TrackID = h264TrackID
|
||||||
sh.mpegtsMuxer = mpegtsMuxer
|
sh.mpegtsMuxer = mpegtsMuxer
|
||||||
|
|
||||||
@@ -103,7 +99,7 @@ func (sh *serverHandler) OnSetup(ctx *gortsplib.ServerHandlerOnSetupCtx) (*base.
|
|||||||
|
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusOK,
|
StatusCode: base.StatusOK,
|
||||||
}, sh.stream, nil
|
}, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// called after receiving a RECORD request.
|
// called after receiving a RECORD request.
|
||||||
|
Reference in New Issue
Block a user