ss524v100 调试cvbs输出

Posted 为了维护世界和平_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ss524v100 调试cvbs输出相关的知识,希望对你有一定的参考价值。

目录

概念理解

错误1,标清设备dev2 使用了视频层2,在初始化视屏层时发现错误

错误2:干扰信息

错误3:视频格式不支持的错误


ss524 调试vdec->vo

程序根据HDMI例子修改


概念理解


设备    :超高清 高清 标清  
程序中的定义

#define SAMPLE_VO_DEV_DHD0 0                  /* VO's device HD0 */
#define SAMPLE_VO_DEV_DHD1 1                  /* VO's device HD1 */
#define SAMPLE_VO_DEV_DSD0 2                  /* VO's device SD0 */

视频层 :视屏层1 视频层2 视屏层3 

#define SAMPLE_VO_LAYER_VHD0 0
#define SAMPLE_VO_LAYER_VHD1 1
#define SAMPLE_VO_LAYER_VHD2 2

视频层:SDK中 没有给出标清视频层的定义,在手册中查看到,标清的视频层LAYER3,在SDK中添加进入

#define SAMPLE_VO_LAYER_VSD0 3

错误1,标清设备dev2 使用了视频层2,在初始化视屏层时发现错误

<3>[    vo] [Func]:vo_drv_check_video_bind_support [Line]:601 [Info]:video layer(2) binded dev(2) is invalid, do not support to binded!
<3>[    vo] [Func]:vo_check_set_video_layer_attr [Line]:1158 [Info]:vo layer 2 can't set layer attr when the layer has not been binded!

通过 cat /dev/logmpp 查看  

[ vo] [Func]:vo_check_set_video_layer_attr [Line]:1165 [Info]:vo layer 2 bind dev 0 doesn’t enable!

默认情况下,视频层2 绑定了设备0 
dev0  绑定视频层2,在启用标清SAMPLE_VO_DEV_DSD0 layer时,需要先使能dev 0   所以单独cvbs输出,必须要先使能Dev 0,否则提示未使能绑定的设备。


dev 0 绑定设备层0 也是可以的,所以出现了 hdmi上显示cvbs的内容,因为 dev 0  bind layer2

将视频层2与设备0 解绑进行重新绑定
 dev2 绑定视频层2 不支持  layer2是默认绑定到dev0 超高清上的,所以在设置layer2的属性时提示没有使能dev 0

总结:错误的原因是视频设备与图层绑定错误。查看手册 dev layer的对应关系。

启用视频层3   dev2 对应 layer3 

在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序

//vdec bind vo
ret = sample_comm_dec_bind_vo(1, 1, 3, 0);
if (ret != TD_SUCCESS) 
        sample_print("vdec bind vo fail for %#x!\\n", ret);
        return ret;
    

td_s32 sample_comm_dec_bind_vo(ot_vpss_grp vpss_grp, ot_vpss_chn vpss_chn, ot_vo_layer vo_layer, ot_vo_chn vo_chn)

    ot_mpp_chn src_chn;
    ot_mpp_chn dest_chn;

    src_chn.mod_id = OT_ID_VDEC;
    src_chn.dev_id = 1;
    src_chn.chn_id = 1;//这个地方是解码的第1通道,第0通道是高清视屏;并不是第1个设备的第1通道。

    dest_chn.mod_id = OT_ID_VO;
    dest_chn.dev_id = vo_layer;
    dest_chn.chn_id = vo_chn;

    check_return(ss_mpi_sys_bind(&src_chn, &dest_chn), "ss_mpi_sys_bind(VDEC-VO)");

    return TD_SUCCESS;


错误2:干扰信息

这个输出是从logmpp上输出的,是在停止sample_vdec时的输出,而不是开启的时候。这点严重影响问题的定位,一直以为是开启的时候的错误。

<3>[    vo] [Func]:vo_drv_check_video_bind_support [Line]:596 [Info]:video layer(3) is invalid, do not support to change bind!
<3>[  vdec] [Func]:vdec_check_send_stream [Line]:651 [Info]:chn 0 not start to receive stream!
<3>[  vdec] [Func]:vdec_check_send_stream [Line]:651 [Info]:chn 0 not start to receive stream!
<3>[  vdec] [Func]:vdec_check_send_stream [Line]:651 [Info]:chn 1 not start to receive stream!
<3>[   sys] [Func]:sys_really_unbind [Line]:692 [Info]:src and dest is not binded!
<3>[    vo] [Func]:vo_is_dev_layer_enabled [Line]:265 [Info]:vo 2's video layer 3 doesn't disable!

错误3:视频格式不支持的错误

[ vdec] [Func]:vdec_event_unsupport [Line]:2781 [Info]:video format unsuport at event chn 1, errcode = a0233b13
[ vdec] [Func]:vdec_event_unsupport [Line]:2781 [Info]:video format unsuport at event chn 1, errcode = a0233b13


视频格式在手册上写的很清楚,只支持

 

所以修改了其他参数,也是报错的,只有这个参数不报错。

通过 cat /proc/umap/vo 输出的video format是正确的

这是因为解码的时候,出现不能解码的视频,而不是通道的问题。为啥不是通道?

思路:cvbs路的解码视频绑定到layer2上,验证解码有没有问题

于是我将layer 2层启用,layer 2默认是 绑定到vo 0上的,所以在hdmi上看到了视频的输出,但同时也看到了上面的错误打印。

得出结论:在vdec 参数不变,仅仅修改了vo layer,确能输出,说明vdec的问题不影响视频的输出。

进一步推论,在hdmi上显示出来的视频,有花屏的现场,解码有问题,猜测与logmpp的输出有关系。

总结:视频是能输出的,只是有一部分错误,这部分错误应该与花屏有关。

花屏的问题?如何解决

视频源没有问题,解码参数的问题,通过

发现默认视频解码模式选择的IP,没有解码B帧。将参数改为IPB后,错误输出没有了,花屏也没有了。 

以上是关于ss524v100 调试cvbs输出的主要内容,如果未能解决你的问题,请参考以下文章

视频解码芯片GM7150BC功能CVBS转BT656/601低功耗替代TVP5150

CVBS是啥意思?

有没有啥芯片可以把数字视频信号RGB666 RGB656或者RGB888转换成CVBS信号 ?

机顶盒后面的Y/Pb/Pr/CVBS是啥意思?

常见的相机输出接口

转接口IC ADV7280/ADV7280-M:CVBS转MIPI转接口芯片 10位4倍过采样标清电视视频解码器,支持去隔行