Hans Verkuil wrote: > On Thursday 06 March 2008 05:29:19 Andy Walls wrote: > > Attached is a patch to have cx18_v4l2_enc_poll() to return that data > > is available for reading when q_io has data. The case could occur > > that q_full was empty, but q_io had data waiting to be read, in which > > case cx18_v4l2_enc_poll() probably should have returned data is ready > > for reading. > > Nice catch! I've committed this. Interestingly enough, I think the same > bug is also present in ivtv. I'll look at that tonight.
Thanks. Yes, I noted the bug in ivtv as well, but I left it alone since I was tired and ivtv uses q_io differently for write streams to the cx23415's decoder. However this patch isn't the end of fixing poll()/select() for cx18. Though this simple patch is correct and necessary, I suspect it will now mask another underlying problem. Here's my observation: There was no good reason for q_full to stay empty for so long (> 5 seconds), just because data was sitting queued in q_io. It was as if data stopped being moved from the encoder to buffers and into q_full. What is both fortunate and unfortunate is that draining q_full and q_io, seems to restart the transfers from the encoder. mplayer never had a problem with cx18 never providing new data eventually, because it was always draining q_io and q_full. MythTV would never drain q_io and the data transfers from the encoder would never restart. This behavior of having to drain q_full and q_io to restart the data transfers may be why I notice blocking read() delays of about 0.1 second happening much more often than with ivtv. So to test these hypotheses, I'll have to gain some understanding of the new mailbox protocol and the Memory Descriptor List stuff and do some testing with the fix to cx18_v4l2_enc_poll() backed out. But hey for now, the majority of HVR-1600 MythTV users should be much happier. :) > I'll also look at the other patch tonight: I think you found a serious > bug with that one as well. Thanks again. I was going for the bugs I could fix without data sheets. That fix was a hard fought change to only 5 lines of code. > Thank you! You're welcome. I enjoyed working on these problems. I guess my irrational desire for Picture-in-Picture can be a good thing at times. ;) -Andy > Hans _______________________________________________ ivtv-devel mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-devel
