|
|
|
|
@ -684,8 +684,14 @@ func TestInitUnmarshal(t *testing.T) {
@@ -684,8 +684,14 @@ func TestInitUnmarshal(t *testing.T) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestInitUnmarshalExternal(t *testing.T) { |
|
|
|
|
t.Run("h264", func(t *testing.T) { |
|
|
|
|
byts := []byte{ |
|
|
|
|
for _, ca := range []struct { |
|
|
|
|
name string |
|
|
|
|
byts []byte |
|
|
|
|
init Init |
|
|
|
|
}{ |
|
|
|
|
{ |
|
|
|
|
"h264", |
|
|
|
|
[]byte{ |
|
|
|
|
0x00, 0x00, 0x00, 0x1c, |
|
|
|
|
'f', 't', 'y', 'p', |
|
|
|
|
0x64, 0x61, 0x73, 0x68, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
@ -783,13 +789,8 @@ func TestInitUnmarshalExternal(t *testing.T) {
@@ -783,13 +789,8 @@ func TestInitUnmarshalExternal(t *testing.T) {
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var init Init |
|
|
|
|
err := init.Unmarshal(byts) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
|
|
|
|
|
require.Equal(t, Init{ |
|
|
|
|
}, |
|
|
|
|
Init{ |
|
|
|
|
Tracks: []*InitTrack{ |
|
|
|
|
{ |
|
|
|
|
ID: 256, |
|
|
|
|
@ -809,11 +810,11 @@ func TestInitUnmarshalExternal(t *testing.T) {
@@ -809,11 +810,11 @@ func TestInitUnmarshalExternal(t *testing.T) {
|
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, init) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("mpeg4audio", func(t *testing.T) { |
|
|
|
|
byts := []byte{ |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"mpeg4audio", |
|
|
|
|
[]byte{ |
|
|
|
|
0x00, 0x00, 0x00, 0x18, |
|
|
|
|
'f', 't', 'y', 'p', |
|
|
|
|
0x69, 0x73, 0x6f, 0x35, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
@ -901,13 +902,8 @@ func TestInitUnmarshalExternal(t *testing.T) {
@@ -901,13 +902,8 @@ func TestInitUnmarshalExternal(t *testing.T) {
|
|
|
|
|
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var init Init |
|
|
|
|
err := init.Unmarshal(byts) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
|
|
|
|
|
require.Equal(t, Init{ |
|
|
|
|
}, |
|
|
|
|
Init{ |
|
|
|
|
Tracks: []*InitTrack{ |
|
|
|
|
{ |
|
|
|
|
ID: 257, |
|
|
|
|
@ -925,6 +921,350 @@ func TestInitUnmarshalExternal(t *testing.T) {
@@ -925,6 +921,350 @@ func TestInitUnmarshalExternal(t *testing.T) {
|
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, init) |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"ignored closed captions", |
|
|
|
|
[]byte{ |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70, |
|
|
|
|
0x6d, 0x70, 0x34, 0x32, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0x6d, 0x70, 0x34, 0x31, 0x6d, 0x70, 0x34, 0x32, |
|
|
|
|
0x69, 0x73, 0x6f, 0x6d, 0x68, 0x6c, 0x73, 0x66, |
|
|
|
|
0x00, 0x00, 0x04, 0x3f, 0x6d, 0x6f, 0x6f, 0x76, |
|
|
|
|
0x00, 0x00, 0x00, 0x6c, 0x6d, 0x76, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x62, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x62, 0x00, 0x00, 0x02, 0x58, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x19, |
|
|
|
|
0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, 0x5c, |
|
|
|
|
0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x62, 0xd5, 0x5b, 0xc6, 0x62, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x07, 0x80, 0x00, 0x00, 0x04, 0x38, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0xb5, 0x6d, 0x64, 0x69, 0x61, |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x62, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x62, 0x00, 0x00, 0x17, 0x70, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x15, 0xc7, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x31, 0x68, 0x64, 0x6c, 0x72, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x76, 0x69, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x64, |
|
|
|
|
0x69, 0x61, 0x20, 0x56, 0x69, 0x64, 0x65, 0x6f, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x5c, 0x6d, 0x69, 0x6e, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x14, 0x76, 0x6d, 0x68, |
|
|
|
|
0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x24, 0x64, 0x69, 0x6e, 0x66, 0x00, 0x00, 0x00, |
|
|
|
|
0x1c, 0x64, 0x72, 0x65, 0x66, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x0c, 0x75, 0x72, 0x6c, 0x20, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x01, 0x1c, 0x73, 0x74, 0x62, |
|
|
|
|
0x6c, 0x00, 0x00, 0x00, 0xd0, 0x73, 0x74, 0x73, |
|
|
|
|
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0xc0, 0x61, 0x76, 0x63, |
|
|
|
|
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x07, 0x80, 0x04, 0x38, 0x00, 0x48, 0x00, |
|
|
|
|
0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x18, 0xff, 0xff, 0x00, |
|
|
|
|
0x00, 0x00, 0x33, 0x61, 0x76, 0x63, 0x43, 0x01, |
|
|
|
|
0x64, 0x00, 0x2a, 0xff, 0xe1, 0x00, 0x1b, 0x27, |
|
|
|
|
0x64, 0x00, 0x2a, 0xac, 0x52, 0x14, 0x07, 0x80, |
|
|
|
|
0x22, 0x7e, 0x5f, 0xfc, 0x00, 0x04, 0x00, 0x05, |
|
|
|
|
0xa8, 0x08, 0x08, 0x0d, 0xb6, 0x15, 0xaf, 0x7b, |
|
|
|
|
0xe0, 0x20, 0x01, 0x00, 0x05, 0x28, 0xf9, 0x09, |
|
|
|
|
0x09, 0xcb, 0x00, 0x00, 0x00, 0x13, 0x63, 0x6f, |
|
|
|
|
0x6c, 0x72, 0x6e, 0x63, 0x6c, 0x78, 0x00, 0x01, |
|
|
|
|
0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x0a, 0x66, 0x69, 0x65, 0x6c, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x0a, 0x63, 0x68, 0x72, 0x6d, 0x01, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x10, 0x70, 0x61, 0x73, |
|
|
|
|
0x70, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x74, |
|
|
|
|
0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x73, |
|
|
|
|
0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x14, 0x73, 0x74, 0x73, |
|
|
|
|
0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x10, 0x73, 0x74, 0x63, 0x6f, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0x6a, 0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, |
|
|
|
|
0x5c, 0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0xd5, 0x5b, 0xc6, 0x62, 0xd5, 0x5b, 0xc6, |
|
|
|
|
0x62, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, |
|
|
|
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x06, 0x6d, 0x64, 0x69, |
|
|
|
|
0x61, 0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, |
|
|
|
|
0x64, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, |
|
|
|
|
0x62, 0xd5, 0x5b, 0xc6, 0x62, 0x00, 0x00, 0x75, |
|
|
|
|
0x30, 0x00, 0x00, 0x00, 0x00, 0x15, 0xc7, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x3a, 0x68, 0x64, 0x6c, |
|
|
|
|
0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x63, 0x6c, 0x63, 0x70, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, |
|
|
|
|
0x64, 0x69, 0x61, 0x20, 0x43, 0x6c, 0x6f, 0x73, |
|
|
|
|
0x65, 0x64, 0x20, 0x43, 0x61, 0x70, 0x74, 0x69, |
|
|
|
|
0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x6d, |
|
|
|
|
0x69, 0x6e, 0x66, 0x00, 0x00, 0x00, 0x0c, 0x6e, |
|
|
|
|
0x6d, 0x68, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x24, 0x64, 0x69, 0x6e, 0x66, 0x00, |
|
|
|
|
0x00, 0x00, 0x1c, 0x64, 0x72, 0x65, 0x66, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, |
|
|
|
|
0x00, 0x00, 0x0c, 0x75, 0x72, 0x6c, 0x20, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x73, |
|
|
|
|
0x74, 0x62, 0x6c, 0x00, 0x00, 0x00, 0x20, 0x73, |
|
|
|
|
0x74, 0x73, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x63, |
|
|
|
|
0x36, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x73, |
|
|
|
|
0x74, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x73, |
|
|
|
|
0x74, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x73, |
|
|
|
|
0x74, 0x73, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x10, 0x73, 0x74, 0x63, 0x6f, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x48, 0x6d, 0x76, 0x65, 0x78, 0x00, |
|
|
|
|
0x00, 0x00, 0x20, 0x74, 0x72, 0x65, 0x78, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x20, 0x74, 0x72, 0x65, 0x78, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
}, |
|
|
|
|
Init{ |
|
|
|
|
Tracks: []*InitTrack{{ |
|
|
|
|
ID: 1, |
|
|
|
|
TimeScale: 6000, |
|
|
|
|
Format: &format.H264{ |
|
|
|
|
PayloadTyp: 96, |
|
|
|
|
PacketizationMode: 1, |
|
|
|
|
SPS: []byte{ |
|
|
|
|
0x27, 0x64, 0x00, 0x2a, 0xac, 0x52, 0x14, 0x07, |
|
|
|
|
0x80, 0x22, 0x7e, 0x5f, 0xfc, 0x00, 0x04, 0x00, |
|
|
|
|
0x05, 0xa8, 0x08, 0x08, 0x0d, 0xb6, 0x15, 0xaf, |
|
|
|
|
0x7b, 0xe0, 0x20, |
|
|
|
|
}, |
|
|
|
|
PPS: []byte{ |
|
|
|
|
0x28, 0xf9, 0x09, 0x09, 0xcb, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
} { |
|
|
|
|
t.Run(ca.name, func(t *testing.T) { |
|
|
|
|
var init Init |
|
|
|
|
err := init.Unmarshal(ca.byts) |
|
|
|
|
require.NoError(t, err) |
|
|
|
|
require.Equal(t, ca.init, init) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestInitUnmarshalErrors(t *testing.T) { |
|
|
|
|
for _, ca := range []struct { |
|
|
|
|
name string |
|
|
|
|
byts []byte |
|
|
|
|
err string |
|
|
|
|
}{ |
|
|
|
|
{ |
|
|
|
|
"ac3", |
|
|
|
|
[]byte{ |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70, |
|
|
|
|
0x6d, 0x70, 0x34, 0x32, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0x6d, 0x70, 0x34, 0x31, 0x6d, 0x70, 0x34, 0x32, |
|
|
|
|
0x69, 0x73, 0x6f, 0x6d, 0x68, 0x6c, 0x73, 0x66, |
|
|
|
|
0x00, 0x00, 0x02, 0x20, 0x6d, 0x6f, 0x6f, 0x76, |
|
|
|
|
0x00, 0x00, 0x00, 0x6c, 0x6d, 0x76, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0x00, 0x00, 0x02, 0x58, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x84, |
|
|
|
|
0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, 0x5c, |
|
|
|
|
0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x20, 0x6d, 0x64, 0x69, 0x61, |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0x00, 0x00, 0xbb, 0x80, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x55, 0xc4, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x31, 0x68, 0x64, 0x6c, 0x72, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x73, 0x6f, 0x75, 0x6e, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x64, |
|
|
|
|
0x69, 0x61, 0x20, 0x41, 0x75, 0x64, 0x69, 0x6f, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xc7, 0x6d, 0x69, 0x6e, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x10, 0x73, 0x6d, 0x68, |
|
|
|
|
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x24, 0x64, 0x69, 0x6e, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x1c, 0x64, 0x72, 0x65, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x0c, 0x75, 0x72, 0x6c, |
|
|
|
|
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x8b, 0x73, 0x74, 0x62, 0x6c, 0x00, 0x00, 0x00, |
|
|
|
|
0x3f, 0x73, 0x74, 0x73, 0x64, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x2f, 0x61, 0x63, 0x2d, 0x33, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, |
|
|
|
|
0x10, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x80, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x0b, 0x64, 0x61, 0x63, |
|
|
|
|
0x33, 0x0c, 0x3d, 0x40, 0x00, 0x00, 0x00, 0x10, |
|
|
|
|
0x73, 0x74, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, |
|
|
|
|
0x73, 0x74, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, |
|
|
|
|
0x73, 0x74, 0x73, 0x7a, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x63, 0x6f, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x28, 0x6d, 0x76, 0x65, 0x78, |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x74, 0x72, 0x65, 0x78, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
}, |
|
|
|
|
"no tracks found", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"ac-3", |
|
|
|
|
[]byte{ |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70, |
|
|
|
|
0x6d, 0x70, 0x34, 0x32, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0x6d, 0x70, 0x34, 0x31, 0x6d, 0x70, 0x34, 0x32, |
|
|
|
|
0x69, 0x73, 0x6f, 0x6d, 0x68, 0x6c, 0x73, 0x66, |
|
|
|
|
0x00, 0x00, 0x02, 0x22, 0x6d, 0x6f, 0x6f, 0x76, |
|
|
|
|
0x00, 0x00, 0x00, 0x6c, 0x6d, 0x76, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0x00, 0x00, 0x02, 0x58, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x86, |
|
|
|
|
0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, 0x5c, |
|
|
|
|
0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x01, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x01, 0x22, 0x6d, 0x64, 0x69, 0x61, |
|
|
|
|
0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x5d, |
|
|
|
|
0xd5, 0x5b, 0xc6, 0x5d, 0x00, 0x00, 0xbb, 0x80, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x55, 0xc4, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x31, 0x68, 0x64, 0x6c, 0x72, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x73, 0x6f, 0x75, 0x6e, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x64, |
|
|
|
|
0x69, 0x61, 0x20, 0x41, 0x75, 0x64, 0x69, 0x6f, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0xc9, 0x6d, 0x69, 0x6e, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x10, 0x73, 0x6d, 0x68, |
|
|
|
|
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x24, 0x64, 0x69, 0x6e, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x1c, 0x64, 0x72, 0x65, |
|
|
|
|
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x01, 0x00, 0x00, 0x00, 0x0c, 0x75, 0x72, 0x6c, |
|
|
|
|
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x8d, 0x73, 0x74, 0x62, 0x6c, 0x00, 0x00, 0x00, |
|
|
|
|
0x41, 0x73, 0x74, 0x73, 0x64, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x31, 0x65, 0x63, 0x2d, 0x33, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, |
|
|
|
|
0x10, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x80, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x0d, 0x64, 0x65, 0x63, |
|
|
|
|
0x33, 0x00, 0xc0, 0x20, 0x0f, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x10, 0x73, 0x74, 0x74, 0x73, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x10, 0x73, 0x74, 0x73, 0x63, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x14, 0x73, 0x74, 0x73, 0x7a, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74, |
|
|
|
|
0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6d, 0x76, |
|
|
|
|
0x65, 0x78, 0x00, 0x00, 0x00, 0x20, 0x74, 0x72, |
|
|
|
|
0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
|
0x00, 0x00, |
|
|
|
|
}, |
|
|
|
|
"no tracks found", |
|
|
|
|
}, |
|
|
|
|
} { |
|
|
|
|
t.Run(ca.name, func(t *testing.T) { |
|
|
|
|
var init Init |
|
|
|
|
err := init.Unmarshal(ca.byts) |
|
|
|
|
require.EqualError(t, err, ca.err) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|