RtsSDK支持内置日志系统和外部日志系统。无论是内置还是外置,都通过preconfig来配置日志参数。外置日志系统需要调用者提供一个日志回调函数

原型


int (* output_log)(
    void *s,
    int level,
    const char *fmt,
    va_list args
);

参数

参数 解释
s 这个参数是通过preconfig("LogCbParam")设置的值,rtssdk原封不动回传给output_log
level 本条日志的等级
fmt 格式化字符串,和printf中的format参数一致
args 可变参数列表

返回值

0

Remarks

日志的等级定义:

Level 等级
0 Error
1 Warning
2 Info
3 Debug

Example

外置日志回调函数通过preconfig设置给RtsSDK。下面这个例子摘自rtsdec.c:


// 提供一个回调函数
static int output_log(struct AVFormatContext *s, int level, const char *fmt, va_list args)
{
    // TODO: 处理log
    return 0;
}

// 注册这个回调函数给rtssdk
__rts_funcs->preconfig("LogCallback", addr_to_string(output_log, buf));
__rts_funcs->preconfig("LogCbParam", addr_to_string(s, buf));