On Thu, May 10, 2012 at 11:03:41PM -0400, José Alburquerque wrote: > I can't reproduce this on an ubuntu 12.04 system using the same > versions of GStreamer and gstreamermm. 'make check' of the > gstreamermm-0.10.10.1 tarball succeeds (building and running the tests > which all call Gst::init()). Also, the hello_world example works just > fine. Here's some output:
Hi José. The reason you cannot reproduce it on Linux is because the default mutex type is different. It is set to PTHREAD_MUTEX_NORMAL while on OpenBSD we set it to PTHREAD_MUTEX_STRICT_NP (which allows us to catch issues like this one). As far as I understand, self-deadlock checks are stronger with STRICT_NP than NORMAL so the issue goes unnoticed in the last case... > [06:56][jose@jose-desktop: ~/Desktop]$ pkg-config --modversion gstreamer-0.10 > 0.10.36 > > [07:21][jose@jose-desktop: > /usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1]$ make check > Making check in tools > make[1]: Entering directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tools' > make[1]: Nothing to be done for `check'. > make[1]: Leaving directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tools' > Making check in gstreamer/gstreamermm > make[1]: Entering directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/gstreamer/gstreamermm' > make[1]: Nothing to be done for `check'. > make[1]: Leaving directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/gstreamer/gstreamermm' > Making check in tests > make[1]: Entering directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tests' > make test-caps test-create-element test-pipeline-add-element > test-link-elements test-create-bin test-miniobject-wrap > test-message-wrap test-event-wrap test-query-wrap test-structure > test-caps-structures test-interface test-create-bus test-taglist > test-tagsetter test-pad test-ghost-pad test-init-check test-init > test-init-check-noargs test-init-noargs test-iterator test-property-caps > test-plugin-gen test-plugin-signals test-buffer-list-iterator > test-base-src > make[2]: Entering directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tests' > g++ -DHAVE_CONFIG_H -I.. -I../gstreamer -pthread > -I/usr/include/giomm-2.4 -I/usr/lib/x86_64-linux-gnu/giomm-2.4/include > -I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include > -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include > -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include > -I/usr/include/libxml2 -I/usr/include/gstreamer-0.10 > -I/usr/include/libxml++-2.6 -I/usr/lib/libxml++-2.6/include -Wall -g > -O2 -MT test-caps.o -MD -MP -MF .deps/test-caps.Tpo -c -o test-caps.o > test-caps.cc > mv -f .deps/test-caps.Tpo .deps/test-caps.Po > ... > make[2]: Leaving directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tests' > > make check-TESTS > make[2]: Entering directory > `/usr/src/jhbuild-sources/gstreamermm/gstreamermm-0.10.10.1/tests' > Simple caps width after setting = 500. > Simple caps rate after setting = 25/1. > Simple caps string after setting = 'A string'. > Succeeded linking e1 and e2 with filter. > PASS: test-caps > Successfully created gst element 'source'. > PASS: test-create-element > Successfully added element 'source' to pipeline 'my-pipeline'. > PASS: test-pipeline-add-element > Successfully linked elements 'source', 'filter' and 'sink'. > PASS: test-link-elements > Successfully added elements 'source' and 'sink' to bin 'gtkmm__gstbin0'. > 'gtkmm__gstbin0' children count = 2. > 'gtkmm__gstbin0' first child is 'sink'. > PASS: test-create-bin > C++ message instance is !null: 1 > PASS: test-miniobject-wrap > C++ message instance is !null: 1 > message is a Gst::MessageWarning: 1 > message type name: 'warning' > Message structure name: 'GstMessageWarning' > PASS: test-message-wrap > C++ event instance is !null: 1 > event is a Gst::EventLatency: 1 > event type name: 'latency' > Event structure name: 'GstEventLatency' > PASS: test-event-wrap > C++ query instance is !null: 1 > query is a Gst::QueryPosition: 1 > query type name: 'position' > Query structure name: 'GstQueryPosition' > PASS: test-query-wrap > string value after getting = 'Hello; This is a ustring'. > integer value after getting = 100. > fraction value after getting = 1/2. > fractional range value after getting = [(1/2), (3/4)]. > date value after getting = 5/10/2012. > state value after getting = Gst::STATE_PAUSED. > PASS: test-structure > Structure 1: Message 1 > Structure 2: Message 2 > Structure 3: Message 3 > Removing cap's structure at index 0 > Cap's structure at index 0 = Structure 2 > Stealing cap's structure at index 0 > Cap's stolen structure at indext 0 = Structure 2 > Cap's structure at index 0 = Structure 3 > PASS: test-caps-structures > Successfully created gst element 'source'. > element 'source' implements URIHandler interface. > source uri = 'file:///tmp/media.file'. > PASS: test-interface > Successfully created gst bus. > PASS: test-create-bus > Tag title is 'My Song'. > Tag artist is 'Artist'. > Tag bit-rate is 192. > Tag date is 2008-11-5. > PASS: test-taglist > bitrate = 192. > title = `A Song'. > PASS: test-tagsetter > Successfully created pad template 'source-template'; direction = 2. > Successfully created pad 'pad1'; direction = 2. > Successfully created pad 'gtkmm__gstpad0'; direction = 2. > Successfully created pad 'pad3'; direction = 2. > Successfully created pad 'gtkmm__gstpad1'; direction = 2. > PASS: test-pad > Successfully created pad template 'source-template'; direction = 2. > Successfully created pad 'gtkmm__gstpad0'; direction = 2. > Successfully created pad 'gtkmm__gstpad1'; direction = 2. > Successfully created pad 'gtkmm__gstghostpad0'; direction = 1. > Successfully created pad 'gtkmm__gstghostpad1'; direction = 2. > PASS: test-ghost-pad > Successfully created gst element 'videosink'. > element 'videosink' implements XOverlay interface. > Successfully wrapped a GstAudioClock in a GSt::AudioClock. > PASS: test-init-check > Successfully created gst element 'videosink'. > element 'videosink' implements XOverlay interface. > Successfully wrapped a GstAudioClock in a GSt::AudioClock. > PASS: test-init > Successfully created gst element 'videosink'. > element 'videosink' implements XOverlay interface. > PASS: test-init-check-noargs > Successfully created gst element 'videosink'. > element 'videosink' implements XOverlay interface. > PASS: test-init-noargs > The following elements have been added to bin 'my-bin'. > element4 > element3 > element2 > element1 > The first element iterator processed is 'element4'. > The loop iterated 4 time(s) to print bin 'my-bin' elements. > > The following are standard GStreamer query types: > position -- Current position. > duration -- Total duration. > latency -- Latency. > jitter -- Jitter. > rate -- Configured rate 1000000 = 1. > seeking -- Seeking capabilities and parameters. > segment -- currently configured segment. > convert -- Converting between formats. > formats -- Supported formats for conversion. > buffering -- Buffering status. > custom -- Custom query. > uri -- URI of the source or sink. > > The following are standard GStreamer formats: > default -- Default format for the media type. > bytes -- Bytes. > time -- Time. > buffers -- Buffers. > percent -- Percent. > PASS: test-iterator > `caps' property is null before setting property. > `caps' property after setting and getting is 'image/jpeg, > framerate=(fraction)2/1'. > PASS: test-property-caps > filesrc is valid. > mmapsize = 4194304 > PASS: test-plugin-gen > Setting to PLAYING. > Running. > Gst::FakeSrc's handoff signal triggered. > The Gst::FakeSrc buffer's discont flag is set. > Gst::FakeSrc's handoff signal triggered. > Gst::FakeSrc's handoff signal triggered. > Gst::FakeSrc's handoff signal triggered. > Gst::FakeSrc's handoff signal triggered. > End of stream. > Returned. Stopping playback. > PASS: test-plugin-signals > PASS: test-buffer-list-iterator > Capture 43691 43691 [input] > PASS: test-base-src > =================== > All 27 tests passed > =================== > > > Thanks, > > -Kurt > > _______________________________________________ > > gtkmm-list mailing list > > [email protected] > > http://mail.gnome.org/mailman/listinfo/gtkmm-list > > -- > José > > > -- Antoine _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
