codec/h264/extract_test.go: fixed testing for extractor

This commit is contained in:
Saxon 2019-10-07 16:12:30 +10:30
parent fc4e88bce6
commit 9087f727db
1 changed files with 49 additions and 47 deletions

View File

@ -76,79 +76,81 @@ func TestRTPLex(t *testing.T) {
{
packets: [][]byte{
{ // Single NAL unit.
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // NAL Data.
1, 2, 3, 4, // NAL Data.
},
{ // Fragmentation (start packet).
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
typeFUA, // FU indicator.
0x80 | typeSingleNALULowBound, // FU header.
0x01, 0x02, 0x03, // FU payload.
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeFUA, // FU indicator.
128 | typeSingleNALULowBound, // FU header.
1, 2, 3, // FU payload.
},
{ // Fragmentation (middle packet)
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeFUA, // NAL indicator.
typeSingleNALULowBound, // FU header.
0x04, 0x05, 0x06, // FU payload.
4, 5, 6, // FU payload.
},
{ // Fragmentation (end packet)
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeFUA, // NAL indicator.
0x40 | typeSingleNALULowBound, // FU header.
0x07, 0x08, 0x09, // FU payload
7, 8, 9, // FU payload
},
{ // Aggregation. Make last packet of access unit => marker bit true.
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
typeSTAPA, // NAL header.
0x00, 0x04, // NAL 1 size.
0x01, 0x02, 0x03, 0x04, // NAL 1 data.
0x00, 0x04, // NAL 2 size.
0x01, 0x02, 0x03, 0x04, // NAL 2 data.
{
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeSTAPA, // NAL header.
0, 4, // NAL 1 size.
1, 2, 3, 4, // NAL 1 data.
0, 4, // NAL 2 size.
1, 2, 3, 4, // NAL 2 data.
},
// Second access unit.
{ // Single NAL unit.
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // NAL Data.
1, 2, 3, 4, // NAL Data.
},
{ // Single NAL. Make last packet of access unit => marker bit true.
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RTP header.
{
128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // RTP header.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // NAL data.
1, 2, 3, 4, // NAL data.
},
},
expect: [][]byte{
// First access unit.
{
// NAL 1
0x00, 0x00, 0x00, 0x01, // Start code.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // NAL data.
// NAL 2
0x00, 0x00, 0x00, 0x01, // Start code.
typeSingleNALULowBound,
0x01, 0x02, 0x03, // FU payload.
0x04, 0x05, 0x06, // FU payload.
0x07, 0x08, 0x09, // FU payload.
// NAL 3
0x00, 0x00, 0x00, 0x01, // Start code.
0x01, 0x02, 0x03, 0x04, // NAL data.
// NAL 4
0x00, 0x00, 0x00, 0x01, // Start code.
0x01, 0x02, 0x03, 0x04, // NAL 2 data
0, 0, 1, 9, 240, // AUD
},
// Second access unit.
{
// NAL 1
0x00, 0x00, 0x00, 0x01, // Start code.
0, 0, 1, 9, 240, // AUD
0, 0, 0, 1, // Start code.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // Data.
// NAL 2
0x00, 0x00, 0x00, 0x01, // Start code.
1, 2, 3, 4, // NAL data.
},
{
0, 0, 1, 9, 240, // AUD
0, 0, 0, 1, // Start code.
typeSingleNALULowBound,
1, 2, 3, // FU payload.
4, 5, 6, // FU payload.
7, 8, 9, // FU payload.
},
{
0, 0, 1, 9, 240, // AUD
0, 0, 0, 1, // Start code.
1, 2, 3, 4, // NAL data.
},
{
0, 0, 1, 9, 240, // AUD
0, 0, 0, 1, // Start code.
1, 2, 3, 4, // NAL data.
},
{
0, 0, 1, 9, 240, // AUD
0, 0, 0, 1, // Start code.
typeSingleNALULowBound, // NAL header.
0x01, 0x02, 0x03, 0x04, // Data.
1, 2, 3, 4, // NAL data.
},
},
},