linphone开发中的一个问题记录

在进行voip项目开发时,使用linphone进行上位机开发,下位机使用osip和ffmpeg的sip客户端。在测试过程中,由于H264解码警告,提示slice数超过MAX_SLICES定义的最大值16。尝试增大MAX_SLICES并未解决问题,发现x264编码参数中的i_slice_count设置无效,原因是x264_encoder.c中当i_slice_max_mbs或i_slice_max_size不为0时,i_slice_count会被清0。通过注释掉导致问题的代码段,成功解决解码警告。
摘要由CSDN通过智能技术生成
    最近在做voip相关的项目,上位机直接使用linphone进行二次开发,下位机下位机使用的是利用osip、ffmpeg开发的sip客户端。测试时ffmpeg解码时打印出如下警告信息:
    Too many slices (17 >= 16), increase MAX_SLICES and recompil
    Too many slices (18 >= 16), increase MAX_SLICES and recompil
    Too many slices (20 >= 16), increase MAX_SLICES and recompil
    ...
    相关代码在h264.c中
    ...
    h0->last_slice_type = slice_type;
    h->slice_num = ++h0->current_slice;
    if(h->slice_num >= MAX_SLICES){
        av_log(s->avctx, AV_LOG_ERROR, "Too many slices (%d >= %d), increase MAX_SLICES and recompile\n", h->slice_num, MAX_SLICES);
    }
    ...

    显然slice数超过了定义的最大值,MAX_SLICES定义
/**
 * The maximum number of slices supported by the decoder.
 * must be a power of 2
 */
#define MAX_SLICES 16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值