Пытаемся сделать видеострим с помощью WebRTC. Источник видео AllWinner на ARM, который успешно стримит видео в H264 при использование Software-сжатия, но кушает много ресурсов. При попытке выполнить сжатие с помощью аппаратного кодека, возникают проблемы.
Есть готовые .so либы под AllWinner для работы с энкодером. При попытке засунуть их в файл Ninja, сборка под ARM на Ubunta проходит нормально. Но при запуске на AllWinner выпадает:
./peerconnection_client: symbol lookup error: /usr/local/lib/cedarx/libvencoder.so: undefined symbol: SecureMemAdapterOpen
Если выполнить nm -D ./libvencoder.so, то у SecureMemAdapterOpen метода есть пометка U. Сама SecureMemAdapterOpen находится в другой подключаемой libMemAdapter.so. Если вообще не указывать libMemAdapter.so как либу при сборке, то проект не собирается вовсе:
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterClose'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterGetPhysicAddress'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterGetPhysicAddressCpu'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterOpen'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterPalloc'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'SecureMemAdapterClose'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterGetVirtualAddress'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterPfree'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'SecureMemAdapterOpen'
/usr/local/lib/cedarx/libvencoder.so: error: undefined reference to 'MemAdapterFlushCache'
Вопрос 1. Если реализация SecureMemAdapterOpen не находится в libvencoder.so, то как ведет себя процесс сборки под ARM на Ubunta? Проверяется ли пути всех зависимостей, которые могут использоваться в share library?
Вопрос 2. Если возможно, то как добавить используемые .so либы прямо в GN файлы, чтобы он создал ninja файл для сборки (может мы что-то не учли вписывая зависимости в ninja вручную)?