1. 08 Feb, 2012 1 commit
  2. 10 Oct, 2011 1 commit
  3. 28 Jul, 2011 1 commit
  4. 10 Jun, 2011 1 commit
    • Wim Taymans's avatar
      event: add reset_time boolean to flush_stop event · bbfec45e
      Wim Taymans authored
      Add a boolean to the flush_stop event to make it possible to implement flushes
      that don't reset_time.
      Make basesink post async_done with the reset_time property from the flush stop
      event.
      Fix some unit tests
      bbfec45e
  5. 30 May, 2011 1 commit
  6. 27 May, 2011 1 commit
    • Wim Taymans's avatar
      pad: rework pad blocking, first part · 415da89f
      Wim Taymans authored
      Make pad block call the callback as soon as the pad is not in use. This makes it
      possible to make sure that when the callback is called, no activity is happening
      on the pad and that no activity will ever happen until the pad is unblocked
      again. This makes pad blocking work when there is no dataflow or after EOS and
      greatly helps dynamic pipelines.
      Move the probe handling right where we wait on the pad block. The two are
      related but not the same and the probe can eventually influence the pad
      blocking as we'll se later.
      Fix up some broken unit tests or tests that fail with the new behaviour.
      415da89f
  7. 16 May, 2011 1 commit
    • Wim Taymans's avatar
      Rework GstSegment handling · bdbc0693
      Wim Taymans authored
      Improve GstSegment, rename some fields. The idea is to have the GstSegment
      structure represent the timing structure of the buffers as they are generated by
      the source or demuxer element.
      gst_segment_set_seek() -> gst_segment_do_seek()
      Rename the NEWSEGMENT event to SEGMENT.
      Make parsing of the SEGMENT event into a GstSegment structure.
      Pass a GstSegment structure when making a new SEGMENT event. This allows us to
      pass the timing info directly to the next element. No accumulation is needed in
      the receiving element, all the info is inside the element.
      Remove gst_segment_set_newsegment(): This function as used to accumulate
      segments received from upstream, which is now not needed anymore because the
      segment event contains the complete timing information.
      bdbc0693
  8. 09 May, 2011 1 commit
  9. 19 Apr, 2011 1 commit
  10. 02 Dec, 2010 1 commit
    • Wim Taymans's avatar
      basesink: rework position reporting code · a813aad0
      Wim Taymans authored
      Unify the different position reporting code paths to make it more
      understandable.
      Use start_time to get more accurate position reporting in paused.
      Fix unit tests for more accurate reporting.
      a813aad0
  11. 10 Mar, 2010 1 commit
  12. 22 Oct, 2009 2 commits
  13. 31 May, 2009 1 commit
    • Tim-Philipp Müller's avatar
      fakesink: hack around crasher bug in g_object_notify() for out-of-band events · 7e4b164c
      Tim-Philipp Müller authored
      GObject may crash if two threads do concurrent g_object_notify() on the same
      object. This may happen if fakesink receives an out-of-band event such as
      FLUSH_START while processing a buffer or serialised event in the streaming
      thread. Since this may happen with the default settings during a common
      operation like a seek, and there seems to be little chance of a timely fix
      in GObject (see #166020), we should hack around this issue by protecting all
      of fakesink's direct g_object_notify() calls with a lock.
      
      Also add unit test for the above.
      
      Fixes #554460.
      7e4b164c
  14. 03 Feb, 2009 1 commit
    • Wim Taymans's avatar
      GstBaseSink: avoid calling preroll multiple times · fe423312
      Wim Taymans authored
      Fix a regression introduced by fix for #567725 in commit
      1c7ab4ed. We should only call the preroll
      function once namely when we did not yet commit the state change.
      
      Add a unit test to check that we call the preroll function when interrupting the
      clock_wait (see #567725).
      
      Add a unit test to check that we only call the preroll function once.
      fe423312
  15. 19 Aug, 2008 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesink.c: Improve position reporting in the flushing state. · e93b94af
      Wim Taymans authored
      Original commit message from CVS:
      * libs/gst/base/gstbasesink.c: (gst_base_sink_render_object),
      (gst_base_sink_event), (gst_base_sink_chain_unlocked),
      (gst_base_sink_negotiate_pull), (gst_base_sink_pad_activate_pull),
      (gst_base_sink_get_position), (gst_base_sink_change_state):
      Improve position reporting in the flushing state.
      Also report the position when we are not yet prerolled but we
      have a newsegment event. Fixes #543444.
      Improve the pull-based negotiation code.
      * tests/check/elements/fakesink.c: (GST_START_TEST),
      (fakesink_suite):
      Add testcase for position reporting while flushing in PAUSED and
      PLAYING.
      * tests/check/generic/sinks.c: (GST_START_TEST):
      Update unit-test, we can now query the position as soon as we receive a
      NEWSEGMENT event.
      e93b94af
  16. 21 May, 2008 1 commit
    • Wim Taymans's avatar
      Don't use gst_element_get_pad(). · cc833490
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstpad.c: (gst_pad_load_and_link):
      * gst/gstutils.c: (gst_element_link_pads),
      (gst_element_unlink_pads):
      * libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
      (gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
      (gst_check_teardown_sink_pad),
      (gst_check_element_push_buffer_list):
      * tests/check/elements/fakesink.c: (GST_START_TEST):
      * tests/check/elements/filesink.c:
      * tests/check/elements/filesrc.c: (GST_START_TEST):
      * tests/check/elements/multiqueue.c: (setup_multiqueue),
      (mq_sinkpad_to_srcpad):
      * tests/check/elements/tee.c: (GST_START_TEST):
      * tests/check/generic/sinks.c: (GST_START_TEST):
      * tests/check/gst/gstbin.c: (GST_START_TEST):
      * tests/check/gst/gstevent.c: (GST_START_TEST):
      * tests/check/gst/gstghostpad.c: (GST_START_TEST):
      * tests/check/gst/gstpipeline.c: (GST_START_TEST):
      * tests/check/gst/gstquery.c: (GST_START_TEST):
      * tests/check/gst/gstutils.c: (GST_START_TEST):
      * tests/check/libs/basesrc.c: (GST_START_TEST):
      * tests/check/pipelines/parse-launch.c: (run_delayed_test),
      (gst_parse_test_element_change_state):
      Don't use gst_element_get_pad().
      cc833490
  17. 29 Feb, 2008 1 commit
    • Sebastian Dröge's avatar
      And correct even more valid sparse warnings. · 58cc2ede
      Sebastian Dröge authored
      Original commit message from CVS:
      * gst/gstelementfactory.h:
      * tests/check/elements/fakesink.c:
      * tests/check/elements/fakesrc.c: (setup_fakesrc):
      * tests/check/elements/fdsrc.c: (setup_fdsrc):
      * tests/check/elements/filesink.c: (setup_filesink):
      * tests/check/elements/filesrc.c: (setup_filesrc):
      * tests/check/elements/identity.c: (setup_identity):
      * tests/check/elements/tee.c:
      * tests/check/generic/sinks.c:
      * tests/check/generic/states.c: (setup), (teardown):
      * tests/check/gst/gst.c:
      * tests/check/gst/gstabi.c:
      * tests/check/gst/gstbin.c:
      * tests/check/gst/gstbus.c: (pull_messages):
      * tests/check/gst/gstcaps.c:
      * tests/check/gst/gstelement.c:
      * tests/check/gst/gstevent.c:
      * tests/check/gst/gstghostpad.c:
      * tests/check/gst/gstiterator.c:
      * tests/check/gst/gstmessage.c:
      * tests/check/gst/gstminiobject.c: (my_foo_init):
      * tests/check/gst/gstobject.c: (thread_name_object),
      (gst_object_suite):
      * tests/check/gst/gstpad.c:
      * tests/check/gst/gstplugin.c:
      * tests/check/gst/gstpoll.c:
      * tests/check/gst/gstquery.c:
      * tests/check/gst/gstsegment.c:
      * tests/check/gst/gststructure.c:
      * tests/check/gst/gstsystemclock.c:
      * tests/check/gst/gsttask.c:
      * tests/check/gst/gstutils.c:
      * tests/check/gst/gstvalue.c:
      * tests/check/gst/struct_hppa.h:
      * tests/check/gst/struct_i386.h:
      * tests/check/gst/struct_ppc32.h:
      * tests/check/gst/struct_ppc64.h:
      * tests/check/gst/struct_x86_64.h:
      * tests/check/libs/adapter.c: (create_and_fill_adapter):
      * tests/check/libs/basesrc.c:
      * tests/check/libs/controller.c: (GST_START_TEST):
      * tests/check/libs/gdp.c:
      * tests/check/libs/gstnetclientclock.c:
      * tests/check/libs/gstnettimeprovider.c:
      * tests/check/libs/libsabi.c:
      * tests/check/libs/struct_hppa.h:
      * tests/check/libs/struct_i386.h:
      * tests/check/libs/struct_ppc32.h:
      * tests/check/libs/struct_ppc64.h:
      * tests/check/libs/struct_x86_64.h:
      * tests/check/pipelines/cleanup.c:
      * tests/check/pipelines/simple-launch-lines.c:
      * tests/check/pipelines/stress.c:
      And correct even more valid sparse warnings.
      * win32/common/libgstreamer.def:
      Add gst_poll_fd_init to the list of symbols.
      58cc2ede
  18. 05 Apr, 2007 2 commits
    • Wim Taymans's avatar
      libs/gst/base/gstbasesink.c: Fix leak caused when refusing newsegment after EOS. · 12c93346
      Wim Taymans authored
      Original commit message from CVS:
      * libs/gst/base/gstbasesink.c:
      (gst_base_sink_queue_object_unlocked), (gst_base_sink_event):
      Fix leak caused when refusing newsegment after EOS.
      * plugins/elements/gstfakesink.c: (gst_fake_sink_class_init),
      (gst_fake_sink_init), (gst_fake_sink_set_property),
      (gst_fake_sink_get_property), (gst_fake_sink_preroll),
      (gst_fake_sink_render), (gst_fake_sink_change_state):
      * plugins/elements/gstfakesink.h:
      Add num-buffers property to make the element generate EOS after a
      configurable amount of buffers.
      API: fakesink::num-buffers property.
      * tests/check/elements/fakesink.c: (GST_START_TEST),
      (fakesink_suite):
      Fix GstBus leak in test.
      Test for fakesink num-buffers.
      12c93346
    • Wim Taymans's avatar
      libs/gst/base/gstbasesink.c: Don't accept anything after an EOS, return UNEXPECTED instead. · cc828613
      Wim Taymans authored
      Original commit message from CVS:
      * libs/gst/base/gstbasesink.c:
      (gst_base_sink_queue_object_unlocked), (gst_base_sink_event),
      (gst_base_sink_change_state):
      Don't accept anything after an EOS, return UNEXPECTED instead.
      * tests/check/elements/fakesink.c: (GST_START_TEST),
      (fakesink_suite):
      Unit test for new EOS behaviour.
      cc828613
  19. 01 Jul, 2006 1 commit
    • Thomas Vander Stichele's avatar
      tests/check/: use the new macro · 64086e29
      Thomas Vander Stichele authored
      Original commit message from CVS:
      * tests/check/elements/fakesink.c:
      * tests/check/elements/fakesrc.c:
      * tests/check/elements/fdsrc.c:
      * tests/check/elements/identity.c:
      * tests/check/generic/sinks.c: (gst_sinks_suite):
      * tests/check/generic/states.c:
      * tests/check/gst/gst.c:
      * tests/check/gst/gstabi.c:
      * tests/check/gst/gstbin.c:
      * tests/check/gst/gstbuffer.c: (gst_buffer_suite):
      * tests/check/gst/gstbus.c: (gst_bus_suite):
      * tests/check/gst/gstcaps.c: (GST_START_TEST):
      * tests/check/gst/gstelement.c:
      * tests/check/gst/gstevent.c: (gst_event_suite):
      * tests/check/gst/gstghostpad.c:
      * tests/check/gst/gstiterator.c: (gst_iterator_suite):
      * tests/check/gst/gstmessage.c: (gst_message_suite):
      * tests/check/gst/gstminiobject.c:
      * tests/check/gst/gstobject.c:
      * tests/check/gst/gstpad.c:
      * tests/check/gst/gstpipeline.c:
      * tests/check/gst/gstplugin.c:
      * tests/check/gst/gstquery.c: (gst_query_suite):
      * tests/check/gst/gstsegment.c: (gst_segment_suite):
      * tests/check/gst/gststructure.c:
      * tests/check/gst/gstsystemclock.c:
      * tests/check/gst/gsttag.c:
      * tests/check/gst/gsttask.c: (gst_task_suite):
      * tests/check/gst/gstutils.c:
      * tests/check/gst/gstvalue.c:
      * tests/check/libs/adapter.c:
      * tests/check/libs/basesrc.c:
      * tests/check/libs/collectpads.c:
      * tests/check/libs/controller.c:
      * tests/check/libs/gdp.c: (gst_dp_suite):
      * tests/check/libs/gstnetclientclock.c:
      * tests/check/libs/gstnettimeprovider.c:
      * tests/check/libs/libsabi.c: (libsabi_suite):
      * tests/check/libs/typefindhelper.c:
      * tests/check/pipelines/cleanup.c:
      * tests/check/pipelines/parse-launch.c:
      * tests/check/pipelines/simple-launch-lines.c:
      * tests/check/pipelines/stress.c: (stress_suite):
      use the new macro
      64086e29
  20. 02 Feb, 2006 1 commit
    • Wim Taymans's avatar
      docs/design/part-element-sink.txt: Updated document. · be1f48de
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-element-sink.txt:
      Updated document.
      
      * libs/gst/base/gstbasesink.c: (gst_base_sink_init),
      (gst_base_sink_finalize), (gst_base_sink_preroll_queue_flush),
      (gst_base_sink_configure_segment), (gst_base_sink_commit_state),
      (gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
      (gst_base_sink_do_sync), (gst_base_sink_render_object),
      (gst_base_sink_preroll_object),
      (gst_base_sink_queue_object_unlocked),
      (gst_base_sink_queue_object), (gst_base_sink_event),
      (gst_base_sink_chain_unlocked), (gst_base_sink_chain),
      (gst_base_sink_loop), (gst_base_sink_activate_pull),
      (gst_base_sink_get_position), (gst_base_sink_change_state):
      * libs/gst/base/gstbasesink.h:
      Totally refactored matching the design doc.
      Use two segments, one to clip incomming buffers and another to
      perform sync.
      Handle queueing correctly, bypass the queue when playing.
      Make EOS cancelable.
      Handle errors correctly when operating in pull based mode.
      
      * tests/check/elements/fakesink.c: (GST_START_TEST),
      (fakesink_suite):
      Added new check for sinks.
      be1f48de
  21. 28 Jan, 2006 1 commit
    • Jan Schmidt's avatar
      gst/gstutils.c: Don't leak pad references. · 1559c57a
      Jan Schmidt authored
      Original commit message from CVS:
      * gst/gstutils.c: (gst_element_unlink_pads):
      Don't leak pad references.
      
      * tests/check/elements/fakesink.c: (GST_START_TEST):
      * tests/check/generic/sinks.c: (GST_START_TEST):
      * tests/check/generic/states.c: (GST_START_TEST):
      * tests/check/gst/gstbin.c: (GST_START_TEST):
      * tests/check/gst/gstcaps.c: (GST_START_TEST):
      * tests/check/gst/gstelement.c: (GST_START_TEST):
      * tests/check/gst/gstghostpad.c: (GST_START_TEST):
      * tests/check/gst/gstiterator.c: (GST_START_TEST):
      * tests/check/gst/gstvalue.c: (GST_START_TEST):
      Fix a bunch of leaks. Make generic/sinks.c
      use a bit less cpu by slowing the buffer rate
      between fakesrc and fakesink.
      1559c57a
  22. 18 Jan, 2006 1 commit
    • Wim Taymans's avatar
      tests/check/: Added fakesink test that checks prerolling and clipping behaviour. · 33e1f685
      Wim Taymans authored
      Original commit message from CVS:
      * tests/check/Makefile.am:
      * tests/check/elements/fakesink.c: (chain_async_buffer),
      (chain_async), (chain_async_return), (GST_START_TEST),
      (fakesink_suite), (main):
      Added fakesink test that checks prerolling and clipping
      behaviour.
      
      * tests/check/gst/gstutils.c: (GST_START_TEST):
      Make check run faster so that buildbots don't timeout.
      33e1f685