rtmp: add additional message types
This commit is contained in:
@@ -10,4 +10,14 @@ const (
|
||||
MessageTypeAcknowledge MessageType = 3
|
||||
MessageTypeSetWindowAckSize MessageType = 5
|
||||
MessageTypeSetPeerBandwidth MessageType = 6
|
||||
|
||||
MessageTypeUserControl MessageType = 4
|
||||
|
||||
MessageTypeDataAMF3 MessageType = 15
|
||||
MessageTypeCommandAMF3 MessageType = 17
|
||||
MessageTypeDataAMF0 MessageType = 18
|
||||
MessageTypeCommandAMF0 MessageType = 20
|
||||
|
||||
MessageTypeAudio MessageType = 8
|
||||
MessageTypeVideo MessageType = 9
|
||||
)
|
||||
|
||||
+25
-25
@@ -153,7 +153,7 @@ func TestReadTracks(t *testing.T) {
|
||||
})
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: byts,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
@@ -193,7 +193,7 @@ func TestReadTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(3), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err := flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -224,7 +224,7 @@ func TestReadTracks(t *testing.T) {
|
||||
// C->S releaseStream
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: flvio.FillAMF0ValsMalloc([]interface{}{
|
||||
"releaseStream",
|
||||
float64(2),
|
||||
@@ -237,7 +237,7 @@ func TestReadTracks(t *testing.T) {
|
||||
// C->S FCPublish
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: flvio.FillAMF0ValsMalloc([]interface{}{
|
||||
"FCPublish",
|
||||
float64(3),
|
||||
@@ -250,7 +250,7 @@ func TestReadTracks(t *testing.T) {
|
||||
// C->S createStream
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: flvio.FillAMF0ValsMalloc([]interface{}{
|
||||
"createStream",
|
||||
float64(4),
|
||||
@@ -263,7 +263,7 @@ func TestReadTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(3), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -276,7 +276,7 @@ func TestReadTracks(t *testing.T) {
|
||||
// C->S publish
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 8,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
MessageStreamID: 1,
|
||||
Body: flvio.FillAMF0ValsMalloc([]interface{}{
|
||||
"publish",
|
||||
@@ -292,7 +292,7 @@ func TestReadTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(5), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -333,7 +333,7 @@ func TestReadTracks(t *testing.T) {
|
||||
})
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 4,
|
||||
Type: 0x12,
|
||||
Type: base.MessageTypeDataAMF0,
|
||||
MessageStreamID: 1,
|
||||
Body: byts,
|
||||
})
|
||||
@@ -354,7 +354,7 @@ func TestReadTracks(t *testing.T) {
|
||||
body := append([]byte{flvio.FRAME_KEY<<4 | flvio.VIDEO_H264, 0, 0, 0, 0}, b[:n]...)
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 6,
|
||||
Type: flvio.TAG_VIDEO,
|
||||
Type: base.MessageTypeVideo,
|
||||
MessageStreamID: 1,
|
||||
Body: body,
|
||||
})
|
||||
@@ -369,7 +369,7 @@ func TestReadTracks(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 4,
|
||||
Type: flvio.TAG_AUDIO,
|
||||
Type: base.MessageTypeAudio,
|
||||
MessageStreamID: 1,
|
||||
Body: append([]byte{
|
||||
flvio.SOUND_AAC<<4 | flvio.SOUND_44Khz<<2 | flvio.SOUND_16BIT<<1 | flvio.SOUND_STEREO,
|
||||
@@ -400,7 +400,7 @@ func TestReadTracks(t *testing.T) {
|
||||
})
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 4,
|
||||
Type: 0x12,
|
||||
Type: base.MessageTypeDataAMF0,
|
||||
MessageStreamID: 1,
|
||||
Body: byts,
|
||||
})
|
||||
@@ -421,7 +421,7 @@ func TestReadTracks(t *testing.T) {
|
||||
body := append([]byte{flvio.FRAME_KEY<<4 | flvio.VIDEO_H264, 0, 0, 0, 0}, b[:n]...)
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 6,
|
||||
Type: flvio.TAG_VIDEO,
|
||||
Type: base.MessageTypeVideo,
|
||||
MessageStreamID: 1,
|
||||
Body: body,
|
||||
})
|
||||
@@ -443,7 +443,7 @@ func TestReadTracks(t *testing.T) {
|
||||
body := append([]byte{flvio.FRAME_KEY<<4 | flvio.VIDEO_H264, 0, 0, 0, 0}, b[:n]...)
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 6,
|
||||
Type: flvio.TAG_VIDEO,
|
||||
Type: base.MessageTypeVideo,
|
||||
MessageStreamID: 1,
|
||||
Body: body,
|
||||
})
|
||||
@@ -532,7 +532,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
})
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: byts,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
@@ -572,7 +572,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(3), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err := flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -611,7 +611,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
// C->S createStream
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 3,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: flvio.FillAMF0ValsMalloc([]interface{}{
|
||||
"createStream",
|
||||
float64(2),
|
||||
@@ -624,7 +624,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(3), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -657,7 +657,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
})
|
||||
err = mw.Write(&base.Message{
|
||||
ChunkStreamID: 8,
|
||||
Type: 0x14,
|
||||
Type: base.MessageTypeCommandAMF0,
|
||||
Body: byts,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
@@ -667,7 +667,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, base.Chunk0{
|
||||
ChunkStreamID: base.ControlChunkStreamID,
|
||||
Type: 4,
|
||||
Type: base.MessageTypeUserControl,
|
||||
BodyLen: 6,
|
||||
Body: []byte{0x00, 0x04, 0x00, 0x00, 0x00, 0x01},
|
||||
}, c0)
|
||||
@@ -677,7 +677,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, base.Chunk0{
|
||||
ChunkStreamID: base.ControlChunkStreamID,
|
||||
Type: 4,
|
||||
Type: base.MessageTypeUserControl,
|
||||
BodyLen: 6,
|
||||
Body: []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
|
||||
}, c0)
|
||||
@@ -686,7 +686,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(5), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -704,7 +704,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(5), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -722,7 +722,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(5), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
@@ -740,7 +740,7 @@ func TestWriteTracks(t *testing.T) {
|
||||
err = c0.Read(conn, 65536)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint8(5), c0.ChunkStreamID)
|
||||
require.Equal(t, base.MessageType(0x14), c0.Type)
|
||||
require.Equal(t, base.MessageTypeCommandAMF0, c0.Type)
|
||||
arr, err = flvio.ParseAMFVals(c0.Body, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []interface{}{
|
||||
|
||||
Reference in New Issue
Block a user