AVIStreamGetFrameOpen is always returning NULL. I checked to see if I could open the AVI file in windows media player and that worked, so that means it can't be a codec problem, right? I'm not too sure. All the variables have valid values before the call to AVIStreamGetFrameOpen
Here's my code:
if (AVIStreamOpenFromFile(&avi, file, streamtypeVIDEO, 0, OF_READ, NULL) != 0) return; AVIStreamInfo (avi, &info, sizeof(info)); w = info.rcFrame.right - info.rcFrame.left; h = info.rcFrame.bottom - info.rcFrame.top; lastframe = AVIStreamLength (avi); mpf = AVIStreamSampleToTime (avi, lastframe) / lastframe; header.biSize = sizeof (BITMAPINFOHEADER); header.biPlanes = 1; header.biBitCount = 24; header.biWidth = BITMAP_WIDTH; header.biHeight = BITMAP_HEIGHT; header.biCompression = BI_RGB; bitmap = CreateDIBSection (hdc, (BITMAPINFO*)(&header), DIB_RGB_COLORS, (void**)(&data), NULL, NULL); SelectObject (hdc, bitmap); pgf = AVIStreamGetFrameOpen (avi, NULL); if (!pgf) return;