bug.cpp

Philipp Werner, 2012-07-02 11:10 am

Download (924 Bytes)

 
1
#include <opencv2/highgui/highgui.hpp>
2
#include <iostream>
3
4
cv::VideoCapture vc;
5
6
void seek(int pos) {
7
        int frame_id_set = pos;
8
        if (!vc.set(CV_CAP_PROP_POS_FRAMES, frame_id_set))
9
                std::cout << "error: set" << std::endl;
10
        int frame_id_get = vc.get(CV_CAP_PROP_POS_FRAMES);
11
        std::cout << "set frame pos " << frame_id_set << ", get frame pos " << frame_id_get << std::endl;
12
13
        cv::Mat frame;
14
        if (!vc.read(frame)) {
15
                std::cout << "error: read" << std::endl;
16
        } else {
17
                std::cout << "read ok" << std::endl;
18
//                cv::imshow("Frame", frame);
19
//                cv::waitKey(100);
20
        }
21
}
22
23
int main(int argc, char ** argv) {
24
        const char * fn = "test3.avi";
25
        if (!vc.open(fn))
26
                std::cout << "error: open" << std::endl;
27
28
        int frame_count = vc.get(CV_CAP_PROP_FRAME_COUNT);
29
        std::cout << frame_count << " frames" << std::endl;
30
31
        seek(frame_count - 1);
32
        seek(frame_count - 2);
33
        seek(frame_count - 3);
34
35
        return 0;
36
}