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.

[参考译文] TDA4VM:有关 com.ti.hwa.video_coder 的问题在 SDK V7.03中似乎不支持流水线

Guru**** 2020320 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1200755/tda4vm-question-about-com-ti-hwa-video_encoder-seem-not-support-pipeline-in-sdk-v7-03

器件型号:TDA4VM

您好、TI 专家!

   我们发现当 流水线缓冲区深度大于1时、com.ti.wah.video_encoder 不支持流水线。  

   ,     ;com.ti.hwa.video_encoder 的输入流水线缓冲区深度设置为2、则输入图像帧速率为30 μ s、如果设置为3、则实际 编码帧速率仅为15 μ s、如果设置为3、则编码帧速率仅为10。

   因此、对于正式演示:ti-processor-sdk-rtos-j721e-evm-07_03_00_07/vision_apps/apps/dl_demos/app_tidl_avp4,

       TIVxSetNodeParameterNumBufByIndex (obj->imgMosaicObj.node、1、APP_BUFFER_Q_DEPTH);   

   可能需要进行以下修改

      TIVxSetNodeParameterNumBufByIndex (obj->imgMosaicObj.node、 1、1 );  

   

    我试图找出问题的原因,并发现 com.ti.hwa . video_cododer  在调用 tivxVideoEncoderProcess   ()时首先绑定缓冲区,  

    

    首先 、

    MM_ENC_BufPrepare() 将   encoder_obj->in_buff  和  encoder_obj->out_buff     绑定到 g_MM_ENC_Inst.ch_obj[chId].mm_buf;,然后将  sgl[0].dma_address 绑定 到  buf->buffer->buf_addr[0]  
   最终  buf->maped = OSA_true;
   第二个过程  
    
    在 调用  MM_ENC_BufPrepare()之前,以下物理地址将被更新
       encoder_obj->in_buff.buf_addr[0]= input_image_target_ptr_y;
      encoder_obj->in_buff.buf_addr[1]= input_image_target_ptr_uv;
   调用  mm_ENC_BufPrepare()时, 函数 直接返回       g_MM_ENC_Inst.ch_obj[chId].mm_buf 中 encoder_obj->in_buff 和 encoder_obj->out_buff 对应的缓冲区, 因为  
    buf->maped = OSA_true; 此处将出现一个问题,即  sgl[0].dma_address 未更新为新的 物理地址;
      然后 调用函数  
       
      MM_STATUS = MM_ENC_PROCESS (&ENCODER_obj->IN_buff、&ENCODER_obj->OUT_buff、 NULL、 ENCODER_obj->CHANNEL_id);
      函数 MM_ENC_PROCESS 在输入数据指针的以下位置传递,  src_frame->y_plan_buffer->mem_info.cpu_virt 的物理地址尚未更新 , 它仍然使用前一帧的物理地址
       
      我想这就是问题的原因。  
       那么、您是否发现了此问题?  您能否在 SDK 7.03上发布补丁来解决此问题?

      非常感谢,寻找你的回复!    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、这是 SDK 7.3上的 VIDEO_ENCODER 的一个已知问题。

    同一电路有许多限制。

    因此、我们已经从 SDK 8.x 迁移到基于 Linux 的编解码器驱动程序、不再支持 RTOS 上的编解码器。

    请移动最新的 SDK、然后重新检查此问题是否在结束时仍然存在

    此致、
    Nikhil