Browse Source

hls client: rename ClientParent into ClientLogger

pull/883/head
aler9 4 years ago committed by Alessandro Ros
parent
commit
eeb15773f9
  1. 22
      internal/hls/client.go
  2. 8
      internal/hls/client_video_processor.go

22
internal/hls/client.go

@ -39,8 +39,8 @@ type clientAllocateProcsReq struct {
res chan struct{} res chan struct{}
} }
// ClientParent is the parent of a Client. // ClientLogger allows to receive log lines.
type ClientParent interface { type ClientLogger interface {
Log(level logger.Level, format string, args ...interface{}) Log(level logger.Level, format string, args ...interface{})
} }
@ -49,7 +49,7 @@ type Client struct {
onTracks func(gortsplib.Track, gortsplib.Track) error onTracks func(gortsplib.Track, gortsplib.Track) error
onVideoData func(time.Duration, [][]byte) onVideoData func(time.Duration, [][]byte)
onAudioData func(time.Duration, [][]byte) onAudioData func(time.Duration, [][]byte)
parent ClientParent logger ClientLogger
ctx context.Context ctx context.Context
ctxCancel func() ctxCancel func()
@ -86,7 +86,7 @@ func NewClient(
onTracks func(gortsplib.Track, gortsplib.Track) error, onTracks func(gortsplib.Track, gortsplib.Track) error,
onVideoData func(time.Duration, [][]byte), onVideoData func(time.Duration, [][]byte),
onAudioData func(time.Duration, [][]byte), onAudioData func(time.Duration, [][]byte),
parent ClientParent, logger ClientLogger,
) (*Client, error) { ) (*Client, error) {
primaryPlaylistURL, err := url.Parse(primaryPlaylistURLStr) primaryPlaylistURL, err := url.Parse(primaryPlaylistURLStr)
if err != nil { if err != nil {
@ -120,7 +120,7 @@ func NewClient(
onTracks: onTracks, onTracks: onTracks,
onVideoData: onVideoData, onVideoData: onVideoData,
onAudioData: onAudioData, onAudioData: onAudioData,
parent: parent, logger: logger,
ctx: ctx, ctx: ctx,
ctxCancel: ctxCancel, ctxCancel: ctxCancel,
primaryPlaylistURL: primaryPlaylistURL, primaryPlaylistURL: primaryPlaylistURL,
@ -139,10 +139,6 @@ func NewClient(
return c, nil return c, nil
} }
func (c *Client) log(level logger.Level, format string, args ...interface{}) {
c.parent.Log(level, format, args...)
}
// Close closes all the Client resources. // Close closes all the Client resources.
func (c *Client) Close() { func (c *Client) Close() {
c.ctxCancel() c.ctxCancel()
@ -177,7 +173,7 @@ func (c *Client) runInner() error {
defer c.tracksMutex.RUnlock() defer c.tracksMutex.RUnlock()
c.onVideoData(pts, nalus) c.onVideoData(pts, nalus)
}, },
c.parent) c.logger)
go func() { errChan <- c.videoProc.run() }() go func() { errChan <- c.videoProc.run() }()
} }
@ -293,7 +289,7 @@ func (c *Client) segmentWasDownloaded(ur string) bool {
} }
func (c *Client) downloadPrimaryPlaylist(innerCtx context.Context) (*m3u8.MediaPlaylist, error) { func (c *Client) downloadPrimaryPlaylist(innerCtx context.Context) (*m3u8.MediaPlaylist, error) {
c.log(logger.Debug, "downloading primary playlist %s", c.primaryPlaylistURL) c.logger.Log(logger.Debug, "downloading primary playlist %s", c.primaryPlaylistURL)
pl, err := c.downloadPlaylist(innerCtx, c.primaryPlaylistURL) pl, err := c.downloadPlaylist(innerCtx, c.primaryPlaylistURL)
if err != nil { if err != nil {
@ -334,7 +330,7 @@ func (c *Client) downloadPrimaryPlaylist(innerCtx context.Context) (*m3u8.MediaP
} }
func (c *Client) downloadStreamPlaylist(innerCtx context.Context) (*m3u8.MediaPlaylist, error) { func (c *Client) downloadStreamPlaylist(innerCtx context.Context) (*m3u8.MediaPlaylist, error) {
c.log(logger.Debug, "downloading stream playlist %s", c.streamPlaylistURL.String()) c.logger.Log(logger.Debug, "downloading stream playlist %s", c.streamPlaylistURL.String())
pl, err := c.downloadPlaylist(innerCtx, c.streamPlaylistURL) pl, err := c.downloadPlaylist(innerCtx, c.streamPlaylistURL)
if err != nil { if err != nil {
@ -379,7 +375,7 @@ func (c *Client) downloadSegment(innerCtx context.Context, segmentURI string) ([
return nil, err return nil, err
} }
c.log(logger.Debug, "downloading segment %s", u) c.logger.Log(logger.Debug, "downloading segment %s", u)
req, err := http.NewRequestWithContext(innerCtx, http.MethodGet, u.String(), nil) req, err := http.NewRequestWithContext(innerCtx, http.MethodGet, u.String(), nil)
if err != nil { if err != nil {
return nil, err return nil, err

8
internal/hls/client_video_processor.go

@ -21,7 +21,7 @@ type clientVideoProcessor struct {
ctx context.Context ctx context.Context
onTrack func(gortsplib.Track) error onTrack func(gortsplib.Track) error
onData func(time.Duration, [][]byte) onData func(time.Duration, [][]byte)
parent ClientParent logger ClientLogger
trackInitialized bool trackInitialized bool
queue chan clientVideoProcessorData queue chan clientVideoProcessorData
@ -34,13 +34,13 @@ func newClientVideoProcessor(
ctx context.Context, ctx context.Context,
onTrack func(gortsplib.Track) error, onTrack func(gortsplib.Track) error,
onData func(time.Duration, [][]byte), onData func(time.Duration, [][]byte),
parent ClientParent, logger ClientLogger,
) *clientVideoProcessor { ) *clientVideoProcessor {
p := &clientVideoProcessor{ p := &clientVideoProcessor{
ctx: ctx, ctx: ctx,
onTrack: onTrack, onTrack: onTrack,
onData: onData, onData: onData,
parent: parent, logger: logger,
queue: make(chan clientVideoProcessorData, clientQueueSize), queue: make(chan clientVideoProcessorData, clientQueueSize),
} }
@ -77,7 +77,7 @@ func (p *clientVideoProcessor) doProcess(
nalus, err := h264.DecodeAnnexB(data) nalus, err := h264.DecodeAnnexB(data)
if err != nil { if err != nil {
p.parent.Log(logger.Warn, "unable to decode Annex-B: %s", err) p.logger.Log(logger.Warn, "unable to decode Annex-B: %s", err)
return nil return nil
} }

Loading…
Cancel
Save