ortp代码简析

ortp初始化

/**
 *    Initialize the oRTP library. You should call this function first before using
 *    oRTP API.
**/
void
ortp_init() { if (ortp_initialized++) return;  //全局初始化标志 #ifdef _WIN32 win32_init_sockets();   //初始化socket #endif av_profile_init(&av_profile);    //注册所需的payload类型 ortp_global_stats_reset();     init_random_number_generator(); ortp_message("oRTP-" ORTP_VERSION " initialized."); }

ortp退出

/**
 * Gracefully uninitialize the library, including shutdowning the scheduler if it was started.
 *
**/
void ortp_exit()
{
    if (ortp_initialized==0) {
        ortp_warning("ortp_exit() called without prior call to ortp_init(), ignored.");
        return;
    }
    ortp_initialized--;
    if (ortp_initialized==0){
        if (__ortp_scheduler!=NULL)
        {
            rtp_scheduler_destroy(__ortp_scheduler);
            __ortp_scheduler=NULL;
        }
    }
}

外部调用ortp初始化

int init_rtpservice()
{
    ortp_set_log_level_mask(ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
    ortp_set_log_handler(__logv_out);        //orpt LOG, 设置orpt日志
    ortp_init();
    return RESULT_SUCCESS;
}

外部调用ortp反初始化

int uninit_rtpservice()
{
    rtp_profile_clear_all(p_RtpProfile);
    rtp_profile_destroy(p_RtpProfile);
    ortp_exit();
return RESULT_SUCCESS; }

 

posted @ 2015-12-07 11:00  Samaritan  阅读(457)  评论(0编辑  收藏