Add the offset to the encrypted slice size
BZ: 187050
When the encrypted slice data doesn't start on the
block-aligned address. The offset should be added
to the sizeLength to reflect the true size of the
encrypted slice data.
Change-Id: I2d6cc8ac649cd66f74611e307aa389fff55a9205
Signed-off-by: hding3 <haitao.ding@intel.com>
diff --git a/videodecoder/securevideo/moorefield/VideoDecoderAVCSecure.cpp b/videodecoder/securevideo/moorefield/VideoDecoderAVCSecure.cpp
index 4ff7771..4428ac4 100644
--- a/videodecoder/securevideo/moorefield/VideoDecoderAVCSecure.cpp
+++ b/videodecoder/securevideo/moorefield/VideoDecoderAVCSecure.cpp
@@ -164,12 +164,13 @@
mSliceInfo[sliceidx].sliceHeaderByte = nalu_type;
mSliceInfo[sliceidx].sliceStartOffset = (nalu_offset >> 4) << 4;
mSliceInfo[sliceidx].sliceByteOffset = nalu_offset - mSliceInfo[sliceidx].sliceStartOffset;
- mSliceInfo[sliceidx].sliceLength = nalu_size;
+ mSliceInfo[sliceidx].sliceLength = mSliceInfo[sliceidx].sliceByteOffset + nalu_size;
mSliceInfo[sliceidx].sliceSize = (mSliceInfo[sliceidx].sliceByteOffset + nalu_size + 0xF) & ~0xF;
VTRACE("sliceHeaderByte = 0x%x", mSliceInfo[sliceidx].sliceHeaderByte);
VTRACE("sliceStartOffset = %d", mSliceInfo[sliceidx].sliceStartOffset);
VTRACE("sliceByteOffset = %d", mSliceInfo[sliceidx].sliceByteOffset);
VTRACE("sliceSize = %d", mSliceInfo[sliceidx].sliceSize);
+ VTRACE("sliceLength = %d", mSliceInfo[sliceidx].sliceLength);
#if 0
uint32_t testsize;