ffmpeg中的ff_check_interrupt

ff_check_interrupt在ffmpeg中主要是起到异常中断,返回ERROR_EXIT

ff_check_interrupt在libavformat/avio.c中实现

int ff_check_interrupt(AVIOInterruptCB *cb)                                                                                                                 
 {       
     int ret;                                                                                                                                                
     if (cb && cb->callback && (ret == cb->callback(cb->opaque)))                                                                                             
         return ret;                                                                                                                                         
     return 0;                                                                                                                                               
 }   

该函数的实现需要从外部通过ffurl_open接口中的int_cb参数传入
int ffurl_open(URLContext **puc, const char *filename, int flags,const AVIOInterruptCB *int_cb, AVDictionary **options)

在该函数中依次调用
ffurl_alloc(puc, filename, flags, int_cb);
最后在url_alloc_for_protocol(puc, p, filename, flags, int_cb)中进行赋值

 if (int_cb)
     uc->interrupt_callback = *int_cb; 

你可能感兴趣的:(播放器开发)