Skip to content

Commit 3d0a421

Browse files
committed
Merge pull request opencv#19618 from alalek:videoio_plugin_exception_messages
2 parents 3a062ee + 831d48d commit 3d0a421

File tree

4 files changed

+187
-16
lines changed

4 files changed

+187
-16
lines changed

modules/videoio/src/cap_ffmpeg.cpp

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,13 @@ CvResult CV_API_CALL cv_capture_open(const char* filename, int camera_index, CV_
258258
return CV_ERROR_OK;
259259
}
260260
}
261+
catch (const std::exception& e)
262+
{
263+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
264+
}
261265
catch (...)
262266
{
267+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
263268
}
264269
if (cap)
265270
delete cap;
@@ -290,8 +295,13 @@ CvResult CV_API_CALL cv_capture_open_with_params(
290295
return CV_ERROR_OK;
291296
}
292297
}
298+
catch (const std::exception& e)
299+
{
300+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
301+
}
293302
catch (...)
294303
{
304+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
295305
}
296306
if (cap)
297307
delete cap;
@@ -322,8 +332,14 @@ CvResult CV_API_CALL cv_capture_get_prop(CvPluginCapture handle, int prop, CV_OU
322332
*val = instance->getProperty(prop);
323333
return CV_ERROR_OK;
324334
}
335+
catch (const std::exception& e)
336+
{
337+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
338+
return CV_ERROR_FAIL;
339+
}
325340
catch (...)
326341
{
342+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
327343
return CV_ERROR_FAIL;
328344
}
329345
}
@@ -338,8 +354,14 @@ CvResult CV_API_CALL cv_capture_set_prop(CvPluginCapture handle, int prop, doubl
338354
CvCapture_FFMPEG_proxy* instance = (CvCapture_FFMPEG_proxy*)handle;
339355
return instance->setProperty(prop, val) ? CV_ERROR_OK : CV_ERROR_FAIL;
340356
}
341-
catch(...)
357+
catch (const std::exception& e)
342358
{
359+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
360+
return CV_ERROR_FAIL;
361+
}
362+
catch (...)
363+
{
364+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
343365
return CV_ERROR_FAIL;
344366
}
345367
}
@@ -354,8 +376,14 @@ CvResult CV_API_CALL cv_capture_grab(CvPluginCapture handle)
354376
CvCapture_FFMPEG_proxy* instance = (CvCapture_FFMPEG_proxy*)handle;
355377
return instance->grabFrame() ? CV_ERROR_OK : CV_ERROR_FAIL;
356378
}
357-
catch(...)
379+
catch (const std::exception& e)
380+
{
381+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
382+
return CV_ERROR_FAIL;
383+
}
384+
catch (...)
358385
{
386+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
359387
return CV_ERROR_FAIL;
360388
}
361389
}
@@ -375,8 +403,14 @@ CvResult CV_API_CALL cv_capture_retrieve(CvPluginCapture handle, int stream_idx,
375403
return callback(stream_idx, img.data, img.step, img.cols, img.rows, img.channels(), userdata);
376404
return CV_ERROR_FAIL;
377405
}
378-
catch(...)
406+
catch (const std::exception& e)
379407
{
408+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
409+
return CV_ERROR_FAIL;
410+
}
411+
catch (...)
412+
{
413+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
380414
return CV_ERROR_FAIL;
381415
}
382416
}
@@ -395,8 +429,14 @@ CvResult CV_API_CALL cv_capture_retrieve(CvPluginCapture handle, int stream_idx,
395429
return callback(stream_idx, img.data, img.step, img.cols, img.rows, img.type(), userdata);
396430
return CV_ERROR_FAIL;
397431
}
398-
catch(...)
432+
catch (const std::exception& e)
433+
{
434+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
435+
return CV_ERROR_FAIL;
436+
}
437+
catch (...)
399438
{
439+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
400440
return CV_ERROR_FAIL;
401441
}
402442
}
@@ -417,8 +457,13 @@ CvResult CV_API_CALL cv_writer_open(const char* filename, int fourcc, double fps
417457
return CV_ERROR_OK;
418458
}
419459
}
420-
catch(...)
460+
catch (const std::exception& e)
421461
{
462+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
463+
}
464+
catch (...)
465+
{
466+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
422467
}
423468
if (wrt)
424469
delete wrt;
@@ -459,8 +504,14 @@ CvResult CV_API_CALL cv_writer_write(CvPluginWriter handle, const unsigned char
459504
instance->write(img);
460505
return CV_ERROR_OK;
461506
}
462-
catch(...)
507+
catch (const std::exception& e)
508+
{
509+
CV_LOG_WARNING(NULL, "FFmpeg: Exception is raised: " << e.what());
510+
return CV_ERROR_FAIL;
511+
}
512+
catch (...)
463513
{
514+
CV_LOG_WARNING(NULL, "FFmpeg: Unknown C++ exception is raised");
464515
return CV_ERROR_FAIL;
465516
}
466517
}

