【问题标题】:Regarding G729 integration in pjsip关于pjsip中的G729集成
【发布时间】:2014-07-26 12:17:28
【问题描述】:

我正在对此进行查询,因为我不是 C 专家。看看是否有人可以帮助解决它。我将 g729 集成到 pjsip lib 中,我从 here 获得 g729 编解码器文件。这是我的步骤我关注了:

首先我在 'pjmedia/src/pjmedia-codec/audio_codecs.c' 中注册了 g729

#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 中。 所以我在“pjmedia/src/pjmedia-codec”中复制了“pj_g729.c” & '/root/pjsip/trunk_2_allloweversionsuccess_and_widssl_g729/pjmedia/include/pjmedia-codec'中的'pj_g729.h'。

执行此操作后,我正在运行 make 它给出错误:' undefined reference at status = pjmedia_codec_g729_init(endpt);'。

我也对“PJMEDIA_HAS_G729_CODEC”有疑问,因为我没有在库中找到这个变量。所以我必须声明它吗?我为它苦苦挣扎了很长时间。任何帮助都会很明显。

【问题讨论】:

    标签: android c++ codec pjsip csip-simple


    【解决方案1】:

    您可以按照g7221在pjsip中添加的步骤。找出g722提到的文件并为g729编解码器添加额外的行。您可以将g729.a文件粘贴到pjsip的第三方库中。

    【讨论】:

      【解决方案2】:

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

      问题在于,在 C 中,头文件必须是 #included 才能声明函数。这将连接两个源文件。这里audio_codecs.cpj_g729.c 都应该包含pj_g729.h

      【讨论】:

        【解决方案3】:

        您需要将 pj_g729.h 包含到 pjmedia-codec.h 中。

        #include <pjmedia-codec/pj_g729.h>
        

        这会将 g729 头文件包含到 pjmedia-codec.h 头中,并将避免在 status = pjmedia_codec_g729_init(endpt);' 处出现未定义引用的错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多