Remove RTCDataChannel priority

This has been removed from webrtc-pc[0]

Relates to #748

[0] https://github.com/w3c/webrtc-pc/issues/2258
This commit is contained in:
Sean DuBois
2019-09-26 01:07:42 -07:00
committed by Sean DuBois
parent c12ebcf0e2
commit d54b494292
8 changed files with 6 additions and 161 deletions

View File

@@ -30,7 +30,6 @@ type DataChannel struct {
protocol string protocol string
negotiated bool negotiated bool
id *uint16 id *uint16
priority PriorityType
readyState DataChannelState readyState DataChannelState
bufferedAmountLowThreshold uint64 bufferedAmountLowThreshold uint64
@@ -453,15 +452,6 @@ func (d *DataChannel) ID() *uint16 {
return d.id return d.id
} }
// Priority represents the priority for this DataChannel. The priority is
// assigned at channel creation time.
func (d *DataChannel) Priority() PriorityType {
d.mu.RLock()
defer d.mu.RUnlock()
return d.priority
}
// ReadyState represents the state of the DataChannel object. // ReadyState represents the state of the DataChannel object.
func (d *DataChannel) ReadyState() DataChannelState { func (d *DataChannel) ReadyState() DataChannelState {
d.mu.RLock() d.mu.RLock()

View File

@@ -189,13 +189,11 @@ func TestDataChannelParamters_Go(t *testing.T) {
dc.label = "mylabel" dc.label = "mylabel"
dc.protocol = "myprotocol" dc.protocol = "myprotocol"
dc.negotiated = true dc.negotiated = true
dc.priority = PriorityTypeMedium
assert.Equal(t, dc.id, dc.ID(), "should match") assert.Equal(t, dc.id, dc.ID(), "should match")
assert.Equal(t, dc.label, dc.Label(), "should match") assert.Equal(t, dc.label, dc.Label(), "should match")
assert.Equal(t, dc.protocol, dc.Protocol(), "should match") assert.Equal(t, dc.protocol, dc.Protocol(), "should match")
assert.Equal(t, dc.negotiated, dc.Negotiated(), "should match") assert.Equal(t, dc.negotiated, dc.Negotiated(), "should match")
assert.Equal(t, dc.priority, dc.Priority(), "should match")
assert.Equal(t, dc.readyState, dc.ReadyState(), "should match") assert.Equal(t, dc.readyState, dc.ReadyState(), "should match")
assert.Equal(t, uint64(0), dc.BufferedAmount(), "should match") assert.Equal(t, uint64(0), dc.BufferedAmount(), "should match")
dc.SetBufferedAmountLowThreshold(1500) dc.SetBufferedAmountLowThreshold(1500)

View File

@@ -207,11 +207,6 @@ func (d *DataChannel) ID() *uint16 {
return valueToUint16Pointer(d.underlying.Get("id")) return valueToUint16Pointer(d.underlying.Get("id"))
} }
// NOTE(albrow): Apparently not part of the JavaScript WebRTC API
// // Priority represents the priority for this DataChannel. The priority is
// // assigned at channel creation time.
// Priority PriorityType
// ReadyState represents the state of the DataChannel object. // ReadyState represents the state of the DataChannel object.
func (d *DataChannel) ReadyState() DataChannelState { func (d *DataChannel) ReadyState() DataChannelState {
return newDataChannelState(d.underlying.Get("readyState").String()) return newDataChannelState(d.underlying.Get("readyState").String())

View File

@@ -30,7 +30,4 @@ type DataChannelInit struct {
// ID overrides the default selection of ID for this channel. // ID overrides the default selection of ID for this channel.
ID *uint16 ID *uint16
// Priority describes the priority of this channel.
Priority *PriorityType
} }

View File

@@ -1,71 +0,0 @@
package webrtc
// PriorityType determines the priority type of a data channel.
type PriorityType int
const (
// PriorityTypeVeryLow corresponds to "below normal".
PriorityTypeVeryLow PriorityType = iota + 1
// PriorityTypeLow corresponds to "normal".
PriorityTypeLow
// PriorityTypeMedium corresponds to "high".
PriorityTypeMedium
// PriorityTypeHigh corresponds to "extra high".
PriorityTypeHigh
)
// This is done this way because of a linter.
const (
priorityTypeVeryLowStr = "very-low"
priorityTypeLowStr = "low"
priorityTypeMediumStr = "medium"
priorityTypeHighStr = "high"
)
func newPriorityTypeFromString(raw string) PriorityType {
switch raw {
case priorityTypeVeryLowStr:
return PriorityTypeVeryLow
case priorityTypeLowStr:
return PriorityTypeLow
case priorityTypeMediumStr:
return PriorityTypeMedium
case priorityTypeHighStr:
return PriorityTypeHigh
default:
return PriorityType(Unknown)
}
}
func newPriorityTypeFromUint16(raw uint16) PriorityType {
switch {
case raw <= 128:
return PriorityTypeVeryLow
case 129 <= raw && raw <= 256:
return PriorityTypeLow
case 257 <= raw && raw <= 512:
return PriorityTypeMedium
case 513 <= raw:
return PriorityTypeHigh
default:
return PriorityType(Unknown)
}
}
func (p PriorityType) String() string {
switch p {
case PriorityTypeVeryLow:
return priorityTypeVeryLowStr
case PriorityTypeLow:
return priorityTypeLowStr
case PriorityTypeMedium:
return priorityTypeMediumStr
case PriorityTypeHigh:
return priorityTypeHighStr
default:
return ErrUnknownType.Error()
}
}

View File

@@ -1,61 +0,0 @@
package webrtc
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewPriorityType(t *testing.T) {
testCases := []struct {
priorityString string
priorityUint16 uint16
expectedPriority PriorityType
}{
{unknownStr, 0, PriorityType(Unknown)},
{"very-low", 100, PriorityTypeVeryLow},
{"low", 200, PriorityTypeLow},
{"medium", 300, PriorityTypeMedium},
{"high", 1000, PriorityTypeHigh},
}
for i, testCase := range testCases {
assert.Equal(t,
testCase.expectedPriority,
newPriorityTypeFromString(testCase.priorityString),
"testCase: %d %v", i, testCase,
)
// There is no uint that produces generate PriorityType(Unknown).
if i == 0 {
continue
}
assert.Equal(t,
testCase.expectedPriority,
newPriorityTypeFromUint16(testCase.priorityUint16),
"testCase: %d %v", i, testCase,
)
}
}
func TestPriorityType_String(t *testing.T) {
testCases := []struct {
priority PriorityType
expectedString string
}{
{PriorityType(Unknown), unknownStr},
{PriorityTypeVeryLow, "very-low"},
{PriorityTypeLow, "low"},
{PriorityTypeMedium, "medium"},
{PriorityTypeHigh, "high"},
}
for i, testCase := range testCases {
assert.Equal(t,
testCase.expectedString,
testCase.priority.String(),
"testCase: %d %v", i, testCase,
)
}
}

View File

@@ -8,8 +8,8 @@ import (
func TestNewRTPTransceiverDirection(t *testing.T) { func TestNewRTPTransceiverDirection(t *testing.T) {
testCases := []struct { testCases := []struct {
priorityString string directionString string
expectedPriority RTPTransceiverDirection expectedDirection RTPTransceiverDirection
}{ }{
{unknownStr, RTPTransceiverDirection(Unknown)}, {unknownStr, RTPTransceiverDirection(Unknown)},
{"sendrecv", RTPTransceiverDirectionSendrecv}, {"sendrecv", RTPTransceiverDirectionSendrecv},
@@ -20,8 +20,8 @@ func TestNewRTPTransceiverDirection(t *testing.T) {
for i, testCase := range testCases { for i, testCase := range testCases {
assert.Equal(t, assert.Equal(t,
NewRTPTransceiverDirection(testCase.priorityString), NewRTPTransceiverDirection(testCase.directionString),
testCase.expectedPriority, testCase.expectedDirection,
"testCase: %d %v", i, testCase, "testCase: %d %v", i, testCase,
) )
} }
@@ -29,7 +29,7 @@ func TestNewRTPTransceiverDirection(t *testing.T) {
func TestRTPTransceiverDirection_String(t *testing.T) { func TestRTPTransceiverDirection_String(t *testing.T) {
testCases := []struct { testCases := []struct {
priority RTPTransceiverDirection direction RTPTransceiverDirection
expectedString string expectedString string
}{ }{
{RTPTransceiverDirection(Unknown), unknownStr}, {RTPTransceiverDirection(Unknown), unknownStr},
@@ -41,7 +41,7 @@ func TestRTPTransceiverDirection_String(t *testing.T) {
for i, testCase := range testCases { for i, testCase := range testCases {
assert.Equal(t, assert.Equal(t,
testCase.priority.String(), testCase.direction.String(),
testCase.expectedString, testCase.expectedString,
"testCase: %d %v", i, testCase, "testCase: %d %v", i, testCase,
) )

View File

@@ -832,9 +832,6 @@ type AudioSenderStats struct {
// Kind is either "audio" or "video". This reflects the "kind" attribute of the MediaStreamTrack. // Kind is either "audio" or "video". This reflects the "kind" attribute of the MediaStreamTrack.
Kind string `json:"kind"` Kind string `json:"kind"`
// Priority indicates the priority set for the track.
Priority PriorityType `json:"priority"`
// AudioLevel represents the output audio level of the track. // AudioLevel represents the output audio level of the track.
// //
// The value is a value between 0..1 (linear), where 1.0 represents 0 dBov, // The value is a value between 0..1 (linear), where 1.0 represents 0 dBov,