Android — Что касается интеграции G729 в ​​pjsip

Я спрашиваю об этом, потому что я не эксперт C. Посмотрите, может ли кто-нибудь, кто обошел это, мог бы помочь. Я интегрирую g729 в ​​pjsip lib, и я получил файлы кодеков g729 от Вот.Вот шаги, которые я выполнил:

Сначала я зарегистрировал g729 в ​​’pjmedia / src / pjmedia-codec / audio_codecs.c’, поставив этот

#if PJMEDIA_HAS_G729_CODEC
/* Register G729 */
status = pjmedia_codec_g729_init(endpt);
if (status != PJ_SUCCESS){

return status;
}
#endif

Теперь у меня есть два файла ‘pj_g729.c’ и ‘pj_g729.h’, которые я должен скопировать в pjsip lib согласно моим знаниям.
Поэтому я скопировал pj_g729.c в pjmedia / src / pjmedia-codec
& ‘pj_g729.h’ в ‘/ root / pjsip / trunk_2_allloweversionsuccess_and_widssl_g729 / pjmedia / include / pjmedia-codec’.

После этого я запускаю make, он выдает ошибку: ‘неопределенная ссылка в status = pjmedia_codec_g729_init (endpt);’.

Также у меня есть сомнения по поводу PJMEDIA_HAS_G729_CODEC, так как я не нашел эту переменную, объявленную в библиотеке. Так я должен объявить ее? Я долго борюсь за это. Любая помощь будет заметна.

0

Решение

вы можете следовать инструкциям, описанным как g7221, добавленный в pjsip. Найдите файлы, в которых упоминается g722, и добавьте дополнительные строки для кодека g729. Вы можете вставить файл g729.a в библиотеку thirtparty pjsip.

1

Другие решения

Из того факта, что компилятор видит строку с ошибкой, следует, что PJMEDIA_HAS_G729_CODEC на самом деле определяется где-то. В противном случае линия была бы пропущена напрямую.

Проблема в том, что в C заголовочные файлы должны быть #includeбуду объявлять функции. Это соединяет два исходных файла. Вот audio_codecs.c а также pj_g729.c оба должны включать pj_g729.h,

1

Вам нужно включить pj_g729.h в pjmedia-codec.h.

#include <pjmedia-codec/pj_g729.h>

Это будет включать файл заголовка g729 в ​​заголовок pjmedia-codec.h и позволит избежать ошибки неопределенной ссылки в status = pjmedia_codec_g729_init (endpt); ‘.

1
По вопросам рекламы [email protected]