| 
 | 
 
程序的基本流程为:建立UDP通讯获取RTP包,RTP拨包成H264裸流,推至dec->enqueue(pBufOut, pOutLen);另开线程,执行frame = dec->dequeue(); 
异常现象:偶发持续运行几分钟或几十分钟后,出现frame持续解码为null,将UDP通讯接收到的数据进行保存查看无异常。 
 
获取frame的逻辑如下: 
DecFrame* mpp_get_frame(mpp_decoder* dec) 
{ 
    int retry = 10; 
    DecFrame* frame = NULL; 
 
    while (retry--) 
    { 
        /* TODO: Dequeue and get decoded frame */ 
        frame = dec->dequeue(); 
 
        if (frame) 
        { 
            rk_write_log("get frame OK"); 
            return frame; 
        } 
 
        usleep(1000); 
    } 
 
    rk_write_log("get frame null"); 
    return NULL; 
} 
 
 |   
 
 
 
 |