mirror of
https://github.com/bluenviron/mediamtx
synced 2025-02-20 21:46:56 +00:00
rtmp: add additional message types
This commit is contained in:
parent
180db31166
commit
1f6d92bc3a
@ -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
|
||||
)
|
||||
|
@ -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{}{
|
||||
|
Loading…
Reference in New Issue
Block a user