ijkplayer异常处理-1

作者: 南风无影 | 来源:发表于2016-12-01 21:24 被阅读145次

ijkplayer有三个线程,其中第一个也是最重要的线程就是read_thread。

这个线程在某种异常的情况下,会收不到音视频数据,有时候只是视频收不到,有时候都收不到。

所以,需要在回调中增加处理

    
     ic->interrupt_callback.callback = decode_interrupt_cb;
M    ic->interrupt_callback.opaque = ffp;

先read_thread的for循环前初始化变量:

  g_fy_video_cb_lasttime = av_gettime();
#define  FFP_STATE_FANGYAN_REPLAY   25
static int decode_interrupt_cb(void *ctx)
{
      //VideoState *is = ctx;
         FFPlayer *ffp = ctx;
         VideoState *is = ffp->is;
    
    //add start
    if(ffp->blive){  //直播
        int spend_time;
        spend_time = (av_gettime() - g_fy_video_cb_lasttime) / 1000000 ;

        //if interrupt time > 25, replay    
        if(g_fy_video_cb_lasttime && spend_time >= FFP_STATE_FANGYAN_REPLAY){
            if(!is->abort_request){
                is->abort_request = 1;
                ffp_notify_msg2(ffp, FFP_MSG_ERROR, FFP_STATE_FANGYAN_REPLAY);
            }
        }
    }
    //add end.
    return is->abort_request;
}

最后,在读完视频包的地方加上

else if (pkt->stream_index == is->video_stream && pkt_in_play_range
                   && !(is->video_st && (is->video_st->disposition & AV_DISPOSITION_ATTACHED_PIC))) {
            packet_queue_put(&is->videoq, pkt);

    +   if(ffp->blive){
    +       g_fy_video_cb_lasttime = av_gettime();
    +   }
}

相关文章

  • ijkplayer异常处理-1

    ijkplayer有三个线程,其中第一个也是最重要的线程就是read_thread。 这个线程在某种异常的情况下,...

  • 异常处理-1

    一.java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。 如: ...

  • Kotlin语言(八):异常处理

    1、空值处理 2、编译异常处理 3、运行时异常

  • day19

    1:异常(理解) (1)程序出现的不正常的情况。 (2)异常的体系 (3)异常的处理: A:JVM的默认处理把异常...

  • Java核心技术卷1异常处理阅读笔记

    异常处理 关于Java核心技术 卷1 的 异常处理章节记录 1. 检查型异常和非检查型异常 异常可以分为: che...

  • SpringMVC第三天上午

    1、异常处理 步骤一:定义一个异常处理类:作用:抛出所有的异常都交给这个类处理 步骤二:定义一个异常处理器...

  • Python异常处理

    Python异常处理 一、捕获异常 1.异常捕获语法 2.错误类型捕获 except:处理所有异常。except ...

  • 03/13牛客刷题总结

    1.java中的异常处理包括声明异常、抛出异常、捕获异常和处理异常四个环节。 throw用于抛出异常 throws...

  • Kotlin异常处理(1)异常类型

    Throwable 类Error 和 Exception   Kotlin中的异常有3种,Exception、Er...

  • JavaSE之异常

    八、异常 目录:什么是异常、异常体系结构、Java异常处理机制、处理异常、自定义异常、总结 1.Error和Exc...

网友评论

    本文标题:ijkplayer异常处理-1

    本文链接:https://www.haomeiwen.com/subject/uckfmttx.html