modules/videoio/src/cap_gstreamer.cpp

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1878,8 +1878,13 @@ CvResult CV_API_CALL cv_capture_open(const char* filename, int camera_index, CV_
18781878
return CV_ERROR_OK;
18791879
}
18801880
}
1881+
catch (const std::exception& e)
1882+
{
1883+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
1884+
}
18811885
catch (...)
18821886
{
1887+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
18831888
}
18841889
if (cap)
18851890
delete cap;
@@ -1910,8 +1915,14 @@ CvResult CV_API_CALL cv_capture_get_prop(CvPluginCapture handle, int prop, CV_OU
19101915
*val = instance->getProperty(prop);
19111916
return CV_ERROR_OK;
19121917
}
1918+
catch (const std::exception& e)
1919+
{
1920+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
1921+
return CV_ERROR_FAIL;
1922+
}
19131923
catch (...)
19141924
{
1925+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
19151926
return CV_ERROR_FAIL;
19161927
}
19171928
}
@@ -1926,8 +1937,14 @@ CvResult CV_API_CALL cv_capture_set_prop(CvPluginCapture handle, int prop, doubl
19261937
GStreamerCapture* instance = (GStreamerCapture*)handle;
19271938
return instance->setProperty(prop, val) ? CV_ERROR_OK : CV_ERROR_FAIL;
19281939
}
1929-
catch(...)
1940+
catch (const std::exception& e)
1941+
{
1942+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
1943+
return CV_ERROR_FAIL;
1944+
}
1945+
catch (...)
19301946
{
1947+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
19311948
return CV_ERROR_FAIL;
19321949
}
19331950
}
@@ -1942,8 +1959,14 @@ CvResult CV_API_CALL cv_capture_grab(CvPluginCapture handle)
19421959
GStreamerCapture* instance = (GStreamerCapture*)handle;
19431960
return instance->grabFrame() ? CV_ERROR_OK : CV_ERROR_FAIL;
19441961
}
1945-
catch(...)
1962+
catch (const std::exception& e)
1963+
{
1964+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
1965+
return CV_ERROR_FAIL;
1966+
}
1967+
catch (...)
19461968
{
1969+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
19471970
return CV_ERROR_FAIL;
19481971
}
19491972
}
@@ -1962,8 +1985,14 @@ CvResult CV_API_CALL cv_capture_retrieve(CvPluginCapture handle, int stream_idx,
19621985
return callback(stream_idx, img.data, img.step, img.cols, img.rows, img.type(), userdata);
19631986
return CV_ERROR_FAIL;
19641987
}
1965-
catch(...)
1988+
catch (const std::exception& e)
1989+
{
1990+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
1991+
return CV_ERROR_FAIL;
1992+
}
1993+
catch (...)
19661994
{
1995+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
19671996
return CV_ERROR_FAIL;
19681997
}
19691998
}
@@ -2008,8 +2037,13 @@ CvResult CV_API_CALL cv_writer_open_with_params(
20082037
return CV_ERROR_OK;
20092038
}
20102039
}
2011-
catch(...)
2040+
catch (const std::exception& e)
2041+
{
2042+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
2043+
}
2044+
catch (...)
20122045
{
2046+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
20132047
}
20142048
if (wrt)
20152049
delete wrt;
@@ -2060,8 +2094,14 @@ CvResult CV_API_CALL cv_writer_write(CvPluginWriter handle, const unsigned char
20602094
cvSetData(&img, const_cast<unsigned char*>(data), step);
20612095
return instance->writeFrame(&img) ? CV_ERROR_OK : CV_ERROR_FAIL;
20622096
}
2063-
catch(...)
2097+
catch (const std::exception& e)
2098+
{
2099+
CV_LOG_WARNING(NULL, "GStreamer: Exception is raised: " << e.what());
2100+
return CV_ERROR_FAIL;
2101+
}
2102+
catch (...)
20642103
{
2104+
CV_LOG_WARNING(NULL, "GStreamer: Unknown C++ exception is raised");
20652105
return CV_ERROR_FAIL;
20662106
}
20672107
}

