Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmake-time checks for known broken opencv configurations #20

Closed
ghost opened this issue Oct 2, 2011 · 6 comments
Closed

cmake-time checks for known broken opencv configurations #20

ghost opened this issue Oct 2, 2011 · 6 comments
Labels

Comments

@ghost
Copy link

ghost commented Oct 2, 2011

This probably should be generalized

vidcap.py produces a segmentation fault.
Stacktrace:
Temporary breakpoint 1, 0x0805a893 in main ()
(gdb) next
Single stepping until exit from function main,
which has no line number information.
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
[New Thread 0xb08b2b70 (LWP 7256)]
[New Thread 0xaffd3b70 (LWP 7257)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb08b2b70 (LWP 7256)]
0x00394e21 in free () from /lib/libc.so.6
(gdb) backtrace
#0 0x00394e21 in free () from /lib/libc.so.6
#1 0x039a1486 in g_free () from /lib/libglib-2.0.so.0
#2 0x04bea5cd in ?? () from /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
#3 0x03a46d46 in ?? () from /lib/libpng12.so.0
#4 0x03a2f1eb in png_create_info_struct () from /lib/libpng12.so.0
#5 0x04bebcdc in ?? () from /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
#6 0x045a6360 in ?? () from /usr/lib/libgdk_pixbuf-2.0.so.0
#7 0x045a74c0 in gdk_pixbuf_new_from_file () from /usr/lib/libgdk_pixbuf-2.0.so.0
#8 0x0444c2f3 in gdk_pixmap_colormap_create_from_xpm () from /usr/lib/libgdk-x11-2.0.so.0
#9 0x042191ec in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#10 0x03ae1f2c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#11 0x03ad0a87 in ?? () from /usr/lib/libgobject-2.0.so.0
#12 0x03ad2412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0x03ae842a in ?? () from /usr/lib/libgobject-2.0.so.0
#14 0x03ae9fac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#15 0x03aea452 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x0420bf57 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x0420fc3f in gtk_style_attach () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x042d23ac in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x03ae1f2c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#20 0x03ad0a87 in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0x03ad2412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#22 0x03ae842a in ?? () from /usr/lib/libgobject-2.0.so.0
#23 0x03ae9fac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#24 0x03aea452 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#25 0x042bfafb in gtk_widget_realize () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x02c1e811 in ?? () from /usr/lib/libQtGui.so.4
#27 0x02c18bea in ?? () from /usr/lib/libQtGui.so.4
#28 0x02bfefe5 in QGtkStyle::QGtkStyle() () from /usr/lib/libQtGui.so.4
#29 0x02b7357a in QStyleFactory::create(QString const&) () from /usr/lib/libQtGui.so.4
#30 0x0282b2c0 in QApplication::style() () from /usr/lib/libQtGui.so.4
#31 0x02834b5d in QApplicationPrivate::initialize() () from /usr/lib/libQtGui.so.4
#32 0x02834c80 in QApplicationPrivate::construct(XDisplay*, unsigned long, unsigned long) () from /usr/lib/libQtGui.so.4
#33 0x02835bf3 in QApplication::QApplication(int&, char**, int) () from /usr/lib/libQtGui.so.4
#34 0x014b0dee in icvInitSystem(int
, char_*) () from /usr/local/lib/libopencv_highgui.so.2.3
#35 0x014b114e in GuiReceiver::GuiReceiver() () from /usr/local/lib/libopencv_highgui.so.2.3
#36 0x014b155e in cvNamedWindow () from /usr/local/lib/libopencv_highgui.so.2.3
#37 0x01494b95 in cv::namedWindow(std::basic_string<char, std::char_traits, std::allocator > const&, int) () from /usr/local/lib/libopencv_highgui.so.2.3

---Type to continue, or q to quit---
#38 0x00fdd660 in boost::detail::function::void_function_obj_invoker1<ecto_opencv::ImshowJob, void, boost::signals2::connection const&>::invoke(boost::detail::function::function_buffer&, boost::signals2::connection const&) () from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#39 0x00fe2ee9 in boost::detail::function::void_function_obj_invoker0<boost::signals2::detail::bound_extended_slot_function0<boost::function<void ()(boost::signals2::connection const&)> >, void>::invoke(boost::detail::function::function_buffer&) () from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#40 0x00fe6b61 in boost::signals2::detail::signal0_impl<void, boost::signals2::optional_last_value, int, std::less, boost::function<void ()()>, boost::function<void ()(boost::signals2::connection const&)>, boost::signals2::mutex>::operator()() ()

