if you use unit test, pls use the patch as below:
Both VPU lib and unit test must be updated:
1) Unit test:
diff --git a/test/mxc_vpu_test/enc.c b/test/mxc_vpu_test/enc.c
index a8d4f9a..dc5e085 100644
--- a/test/mxc_vpu_test/enc.c
+++ b/test/mxc_vpu_test/enc.c
@@ -84,7 +84,7 @@ void SaveEncMvInfo(u8 *mvParaBuf, int size, int MbNumX, int EncNum)
fprintf(fpEncMvInfo, "MbAddr[%4d:For ]: Avail[0] Mv[%5d:%5d]\n", i, 0, 0);
} else {
mvX = (mvX & 0x7FFF) | ((mvX << 1) & 0x8000);
- fprintf(fpEncMvInfo, "MbAddr[%4d:For ]: Avail[1] Mv[%5d:%5d]\n", i, mvX, mvY);
+ fprintf(fpEncMvInfo, "MbAddr[%4d:For ]: Avail[1] Mv[%5d:%5d]\n", i, (short)mvX, (short)mvY);
}
mvParaBuf += 4;
}
@@ -872,7 +872,7 @@ encoder_configure(struct encode *enc)
}
enc->mbInfo.enable = 0;
- enc->mvInfo.enable = 0;
+ enc->mvInfo.enable = 1;
enc->sliceInfo.enable = 0;
if (enc->mbInfo.enable) {
2) Lib
diff --git a/vpu/vpu_lib.c b/vpu/vpu_lib.c
index 95af9ca..aed65da 100644
--- a/vpu/vpu_lib.c
+++ b/vpu/vpu_lib.c
@@ -2005,7 +2005,7 @@ RetCode vpu_EncGetOutputInfo(EncHandle handle, EncOutputInfo * info)
if (info->mvInfo.addr && info->mvInfo.size) {
size = (info->mvInfo.size + 7) / 8 * 8;
dst_addr = (Uint8 *)info->mvInfo.addr;
- src_addr = (Uint8 *)(virt_addr + ADDR_MB_BASE_OFFSET);
+ src_addr = (Uint8 *)(virt_addr + ADDR_MV_BASE_OFFSET);
CopyBufferData(dst_addr, src_addr, size);
}
}
Only H.264 encoder works.