mirror of https://bitbucket.org/ausocean/av.git
codec/h264/h264dec/slice_test.go: added TestNewRefPicListModification with a single test
This commit is contained in:
parent
a94109e286
commit
21603750aa
|
@ -58,9 +58,9 @@ func NewRefPicListModification(br *bits.BitReader, p *PPS, s *SliceHeader) (*Ref
|
|||
r := &RefPicListModification{}
|
||||
r.ModificationOfPicNums[0] = make([]int, p.NumRefIdxL0DefaultActiveMinus1+2)
|
||||
r.ModificationOfPicNums[1] = make([]int, p.NumRefIdxL1DefaultActiveMinus1+2)
|
||||
r.AbsDiffPicNumMinus1[0] = make([]int, p.NumRefIdxL1DefaultActiveMinus1+2)
|
||||
r.AbsDiffPicNumMinus1[0] = make([]int, p.NumRefIdxL0DefaultActiveMinus1+2)
|
||||
r.AbsDiffPicNumMinus1[1] = make([]int, p.NumRefIdxL1DefaultActiveMinus1+2)
|
||||
r.LongTermPicNum[0] = make([]int, p.NumRefIdxL1DefaultActiveMinus1+2)
|
||||
r.LongTermPicNum[0] = make([]int, p.NumRefIdxL0DefaultActiveMinus1+2)
|
||||
r.LongTermPicNum[1] = make([]int, p.NumRefIdxL1DefaultActiveMinus1+2)
|
||||
fr := newFieldReader(br)
|
||||
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
package h264dec
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"bytes"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"bitbucket.org/ausocean/av/codec/h264/h264dec/bits"
|
||||
)
|
||||
|
||||
var subWidthCTests = []struct {
|
||||
in SPS
|
||||
|
@ -47,3 +53,64 @@ func TestSubHeightC(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewRefPicListModification(t *testing.T) {
|
||||
tests := []struct {
|
||||
in string
|
||||
s SliceHeader
|
||||
p PPS
|
||||
want RefPicListModification
|
||||
}{
|
||||
{
|
||||
in: "1" + // u(1) ref_pic_list_modification_flag_l0=true
|
||||
// First modification for list0
|
||||
"1" + // ue(v) modification_of_pic_nums_idc[0][0] = 0
|
||||
"010" + // ue(v) abs_diff_pic_num_minus1[0][0] = 1
|
||||
|
||||
// Second modification for list0
|
||||
"010" + // ue(v) modification_of_pic_nums_idc[0][1] = 1
|
||||
"011" + // ue(v) abs_diff_pic_num_minus1[0][1] = 2
|
||||
|
||||
// Third modification for list0
|
||||
"011" + // ue(v) modification_of_pic_nums_idc[0][2] = 2
|
||||
"010" + // ue(v) long_term_pic_num = 1
|
||||
|
||||
// Fourth modification does not exist
|
||||
"00100" + // ue(v) modification_of_pic_nums_idc[0][3] = 3
|
||||
|
||||
// Padding bits
|
||||
"00",
|
||||
|
||||
s: SliceHeader{
|
||||
SliceType: 3,
|
||||
},
|
||||
|
||||
p: PPS{
|
||||
NumRefIdxL0DefaultActiveMinus1: 2,
|
||||
},
|
||||
|
||||
want: RefPicListModification{
|
||||
RefPicListModificationFlag: [2]bool{true, false},
|
||||
ModificationOfPicNums: [2][]int{{0, 1, 2, 3}, {0, 0}},
|
||||
AbsDiffPicNumMinus1: [2][]int{{1, 2, 0, 0}, {0, 0}},
|
||||
LongTermPicNum: [2][]int{{0, 0, 1, 0}, {0, 0}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
inBytes, err := binToSlice(test.in)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error %v for binToSlice in test %d", err, i)
|
||||
}
|
||||
|
||||
got, err := NewRefPicListModification(bits.NewBitReader(bytes.NewReader(inBytes)), &test.p, &test.s)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error %v for NewRefPicListModification in test %d", err, i)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(*got, test.want) {
|
||||
t.Errorf("did not get expected result for test %d\nGot: %v\nWant: %v\n", i, got, test.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue