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后,错误输出没有了,花屏也没有了。 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为了维护世界和平_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值