diff --git a/codec/h264/h264dec/cavlc.go b/codec/h264/h264dec/cavlc.go index 58464502..01b8d940 100644 --- a/codec/h264/h264dec/cavlc.go +++ b/codec/h264/h264dec/cavlc.go @@ -147,7 +147,7 @@ type block struct { // the specifications to obtain a value of nC, parse coeff_token from br and // then use table 9-5 to find corresponding values of TrailingOnes(coeff_token) // and TotalCoeff(coeff_token) which are then subsequently returned. -func parseTotalCoeffAndTrailingOnes(br *bits.BitReader, ctx *SliceContext, usingMbPredMode bool, level, maxNumCoef, inBlockIdx int) (totalCoeff, trailingOnes, nC, outBlockIdx int, err error) { +func parseTotalCoeffAndTrailingOnes(br *bits.BitReader, vid *VideoStream, ctx *SliceContext, usingMbPredMode bool, level, maxNumCoef, inBlockIdx int) (totalCoeff, trailingOnes, nC, outBlockIdx int, err error) { if level == chromaDCLevel { if ctx.chromaArrayType == 1 { nC = -1 @@ -181,7 +181,7 @@ func parseTotalCoeffAndTrailingOnes(br *bits.BitReader, ctx *SliceContext, using var n [2]int for i := range availableFlag { // Step 5. - if !(!available(mbAddr[i]) || usingMbPredMode || ctx.ConstrainedIntraPred || + if !(!available(mbAddr[i]) || usingMbPredMode || vid.ConstrainedIntraPred || mbAddr[i].usingInterMbPredMode || ctx.nalType == 2 || ctx.nalType == 3 || ctx.nalType == 4) { availableFlag[i] = true }