Hi Folks, I am planning on adding a "DVB_DMX_SET_STC_COMPARE" ioctl to my driver to allow a compare event to be setup in hardware. When (and if) the STC event triggers (i.e. the value passed in by the syscall equals the actual STC value), the user process can determine this occurrence through using the standard "DVB_DMX_GET_EVENT" ioctl. Also a "DVB_DMX_CLR_STC_COMPARE" ioctl would be used to clear/cancel this event if need be (e.g. channel change).
For non-blocking operations, the error code EWOULDBLOCK would be returned if the event has not occurred using the poll() ioctl. For blocking operations, the process would wait and would be woken up when this STC compare event occurred. I know that we currently read the STC and setup a user-level timer, but this method would also benefit the many pieces of h/w out there that allow single or multiple STC events to be setup. If the demux h/w can handle 2 or more simultaneous streams each with an independent STC, then we would use the above ioctls on each logical demux device fd. I plan on adding: #define DVB_DMX_NULL_EVENT #define DVB_DMX_STC_COMPARE_EVENT to the current list. If a process is waiting on this event and the "DVB_DMX_CLR_STC_COMPARE" ioctl is issued on the logical demux device, then the process would wake up and the event returned would be "DVB_DMX_NULL_EVENT". Any more thoughts on putting this functionality in to the V4 API? Cheers, Rob : ) -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
