回答:
原因是因为 Mac 中自带了一个 AVB controller 控制器,默认地,它会控制
- 将外部所有连接到 Mac 的 AVB 设备 input stream 连接到 Mac 中的 output stream
- 将外部所有连接到 Mac 的 AVB 设备 output stream 连接到 Mac 中的 input stream
结果就是
- AVB-DC 上所有的音频输出端口听到的内容都来源于 Mac,比如 Mac 播放音乐、警告提示音等
- AVB-DC 上所有的音频输入端口灌入的内容都送到了 Mac 中,比如做录音、混音后再输出等
所以,由于 Mac 自带 AVB 控制器的存在,外面 2 个 AVB-DC 之间默认不能相互连接
那有没有方法解决呢?
如果理解了上面的原理,那么就很好解决了:
1、排除掉 Mac 中 AVB controller 的影响:比如 Mac MIDI 工具中不打勾,或者,在网络设置中 AVB/EAV 这个选项的勾去掉
2、同时,需要用另外的 AVB controller 去连接需要连通的 stream: 比如用 UMAN unos Vision 或者开源的 avdecc-lib 或者自行在 AVB-DC 板子中实现简单的 AVB controller (参考 AVB-LC 中已有的实现)
2.avdecc-lib 编译出来的 AVB controller 在使用时,一直出现 timeout
回答:
目前碰到过 2 种原因
1) 下载的源代码版本不正确
如果是直接 github 下载的,由于其外链了一个 jdksavdecc-c submodule,如果下载的版本不匹配,那么出问题就正常
正确使用方式如下链接:
http://blog.sina.com.cn/s/blog_4e0ba08f0101fe7l.html
2) 编译的问题
之前在 Windows 上 VS 编译,发现 release build 编出来就是有问题,而 debug build 没问题
实际上,如果有 Mac,直接下载源代码后 make 即可