All pastes #716955 Raw Edit

ensonic

public text v1 · immutable
#716955 ·published 2007-09-27 08:23 UTC
rendered paste body
==2988== 1,343 (20 direct, 1,323 indirect) bytes in 1 blocks are definitely lost in loss record 3,167 of 3,240
==2988==    at 0x4020B74: calloc (vg_replace_malloc.c:391)
==2988==    by 0x41BF22D: g_malloc0 (gmem.c:150)
==2988==    by 0x40F7C9A: gst_structure_id_empty_new_with_size (gststructure.c:115)
==2988==    by 0x40F81F5: gst_structure_new_valist (gststructure.c:206)
==2988==    by 0x40F8271: gst_structure_new (gststructure.c:179)
==2988==    by 0x40D2BDD: gst_event_new_new_segment_full (gstevent.c:541)
==2988==    by 0x4051C56: gst_base_src_perform_seek (gstbasesrc.c:1225)
==2988==    by 0x40520DC: gst_base_src_activate_push (gstbasesrc.c:2377)
==2988==    by 0x40E870E: gst_pad_activate_push (gstpad.c:886)
==2988==    by 0x40E8BF4: gst_pad_activate_default (gstpad.c:559)
==2988==    by 0x40E8CBB: gst_pad_set_active (gstpad.c:648)
==2988==    by 0x40CF40A: activate_pads (gstelement.c:2491)
==2988==    by 0x40DC366: gst_iterator_fold (gstiterator.c:503)
==2988==    by 0x40CEE81: iterator_activate_fold_with_resync (gstelement.c:2523)
==2988==    by 0x40CEF1D: gst_element_pads_activate (gstelement.c:2559)
==2988==    by 0x40CF2B5: gst_element_change_state_func (gstelement.c:2633)
==2988==    by 0x4053DCE: gst_base_src_change_state (gstbasesrc.c:2514)
==2988==    by 0x40CB9B8: gst_element_change_state (gstelement.c:2407)
==2988==    by 0x40CBE18: gst_element_set_state_func (gstelement.c:2357)
==2988==    by 0x40CAA02: gst_element_set_state (gstelement.c:2263)
==2988==    by 0x40BE3D2: gst_bin_change_state_func (gstbin.c:1919)
==2988==    by 0x40EBB56: gst_pipeline_change_state (gstpipeline.c:466)
==2988==    by 0x40CB9B8: gst_element_change_state (gstelement.c:2407)
==2988==    by 0x40CBE18: gst_element_set_state_func (gstelement.c:2357)
==2988==    by 0x40CAA02: gst_element_set_state (gstelement.c:2263)
==2988==    by 0x80493A4: test_caps (caps.c:164)
==2988==    by 0x4071490: srunner_run_all (check_run.c:435)
==2988==    by 0x4067B69: gst_check_run_suite (gstcheck.c:327)
==2988==    by 0x8049188: main (caps.c:193)
100%: Checks: 1, Failures: 0, Errors: 0


GST_START_TEST (test_caps)
{
  GstElement *element, *pipe, *peer;
  GList *e;
  GstStateChangeReturn sc_ret;
  GstIterator *pad_iter;
  GstPad *pad;
  gboolean pads_done;
  
  for (e = elements; e; e = e->next) {
    const gchar *name = e->data;

    GST_INFO ("testing element %s", name);
    element = gst_element_factory_make (name, name);
    fail_if (element == NULL, "Could not make element from factory %s", name);

    if (GST_IS_BIN (element)) {
      GST_DEBUG ("element %s is a container element, skipping", name);
      gst_object_unref (GST_OBJECT (element));
      continue;
    }

    pipe = gst_element_factory_make ("pipeline", NULL);
    fail_if (pipe == NULL, "Could not make element from factory pipeline");
    gst_bin_add (GST_BIN (pipe), element);
    
    pad_iter=gst_element_iterate_pads(element);
    pads_done=FALSE;
    while (!pads_done) {
      switch (gst_iterator_next (pad_iter, (gpointer)&pad)) {
        case GST_ITERATOR_OK:
          if (gst_pad_get_direction(pad) == GST_PAD_SINK) {
            peer = gst_element_factory_make ("fakesrc", NULL);
            fail_if (peer == NULL, "Could not make element from factory fakesrc");
            gst_bin_add (GST_BIN (pipe), peer);
            gst_element_link (peer, element);
          } else {
            peer = gst_element_factory_make ("fakesink", NULL);
            fail_if (peer == NULL, "Could not make element from factory fakesink");
            gst_bin_add (GST_BIN (pipe), peer);
            gst_element_link (element, peer);
          }
          gst_object_unref(pad);
          break;
        case GST_ITERATOR_RESYNC:
          gst_iterator_resync (pad_iter);
          break;
        case GST_ITERATOR_ERROR:
        case GST_ITERATOR_DONE:
          pads_done = TRUE;
          break;
      }
    }
    gst_iterator_free(pad_iter);

    sc_ret = gst_element_set_state (pipe, GST_STATE_READY);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from NULL to READY");
    sc_ret = gst_element_set_state (pipe, GST_STATE_PAUSED);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from READY to PAUSED");
    sc_ret = gst_element_set_state (pipe, GST_STATE_PLAYING);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from PAUSED to PLAYING");
    sc_ret = gst_element_set_state (pipe, GST_STATE_PAUSED);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from PLAYING to PAUSED");
    sc_ret = gst_element_set_state (pipe, GST_STATE_READY);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from PAUSED to READY");
    sc_ret = gst_element_set_state (pipe, GST_STATE_NULL);
    fail_if (sc_ret == GST_STATE_CHANGE_FAILURE, "failed to change state from READY to NULL");
    gst_object_unref (GST_OBJECT (pipe));
  }
}
GST_END_TEST;