from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#41 0x00fe713f in boost::detail::thread_databoost::reference_wrapper<ecto_opencv::HighGuiRunner >::run() ()

from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#42 0x0069e0f5 in thread_proxy () from /usr/lib/libboost_thread.so.1.42.0
#43 0x00134cc9 in start_thread () from /lib/libpthread.so.0
#44 0x003f469e in clone () from /lib/libc.so.6

I am using opencv 2.3.1. compiled without gstreamer and gtk support. Opencv 2.3.1 c++ examples which use highgui work. Also wrote a very simple imshow like cell, but get the same seg fault.

@straszheim
Copy link
Member

Maybe this is a Qt thing.... to the best of my knowledge we only test
against the opencv .debs. Will try to reproduce.

On Sun, Oct 2, 2011 at 10:17 AM, Florian Seidel
[email protected]
wrote:

vidcap.py produces a segmentation fault.
Stacktrace:
Temporary breakpoint 1, 0x0805a893 in main ()
(gdb) next
Single stepping until exit from function main,
which has no line number information.
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
[New Thread 0xb08b2b70 (LWP 7256)]
[New Thread 0xaffd3b70 (LWP 7257)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb08b2b70 (LWP 7256)]
0x00394e21 in free () from /lib/libc.so.6
(gdb) backtrace
#0  0x00394e21 in free () from /lib/libc.so.6
#1  0x039a1486 in g_free () from /lib/libglib-2.0.so.0
#2  0x04bea5cd in ?? () from /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
#3  0x03a46d46 in ?? () from /lib/libpng12.so.0
#4  0x03a2f1eb in png_create_info_struct () from /lib/libpng12.so.0
#5  0x04bebcdc in ?? () from /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
#6  0x045a6360 in ?? () from /usr/lib/libgdk_pixbuf-2.0.so.0
#7  0x045a74c0 in gdk_pixbuf_new_from_file () from /usr/lib/libgdk_pixbuf-2.0.so.0
#8  0x0444c2f3 in gdk_pixmap_colormap_create_from_xpm () from /usr/lib/libgdk-x11-2.0.so.0
#9  0x042191ec in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#10 0x03ae1f2c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#11 0x03ad0a87 in ?? () from /usr/lib/libgobject-2.0.so.0
#12 0x03ad2412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0x03ae842a in ?? () from /usr/lib/libgobject-2.0.so.0
#14 0x03ae9fac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#15 0x03aea452 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x0420bf57 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x0420fc3f in gtk_style_attach () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x042d23ac in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x03ae1f2c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#20 0x03ad0a87 in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0x03ad2412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#22 0x03ae842a in ?? () from /usr/lib/libgobject-2.0.so.0
#23 0x03ae9fac in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#24 0x03aea452 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#25 0x042bfafb in gtk_widget_realize () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x02c1e811 in ?? () from /usr/lib/libQtGui.so.4
#27 0x02c18bea in ?? () from /usr/lib/libQtGui.so.4
#28 0x02bfefe5 in QGtkStyle::QGtkStyle() () from /usr/lib/libQtGui.so.4
#29 0x02b7357a in QStyleFactory::create(QString const&) () from /usr/lib/libQtGui.so.4
#30 0x0282b2c0 in QApplication::style() () from /usr/lib/libQtGui.so.4
#31 0x02834b5d in QApplicationPrivate::initialize() () from /usr/lib/libQtGui.so.4
#32 0x02834c80 in QApplicationPrivate::construct(XDisplay, unsigned long, unsigned long) () from /usr/lib/libQtGui.so.4
#33 0x02835bf3 in QApplication::QApplication(int&, char__, int) () from /usr/lib/libQtGui.so.4
#34 0x014b0dee in icvInitSystem(int_, char**) () from /usr/local/lib/libopencv_highgui.so.2.3
#35 0x014b114e in GuiReceiver::GuiReceiver() () from /usr/local/lib/libopencv_highgui.so.2.3
#36 0x014b155e in cvNamedWindow () from /usr/local/lib/libopencv_highgui.so.2.3
#37 0x01494b95 in cv::namedWindow(std::basic_string<char, std::char_traits, std::allocator > const&, int) () from /usr/local/lib/libopencv_highgui.so.2.3
---Type to continue, or q to quit---
#38 0x00fdd660 in boost::detail::function::void_function_obj_invoker1<ecto_opencv::ImshowJob, void, boost::signals2::connection const&>::invoke(boost::detail::function::function_buffer&, boost::signals2::connection const&) () from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#39 0x00fe2ee9 in boost::detail::function::void_function_obj_invoker0<boost::signals2::detail::bound_extended_slot_function0<boost::function<void ()(boost::signals2::connection const&)> >, void>::invoke(boost::detail::function::function_buffer&) () from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#40 0x00fe6b61 in boost::signals2::detail::signal0_impl<void, boost::signals2::optional_last_value, int, std::less, boost::function<void ()()>, boost::function<void ()(boost::signals2::connection const&)>, boost::signals2::mutex>::operator()() ()
  from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#41 0x00fe713f in boost::detail::thread_databoost::reference_wrapper<ecto_opencv::HighGuiRunner >::run() ()
  from /home/florian/ecto_kitchen2/ecto_kitchen/build/lib/ecto_opencv/highgui.so
