mirror of
https://github.com/opencv/opencv.git
synced 2024-11-27 12:40:05 +08:00
eb981cc7d7
* 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. |
||
---|---|---|
.. | ||
test_camera.cpp | ||
test_container_avi.cpp | ||
test_ffmpeg.cpp | ||
test_fourcc.cpp | ||
test_gstreamer.cpp | ||
test_main.cpp | ||
test_mfx.cpp | ||
test_precomp.hpp | ||
test_video_io.cpp |