Commit Graph

120 Commits

Author SHA1 Message Date
Tsukasa Sugiura
09b3dcb6db Merge pull request #13341 from UnaNancyOwen:fix_librealsense
* videoio(librealsense): fix pipeline start with config

fix to apply pipeline settings by passing config to start.

* videoio(librealsense): add support get props

add support get some props.
2018-12-05 20:12:25 +03:00
Pavel Rojtberg
846a500fb4 videoio: drop VideoCaptureModes enum in favour of fourcc 2018-11-13 17:20:24 +01:00
Pavel Rojtberg
0d65397ae7 videoio: remove cap_libv4l in favour of cap_v4l
cap_libv4l depends on an external library (libv4l) yet is still larger
(1966 loc vs 1822 loc).
It was initially introduced copy pasting cap_v4l in order to offload
various color conversions to libv4l.
However nowadays we handle most of the needed color conversions inside
OpenCV. Our own implementation is better tested and (probably) also
better performing. (as it can optionally leverage IPP/ OpenCL)

Currently cap_v4l is better maintained and generally the code is in
better shape. There is however an API
difference in getting unconverted frames:
* on cap_libv4l one need to set `CV_CAP_MODE_GRAY=1` or
`CV_CAP_MODE_YUYV=1`
* on cap_v4l one needs to set `CV_CAP_PROP_CONVERT_RGB=0`

the latter is more flexible though as it also allows accessing undecoded
JPEG images.