#42 0x0069e0f5 in thread_proxy () from /usr/lib/libboost_thread.so.1.42.0
#43 0x00134cc9 in start_thread () from /lib/libpthread.so.0
#44 0x003f469e in clone () from /lib/libc.so.6

I am using opencv 2.3.1. compiled without gstreamer and gtk support. Opencv 2.3.1 c++ examples which use highgui work. Also wrote a very simple imshow like cell, but get the same seg fault.

Reply to this email directly or view it on GitHub:
#20

@ethanrublee
Copy link
Member

Yup, I have never tested against a QT based highgui, only the GTK version.

@ethanrublee
Copy link
Member

Could you attach your simple imshow like cell, that uses qt?

@straszheim
Copy link
Member

I get no crash, but an unusable window. Interesting abi warning from libpng. Malefiz: maybe you want to go with the gtk version instead.

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
init done
opengl support available
QGLShader: could not create shader
Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile
QGLShader: could not create shader
Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile
QGLShaderProgram: could not create shader program
Errors linking simple shader: ""
QGLShader: could not create shader
Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile
QGLShader: could not create shader
Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile
QGLShaderProgram: could not create shader program
Errors linking blit shader: ""
QGLShader: could not create shader
Warning: "" failed to compile!
QGLShader: could not create shader
Warning: "" failed to compile!
QGLShaderProgram::uniformLocation( imageTexture ): shader program is not linked
QGLShader: could not create shader
Warning: "" failed to compile!
QGLShaderProgram::uniformLocation( imageTexture ): shader program is not linked
QGLShader: could not create shader
Warning: "" failed to compile!
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3
libpng warning: Incompatible libpng version in application and library
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3
libpng warning: Incompatible libpng version in application and library
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3
libpng warning: Incompatible libpng version in application and library
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3
libpng warning: Incompatible libpng version in application and library
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3

@ghost
Copy link
Author

ghost commented Oct 3, 2011

#include <ecto/ecto.hpp>
#include <opencv2/opencv.hpp>
#include <string>

namespace hello_ecto {
    using ecto::tendrils;
    struct ImShow {
        static void declare_params(tendrils& params)
        {
            params.declare<std::string>("name","the name","Window");
        }

        static void declare_io(const tendrils& params, tendrils& in, tendrils& out)
        {
            in.declare<cv::Mat>("image","An image",cv::Mat());
        }



        void configure(const tendrils& params, const tendrils& inputs, const tendrils& outputs){
            params["name"]>>name;
            image_=inputs["image"];
            cv::namedWindow(name,CV_WINDOW_AUTOSIZE);
        }

        int process(const tendrils& in,const tendrils& out)
        {
            cv::Mat image = *image_;
            if(image.empty())
            {
                return ecto::OK;
            }
            cv::imshow(name,image);
        }

        std::string name;
        ecto::spore<cv::Mat> image_;

    };
}

ECTO_CELL(hello_ecto,hello_ecto::ImShow,"ImShow","Shows an image");

@ghost ghost closed this as completed Oct 3, 2011
@ghost
Copy link
Author

ghost commented Oct 3, 2011

Recompiled OpenCV with default options which solved the problem.

@straszheim straszheim reopened this Oct 3, 2011
@vrabaud vrabaud closed this as completed May 11, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants