Re: Gst::PlayBin2::create() error: *** glibc detected *** ./main: malloc(): memory corruption (fast): 0x00000000009b71d0 ***



On Monday, December 17, 2012, José Alburquerque wrote:
On Mon, 2012-12-17 at 09:50 +0800, Chow Loong Jin wrote:
> On 16/12/2012 22:34, Phong Cao wrote:
> >
> > I don't know whether this is a bug with gstreamermm or Ubuntu, because the
> > program is compiled and running fine on Fedora 17 with gstreamermm-0.10.10. Is
> > there anybody here using Ubuntu 12.10 or Linux Mint 14 has experienced the same
> > problem? Is there any way I can resolve this problem?
>
> Looks like a bug in the gstreamermm Ubuntu has. Valgrind says:
> ==7385==
> ==7385== Invalid write of size 8
> ==7385==    at 0x4F80DC6: Gst::PlayBin2_Class::class_init_function(void*, void*)
> (playbin2.cc:784)
> ==7385==    by 0x7621925: g_type_class_ref (gtype.c:2217)
> ==7385==    by 0x592C09D: Glib::ConstructParams::ConstructParams(Glib::Class
> const&, char const*, ...) (object.cc:83)
> ==7385==    by 0x4F817AB: Gst::PlayBin2::PlayBin2(Glib::ustring const&)
> (playbin2.cc:78)
> ==7385==    by 0x4F82020: Gst::PlayBin2::create(Glib::ustring const&)
> (playbin2.cc:1425)
> ==7385==    by 0x400B9E: main (test-gstmm.cc:12)
> ==7385==  Address 0x135de308 is 0 bytes after a block of size 712 alloc'd
> ==7385==    at 0x4C29E46: calloc (in
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==7385==    by 0x7BEB738: g_malloc0 (gmem.c:189)
> ==7385==    by 0x7621770: g_type_class_ref (gtype.c:2116)
> ==7385==    by 0x592C09D: Glib::ConstructParams::ConstructParams(Glib::Class
> const&, char const*, ...) (object.cc:83)
> ==7385==    by 0x4F817AB: Gst::PlayBin2::PlayBin2(Glib::ustring const&)
> (playbin2.cc:78)
> ==7385==    by 0x4F82020: Gst::PlayBin2::create(Glib::ustring const&)
> (playbin2.cc:1425)
> ==7385==    by 0x400B9E: main (test-gstmm.cc:12)

>From the valgrind output the invalid access happens in the following
line of the Gst::PlayBin2_Class::class_init_function() function:

klass->get_text_pad = &get_text_pad_callback;

which is an attempt at setting a callback for the "get-text-pad" signal
of the playbin2 plug-in in the GstPlayBin2Class struct.

It's difficult to know why the line is generating an invalid access.

One possibility is that a playbin2 signal that gstreamermm expects to exist has been removed in the existing gst-plugins-base package of the run system.  By any chance, are the versions of GStreamer and gst-base-plugins on the system 1.0 or greater?  gstreamermm-0.10.x versions will most likely not work with the 1.0.x versions.

--
José


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]