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.

RDK350,TI816X ,使用SWM_link不能得出想要的分辨率,分别率只能在swms_link初始化时决定



1.我的link链接

  capture(4路)---->dup---->SWMS_link---->DUP(这里有一路给了显示)--->NSF......->ENCODE->..
                                  |
                                  |---其他link-->display(这条支路不是重点)

 2.问题描述:

    目的:把4路视频使用swms合成一路,然后可以动态设置分辨率,最后编码输出的就是想要的分辨率

       采集的输入都是1080P,现在想把四路视频使用SWMS合成一路,然后编码出不同的分辨率,swms_link->MaxRes=1080P

     当初始化swms这个link的时候,设置initOutRes=720P,则编码处理的分辨率就是720P,如果initOutRes=1080P,则编码出来的就是1080P

    所以当把layout设置为1080P时,但是initOutRes=720P,这样出来的画面就不对了,layout=720p,initOutRes=1080p,这样画面就布局不满

3.尝试过的操作

 读取了swms_link中生成的pOutFrame,里面读不到任何的画面分辨率信息,都是0

4.疑问:swms支持动态改变分辨率吗,从而可以使enc_link编出想要的分辨率

            swms_link输出的FVID2_Frame中包含了这帧数据的分辨率了吗?如果是,从哪个成员中看到呢

          下一个link从SWMS读取数据(FVID2_Frame),它怎么知道这个数据的分辨率呢,怎么知道要读取多大的数据呢,这个数据结构中我个人没找到表示数据大小的

 

非常着急等待,搞了2周了,还没得到想要的分辨率

目的就是动态可以得出不同的编码分辨率,方式是通过操作SWMS_link,如果有必要,我可以改变link的实现也可以的,现在找到要修改的地方了,

希望有遇到同样问题解决的可以指点下,互相帮助,快乐大家。哈哈

 

补充:

  看了下源码:发现下一个link会调用前一个link 的system_getlink_Info(),似乎就调用了一次,从这里获取了上一个Link传过来的数据是什么分辨率,所以这可能是导致了我上面出现的情况,望答复

  • 暂时解决:主要问题是在NSF中,由于NSF第一次创建的时候会从前一个Link中获取分辨率的信息,然后收到前一个Link的数据后直接用第一次获取的数据设置分辨率,导致了出现上述的问题