[英]Regarding G729 integration in 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中。 因此,我已在“ / root / pjsip / trunk_2_allloweversionsuccess_and_widssl_g729 / pjmedia / include / pjmedia-codec”中的“ pjmedia / src / pjmedia-codec”和“ pj_g729.h”中复制了“ pj_g729.c”。
完成此操作后,我正在运行以给出错误消息:'状态为pjmedia_codec_g729_init(endpt);的未定义引用。
我也对'PJMEDIA_HAS_G729_CODEC'表示怀疑,因为我没有在库中声明此变量。所以我必须声明它吗?我在很长的时间里一直在努力,任何帮助都将是有意义的。
您可以按照g7221在pjsip中的添加步骤进行操作。查找g722中提到的文件,并为g729编解码器添加额外的行。您可以将g729.a文件粘贴到pjsip的第三方库中。
从编译器看到带有错误的行这一事实出发,可以得出PJMEDIA_HAS_G729_CODEC
,实际上在某个地方定义了PJMEDIA_HAS_G729_CODEC
。 否则,该行将被完全跳过。
问题是在C中,头文件必须是#include
d才能声明函数。 这将连接两个源文件。 这里audio_codecs.c
和pj_g729.c
都应包含pj_g729.h
。
您需要将pj_g729.h包含到pjmedia-codec.h中。
#include <pjmedia-codec/pj_g729.h>
这会将g729头文件包含到pjmedia-codec.h头中,并避免在status = pjmedia_codec_g729_init(endpt);'时出现未定义引用的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.