This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

h264 encode heigtht rules ?

Capture from Vp is 1952*1472,  then h264 encode, I find frame is green( see attachement)。I change size to 1952*2048, frame is ok. 

I tested : get yuv420(1952*1472)  from CaptureLink, then open it using elecard, frame is ok.

how can I get a right h264?

  • What devices and DVRRDK version are you using ?

    BR

    Eason

  • Thank you for reply!

    version: DVRRDK4.0.0.1, DM8168-EVM.

  • case1: capture -> ipcFrameOut -> ipcFrameIn(A8),  A8  write yuv420 data into disk

    case2: capture ->ipcOutM3 ->ipcInM3 -> enc -> ipcBitsOut -> ipcBitsIn       A8 write h264 data into disk

    Frame size is 1952*1920, in captureLink_drv.c print out value of uv:

    1248             {
    1249                 pFrame = frameList.frames[frameId];
    1250 #if 1
    1251               int mm = 0;
    1252               for (mm =0; mm < 1952 * 8; mm+=16)
    1253               {
    1254                   Vps_printf("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
    1255                           *((unsigned char*)pFrame->addr[0][1] + mm),
    1256                           *((unsigned char*)pFrame->addr[0][1] + mm+1),
    1257                           *((unsigned char*)pFrame->addr[0][1] + mm+2),
    1258                           *((unsigned char*)pFrame->addr[0][1] + mm+3),
    1259                           *((unsigned char*)pFrame->addr[0][1] + mm+4),
    1260                           *((unsigned char*)pFrame->addr[0][1] + mm+5),
    1261                           *((unsigned char*)pFrame->addr[0][1] + mm+6),
    1262                           *((unsigned char*)pFrame->addr[0][1] + mm+7),
    1263                           *((unsigned char*)pFrame->addr[0][1] + mm+8),
    1264                           *((unsigned char*)pFrame->addr[0][1] + mm+9),
    1265                           *((unsigned char*)pFrame->addr[0][1] + mm+10),
    1266                           *((unsigned char*)pFrame->addr[0][1] + mm+12),
    1267                           *((unsigned char*)pFrame->addr[0][1] + mm+13),
    1268                           *((unsigned char*)pFrame->addr[0][1] + mm+14),
    1269                           *((unsigned char*)pFrame->addr[0][1] + mm+14));
    1270               }
    1271               Vps_printf("----------------------------end \n");
    1272               Vps_printf("----------------------------end \n");
    1273 #endif

    results are different, why?   give me a hand, please!  3Q!