fixes #4563
2018-11-12 13:38:59 +03:00
Alexander Alekhin
1913482cf5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-11-10 20:50:26 +00:00
Pavel Rojtberg
afa0f80c61 videoio: add manual white-balance and implement it for V4L2 2018-11-09 17:14:33 +01:00
Alexey Nikolaev
8396ae6e4f Merge pull request #12893 from aleksey-nikolaev:cap-update
V4L (V4L2): Refactoring. Added missed camera properties. Fixed getting `INF` for some properties. Singlethread as always (#12893)

* cap_v4l:
1 Added cap_properties verbalization.
2 Set Get of properties elementary refactoring.
3 Removed converting parameters to/from [0,1] range.
4 Added all known conversion from V4L2_CID_* to CV_CAP_PROP_*

* cap_v4l:
1. Removed all query for parameters range.
2. Refactored capture initialization.
3. Added selecting input channel by CV_CAP_PROP_MODE. Default value -1 the channels not changed.

* cap_v4l:
1. Refactoring of Convert To RGB

* cap_v4l:
1. Fixed use of video buffer index.
2. Removed extra memcopy for grab image.
3. Removed device closing from autosetup_capture_mode_v4l2

* cap_v4l:
1. The `goto` was eliminated
2. Fixed use of temporary buffer index for V4L2_PIX_FMT_SN9C10X
3. Fixed use of the bufferIndex
4. Removed trailing spaces and unused variables.

* cap_v4l:
1. Alias for capture->buffers[capture->bufferIndex]
2. Reduced size of data for memcpy: bytesused instead of length
3. Refactoring. Code duplication. More info for debug

* cap_v4l:
1. Added the ability to grab and retrieveFrame independently several times

* cap_v4l:
1. Not need to close/open device for new capture parameters applying.
2. Removed using of device name as a flag that the capture is closed. Added sufficient function.
3. Refactoring. Added requestBuffers and createBuffers

* cap_v4l:
1. Added tryIoctl with `select` like was in mainloop_v4l2.
2. Fixed buffer request for device without closing the device.
3. Some static function moved to CvCaptureCAM_V4L
4. Removed unused defines

* cap_v4l:
1. Thread-safe now

* cap_v4l:
1. Fixed thread-safe destructor
2. Fixed FPS setting

* Missed brake

* Removed thread-safety

* cap_v4l:
1. Reverted conversion parameters to/from [0,1] by default for backward compatibility.
2. Added setting for turn off compatibility mode: set CV_CAP_PROP_MODE to 65536
3. Most static functions moved to CvCaptureCAM_V4L
4. Refactoring of icvRetrieveFrameCAM_V4L and using of frame_allocated flag

* cap_v4l:
1. Added conversion to RGB from NV12, NV21
2. Refactoring. Removed wrappers for known format conversions.

* Added `CAP_PROP_CHANNEL` to the enum VideoCaptureProperties.
CAP_V4L migrated to use VideoCaptureProperties.

* 1. Update comments.
2. Environment variable `OPENCV_VIDEOIO_V4L_RANGE_NORMALIZED` for setting default backward compatibility mode.
3. Revert getting of `CAP_PROP_MODE` as fourcc code in backward compatibility mode.

* videoio: update cap_v4l - compatibilityMode => normalizePropRange

* videoio(test): V4L2 MJPEG test

`v4l2-ctl --list-formats` should have 'MJPG' entry

* videoio: fix buffer initialization

to avoid "munmap: Invalid argument" messages
2018-11-08 21:27:45 +03:00
Alexander Alekhin
5869415a57 videoio: drop obsolete backends
- VFW
- QuickTime/QtKit
- Unicap - GPL, no active support: https://github.com/unicap/unicap
- DC1394 (1st version) / CMU1394
2018-11-07 19:49:09 +03:00
Alexander Alekhin
4395c1b9f8 videoio: backport "VideoCapture(int index, int apiPreference)" interface 2018-11-04 17:27:47 +00:00
Alexander Alekhin
50bec53afc Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-10-26 17:56:55 +03:00
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
Alexander Alekhin
a1bd39441f videoio: fix typo 2018-10-24 19:12:35 +03:00
Suleyman TURKMEN
59bf2a34fa Update videoio 2018-10-10 21:58:04 +03:00
Alexander Alekhin
a8b0db4e5d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-28 14:14:47 +03:00
Alexander Alekhin
d3eed2cf23 videoio: CAP_PROP_BACKEND property interface 2018-09-18 16:25:01 +00:00
Alexander Alekhin
b35fbff675 videoio: added '.getBackendName()' method 2018-09-18 16:19:19 +00:00
Alexander Alekhin
b80c978f5d core: change cv::Ptr DefaultDeleter 2018-09-12 12:20:15 +00:00
Suleyman TURKMEN
c61bc3a0cb Update documentation and samples 2018-08-17 14:21:29 +03:00
Alexander Alekhin
0bef42ba12 videoio: add note about image BGR format VideoWriter::write() 2018-07-28 09:08:09 +00:00
Alexander Alekhin
270cc3bcbc videoio: add routines to query information about backends API
into cv::videoio_registry namespace
2018-07-19 17:27:37 +03:00
Maksim Shabunin
a9bdf75c5b videoio: refactored XINE backend 2018-04-20 15:20:46 +03:00
Alexander Alekhin
9819ebc095 videoio: add missing CAP_PROP_SAR_NUM/DEN propepties into .hpp file
reuse av_guess_sample_aspect_ratio() if available in ffmpeg
2018-02-21 19:14:04 +03:00
luz.paz
d05714995c Misc. modules/ cont. pt2
Found via `codespell`
2018-02-13 11:28:11 -05:00
Suleyman TURKMEN
89480801b8 some improvements on tutorials 2017-07-29 20:08:19 +03:00
Alexander Alekhin
460e9bf0af videoio: drop changes from legacy C-API header 2017-06-25 23:25:56 +03:00
Alexander Alekhin
23f4bff742 videoio: update VideoWriter apiPreference parameter position 2017-06-25 22:57:24 +03:00
Maksim Shabunin
c06f3d63e8 Initial version of MediaSDK integration:
- cmake dependencies search (WITH_MFX option)
- raw H264, H265, MPEG2 encoding and decoding
- tests for supported formats
2017-06-20 12:15:10 +03:00
Vladislav Sovrasov
f1c16f42b4 video: add one more constructor for VideoWriter 2017-06-19 12:11:14 +03:00
PkLab.net
eb768514c3 Fix misplaced description CAP_PROP_SETTINGS and others minor changes in videoio doc 2017-01-26 17:10:32 +01:00
Alexander Alekhin
e547bbbc3f videoio: preserve conflict with common properties
Usage:
    writer.set(cv::CAP_PROP_IMAGES_BASE + cv::IMWRITE_JPEG_QUALITY, 80);
2016-12-01 15:37:12 +03:00
sourin
94b5a74067 Fixed with review comments. 2016-11-15 12:16:15 +05:30
ArkadiuszRaj
8bd595acfe fourcc support, improved buffer handling, check if exposure, gain & fps properties are available 2016-10-09 16:58:30 +02:00
Alexander Alekhin
1c18b1d245 Merge pull request #7370 from souch55:Fixxn 2016-10-01 10:44:56 +00:00
sourin
a34fbf7bb1 Fixed identifiers warns 2016-09-30 15:16:29 +05:30
PkLab.net
be65701908 Large update of videoio doc and samples following mshabunin comments 2016-09-09 18:46:11 +02:00
PkLab.net
3ea02018b5 Naming some enumerations in videoio 2016-08-11 20:27:42 +02:00
Alexander Alekhin
ddc0b42bc3 migration: github.com/opencv/opencv 2016-07-12 12:51:12 +03:00
PkLab.net
adcdab394b Merge branch 'master' of git://github.com/Itseez/opencv into doc_videoio_enums
# Resolved Conflicts:
#	modules/videoio/include/opencv2/videoio.hpp
2016-06-28 16:40:30 +02:00
PkLab.net
f274c592e4 Use copydoc for the list of valid property identifier in VideoCapture and VideoWriter docs 2016-06-27 19:17:51 +02:00
PkLab.net
6c3d8abe2c Doxygen documentation for CAP_* enums (using current comments in code) 2016-06-27 19:09:23 +02:00
Dmitry Trifonov
f9e6741807 added support for OpenNI2 IR stream #4366 2016-06-27 10:04:59 -07:00
Marian Zajko
e55a053d71 ximea new param
- added CAP_PROP_XI_SENSOR_BOARD_TEMP parameter
- added acquisition resetting for paramters that require it
2016-02-17 11:18:49 +01:00
Marian Zajko
c21657336b ximea interface update
- fixed getProperty call definition
- added new parameter defitions

removed whitespaces

Reworked enumerators to keep values from previous commit

ximea enums fixes

- fixed whitespaces issue
- fixed duplicate enum values error

ximea enum definitions update

- fixed videioio.hpp code style
- fixed ABI violation in enums
- added new parameter handlers to cpp

XIMEA setProperty update

Added acquisition resetting to buffer size adjustment parameters.
2016-02-09 10:36:22 +01:00
Alexander Alekhin
323e24e3ef change links from samples/python2 to samples/python 2015-12-18 11:00:30 +03:00
Pavel Rojtberg
f7981a8ae8 support setting focus and autofocus with V4L2
also refactor property range handling and opencv property to V4L2
translation.
2015-10-18 12:56:09 +02:00
Pavel Rojtberg
41d8c4d879 allow specifying apiPreference in VideoCapture when opening a file. Add
a separate function instead of an overload not to change the ABI.

rename VideoCapture paramter 'device' to 'index' in CPP to reflect that
it allows specifying the API.
update comments to explain how to specify the API.
2015-07-08 13:46:56 +02:00
kalistratovag
65e0387aa5 Implementing parallel mjpeg encoder.
Fixed errors in parallel_for based on pthreads

Fixing compiler errore & removing whitespaces

Fixing prallel_for_pthreads error and warnings on win
2015-06-30 13:57:37 +03:00
Alexander Alekhin
959d575292 videoio: update ffmpeg backend
- fix compilation for old libraries
- update codec/tag selection logic
- add documentation note about MP4 container tags
2015-06-09 16:30:57 +03:00
Maksim Shabunin
caffbaafbe Updated Manager for Android 2015-06-02 17:33:04 +03:00
Philipp Hasper
9aaa27d46b Adding missing docs for VideoWriter::release 2015-05-27 07:55:41 +02:00
Piotr Dobrowolski
6d0407b65e VideoCapture with digital camera and gPhoto2 library 2015-05-21 00:41:39 +02:00
Maxim Kostin
d08cb6b357 Added WinRT support for videoio.
Signed-off-by: Maxim Kostin <v-maxkos@microsoft.com>
2015-05-15 16:28:47 +03:00
Philipp Hasper
0b20ce696a Fixed markdown: **Note** -> @note 2015-04-22 08:08:10 +02:00
Nisarg Thakkar
0fd1203b3b Fixed Doc Errors Bug#4282 2015-04-21 10:37:50 +05:30
Vadim Pisarevsky
602d2c33c0 added video writer quality, which user may change dynamically in the case of motion jpeg; enabled NEON intrinsics in the encoder 2015-03-27 15:15:59 +03:00
Vadim Pisarevsky
3df6b6fdcf added self-contained motion jpeg encoder (filename should end with .avi; fourcc should be "MJPG" 2015-03-26 00:39:29 +03:00
Prof. Dr. Rudolf Haussmann
5e3d986ad8 Merge remote-tracking branch 'upstream/master' 2015-03-07 13:10:41 +01:00
Prof. Dr. Rudolf Haussmann
9f1eb70dbc Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

	modified:   modules/java/generator/gen_java.py
	modified:   modules/videoio/include/opencv2/videoio.hpp
	modified:   modules/videoio/include/opencv2/videoio/videoio_c.h
	modified:   modules/videoio/src/cap_dshow.cpp
	modified:   modules/videoio/src/cap_pvapi.cpp

Following changes have been made:
1. Some minor bugs have been removed.
2. In the PvAPI module the option CAP_PROP_MONOCROME has been removed because
   this option does not make sense and causes an error if a color camera is used.
3. Instead the new option CAP_PROP_PVAPI_PIXELFORMAT has been added which allows
   to activate the different pixel formats (color modes) of an AVT camera.
4. Since there were two identical defines
   CAP_PROP_MONOCROME = 19
   CAP_PROP_MONOCHROME = 19
   which were also used in the other module DSHOW, the first one with an orthographic
   error has been removed in favor of the second one.
2015-03-07 12:53:32 +01:00
soyer
d84d3a519b Allow YUYV capture via libv4l 2015-01-15 15:10:15 +01:00
Vadim Pisarevsky
61886a61de Merge pull request #3504 from a-wi:VideoCapture_get_const_v3 2014-12-26 14:37:47 +00:00
Vadim Pisarevsky
c0005fd293 Merge pull request #3520 from JoeHowse:master 2014-12-22 11:14:29 +00:00
Vadim Pisarevsky
432546e4c4 Merge pull request #3512 from vins31:OpenNi2_AsusXtion 2014-12-22 10:39:42 +00:00
Joe Howse
620a969285 Allow BGR, RGB, or gray capture via libv4l 2014-12-16 20:07:37 -04:00
Artur Wieczorek
854a722c70 Implement VideoCapture::get, CvCapture::getProperty, IVideoCapture::getProperty as constant methods. 2014-12-16 16:08:22 +01:00
vincentweb
4d12beb723 Added better OpenNI2 support to the Asus Xtion and Occipital Structure
sensors which do not have image generators.
2014-12-14 20:52:24 +01:00
Maksim Shabunin
1523fdcc1c Doxygen documentation: more fixes and cleanups 2014-12-01 15:50:36 +03:00
Maksim Shabunin
dcae7698ad Doxygen documentation for: highgui, video, imgcodecs and videoio 2014-12-01 15:47:13 +03:00
Nick D'Ademo
91676de638 Change decimation enum values so they can be used in resolution calculations.
BUGFIX: Fixed bugged when setting PVAPI property CV_CAP_PROP_FRAME_HEIGHT.
2014-08-12 15:18:11 +02:00
Nick D'Ademo
2b94bcffb9 Added get and set for additional PVAPI properties: DecimationHorizontal, DecimationVertical, BinningX, BinningY 2014-08-11 13:30:36 +02:00
Lars Glud
1242a66119 Openni2 support 2014-07-20 15:04:11 +02:00
vbystricky
d58f736935 Split highgui module to videoio and highgui 2014-07-14 23:16:47 +04:00