# Revision history [back]

### Iterating Through a Video Frame by Frame

Hi Folks, In the code below (for playing a video), how does the capture object "know" how to iterate through the video frame by frame? Usually in a while or for loop we use some sort of incrementing technique such as i++ etc.

I think I have seen this before with stream extraction iterators where they automatically increment to read the contents of a buffer but I am not sure how it works. I tried to view the contents of the Videocapture class but can only find the definition (which includes an overloaded>> function) but can not see how it is implemented.

Thanks,

int main()


{ namedWindow("Video"); VideoCapture cap;

cap.open("video.avi");

Mat frame;

while(1)
{
cap>>frame;
if(!frame.data)
break;

imshow("Video", frame);

if(waitKey(300) >= 0)
break;
}


}