Commit 8ab6efb8 authored by Alexander Alekhin's avatar Alexander Alekhin

videoio: refactor GStreamer backend

- exception safe smart pointers, fixed many memory leaks
- fixed errors handling
- fixed strings handling
- fixed file existence check
- fixed toFraction() implementation
- add 'drop=true' for v4l2 input
- avoid overriding custom pipelines sink's 'max-buffers' value
- updated valgrind supression rules
- added support for GStreamer native leaks tracking (via gst_deinit() call)
- repaired capturing through GStreamer0.10 (fixed CV_8UC1)
parent ab24325d
This diff is collapsed.
...@@ -154,8 +154,11 @@ CvVideoWriter* cvCreateVideoWriter_AVFoundation( const char* filename, int fourc ...@@ -154,8 +154,11 @@ CvVideoWriter* cvCreateVideoWriter_AVFoundation( const char* filename, int fourc
CvCapture * cvCreateCameraCapture_Unicap (const int index); CvCapture * cvCreateCameraCapture_Unicap (const int index);
CvCapture * cvCreateCameraCapture_PvAPI (const int index); CvCapture * cvCreateCameraCapture_PvAPI (const int index);
namespace cv {
CvVideoWriter* cvCreateVideoWriter_GStreamer( const char* filename, int fourcc, CvVideoWriter* cvCreateVideoWriter_GStreamer( const char* filename, int fourcc,
double fps, CvSize frameSize, int is_color ); double fps, CvSize frameSize, int is_color );
}
namespace cv namespace cv
......
...@@ -218,6 +218,14 @@ ...@@ -218,6 +218,14 @@
fun:__itt_*create* fun:__itt_*create*
} }
{
OpenCV-gtk_init
Memcheck:Leak
...
fun:gtk_init
fun:cvInitSystem
}
{ {
OpenCV-FFmpeg-swsscale OpenCV-FFmpeg-swsscale
Memcheck:Addr16 Memcheck:Addr16
...@@ -227,6 +235,35 @@ ...@@ -227,6 +235,35 @@
fun:cvWriteFrame_FFMPEG fun:cvWriteFrame_FFMPEG
} }
{
OpenCV-GStreamer-gst_init
Memcheck:Leak
...
fun:gst_init
}
{
OpenCV-GStreamer-gst_deinit
Memcheck:Leak
...
fun:gst_deinit
}
{
OpenCV-GStreamer-gst_init_check
Memcheck:Leak
...
fun:gst_init_check
}
{
OpenCV-GStreamer-gst_parse_launch_full-reachable
Memcheck:Leak
match-leak-kinds: reachable
...
fun:gst_parse_launch_full
}
{ {
OpenCV-OpenEXR-ThreadPool OpenCV-OpenEXR-ThreadPool
Memcheck:Leak Memcheck:Leak
......
...@@ -18,6 +18,15 @@ ...@@ -18,6 +18,15 @@
fun:_ZN7testing8internal11CmpHelperLEIddEENS_15AssertionResultEPKcS4_RKT_RKT0_ fun:_ZN7testing8internal11CmpHelperLEIddEENS_15AssertionResultEPKcS4_RKT_RKT0_
} }
{
GTest-RegisterTests
Memcheck:Leak
...
fun:RegisterTests
...
fun:_ZN7testing14InitGoogleTestEPiPPc
}
{ {
OpenCL OpenCL
Memcheck:Cond Memcheck:Cond
...@@ -55,10 +64,10 @@ ...@@ -55,10 +64,10 @@
} }
{ {
glib GTK-css
Memcheck:Leak Memcheck:Leak
fun:*alloc ...
obj:*/libglib* fun:gtk_css_provider*
} }
{ {
...@@ -120,3 +129,78 @@ ...@@ -120,3 +129,78 @@
... ...
fun:cvWriteFrame_FFMPEG fun:cvWriteFrame_FFMPEG
} }
{
GStreamer-orc_program_compile_full
Memcheck:Leak
match-leak-kinds: reachable
...
fun:orc_program_compile_full
...
fun:clone
}
{
GStreamer-orc_program_new_from_static_bytecode
Memcheck:Leak
match-leak-kinds: reachable
...
fun:orc_program_new_from_static_bytecode
...
fun:clone
}
{
GStreamer-matroska-other
Memcheck:Leak
...
fun:gst*
obj:*gstmatroska*
...
obj:*glib*
fun:start_thread
fun:clone
}
{
GStreamer-matroska-gst_riff_create_video_caps
Memcheck:Leak
...
fun:gst_riff_create_video_caps
obj:*gstmatroska*
...
fun:clone
}
{
GStreamer-tls
Memcheck:Leak
match-leak-kinds: possible
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls
}
{
GStreamer-registry
Memcheck:Leak
...
fun:gst_update_registry
}
{
GStreamer-plugin_load
Memcheck:Leak
...
fun:gst_plugin_load_by_name
}
{
GStreamer-separate-threads
Memcheck:Leak
...
obj:*/libglib*
fun:start_thread
fun:clone
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment