// Listing 2.3. Prosty program OpenCV odtwarzający plik wideo z dysku

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace std;
void help(char** argv ) {
	std::cout << "\n"
	<< "2.3: odtwarza plik wideo z dysku \n"
	<< argv[0] <<" <path/video>\n"
	<< "Na przykład:\n"
	<< argv[0] << " ../tree.avi\n"
	<< std::endl;
}
	

int main( int argc, char** argv ) {
	
	if (argc != 2) {
		help(argv);
		return 0;
	}

  cv::namedWindow( "Listing 2.3", cv::WINDOW_AUTOSIZE );

  cv::VideoCapture cap;

  cap.open( string(argv[1]) );
      cout <<"Otwarty plik: " <<argv[1] <<endl;

  cv::Mat frame;

  for(;;) {

    cap >> frame;

    if( frame.empty() ) break; // koniec filmu

    cv::imshow( "Listing 2.3", frame );

    if( (char)cv::waitKey(33) >= 0 ) break;

//    int c = cv::waitKey(33);
//    for(int i=0;i<32;i++) {
//      cout <<((c&(0x1<<(31-i)))?1:0);
//    }
//      cout <<endl;
//      cout <<"Klawisz przerwy: '" <<(int)c <<"'"<<endl;
//    if( (signed char)c >= 0 ) {
//      break;
//    }

  }

  return 0;

}
