mirror of
https://github.com/bluenviron/mediamtx
synced 2025-03-04 19:37:52 +00:00
webrtc: return an error when proxying stream with no tracks (#3042)
This commit is contained in:
parent
6e721201ed
commit
a52f550ee6
@ -404,6 +404,37 @@ func TestPathRunOnRead(t *testing.T) {
|
||||
Log: test.NilLogger{},
|
||||
}
|
||||
|
||||
writerDone := make(chan struct{})
|
||||
defer func() { <-writerDone }()
|
||||
|
||||
writerTerminate := make(chan struct{})
|
||||
defer close(writerTerminate)
|
||||
|
||||
go func() {
|
||||
defer close(writerDone)
|
||||
i := uint16(0)
|
||||
for {
|
||||
select {
|
||||
case <-time.After(100 * time.Millisecond):
|
||||
case <-writerTerminate:
|
||||
return
|
||||
}
|
||||
err := source.WritePacketRTP(testMediaH264, &rtp.Packet{
|
||||
Header: rtp.Header{
|
||||
Version: 2,
|
||||
Marker: true,
|
||||
PayloadType: 96,
|
||||
SequenceNumber: 123 + i,
|
||||
Timestamp: 45343,
|
||||
SSRC: 563423,
|
||||
},
|
||||
Payload: []byte{5},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
i++
|
||||
}
|
||||
}()
|
||||
|
||||
_, err = c.Read(context.Background())
|
||||
require.NoError(t, err)
|
||||
defer checkClose(t, c.Close)
|
||||
|
@ -227,7 +227,7 @@ outer:
|
||||
// GatherIncomingTracks gathers incoming tracks.
|
||||
func (co *PeerConnection) GatherIncomingTracks(
|
||||
ctx context.Context,
|
||||
count int,
|
||||
maxCount int,
|
||||
) ([]*IncomingTrack, error) {
|
||||
var tracks []*IncomingTrack
|
||||
|
||||
@ -237,7 +237,7 @@ func (co *PeerConnection) GatherIncomingTracks(
|
||||
for {
|
||||
select {
|
||||
case <-t.C:
|
||||
if count == 0 {
|
||||
if maxCount == 0 && len(tracks) != 0 {
|
||||
return tracks, nil
|
||||
}
|
||||
return nil, fmt.Errorf("deadline exceeded while waiting tracks")
|
||||
@ -249,7 +249,7 @@ func (co *PeerConnection) GatherIncomingTracks(
|
||||
}
|
||||
tracks = append(tracks, track)
|
||||
|
||||
if len(tracks) == count || len(tracks) >= 2 {
|
||||
if len(tracks) == maxCount || len(tracks) >= 2 {
|
||||
return tracks, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user