diff --git a/internal/rtmp/base/messagetype.go b/internal/rtmp/base/messagetype.go index 17cf99b4..7f24c82a 100644 --- a/internal/rtmp/base/messagetype.go +++ b/internal/rtmp/base/messagetype.go @@ -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 ) diff --git a/internal/rtmp/conn_test.go b/internal/rtmp/conn_test.go index 35a7bef4..845b0829 100644 --- a/internal/rtmp/conn_test.go +++ b/internal/rtmp/conn_test.go @@ -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{}{