videoio: refactored XINE backend

pull/11358/head
Maksim Shabunin 7 years ago
parent 0477284b0a
commit a9bdf75c5b
  1. 3
      modules/videoio/include/opencv2/videoio.hpp
  2. 16
      modules/videoio/src/cap.cpp
  3. 937
      modules/videoio/src/cap_xine.cpp
  4. 4
      modules/videoio/src/precomp.hpp
  5. 11
      modules/videoio/test/test_video_io.cpp

@ -116,7 +116,8 @@ enum VideoCaptureAPIs {
CAP_IMAGES = 2000, //!< OpenCV Image Sequence (e.g. img_%02d.jpg)
CAP_ARAVIS = 2100, //!< Aravis SDK
CAP_OPENCV_MJPEG = 2200, //!< Built-in OpenCV MotionJPEG codec
CAP_INTEL_MFX = 2300 //!< Intel MediaSDK
CAP_INTEL_MFX = 2300, //!< Intel MediaSDK
CAP_XINE = 2400, //!< XINE engine (Linux)
};
/** @brief %VideoCapture generic properties identifier.

@ -311,15 +311,11 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
if (apiPreference) break;
#endif
case CAP_MSMF:
#ifdef HAVE_MSMF
case CAP_MSMF:
TRY_OPEN(result, cvCreateFileCapture_MSMF (filename))
#endif
#ifdef HAVE_XINE
TRY_OPEN(result, cvCreateFileCapture_XINE (filename))
#endif
if (apiPreference) break;
#endif
#ifdef HAVE_VFW
case CAP_VFW:
@ -533,6 +529,14 @@ static Ptr<IVideoCapture> IVideoCapture_create(const String& filename, int apiPr
{
bool useAny = (apiPreference == CAP_ANY);
Ptr<IVideoCapture> capture;
#ifdef HAVE_XINE
if (useAny || apiPreference == CAP_XINE)
{
capture = createXINECapture(filename.c_str());
if (capture && capture->isOpened())
return capture;
}
#endif
#ifdef HAVE_GPHOTO2
if (useAny || apiPreference == CAP_GPHOTO2)
{

File diff suppressed because it is too large Load Diff

@ -133,8 +133,6 @@ CvCapture* cvCreateCameraCapture_Aravis( int index );
CvCapture* cvCreateFileCapture_Images(const char* filename);
CvVideoWriter* cvCreateVideoWriter_Images(const char* filename);
CvCapture* cvCreateFileCapture_XINE (const char* filename);
#define CV_CAP_GSTREAMER_1394 0
#define CV_CAP_GSTREAMER_V4L 1
@ -195,6 +193,8 @@ namespace cv
Ptr<IVideoCapture> createGPhoto2Capture(int index);
Ptr<IVideoCapture> createGPhoto2Capture(const String& deviceName);
Ptr<IVideoCapture> createXINECapture(const char* filename);
}
#endif /* __VIDEOIO_H_ */

@ -131,7 +131,7 @@ public:
return;
}
if (ext != "wmv")
if (ext != "wmv" && ext != "h264" && ext != "h265")
{
SCOPED_TRACE("progressive seek");
ASSERT_TRUE(cap.set(CAP_PROP_POS_FRAMES, 0));
@ -141,7 +141,7 @@ public:
}
}
if (ext != "mpg" && ext != "wmv")
if (ext != "mpg" && ext != "wmv" && ext != "h264" && ext != "h265")
{
SCOPED_TRACE("random seek");
ASSERT_TRUE(cap.set(CAP_PROP_POS_FRAMES, 0));
@ -334,6 +334,11 @@ int backend_params[] = {
#ifdef HAVE_FFMPEG
CAP_FFMPEG,
#endif
#ifdef HAVE_XINE
CAP_XINE,
#endif
CAP_OPENCV_MJPEG
// CAP_INTEL_MFX
};
@ -345,6 +350,8 @@ string bunny_params[] = {
string("mp4"),
string("mpg"),
string("avi"),
string("h264"),
string("h265"),
#endif
string("mjpg.avi")
};

Loading…
Cancel
Save