select/poll is not working in block mode for camera capture

I've attached the v4l2 camera capture example code and am not getting any timeout when I use this example in poll/select method while using non-blocking method.

While opening the v4l2 device node in non-blocking mode, it should timeout if didn't receive any frames in given timeout.

But its not working as expected, but its working with UVC camera (USB webcam).

Application output log:

root@sabre:/#root@sabre:/# ./poll /dev/video3 640 480 1mainbefore openafter open fd : 3get standardset standardquery capcapabilitioesset formatget format/dev/video3: 640x480 UYVY 30.00fpsrequest buffersallocate buffersbuffers[n_buffers].start= 0x76dc1000 buffers[n_buffers].length=614400buffers[n_buffers].start= 0x76d2b000 buffers[n_buffers].length=614400buffers[n_buffers].start= 0x76c95000 buffers[n_buffers].length=614400buffers[n_buffers].start= 0x76bff000 buffers[n_buffers].length=614400queue buffersstart captureWaiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()'Waiting at 'poll()' before process imageProcessing Frame: 640x480 UYVY[ 0, 0] YUYV:0x0bfb0afc RGB:0x0313ffffffff[ 250, 0] YUYV:0x16fd17ff RGB:0x131e10red pixel count=0 after process image before save framesave frameWrote 614400 of 614400 bytes to frame1.raw before save frame