~ubuntu-branches/ubuntu/trusty/gstreamer1.0/trusty

« back to all changes in this revision

Viewing changes to libs/gst/base/gstbasesink.c

  • Committer: Package Import Robot
  • Author(s): Sebastian Dröge
  • Date: 2012-09-14 09:04:41 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20120914090441-1ul912ezvm3xfael
Tags: 0.11.94-1
* New upstream release:
  + debian/libgstreamer.symbols:
    - Update symbols file.
  + debian/control.in:
    - Build-depend on gtk-doc >= 1.12.
  + debian/patches/0001-netclientclock-simplify-by-using-g_socket_condition_.patch:
    - Dropped, merged upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
377
377
    GstObject * parent, GstPadMode mode, gboolean active);
378
378
static gboolean gst_base_sink_default_event (GstBaseSink * basesink,
379
379
    GstEvent * event);
380
 
static GstFlowReturn gst_base_sink_default_wait_eos (GstBaseSink * basesink,
 
380
static GstFlowReturn gst_base_sink_default_wait_event (GstBaseSink * basesink,
381
381
    GstEvent * event);
382
382
static gboolean gst_base_sink_event (GstPad * pad, GstObject * parent,
383
383
    GstEvent * event);
523
523
  klass->get_times = GST_DEBUG_FUNCPTR (gst_base_sink_default_get_times);
524
524
  klass->query = GST_DEBUG_FUNCPTR (gst_base_sink_default_query);
525
525
  klass->event = GST_DEBUG_FUNCPTR (gst_base_sink_default_event);
526
 
  klass->wait_eos = GST_DEBUG_FUNCPTR (gst_base_sink_default_wait_eos);
 
526
  klass->wait_event = GST_DEBUG_FUNCPTR (gst_base_sink_default_wait_event);
527
527
 
528
528
  /* Registering debug symbols for function pointers */
529
529
  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_fixate);
1758
1758
        GstClockTime timestamp, duration;
1759
1759
        gst_event_parse_gap (event, &timestamp, &duration);
1760
1760
 
 
1761
        GST_DEBUG_OBJECT (basesink, "Got Gap time %" GST_TIME_FORMAT
 
1762
            " duration %" GST_TIME_FORMAT,
 
1763
            GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration));
 
1764
 
1761
1765
        if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
1762
1766
          start = timestamp;
1763
1767
          if (GST_CLOCK_TIME_IS_VALID (duration))
2792
2796
}
2793
2797
 
2794
2798
static GstFlowReturn
2795
 
gst_base_sink_default_wait_eos (GstBaseSink * basesink, GstEvent * event)
 
2799
gst_base_sink_default_wait_event (GstBaseSink * basesink, GstEvent * event)
2796
2800
{
2797
2801
  GstFlowReturn ret;
2798
2802
  gboolean late, step_end;
2803
2807
  return ret;
2804
2808
}
2805
2809
 
 
2810
static GstFlowReturn
 
2811
gst_base_sink_wait_event (GstBaseSink * basesink, GstEvent * event)
 
2812
{
 
2813
  GstFlowReturn ret;
 
2814
  GstBaseSinkClass *bclass;
 
2815
 
 
2816
  bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
2817
 
 
2818
  if (G_LIKELY (bclass->wait_event))
 
2819
    ret = bclass->wait_event (basesink, event);
 
2820
  else
 
2821
    ret = GST_FLOW_NOT_SUPPORTED;
 
2822
 
 
2823
  return ret;
 
2824
}
 
2825
 
2806
2826
static gboolean
2807
2827
gst_base_sink_default_event (GstBaseSink * basesink, GstEvent * event)
2808
2828
{
2838
2858
      basesink->priv->received_eos = TRUE;
2839
2859
 
2840
2860
      /* wait for EOS */
2841
 
      if (G_LIKELY (bclass->wait_eos)) {
2842
 
        GstFlowReturn ret;
2843
 
 
2844
 
        ret = bclass->wait_eos (basesink, event);
2845
 
        if (G_UNLIKELY (ret != GST_FLOW_OK)) {
2846
 
          result = FALSE;
2847
 
          goto done;
2848
 
        }
 
2861
      if (G_UNLIKELY (gst_base_sink_wait_event (basesink,
 
2862
                  event) != GST_FLOW_OK)) {
 
2863
        result = FALSE;
 
2864
        goto done;
2849
2865
      }
2850
2866
 
2851
2867
      /* the EOS event is completely handled so we mark
2911
2927
      basesink->have_newsegment = TRUE;
2912
2928
      GST_OBJECT_UNLOCK (basesink);
2913
2929
      break;
 
2930
    case GST_EVENT_GAP:
 
2931
    {
 
2932
      if (G_UNLIKELY (gst_base_sink_wait_event (basesink,
 
2933
                  event) != GST_FLOW_OK))
 
2934
        result = FALSE;
 
2935
      break;
 
2936
    }
2914
2937
    case GST_EVENT_TAG:
2915
2938
    {
2916
2939
      GstTagList *taglist;