Merge branch 'master' into 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 4 Nov 2011 18:11:19 +0000 (19:11 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 4 Nov 2011 18:11:19 +0000 (19:11 +0100)
Conflicts:
gst/gstbin.c

1  2 
configure.ac
gst/gstbin.c
gst/gstclock.h
libs/gst/base/gstcollectpads2.h
plugins/elements/gstqueue.c
plugins/elements/gstqueue2.c

diff --cc configure.ac
Simple merge
diff --cc gst/gstbin.c
@@@ -1989,8 -1995,9 +1989,7 @@@ gst_bin_sort_iterator_next (GstBinSortI
    GstBin *bin = bit->bin;
  
    /* empty queue, we have to find a next best element */
-   if (g_queue_is_empty (bit->queue)) {
+   if (g_queue_is_empty (&bit->queue)) {
 -    GstElement *best;
 -
      bit->best = NULL;
      bit->best_deg = G_MAXINT;
      g_list_foreach (bin->children, (GFunc) find_element, bit);
      }
    } else {
      /* everything added to the queue got reffed */
-     best = g_queue_pop_head (bit->queue);
 -    *result = g_queue_pop_head (&bit->queue);
++    best = g_queue_pop_head (&bit->queue);
 +    g_value_set_object (result, best);
 +    gst_object_unref (best);
    }
  
 -  GST_DEBUG_OBJECT (bin, "queue head gives %s", GST_ELEMENT_NAME (*result));
 +  GST_DEBUG_OBJECT (bin, "queue head gives %s", GST_ELEMENT_NAME (best));
    /* update degrees of linked elements */
 -  update_degree (GST_ELEMENT_CAST (*result), bit);
 +  update_degree (best, bit);
  
    return GST_ITERATOR_OK;
  }
@@@ -2052,10 -2058,10 +2051,9 @@@ gst_bin_sort_iterator_free (GstBinSortI
    GstBin *bin = bit->bin;
  
    GST_DEBUG_OBJECT (bin, "free");
-   clear_queue (bit->queue);
-   g_queue_free (bit->queue);
+   clear_queue (&bit->queue);
    g_hash_table_destroy (bit->hash);
    gst_object_unref (bin);
 -  g_free (bit);
  }
  
  /* should be called with the bin LOCK held */
diff --cc gst/gstclock.h
Simple merge
Simple merge
@@@ -661,10 -698,10 +661,10 @@@ gst_queue_locked_enqueue_buffer (GstQue
  
    /* add buffer to the statistics */
    queue->cur_level.buffers++;
 -  queue->cur_level.bytes += GST_BUFFER_SIZE (buffer);
 +  queue->cur_level.bytes += gst_buffer_get_size (buffer);
    apply_buffer (queue, buffer, &queue->sink_segment, TRUE, TRUE);
  
-   g_queue_push_tail (queue->queue, item);
+   g_queue_push_tail (&queue->queue, item);
    GST_QUEUE_SIGNAL_ADD (queue);
  }
  
@@@ -682,10 -719,10 +682,10 @@@ gst_queue_locked_enqueue_event (GstQueu
        GST_CAT_LOG_OBJECT (queue_dataflow, queue, "got EOS from upstream");
        queue->eos = TRUE;
        break;
 -    case GST_EVENT_NEWSEGMENT:
 +    case GST_EVENT_SEGMENT:
        apply_segment (queue, event, &queue->sink_segment, TRUE);
        /* if the queue is empty, apply sink segment on the source */
-       if (queue->queue->length == 0) {
+       if (queue->queue.length == 0) {
          GST_CAT_LOG_OBJECT (queue_dataflow, queue, "Apply segment on srcpad");
          apply_segment (queue, event, &queue->src_segment, FALSE);
          queue->newseg_applied_to_src = TRUE;
Simple merge