我之所以质疑这一点,是因为我不是C语言专家,如果有谁可以帮助我解决这个问题的话。我正在将g729集成到pjsip lib中,并从here.Here获得了g729编解码器文件。我遵循的步骤是:
首先,我在‘pjmedia/src/pjmedia-codec/ g729 _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中。所以我在'/root/pjsip/trunk_2_allloweversionsuccess_and_widssl_g729/pjmedia/include/pjmedia-codec'.中复制了'pj_g729.c‘在'pjmedia/src/pjmedia-codec’和'pj_g729.h‘中
在这样做之后,我运行make it会给出错误:‘undefined reference at status = pjmedia_codec_g729_init(endpt);’。
我也对'PJMEDIA_HAS_G729_CODEC‘有疑问,因为我还没有找到在library.So中声明的这个变量,我必须声明它吗?我正在为它而挣扎,因为一个很长的time.Any帮助将是值得欣赏的。
发布于 2014-10-02 17:47:38
您可以按照如下步骤操作: g7221如何在pjsip.Find中添加g722提到的文件,并为g729编解码器添加额外的行too.You可以将g729.a文件粘贴到pjsip的第三方库中。
发布于 2014-10-07 22:20:54
从编译器看到有错误的行这一事实可以推断,PJMEDIA_HAS_G729_CODEC实际上是在某个地方定义的。否则,该行将被直接跳过。
问题是在C中,头文件必须是#included才能声明函数。这将连接两个源文件。在这里,audio_codecs.c和pj_g729.c都应该包含pj_g729.h。
发布于 2015-05-10 20:29:20
您需要将pj_g729.h包含到pjmedia-codec.h中。
#include <pjmedia-codec/pj_g729.h>这将包括g729头文件到pjmedia-codec.h头中,并将避免在status = pjmedia_codec_g729_init(endpt);‘时未定义引用的错误。
https://stackoverflow.com/questions/24970927
复制相似问题