|
程序的基本流程为:建立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;
}
|
|