common errors as variable.

This commit is contained in:
Miroslav Šedivý
2021-08-29 17:09:13 +02:00
parent 530cc04805
commit 343b0c562a
17 changed files with 108 additions and 77 deletions

View File

@ -66,7 +66,7 @@ func (manager *WebRTCManagerCtx) Start() {
}
audioListener := func(sample types.Sample) {
if err := manager.audioTrack.WriteSample(media.Sample(sample)); err != nil && err != io.ErrClosedPipe {
if err := manager.audioTrack.WriteSample(media.Sample(sample)); err != nil {
if errors.Is(err, io.ErrClosedPipe) {
// The peerConnection has been closed.
return
@ -166,7 +166,7 @@ func (manager *WebRTCManagerCtx) CreatePeer(session types.Session, videoID strin
}
videoListener := func(sample types.Sample) {
if err := videoTrack.WriteSample(media.Sample(sample)); err != nil && err != io.ErrClosedPipe {
if err := videoTrack.WriteSample(media.Sample(sample)); err != nil {
if errors.Is(err, io.ErrClosedPipe) {
// The peerConnection has been closed.
return
@ -200,7 +200,7 @@ func (manager *WebRTCManagerCtx) CreatePeer(session types.Session, videoID strin
changeVideo := func(videoID string) error {
newVideoStream, ok := manager.capture.Video(videoID)
if !ok {
return fmt.Errorf("video stream not found")
return types.ErrWebRTCVideoNotFound
}
// should be new stream started
@ -357,7 +357,7 @@ func (manager *WebRTCManagerCtx) mediaEngine(videoID string) (*webrtc.MediaEngin
// all videos must have the same codec
video, ok := manager.capture.Video(videoID)
if !ok {
return nil, fmt.Errorf("selected video track not found")
return nil, types.ErrWebRTCVideoNotFound
}
videoCodec := video.Codec()

View File

@ -3,7 +3,6 @@ package webrtc
import (
"bytes"
"encoding/binary"
"fmt"
"demodesk/neko/internal/types"
)
@ -28,8 +27,11 @@ type PayloadCursorImage struct {
}
func (peer *WebRTCPeerCtx) SendCursorPosition(x, y int) error {
peer.mu.Lock()
defer peer.mu.Unlock()
if peer.dataChannel == nil {
return fmt.Errorf("no data channel")
return types.ErrWebRTCDataChannelNotFound
}
data := PayloadCursorPosition{
@ -50,8 +52,11 @@ func (peer *WebRTCPeerCtx) SendCursorPosition(x, y int) error {
}
func (peer *WebRTCPeerCtx) SendCursorImage(cur *types.CursorImage, img []byte) error {
peer.mu.Lock()
defer peer.mu.Unlock()
if peer.dataChannel == nil {
return fmt.Errorf("no data channel")
return types.ErrWebRTCDataChannelNotFound
}
data := PayloadCursorImage{