mirror of
https://github.com/datarhei/core.git
synced 2025-10-05 07:57:13 +08:00
Add alternative streamid format for SRT
The streamid format that starts with #!: is recommended in the SRT specs but it usually causes trouble where you're limited in the use of such characters. Some hardware devices will not accept such streamids. The alternative format is simpler and has the form [resource](,token:[token])?(,mode:[mode])? token and mode are optional. mode can have the values "publish" or "request". If mode is not provided, a value of "request" is assumed.
This commit is contained in:
@@ -8,7 +8,25 @@ import (
|
||||
|
||||
func TestParseStreamId(t *testing.T) {
|
||||
streamids := map[string]streamInfo{
|
||||
"bla": {},
|
||||
"bla": {resource: "bla", mode: "request"},
|
||||
"bla,mode:publish": {resource: "bla", mode: "publish"},
|
||||
"123456789": {resource: "123456789", mode: "request"},
|
||||
"bla,token:foobar": {resource: "bla", token: "foobar", mode: "request"},
|
||||
"bla,token:foo,bar": {resource: "bla", token: "foo,bar", mode: "request"},
|
||||
"123456789,mode:publish,token:foobar": {resource: "123456789", token: "foobar", mode: "publish"},
|
||||
"mode:publish": {resource: "mode:publish", mode: "request"},
|
||||
}
|
||||
|
||||
for streamid, wantsi := range streamids {
|
||||
si, err := parseStreamId(streamid)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, wantsi, si)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseOldStreamId(t *testing.T) {
|
||||
streamids := map[string]streamInfo{
|
||||
"#!:": {},
|
||||
"#!:key=value": {},
|
||||
"#!:m=publish": {mode: "publish"},
|
||||
@@ -19,7 +37,7 @@ func TestParseStreamId(t *testing.T) {
|
||||
}
|
||||
|
||||
for streamid, wantsi := range streamids {
|
||||
si, _ := parseStreamId(streamid)
|
||||
si, _ := parseOldStreamId(streamid)
|
||||
|
||||
require.Equal(t, wantsi, si)
|
||||
}
|
||||
|
Reference in New Issue
Block a user