关于G729在pjsip中的集成



我正在查询这个问题,因为我不是C语言专家。看看是否有人在它周围工作可以帮助。我在pjsip库中集成g729,我从这里得到了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库中复制。所以我复制了'pj_g729.c'在'pjmedia/src/pjmedia-codec','pj_g729.h' in '/root/pjsip/trunk_2_allloweversionsuccess_and_widssl_g729/pjmedia/include/pjmedia-codec'.

在这样做之后,我运行使它给出错误:'未定义的引用在状态= pjmedia_codec_g729_init(endpt);'.

我也怀疑'PJMEDIA_HAS_G729_CODEC',因为我没有发现这个变量在库中声明。所以我必须申报吗??我为此挣扎了很长时间。

您可以按照在pjsip中添加g7221的步骤进行操作。找出g722提到的文件,并为g729编解码器添加额外的行。你可以粘贴g729。pjsip.

第三方库中的文件

从编译器看到错误行的事实来看,PJMEDIA_HAS_G729_CODEC实际上是在某个地方定义的。否则该行会被直接跳过。

问题是,在C中,头文件必须是#include d来声明函数。这将连接两个源文件。这里audio_codecs.cpj_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);'的未定义引用错误。

最新更新