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.

TDA4VE-Q1: Does the DisplayM2M node support image format conversion with a resolution of 2560 * 1440?

Part Number: TDA4VE-Q1
Other Parts Discussed in Thread: TDA4VM

Tool/software:

Hello,

sdk 0901.

I want to convert a 2560 * 1440 RGBX format image to NV12 while using the displayM2M node, but the following problem occurs in the converted image. Could you please help me analyze the reason?

original image:

Converted image:

  • Hi,

    Is this a duplicate question?

    Regards,
    Tanmay

  • The platform I am using is TDA4VE, and I made a mistake with TDA4VM, but I don't know how to delete the previous one, so I had to raise this issue again.

  • Hi Damon

    What app are you used to test dispm2m color convert?

    Regards,

    Adam

  • Hi Damon,

    Can you share your graph creation part with the config values, and also how are you save the image ?

    Regards,
    Gokul

  • typedef struct {
    
       vx_int32 width;
       vx_int32 height;
       vx_uint32 dataFormat;
    
    } ImgObjInfo;
    
    imgObjInfo.width = 2560;
    imgObjInfo.height = 1440;
    imgObjInfo.dataFormat = VX_DF_IMAGE_NV21;//出图格式NV12
    status = obj->module.app_display_m2m_module_srv.app_init_displayM2M(obj->context, imgObjInfo, 1, 1);
    if(VX_SUCCESS == status)
    {
        vx_image displayM2M_in_image = (vx_image)vxGetObjectArrayItem(obj->module.srvInvoObj.arr_Output, 0);
        status = obj->module.app_display_m2m_module_srv.app_create_graph_displayM2M(obj->graph, displayM2M_in_image,
                                                                                false, "DisplayM2MNodeSRV", TIVX_TARGET_DISPLAY_M2M1);
        vxReleaseImage(&displayM2M_in_image);
    }
    
    
    vx_status App_display_m2m_module::app_init_displayM2M(const vx_context& context, const ImgObjInfo& info_Output, const vx_int32& numCH, const vx_uint32& numBuf/* =1*/)
    {
        vx_status status = VX_SUCCESS;
        tivx_display_m2m_params_t m2m_config;
    
        tivx_display_m2m_params_init(&m2m_config);
        m2m_config.instId = 0;
        m2m_config.numPipe = 1;
        m2m_config.overlayId = 3;
        m2m_config.pipeId[0] = 3;
    
        m_DisplayM2MObj.config = vxCreateUserDataObject(context, "tivx_display_m2m_params_t", sizeof(tivx_display_m2m_params_t), &m2m_config);
        if (vxGetStatus((vx_reference)m_DisplayM2MObj.config) != VX_SUCCESS)
        {
            status = VX_FAILURE;
            APP_PRINTF("init displayM2MObj failed\n");
        }
    
        vx_image output  = vxCreateImage(context, info_Output.width, info_Output.height, info_Output.dataFormat);
    
        for (vx_uint32 buf_id = 0; buf_id < MAX_NUM_BUFS && buf_id < numBuf; buf_id++)
        {
            m_DisplayM2MObj.arr_Output[buf_id] = vxCreateObjectArray(context, (vx_reference)output, numCH);
            if (vxGetStatus((vx_reference)m_DisplayM2MObj.arr_Output[buf_id]) != VX_SUCCESS)
            {
                printf("m_DisplayM2MObj.arr_Output[buf_id] create failed\n");
                return VX_FAILURE;
            }else{
                m_DisplayM2MObj.img_Output[buf_id] = (vx_image)vxGetObjectArrayItem(m_DisplayM2MObj.arr_Output[buf_id], 0);
                if (vxGetStatus((vx_reference)m_DisplayM2MObj.img_Output[buf_id]) != VX_SUCCESS)
                {
                    printf("m_DisplayM2MObj.img_Output[buf_id] create failed\n");
                    status = VX_FAILURE;
                }
            }
        }
        vxReleaseImage(&output);
    
        return status;
    }
    
    vx_status App_display_m2m_module::app_create_graph_displayM2M(const vx_graph& graph, const vx_image& imgInput, const bool& bReplicate/* = true*/,
                                              const std::string& strName/* = "DisplayM2MNode"*/, const std::string& strTarget/* = TIVX_TARGET_DISPLAY_M2M1*/)
    {
        vx_status status = VX_SUCCESS;
        vx_image output = (vx_image)vxGetObjectArrayItem(app_get_output_image_arr(0), 0);
        m_DisplayM2MObj.node = tivxDisplayM2MNode(graph, m_DisplayM2MObj.config, imgInput, output);
    
        vxSetNodeTarget(m_DisplayM2MObj.node, VX_TARGET_STRING, strTarget.c_str());
        vxSetReferenceName((vx_reference)m_DisplayM2MObj.node, strName.c_str());
    
        if (bReplicate)
        {
            vx_bool replicate[] = { vx_false_e, vx_true_e, vx_true_e };
            vxReplicateNode(graph, m_DisplayM2MObj.node, replicate, 3);
        }
        if (vxGetStatus((vx_reference)m_DisplayM2MObj.node) != VX_SUCCESS)
        {
            status = VX_FAILURE;
            APP_PRINTF("m_DisplayM2MObj.node create failed\n");
        }
        vxReleaseImage(&output);
    
      return status;
    }
    

    The above is graph creation part.

  • Hi Adam

    We are using our custom app for testing. Is there a demo here for us to test?

    Thank you.

  • vx_status app_write_nv12_to_file(char *filename, vx_image image)
    {
        vx_uint32 width, height, num_bytes;
        vx_imagepatch_addressing_t image_addr1, image_addr2;
        vx_rectangle_t rect;
        vx_map_id map_id1, map_id2;
        vx_df_image df;
        void *data_ptr1, *data_ptr2;
        vx_status status;
    
        status = vxGetStatus((vx_reference)image);
        if(status==VX_SUCCESS)
        {
            vxQueryImage(image, VX_IMAGE_WIDTH, &width, sizeof(vx_uint32));
            vxQueryImage(image, VX_IMAGE_HEIGHT, &height, sizeof(vx_uint32));
            vxQueryImage(image, VX_IMAGE_FORMAT, &df, sizeof(vx_df_image));
    
            rect.start_x = 0;
            rect.start_y = 0;
            rect.end_x = width;
            rect.end_y = height;
    
            status = vxMapImagePatch(image,
                &rect,
                0,
                &map_id1,
                &image_addr1,
                &data_ptr1,
                VX_READ_ONLY,
                VX_MEMORY_TYPE_HOST,
                VX_NOGAP_X
                );
            if (status != VX_SUCCESS)
            {
                printf("# ERROR: vxMapImagePatch failed\n");
            }
    
            rect.end_y = height/2;
            status = vxMapImagePatch(image,
                &rect,
                1,
                &map_id2,
                &image_addr2,
                &data_ptr2,
                VX_READ_ONLY,
                VX_MEMORY_TYPE_HOST,
                VX_NOGAP_X
                );
            if (status != VX_SUCCESS)
            {
                printf("# ERROR: vxMapImagePatch failed\n");
            }
    
            if(status==VX_SUCCESS)
            {
                FILE *fp = fopen(filename,"wb");
    
                if(fp!=NULL)
                {
                    vx_uint32 ret = 0;
    
                    num_bytes = image_addr1.dim_y * image_addr1.stride_y;
                    ret = fwrite(data_ptr1, sizeof(vx_uint8), num_bytes, fp);
                    if(ret!=num_bytes)
                    {
                        printf("# ERROR: Unable to write data to file [%s], ret = %d, num_bytes = %d\n", filename, ret, num_bytes);
                    }
    
                    num_bytes = image_addr2.dim_y * image_addr2.stride_y;
                    ret = fwrite(data_ptr2, sizeof(vx_uint8), num_bytes, fp);
                    if(ret!=num_bytes)
                    {
                        printf("# ERROR: Unable to write data to file [%s], ret = %d, num_bytes = %d\n", filename, ret, num_bytes);
                    }
                    fclose(fp);
                }
                else
                {
                    printf("# ERROR: Unable to open file for writing [%s]\n", filename);
                    status = VX_FAILURE;
                }
                vxUnmapImagePatch(image, map_id1);
                vxUnmapImagePatch(image, map_id2);
            }
        }
        else
        {
            printf("# ERROR: Invalid image specified for writing\n");
        }
    
        return status;
    }

    The above is save the image part.

  • Hi Damon,

    Can you try this test program video_io/kernels/video_io/test/test_display_m2m.c?

    run ./vx_app_conformance_video_io.out --filter=tivxVideoIODisplayM2M* under /opt/vision_apps/

    Regards,

    Adam

  • Hi Adam

    I have already tested this program, and the results are as follows.

    Before the resolution is modified, the program can run normally

    Regards,

    Damon

  • Hi Damon,

    Can you please check this in latest sdk once, we saw some issue on 9.1 at higher resolutions.

    Regards,
    Gokul

  • Hello Gokul,

    I am using SDK version 0901. Do you have any updated versions available for us?

    Regards,

    Damon

  • Hello Gokul,

    We don't have the hardware for this TDA4 VE demo board. How can I verify it, Or do you have any other solutions to verify?

    Regards,

    Damon

  • Hi Damon,

    We don't have the hardware for this TDA4 VE demo board

    You should be having an evm right ? or is that a custom board that you have tested with sdk version 9.0.

    Can you share your input image here so that I can give a try in my setup here If i find some time.

    Regards,
    Gokul

  • Hello Gokul,

    Can the SDK 11.00 you provided run on evm bord? Please provide me with an email so that I can send you images in RGBX format. It seems that uploading images in this format is not supported.

    Regards,

    Damon

  • Hi Damon,

    Yes it will run on evm and it is the latest sdk release.

    Can you add it inside .zip file and upload it.

    Regards,
    Gokul

  • Hello Gokus,

    I tried running the SDK program on the EVM board and found that it failed to start. I tried running our program on our own 0901ve board again and found that when the resolution width is greater than 2048, the abnormal situation occurs when the output image format of the displayM2MNode is set to NV12 (which isnormal when the output format is set to yuyv). Can you give me more advice?

    Regards,

    Damon

  • Hi Damon,

    Can you share the writeback pipe register dumps, 

    from address (0x4af0000UL) and till the size of this struct,

    Regards,
    Gokul

  • Hello Gokul,

    I don't understand what you mean by this. Should I use any tool to operate it or check through logs?

    Thanks,

    Damon

  • Hi Damon,

    While running your application in another linux terminal run this script,

    #!/bin/bash
    
    BASE_ADDRESS=0x04af0000
    
    for (( i=$BASE_ADDRESS; i< ($BASE_ADDRESS + 588) ; i+=4 ));
    do
      # Commands to be executed
      echo "Reading register at $i:"
      devmem2 "$i"
    done
    

    This will dump the writeback pipe registers.

    Regards,
    Gokul

  • Hello Gokul,

    The result of the operation is as follows. Please help analyze it.

    root@Linux:/opt/vision_apps# ./test.sh
    Reading register at 78577664:
    /dev/mem opened.
    Memory mapped at address 0xffffa819f000.
    Read at address  0x04AF0000 (0xffffa819f000): 0x00000000
    Reading register at 78577668:
    /dev/mem opened.
    Memory mapped at address 0xffffabf25000.
    Read at address  0x04AF0004 (0xffffabf25004): 0x00000000
    Reading register at 78577672:
    /dev/mem opened.
    Memory mapped at address 0xffffb6e64000.
    Read at address  0x04AF0008 (0xffffb6e64008): 0x00000000
    Reading register at 78577676:
    /dev/mem opened.
    Memory mapped at address 0xffffb9bc4000.
    Read at address  0x04AF000C (0xffffb9bc400c): 0x00000000
    Reading register at 78577680:
    /dev/mem opened.
    Memory mapped at address 0xffff91d7f000.
    Read at address  0x04AF0010 (0xffff91d7f010): 0x00000000
    Reading register at 78577684:
    /dev/mem opened.
    Memory mapped at address 0xffff8428c000.
    Read at address  0x04AF0014 (0xffff8428c014): 0x00000000
    Reading register at 78577688:
    /dev/mem opened.
    Memory mapped at address 0xffffb7db5000.
    Read at address  0x04AF0018 (0xffffb7db5018): 0x00000000
    Reading register at 78577692:
    /dev/mem opened.
    Memory mapped at address 0xffff81793000.
    Read at address  0x04AF001C (0xffff8179301c): 0x00000000
    Reading register at 78577696:
    /dev/mem opened.
    Memory mapped at address 0xffff9d1d7000.
    Read at address  0x04AF0020 (0xffff9d1d7020): 0x002819FA
    Reading register at 78577700:
    /dev/mem opened.
    Memory mapped at address 0xffff9f142000.
    Read at address  0x04AF0024 (0xffff9f142024): 0x3C000000
    Reading register at 78577704:
    /dev/mem opened.
    Memory mapped at address 0xffff91173000.
    Read at address  0x04AF0028 (0xffff91173028): 0xC54ED000
    Reading register at 78577708:
    /dev/mem opened.
    Memory mapped at address 0xffffa1e38000.
    Read at address  0x04AF002C (0xffffa1e3802c): 0x00000000
    Reading register at 78577712:
    /dev/mem opened.
    Memory mapped at address 0xffff990e0000.
    Read at address  0x04AF0030 (0xffff990e0030): 0xC5619000
    Reading register at 78577716:
    /dev/mem opened.
    Memory mapped at address 0xffff92c01000.
    Read at address  0x04AF0034 (0xffff92c01034): 0x00000000
    Reading register at 78577720:
    /dev/mem opened.
    Memory mapped at address 0xffff8aa28000.
    Read at address  0x04AF0038 (0xffff8aa28038): 0x00001000
    Reading register at 78577724:
    /dev/mem opened.
    Memory mapped at address 0xffffa54af000.
    Read at address  0x04AF003C (0xffffa54af03c): 0x00160008
    Reading register at 78577728:
    /dev/mem opened.
    Memory mapped at address 0xffffa1366000.
    Read at address  0x04AF0040 (0xffffa1366040): 0x0096004D
    Reading register at 78577732:
    /dev/mem opened.
    Memory mapped at address 0xffff8ad7f000.
    Read at address  0x04AF0044 (0xffff8ad7f044): 0x0083001D
    Reading register at 78577736:
    /dev/mem opened.
    Memory mapped at address 0xffff9aec8000.
    Read at address  0x04AF0048 (0xffff9aec8048): 0x07EB0792
    Reading register at 78577740:
    /dev/mem opened.
    Memory mapped at address 0xffff8e64e000.
    Read at address  0x04AF004C (0xffff8e64e04c): 0x07A907D4
    Reading register at 78577744:
    /dev/mem opened.
    Memory mapped at address 0xffff9f45c000.
    Read at address  0x04AF0050 (0xffff9f45c050): 0x00000083
    Reading register at 78577748:
    /dev/mem opened.
    Memory mapped at address 0xffffbd011000.
    Read at address  0x04AF0054 (0xffffbd011054): 0x00000000
    Reading register at 78577752:
    /dev/mem opened.
    Memory mapped at address 0xffffad4f7000.
    Read at address  0x04AF0058 (0xffffad4f7058): 0x00000000
    Reading register at 78577756:
    /dev/mem opened.
    Memory mapped at address 0xffff94b6e000.
    Read at address  0x04AF005C (0xffff94b6e05c): 0x00200000
    Reading register at 78577760:
    /dev/mem opened.
    Memory mapped at address 0xffffa6108000.
    Read at address  0x04AF0060 (0xffffa6108060): 0x00400000
    Reading register at 78577764:
    /dev/mem opened.
    Memory mapped at address 0xffff87233000.
    Read at address  0x04AF0064 (0xffff87233064): 0x00200000
    Reading register at 78577768:
    /dev/mem opened.
    Memory mapped at address 0xffff9a733000.
    Read at address  0x04AF0068 (0xffff9a733068): 0x00400000
    Reading register at 78577772:
    /dev/mem opened.
    Memory mapped at address 0xffff82c18000.
    Read at address  0x04AF006C (0xffff82c1806c): 0x00000200
    Reading register at 78577776:
    /dev/mem opened.
    Memory mapped at address 0xffff85931000.
    Read at address  0x04AF0070 (0xffff85931070): 0x00000200
    Reading register at 78577780:
    /dev/mem opened.
    Memory mapped at address 0xffffa5bd2000.
    Read at address  0x04AF0074 (0xffffa5bd2074): 0x000001C0
    Reading register at 78577784:
    /dev/mem opened.
    Memory mapped at address 0xffffa5fac000.
    Read at address  0x04AF0078 (0xffffa5fac078): 0x000001C0
    Reading register at 78577788:
    /dev/mem opened.
    Memory mapped at address 0xffffa0fc6000.
    Read at address  0x04AF007C (0xffffa0fc607c): 0x00000180
    Reading register at 78577792:
    /dev/mem opened.
    Memory mapped at address 0xffffa40b7000.
    Read at address  0x04AF0080 (0xffffa40b7080): 0x00000180
    Reading register at 78577796:
    /dev/mem opened.
    Memory mapped at address 0xffffa383e000.
    Read at address  0x04AF0084 (0xffffa383e084): 0x00000140
    Reading register at 78577800:
    /dev/mem opened.
    Memory mapped at address 0xffff9a3fa000.
    Read at address  0x04AF0088 (0xffff9a3fa088): 0x00000140
    Reading register at 78577804:
    /dev/mem opened.
    Memory mapped at address 0xffffb4f91000.
    Read at address  0x04AF008C (0xffffb4f9108c): 0x00000100
    Reading register at 78577808:
    /dev/mem opened.
    Memory mapped at address 0xffff85da5000.
    Read at address  0x04AF0090 (0xffff85da5090): 0x00000120
    Reading register at 78577812:
    /dev/mem opened.
    Memory mapped at address 0xffffb0c98000.
    Read at address  0x04AF0094 (0xffffb0c98094): 0x0000011E
    Reading register at 78577816:
    /dev/mem opened.
    Memory mapped at address 0xffffbccd9000.
    Read at address  0x04AF0098 (0xffffbccd9098): 0x0000011C
    Reading register at 78577820:
    /dev/mem opened.
    Memory mapped at address 0xffffb499b000.
    Read at address  0x04AF009C (0xffffb499b09c): 0x00000118
    Reading register at 78577824:
    /dev/mem opened.
    Memory mapped at address 0xffffaaffe000.
    Read at address  0x04AF00A0 (0xffffaaffe0a0): 0x00000114
    Reading register at 78577828:
    /dev/mem opened.
    Memory mapped at address 0xffffbf030000.
    Read at address  0x04AF00A4 (0xffffbf0300a4): 0x0000010A
    Reading register at 78577832:
    /dev/mem opened.
    Memory mapped at address 0xffff96872000.
    Read at address  0x04AF00A8 (0xffff968720a8): 0x00000100
    Reading register at 78577836:
    /dev/mem opened.
    Memory mapped at address 0xffff7f953000.
    Read at address  0x04AF00AC (0xffff7f9530ac): 0x000000F4
    Reading register at 78577840:
    /dev/mem opened.
    Memory mapped at address 0xffff8caf6000.
    Read at address  0x04AF00B0 (0xffff8caf60b0): 0x000000E8
    Reading register at 78577844:
    /dev/mem opened.
    Memory mapped at address 0xffff83cf0000.
    Read at address  0x04AF00B4 (0xffff83cf00b4): 0x00000000
    Reading register at 78577848:
    /dev/mem opened.
    Memory mapped at address 0xffffa99ce000.
    Read at address  0x04AF00B8 (0xffffa99ce0b8): 0x00000000
    Reading register at 78577852:
    /dev/mem opened.
    Memory mapped at address 0xffff967fd000.
    Read at address  0x04AF00BC (0xffff967fd0bc): 0x00010000
    Reading register at 78577856:
    /dev/mem opened.
    Memory mapped at address 0xffff8b641000.
    Read at address  0x04AF00C0 (0xffff8b6410c0): 0x00010000
    Reading register at 78577860:
    /dev/mem opened.
    Memory mapped at address 0xffff9775e000.
    Read at address  0x04AF00C4 (0xffff9775e0c4): 0x00020000
    Reading register at 78577864:
    /dev/mem opened.
    Memory mapped at address 0xffffb9c47000.
    Read at address  0x04AF00C8 (0xffffb9c470c8): 0x00020000
    Reading register at 78577868:
    /dev/mem opened.
    Memory mapped at address 0xffffa0eb9000.
    Read at address  0x04AF00CC (0xffffa0eb90cc): 0x00030000
    Reading register at 78577872:
    /dev/mem opened.
    Memory mapped at address 0xffff928b7000.
    Read at address  0x04AF00D0 (0xffff928b70d0): 0x00030000
    Reading register at 78577876:
    /dev/mem opened.
    Memory mapped at address 0xffff9c78c000.
    Read at address  0x04AF00D4 (0xffff9c78c0d4): 0x00000000
    Reading register at 78577880:
    /dev/mem opened.
    Memory mapped at address 0xffffba7eb000.
    Read at address  0x04AF00D8 (0xffffba7eb0d8): 0x00000000
    Reading register at 78577884:
    /dev/mem opened.
    Memory mapped at address 0xffffaa6db000.
    Read at address  0x04AF00DC (0xffffaa6db0dc): 0x00000000
    Reading register at 78577888:
    /dev/mem opened.
    Memory mapped at address 0xffff9efb3000.
    Read at address  0x04AF00E0 (0xffff9efb30e0): 0x00000000
    Reading register at 78577892:
    /dev/mem opened.
    Memory mapped at address 0xffffa4306000.
    Read at address  0x04AF00E4 (0xffffa43060e4): 0x00000000
    Reading register at 78577896:
    /dev/mem opened.
    Memory mapped at address 0xffff9579a000.
    Read at address  0x04AF00E8 (0xffff9579a0e8): 0x00000000
    Reading register at 78577900:
    /dev/mem opened.
    Memory mapped at address 0xffff902bf000.
    Read at address  0x04AF00EC (0xffff902bf0ec): 0x00000000
    Reading register at 78577904:
    /dev/mem opened.
    Memory mapped at address 0xffffb54d6000.
    Read at address  0x04AF00F0 (0xffffb54d60f0): 0x00000000
    Reading register at 78577908:
    /dev/mem opened.
    Memory mapped at address 0xffff952bb000.
    Read at address  0x04AF00F4 (0xffff952bb0f4): 0x3F81E000
    Reading register at 78577912:
    /dev/mem opened.
    Memory mapped at address 0xffff91448000.
    Read at address  0x04AF00F8 (0xffff914480f8): 0x3FA21800
    Reading register at 78577916:
    /dev/mem opened.
    Memory mapped at address 0xffffb0bc6000.
    Read at address  0x04AF00FC (0xffffb0bc60fc): 0x3FC25000
    Reading register at 78577920:
    /dev/mem opened.
    Memory mapped at address 0xffffa2b84000.
    Read at address  0x04AF0100 (0xffffa2b84100): 0x3FE29000
    Reading register at 78577924:
    /dev/mem opened.
    Memory mapped at address 0xffff8c97c000.
    Read at address  0x04AF0104 (0xffff8c97c104): 0x0002D000
    Reading register at 78577928:
    /dev/mem opened.
    Memory mapped at address 0xffffb38d0000.
    Read at address  0x04AF0108 (0xffffb38d0108): 0x00630800
    Reading register at 78577932:
    /dev/mem opened.
    Memory mapped at address 0xffff88f0e000.
    Read at address  0x04AF010C (0xffff88f0e10c): 0x00C34000
    Reading register at 78577936:
    /dev/mem opened.
    Memory mapped at address 0xffffa119a000.
    Read at address  0x04AF0110 (0xffffa119a110): 0x01237000
    Reading register at 78577940:
    /dev/mem opened.
    Memory mapped at address 0xffff9bd4c000.
    Read at address  0x04AF0114 (0xffff9bd4c114): 0x00006000
    Reading register at 78577944:
    /dev/mem opened.
    Memory mapped at address 0xffffa7ee7000.
    Read at address  0x04AF0118 (0xffffa7ee7118): 0x3FE08000
    Reading register at 78577948:
    /dev/mem opened.
    Memory mapped at address 0xffff81826000.
    Read at address  0x04AF011C (0xffff8182611c): 0x3FC0A000
    Reading register at 78577952:
    /dev/mem opened.
    Memory mapped at address 0xffffa01ef000.
    Read at address  0x04AF0120 (0xffffa01ef120): 0x3FA0D000
    Reading register at 78577956:
    /dev/mem opened.
    Memory mapped at address 0xffff97cae000.
    Read at address  0x04AF0124 (0xffff97cae124): 0x3F810000
    Reading register at 78577960:
    /dev/mem opened.
    Memory mapped at address 0xffffbb237000.
    Read at address  0x04AF0128 (0xffffbb237128): 0x3F813800
    Reading register at 78577964:
    /dev/mem opened.
    Memory mapped at address 0xffffa6237000.
    Read at address  0x04AF012C (0xffffa623712c): 0x3F817000
    Reading register at 78577968:
    /dev/mem opened.
    Memory mapped at address 0xffffb7fff000.
    Read at address  0x04AF0130 (0xffffb7fff130): 0x3F81A800
    Reading register at 78577972:
    /dev/mem opened.
    Memory mapped at address 0xffffa0ee5000.
    Read at address  0x04AF0134 (0xffffa0ee5134): 0x00000200
    Reading register at 78577976:
    /dev/mem opened.
    Memory mapped at address 0xffffb49d6000.
    Read at address  0x04AF0138 (0xffffb49d6138): 0x00000200
    Reading register at 78577980:
    /dev/mem opened.
    Memory mapped at address 0xffffafd16000.
    Read at address  0x04AF013C (0xffffafd1613c): 0x000001C0
    Reading register at 78577984:
    /dev/mem opened.
    Memory mapped at address 0xffff900e1000.
    Read at address  0x04AF0140 (0xffff900e1140): 0x000001C0
    Reading register at 78577988:
    /dev/mem opened.
    Memory mapped at address 0xffff9fbf7000.
    Read at address  0x04AF0144 (0xffff9fbf7144): 0x00000180
    Reading register at 78577992:
    /dev/mem opened.
    Memory mapped at address 0xffffa7e81000.
    Read at address  0x04AF0148 (0xffffa7e81148): 0x00000180
    Reading register at 78577996:
    /dev/mem opened.
    Memory mapped at address 0xffffba8f0000.
    Read at address  0x04AF014C (0xffffba8f014c): 0x00000140
    Reading register at 78578000:
    /dev/mem opened.
    Memory mapped at address 0xffff9fea2000.
    Read at address  0x04AF0150 (0xffff9fea2150): 0x00000140
    Reading register at 78578004:
    /dev/mem opened.
    Memory mapped at address 0xffff8614c000.
    Read at address  0x04AF0154 (0xffff8614c154): 0x00000100
    Reading register at 78578008:
    /dev/mem opened.
    Memory mapped at address 0xffffa6305000.
    Read at address  0x04AF0158 (0xffffa6305158): 0x00000120
    Reading register at 78578012:
    /dev/mem opened.
    Memory mapped at address 0xffff91950000.
    Read at address  0x04AF015C (0xffff9195015c): 0x0000011E
    Reading register at 78578016:
    /dev/mem opened.
    Memory mapped at address 0xffffbe3e9000.
    Read at address  0x04AF0160 (0xffffbe3e9160): 0x0000011C
    Reading register at 78578020:
    /dev/mem opened.
    Memory mapped at address 0xffffb0954000.
    Read at address  0x04AF0164 (0xffffb0954164): 0x00000118
    Reading register at 78578024:
    /dev/mem opened.
    Memory mapped at address 0xffffa5f70000.
    Read at address  0x04AF0168 (0xffffa5f70168): 0x00000114
    Reading register at 78578028:
    /dev/mem opened.
    Memory mapped at address 0xffff86923000.
    Read at address  0x04AF016C (0xffff8692316c): 0x0000010A
    Reading register at 78578032:
    /dev/mem opened.
    Memory mapped at address 0xffffacad3000.
    Read at address  0x04AF0170 (0xffffacad3170): 0x00000100
    Reading register at 78578036:
    /dev/mem opened.
    Memory mapped at address 0xffffb5bbb000.
    Read at address  0x04AF0174 (0xffffb5bbb174): 0x000000F4
    Reading register at 78578040:
    /dev/mem opened.
    Memory mapped at address 0xffff8f11e000.
    Read at address  0x04AF0178 (0xffff8f11e178): 0x000000E8
    Reading register at 78578044:
    /dev/mem opened.
    Memory mapped at address 0xffffb5ce1000.
    Read at address  0x04AF017C (0xffffb5ce117c): 0x00000000
    Reading register at 78578048:
    /dev/mem opened.
    Memory mapped at address 0xffff85c4d000.
    Read at address  0x04AF0180 (0xffff85c4d180): 0x00000000
    Reading register at 78578052:
    /dev/mem opened.
    Memory mapped at address 0xffffab72f000.
    Read at address  0x04AF0184 (0xffffab72f184): 0x00010000
    Reading register at 78578056:
    /dev/mem opened.
    Memory mapped at address 0xffffb9c53000.
    Read at address  0x04AF0188 (0xffffb9c53188): 0x00010000
    Reading register at 78578060:
    /dev/mem opened.
    Memory mapped at address 0xffffb4e1c000.
    Read at address  0x04AF018C (0xffffb4e1c18c): 0x00020000
    Reading register at 78578064:
    /dev/mem opened.
    Memory mapped at address 0xffff8da3d000.
    Read at address  0x04AF0190 (0xffff8da3d190): 0x00020000
    Reading register at 78578068:
    /dev/mem opened.
    Memory mapped at address 0xffff8468e000.
    Read at address  0x04AF0194 (0xffff8468e194): 0x00030000
    Reading register at 78578072:
    /dev/mem opened.
    Memory mapped at address 0xffffb65ed000.
    Read at address  0x04AF0198 (0xffffb65ed198): 0x00030000
    Reading register at 78578076:
    /dev/mem opened.
    Memory mapped at address 0xffff87ecb000.
    Read at address  0x04AF019C (0xffff87ecb19c): 0x00000000
    Reading register at 78578080:
    /dev/mem opened.
    Memory mapped at address 0xffff9c329000.
    Read at address  0x04AF01A0 (0xffff9c3291a0): 0x00000000
    Reading register at 78578084:
    /dev/mem opened.
    Memory mapped at address 0xffff90b72000.
    Read at address  0x04AF01A4 (0xffff90b721a4): 0x00000000
    Reading register at 78578088:
    /dev/mem opened.
    Memory mapped at address 0xffffb2786000.
    Read at address  0x04AF01A8 (0xffffb27861a8): 0x00000000
    Reading register at 78578092:
    /dev/mem opened.
    Memory mapped at address 0xffff7fda5000.
    Read at address  0x04AF01AC (0xffff7fda51ac): 0x00000000
    Reading register at 78578096:
    /dev/mem opened.
    Memory mapped at address 0xffff85d02000.
    Read at address  0x04AF01B0 (0xffff85d021b0): 0x00000000
    Reading register at 78578100:
    /dev/mem opened.
    Memory mapped at address 0xffffbe6f9000.
    Read at address  0x04AF01B4 (0xffffbe6f91b4): 0x00000000
    Reading register at 78578104:
    /dev/mem opened.
    Memory mapped at address 0xffffad2c4000.
    Read at address  0x04AF01B8 (0xffffad2c41b8): 0x00000000
    Reading register at 78578108:
    /dev/mem opened.
    Memory mapped at address 0xffff91b70000.
    Read at address  0x04AF01BC (0xffff91b701bc): 0x3F81E000
    Reading register at 78578112:
    /dev/mem opened.
    Memory mapped at address 0xffffa8a5a000.
    Read at address  0x04AF01C0 (0xffffa8a5a1c0): 0x3FA21800
    Reading register at 78578116:
    /dev/mem opened.
    Memory mapped at address 0xffffb6020000.
    Read at address  0x04AF01C4 (0xffffb60201c4): 0x3FC25000
    Reading register at 78578120:
    /dev/mem opened.
    Memory mapped at address 0xffffa03e8000.
    Read at address  0x04AF01C8 (0xffffa03e81c8): 0x3FE29000
    Reading register at 78578124:
    /dev/mem opened.
    Memory mapped at address 0xffff9a55a000.
    Read at address  0x04AF01CC (0xffff9a55a1cc): 0x0002D000
    Reading register at 78578128:
    /dev/mem opened.
    Memory mapped at address 0xffffa6f04000.
    Read at address  0x04AF01D0 (0xffffa6f041d0): 0x00630800
    Reading register at 78578132:
    /dev/mem opened.
    Memory mapped at address 0xffffa0460000.
    Read at address  0x04AF01D4 (0xffffa04601d4): 0x00C34000
    Reading register at 78578136:
    /dev/mem opened.
    Memory mapped at address 0xffffaeb2b000.
    Read at address  0x04AF01D8 (0xffffaeb2b1d8): 0x01237000
    Reading register at 78578140:
    /dev/mem opened.
    Memory mapped at address 0xffffa171f000.
    Read at address  0x04AF01DC (0xffffa171f1dc): 0x00006000
    Reading register at 78578144:
    /dev/mem opened.
    Memory mapped at address 0xffff87d8f000.
    Read at address  0x04AF01E0 (0xffff87d8f1e0): 0x3FE08000
    Reading register at 78578148:
    /dev/mem opened.
    Memory mapped at address 0xffff987e4000.
    Read at address  0x04AF01E4 (0xffff987e41e4): 0x3FC0A000
    Reading register at 78578152:
    /dev/mem opened.
    Memory mapped at address 0xffff983bd000.
    Read at address  0x04AF01E8 (0xffff983bd1e8): 0x3FA0D000
    Reading register at 78578156:
    /dev/mem opened.
    Memory mapped at address 0xffff8a63f000.
    Read at address  0x04AF01EC (0xffff8a63f1ec): 0x3F810000
    Reading register at 78578160:
    /dev/mem opened.
    Memory mapped at address 0xffffb304e000.
    Read at address  0x04AF01F0 (0xffffb304e1f0): 0x3F813800
    Reading register at 78578164:
    /dev/mem opened.
    Memory mapped at address 0xffffa58ac000.
    Read at address  0x04AF01F4 (0xffffa58ac1f4): 0x3F817000
    Reading register at 78578168:
    /dev/mem opened.
    Memory mapped at address 0xffff96fc1000.
    Read at address  0x04AF01F8 (0xffff96fc11f8): 0x3F81A800
    Reading register at 78578172:
    /dev/mem opened.
    Memory mapped at address 0xffffb99e8000.
    Read at address  0x04AF01FC (0xffffb99e81fc): 0x00000000
    Reading register at 78578176:
    /dev/mem opened.
    Memory mapped at address 0xffff8d8a9000.
    Read at address  0x04AF0200 (0xffff8d8a9200): 0x00000000
    Reading register at 78578180:
    /dev/mem opened.
    Memory mapped at address 0xffff9ba1e000.
    Read at address  0x04AF0204 (0xffff9ba1e204): 0x00000000
    Reading register at 78578184:
    /dev/mem opened.
    Memory mapped at address 0xffffb88b8000.
    Read at address  0x04AF0208 (0xffffb88b8208): 0x059F09FF
    Reading register at 78578188:
    /dev/mem opened.
    Memory mapped at address 0xffffad236000.
    Read at address  0x04AF020C (0xffffad23620c): 0x00000000
    Reading register at 78578192:
    /dev/mem opened.
    Memory mapped at address 0xffff8bbd7000.
    Read at address  0x04AF0210 (0xffff8bbd7210): 0x03BF04FF
    Reading register at 78578196:
    /dev/mem opened.
    Memory mapped at address 0xffffb15cd000.
    Read at address  0x04AF0214 (0xffffb15cd214): 0x00000000
    Reading register at 78578200:
    /dev/mem opened.
    Memory mapped at address 0xffffba464000.
    Read at address  0x04AF0218 (0xffffba464218): 0x00000000
    Reading register at 78578204:
    /dev/mem opened.
    Memory mapped at address 0xffffaecc4000.
    Read at address  0x04AF021C (0xffffaecc421c): 0x40005000
    Reading register at 78578208:
    /dev/mem opened.
    Memory mapped at address 0xffffa34a4000.
    Read at address  0x04AF0220 (0xffffa34a4220): 0x00000000
    Reading register at 78578212:
    /dev/mem opened.
    Memory mapped at address 0xffffbc6a3000.
    Read at address  0x04AF0224 (0xffffbc6a3224): 0x00000001
    Reading register at 78578216:
    /dev/mem opened.
    Memory mapped at address 0xffff85a47000.
    Read at address  0x04AF0228 (0xffff85a47228): 0x00000001
    Reading register at 78578220:
    /dev/mem opened.
    Memory mapped at address 0xffff899ea000.
    Read at address  0x04AF022C (0xffff899ea22c): 0x00000000
    Reading register at 78578224:
    /dev/mem opened.
    Memory mapped at address 0xffffaf4b3000.
    Read at address  0x04AF0230 (0xffffaf4b3230): 0x00000000
    Reading register at 78578228:
    /dev/mem opened.
    Memory mapped at address 0xffff9a0d5000.
    Read at address  0x04AF0234 (0xffff9a0d5234): 0x00000000
    Reading register at 78578232:
    /dev/mem opened.
    Memory mapped at address 0xffffafccd000.
    Read at address  0x04AF0238 (0xffffafccd238): 0x00000000
    Reading register at 78578236:
    /dev/mem opened.
    Memory mapped at address 0xffffb8583000.
    Read at address  0x04AF023C (0xffffb858323c): 0x00000000
    Reading register at 78578240:
    /dev/mem opened.
    Memory mapped at address 0xffffa39c2000.
    Read at address  0x04AF0240 (0xffffa39c2240): 0x00000000
    Reading register at 78578244:
    /dev/mem opened.
    Memory mapped at address 0xffffbf567000.
    Read at address  0x04AF0244 (0xffffbf567244): 0x00000000
    Reading register at 78578248:
    /dev/mem opened.
    Memory mapped at address 0xffff88050000.
    Read at address  0x04AF0248 (0xffff88050248): 0x00000000

    Thanks,

    Damon

  • Hi Damon,

    Are you cropping your image from input to output and can you share your input and output image size.

    Regards,
    Gokul

  • Hello Gokul,

    My requirement is to crop the output image of Display M2M into 2 parts, with an input size of 2560 * 1440 and an output image size of 832 * 1120, 1568 * 1120.

    Regards,

    Damon

  • Hi Damon,

    So are you using 2 displaym2m node ? with 2 different output image. The image you posted for which case ?

    Regards,
    Gokul

  • And also can you check with only one output with either 832 * 1120 or 1568 * 1120

    And the register dumps you shared is for which configuration.

    Regards,
    Gokul

  • Hello Gokul,

    You misunderstood my meaning. I am using a scaler node downstream of the display M2M node for crop. As for the input and output resolution of the display M2M node, they are both 2560 * 1440, displayM2M only for changing the color format RGBX ->NV12

    Regards,

    Damon

  • ok, Got it,

    you are using 1 displaym2m node to convert the color and both the input and output image size's are same.

    we are seeing some difference in values between 2 registers ( 0x04AF0208 and 0x04AF0210 ) which is the output and input size registers. Ideally the values should be same if the input and output size is same. Can you check for yuyv output whether this 2 values are same ?

    Regards,
    Gokul

  • Hello Gokul,

    The result is as follows. Please check it.

    Regards,

    Damon

  • Hi Damon,

    Can you put the image file in a .zip file and share it.

    Regards,
    Gokul

  • Hello Gokul,

    This is an image with a resolution of 2560 * 1440 and a format of RGBX.

    2437.test.rar

    Regards,

    Damon

  • Hi Damon,

    Let me try this out from my side and get back to you .

    Regards,
    Gokul

  • Hi Damon,

    Can you change the file in line 616-617 ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/pdk_j721s2_09_01_00_22/packages/ti/csl/src/ip/dss/V4/priv/csl_dssWbPipe.c

    from,

    to,

    and rebuild the sdk.

    Regards,
    Gokul

  • Hello Gokul,

    After this modification, the output image is normal. This solution can solve my problem.

    Thanks,

    Damon

  • Hi Damon,

    I have created a jira for this bug attaching the link for internal tracking https://jira.itg.ti.com/browse/PDK-18111?filter=-2
    This should be fixed in the next sdk release.

    I am closing this thread since the issue is resolved.

    Regards,
    Gokul