这几天在调试一个问题,DVBH在线播放的时候不够流畅,老是一卡一卡的.作了很多的试验. 比如说把音视解码时间都跟踪出来.
最后发现一个问题,在接收媒体流的驱动中. 数据包中断"一阵阵"的发生,就是说,某个时间段中断非常频繁,导致那段时间里其他的任务--比如解码--没有时间被调度,导致那个时候出现"卡"的现象.
最后,只是在中断处理完成之后强行执行一次"schedule",使得其他的任务有机会被调度.(简单的调用sleep(0))即可.
看来,内核的驱动程序中适当的睡眠是非常重要的.