|
|
bttv的驱动程序存在一个问题,就是如果在接受到V4L2_S_INPUT的ioctl命令后,它会立刻向视频采集卡的控制寄存器写切换视频通道命令,如果这个命令不是发生在垂直同步空闲时间内的话,那么就会产生采集到的该帧的视频确实分别来自两个通道视频组合而产生的图像,画面很明显的被分为上半部分来自于一个视频通道,下半部分却由来自于另一个通道。
在这里向达人请教有关如何解决该问题的方法。
我这里粗略的想法是,在每个垂直同步来临的时候,视频采集卡会产生硬件中断,我们重新写一个硬件中断服务例程,可以先将请求视频通道切换的进程进行排队,然后将他们阻塞,这时候这个中断服务就可以唤醒刚才那些被阻塞了的进程。
但是这会牵涉到系统调用时的阻塞操作,会不会很复杂?? |
|