|
|
|
@ -153,7 +153,7 @@ func TestReadTracks(t *testing.T) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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{}{ |
|
|
|
|