Re: gstreamermm, Gst::AudioSink
- From: Ankur Deep Jaiswal <ankur techgentsia com>
- To: gtkmm-list <gtkmm-list gnome org>
- Subject: Re: gstreamermm, Gst::AudioSink
- Date: Mon, 18 Jun 2018 20:56:45 +0530
Hi,
the audiosink/audiosrc is now working,
but there is an unexpected bug while stopping the pipeline.
** (test_audio_plugin:11726): [1;35mCRITICAL [0m **: [34m20:48:28.984 [0m: Resources for ring buffer 0x555555a40040 still acquired
Thread #1 [test_audio_plug] 11726 [core: 1] (Suspended : Signal : SIGTRAP:Trace/breakpoint trap)Â Â Â
   0x7ffff7582c41  Â
   g_logv() at 0x7ffff7583f2b  Â
   g_log() at 0x7ffff758407f  Â
   gst_audio_ring_buffer_close_device() at 0x7ffff4adcc9b  Â
   0x7ffff4affc8e  Â
   Gst::Element_Class::change_state_vfunc_callback() at 0x7ffff7258281  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   Gst::Element_Class::set_state_vfunc_callback() at 0x7ffff72581e1  Â
   gst_bin_element_set_state() at gstbin.c:2,602 0x7ffff7ad6942  Â
   gst_bin_change_state_func() at gstbin.c:2,944 0x7ffff7ad6942  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   gst_bin_element_set_state() at gstbin.c:2,602 0x7ffff7ad6942  Â
   gst_bin_change_state_func() at gstbin.c:2,944 0x7ffff7ad6942  Â
   gst_pipeline_change_state() at gstpipeline.c:508 0x7ffff7b1eac2  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_continue_state() at gstelement.c:2,660 0x7ffff7af95ef  Â
   gst_element_change_state() at gstelement.c:2,991 0x7ffff7af8eb5  Â
   gst_element_continue_state() at gstelement.c:2,660 0x7ffff7af95ef  Â
   gst_element_change_state() at gstelement.c:2,998 0x7ffff7af8c26  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   main() at test_audio_plugin.cpp:51 0x55555555d1e2  Â
i had to override create_ring_buffer_vfunc      Â
Glib::RefPtr<Gst::AudioRingBuffer> create_ring_buffer_vfunc() override
   {
      const auto base = static_cast<BaseClassType*>(g_type_class_peek_parent(
            G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
            );
      const auto newbase = (_GstAudioBaseSrcClass *) base;
      if (newbase && newbase->create_ringbuffer) {
        auto retval = Glib::wrap(
               (*newbase->create_ringbuffer)(
                     (_GstAudioBaseSrc *) gobj()),true);
         return retval;
      }
      using RType = Glib::RefPtr<Gst::AudioRingBuffer>;
      return RType();
   }
the default behavior was causing (test_audio_plugin:11956): GStreamer-CRITICAL **: 20:55:06.510: gst_object_set_parent: assertion 'GST_IS_OBJECT (object)' failed
Thread #1 [test_audio_plug] 11987 [core: 4] (Suspended : Signal : SIGTRAP:Trace/breakpoint trap)Â Â Â
   0x7ffff7582c41  Â
   g_logv() at 0x7ffff7583f2b  Â
   g_log() at 0x7ffff758407f  Â
   gst_object_set_parent() at gstobject.c:670 0x7ffff7acbeaa  Â
   gst_audio_base_src_create_ringbuffer() at 0x7ffff4aff82d  Â
   0x7ffff4aff94c  Â
   Gst::Element_Class::change_state_vfunc_callback() at 0x7ffff7258281  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   Gst::Element_Class::set_state_vfunc_callback() at 0x7ffff72581e1  Â
   gst_bin_element_set_state() at gstbin.c:2,602 0x7ffff7ad6942  Â
   gst_bin_change_state_func() at gstbin.c:2,944 0x7ffff7ad6942  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   gst_bin_element_set_state() at gstbin.c:2,602 0x7ffff7ad6942  Â
   gst_bin_change_state_func() at gstbin.c:2,944 0x7ffff7ad6942  Â
   gst_element_change_state() at gstelement.c:2,952 0x7ffff7af8bce  Â
   gst_element_set_state_func() at gstelement.c:2,906 0x7ffff7af9309  Â
   main() at test_audio_plugin.cpp:49 0x55555555cf7a  Â
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]