modules/videoio/src/cap_mfx_plugin.cpp

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,13 @@ CvResult CV_API_CALL cv_capture_open(const char* filename, int, CV_OUT CvPluginC
3737
}
3838
}
3939
}
40+
catch (const std::exception& e)
41+
{
42+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
43+
}
4044
catch (...)
4145
{
46+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
4247
}
4348
if (cap)
4449
delete cap;
@@ -69,8 +74,14 @@ CvResult CV_API_CALL cv_capture_get_prop(CvPluginCapture handle, int prop, CV_OU
6974
*val = instance->getProperty(prop);
7075
return CV_ERROR_OK;
7176
}
77+
catch (const std::exception& e)
78+
{
79+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
80+
return CV_ERROR_FAIL;
81+
}
7282
catch (...)
7383
{
84+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
7485
return CV_ERROR_FAIL;
7586
}
7687
}
@@ -85,8 +96,14 @@ CvResult CV_API_CALL cv_capture_set_prop(CvPluginCapture handle, int prop, doubl
8596
VideoCapture_IntelMFX* instance = (VideoCapture_IntelMFX*)handle;
8697
return instance->setProperty(prop, val) ? CV_ERROR_OK : CV_ERROR_FAIL;
8798
}
88-
catch(...)
99+
catch (const std::exception& e)
100+
{
101+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
102+
return CV_ERROR_FAIL;
103+
}
104+
catch (...)
89105
{
106+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
90107
return CV_ERROR_FAIL;
91108
}
92109
}
@@ -101,8 +118,14 @@ CvResult CV_API_CALL cv_capture_grab(CvPluginCapture handle)
101118
VideoCapture_IntelMFX* instance = (VideoCapture_IntelMFX*)handle;
102119
return instance->grabFrame() ? CV_ERROR_OK : CV_ERROR_FAIL;
103120
}
104-
catch(...)
121+
catch (const std::exception& e)
122+
{
123+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
124+
return CV_ERROR_FAIL;
125+
}
126+
catch (...)
105127
{
128+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
106129
return CV_ERROR_FAIL;
107130
}
108131
}
@@ -120,8 +143,14 @@ CvResult CV_API_CALL cv_capture_retrieve(CvPluginCapture handle, int stream_idx,
120143
return callback(stream_idx, img.data, (int)img.step, img.cols, img.rows, img.channels(), userdata);
121144
return CV_ERROR_FAIL;
122145
}
123-
catch(...)
146+
catch (const std::exception& e)
147+
{
148+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
149+
return CV_ERROR_FAIL;
150+
}
151+
catch (...)
124152
{
153+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
125154
return CV_ERROR_FAIL;
126155
}
127156
}
@@ -140,8 +169,13 @@ CvResult CV_API_CALL cv_writer_open(const char* filename, int fourcc, double fps
140169
return CV_ERROR_OK;
141170
}
142171
}
143-
catch(...)
172+
catch (const std::exception& e)
173+
{
174+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
175+
}
176+
catch (...)
144177
{
178+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
145179
}
146180
if (wrt)
147181
delete wrt;
@@ -182,8 +216,14 @@ CvResult CV_API_CALL cv_writer_write(CvPluginWriter handle, const unsigned char
182216
instance->write(img);
183217
return CV_ERROR_OK;
184218
}
185-
catch(...)
219+
catch (const std::exception& e)
220+
{
221+
CV_LOG_WARNING(NULL, "MFX: Exception is raised: " << e.what());
222+
return CV_ERROR_FAIL;
223+
}
224+
catch (...)
186225
{
226+
CV_LOG_WARNING(NULL, "MFX: Unknown C++ exception is raised");
187227
return CV_ERROR_FAIL;
188228
}
189229
}

0 commit comments

Comments
 (0)