opencv/modules/videoio/src
wanghanmin eb981cc7d7 Merge pull request #12138 from wanghanmin:wanghanmin-patch-videoio_crossbarsetting-1
* Update videoio.hpp

add VideoCapturePropertie for clossbar input pin setting

* Update cap_dshow.cpp

For some kind of capture card, such as "avermedia cv710 " , it use SerialDigital as input pin and so it can not work.
Here added new PhysicalConnectorType enumeration: PhysConn_Video_YRYBY and PhysConn_Video_SerialDigital to support it.
And also provide new property parameter CAP_CROSSBAR_INPIN_TYPE to set the crossbar input pin type which will be used in videoInput::start(int deviceID, videoDevice *VD):
" if(VD->useCrossbar)
    {
        DebugPrintOut("SETUP: Checking crossbar\n");
        routeCrossbar(&VD->pCaptureGraph, &VD->pVideoInputFilter, VD->connection, CAPTURE_MODE);

    }
"

And at last ,fixed one issue for function setSizeAndSubtype, added code 
pVih->rcSource.top = pVih->rcSource.left = pVih->rcTarget.top =pVih->rcTarget.left=0;
pVih->rcSource.right = pVih->rcTarget.right= attemptWidth;
pVih->rcSource.bottom = pVih->rcTarget.bottom = attemptHeight;

without these code , rcSource and rcTarget will keeping use default resolution and cause fail in hr = VD->streamConf->SetFormat(VD->pAmMediaType) and cannot find suitable MediaType.

Tested with python3 and mfc (Avermedia cv710)
Python3 code:
import cv2
print("test cv")
cap=cv2.VideoCapture(0)
cap.set(5,60)
cap.set(3,1920)
cap.set(4,1080)
cap.set(31,6)


ret,img=cap.read()
cv2.namedWindow("cap",cv2.WINDOW_NORMAL)
cv2.resizeWindow("cap",960,640);
while True:
    ret,img=cap.read()
    if ret==False:
        continue
    cv2.imshow("cap",img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()

cv2.destroyAllWindows()

MFC code:
void CcvtestDlg::OnBnClickedButton1()
{
VideoCapture cap(0);
cap.set(CAP_PROP_FRAME_WIDTH, 1920);
cap.set(CAP_PROP_FRAME_HEIGHT, 1080);

cap.set(CAP_CROSSBAR_INPIN_TYPE , 6);
Mat img;
namedWindow("test", WINDOW_NORMAL);
resizeWindow("test", 960, 640);
while (1)
{
if (cap.read(img))
{
imshow("test", img);
if ('q' ==waitKey(1))
break;
}
}
destroyAllWindows();
cap.release();
}

* Update cap_dshow.cpp

* Update videoio.hpp

move enum value of CAP_CROSSBAR_INPIN_TYPE to the end of list

* Update videoio.hpp

* Update cap_dshow.cpp

removed trailing whitespace

* Update test_camera.cpp

Add test for capture device using PhysConn_Video_SerialDigital as crossbar input pin

* Update test_camera.cpp

Correction of misunderstanding about how to add test case.
2018-10-25 19:41:37 +03:00
..
cap_winrt
cap_aravis.cpp Protection to not run Eth config when USB camera is connected 2018-04-01 15:37:10 +02:00
cap_avfoundation_mac.mm Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-28 14:14:47 +03:00
cap_avfoundation.mm Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-28 14:14:47 +03:00
cap_cmu.cpp
cap_dc1394_v2.cpp videoio: drop rectification code for VIDERE cameras 2018-10-09 14:06:15 +00:00
cap_dc1394.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_dshow.cpp Merge pull request #12138 from wanghanmin:wanghanmin-patch-videoio_crossbarsetting-1 2018-10-25 19:41:37 +03:00
cap_dshow.hpp
cap_ffmpeg_api.hpp videoio(ffmpeg): cleanup, remove dead code 2018-06-04 19:07:22 +03:00
cap_ffmpeg_impl.hpp Remove unused empty block 2018-10-16 22:51:03 +02:00
cap_ffmpeg.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_giganetix.cpp
cap_gphoto2.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_gstreamer.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_images.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_intelperc.cpp
cap_intelperc.hpp
cap_ios_abstract_camera.mm
cap_ios_photo_camera.mm
cap_ios_video_camera.mm
cap_librealsense.cpp videoio: realsense - add cvtColor as the pixel-format is only a hint 2018-06-19 17:55:09 +02:00
cap_librealsense.hpp videoio: update librealsense to API 2.0 2018-06-08 18:23:00 +02:00
cap_libv4l.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_mfx_common.cpp opencv: Use cv::AutoBuffer<>::data() 2018-07-04 19:11:29 +03:00
cap_mfx_common.hpp
cap_mfx_reader.cpp
cap_mfx_reader.hpp
cap_mfx_writer.cpp
cap_mfx_writer.hpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_mjpeg_decoder.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_mjpeg_encoder.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_msmf.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_msmf.hpp Remove unused code 2018-04-24 12:13:19 +03:00
cap_openni2.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-07 12:40:27 +03:00
cap_openni.cpp don't use constructors for C API structures 2018-09-06 14:34:16 +03:00
cap_pvapi.cpp
cap_qt.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_qtkit.mm videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_unicap.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_v4l.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-10-15 20:15:42 +00:00
cap_vfw.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_winrt_bridge.cpp
cap_winrt_bridge.hpp
cap_winrt_capture.cpp
cap_winrt_capture.hpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_winrt_video.cpp
cap_winrt_video.hpp
cap_ximea.cpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
cap_xine.cpp CV_Asserts changed 2018-08-25 14:52:27 +03:00
cap.cpp Update videoio 2018-10-10 21:58:04 +03:00
container_avi.cpp Fixed several incorrect printf format specifiers 2018-09-24 11:31:40 +03:00
ffmpeg_codecs.hpp
precomp.hpp videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
videoio_c.cpp videoio: backends priority list 2018-05-29 12:06:45 +00:00
videoio_registry.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-07 12:40:27 +03:00
videoio_registry.hpp videoio: backends priority list 2018-05-29 12:06:45 +00:00
wrl.h