FFmpeg自带的ffplay问题处理

如果出现“Immediate exit requested”错误,直接原因就是decode_interrupt_cb函数返回了true, 即1
这个函数在ffplay.c中,处理方法是增加一个超时,如下所示,设置超时3秒。

static unsigned nTimeOut = 0;
static int decode_interrupt_cb(void *ctx)
{
    VideoState *is = ctx;
    if (!nTimeOut) {
        nTimeOut = SDL_GetTicks();
    } else if (SDL_GetTicks() - nTimeOut > 1000 * 1000 * 3) {
        nTimeOut = SDL_GetTicks();
        return is->abort_request;
    }
    return 0;
}

复现的方法很简单,就是把函数修改为直接返回1,立即出现“Immediate exit requested”错误,这个问题会出现在
wifi播放网络视频时ok, 但切为3G时就出现错误了。还有一种情况是stream_close调用后,新的视频未即时打开。

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据