1. 15 Oct, 2009 1 commit
    • Wim Taymans's avatar
      basesrc: fix race in PLAYING->PAUSED->PLAYING · e9f2714f
      Wim Taymans authored
      When we quickly switch from PLAYING to PAUSED and back to PLAYING it's possible
      in some cases that the task refuses to start, This is because when we go to
      PAUSED, we unschedule the clock timeout, which could return UNSCHEDULED when
      we're back to PLAYING, causing the task to PAUSE again with a wrong-state.
      
      This patch checks if we are running when we return with an UNSCHEDULED return
      value and if we are, try to create a new buffer.
      
      Fixes #597550
      e9f2714f
  2. 07 Oct, 2009 1 commit
  3. 01 Sep, 2009 1 commit
  4. 24 Aug, 2009 1 commit
  5. 24 Jul, 2009 1 commit
    • Robin Stocker's avatar
      basesrc: don't handle SEEKING queries for formats that don't match the one the source operates in · 527da054
      Robin Stocker authored
      Return FALSE in basesrc's default query handler when we get a SEEKING query for
      a format that's not the one the source operates in. Previously (ie. before, in
      the git version) we would return TRUE in that case and seekable=FALSE, which
      is more correct, but causes backwards compatibility problems. (Before that
      we would change the format of the query when answering, which was completely
      broken since callers don't expect that or check for it). Since the SEEKING
      query is a fairly recent addition, not all demuxers, parsers and decoders
      implement it yet, in which case any SEEKING query by an application will
      just be passed upstream where it will then be handled by basesrc. Now, if
      e.g. totem does a SEEKING query for TIME format and we have a demuxer that
      doesn't implement the query, basesrc would answer it with seekable=FALSE in
      most cases, and totem can only take that as authoritative answer, not knowing
      that the demuxer doesn't implement the SEEKING query. To avoid this, we make
      basesrc return FALSE to SEEKING queries in unhandled formats. That way
      applications like totem can fall back on assuming seekability depending on
      whether a duration is available, or somesuch. Downstream elements doing
      such queries are likely to equate an unhandled query with a non-seekable
      response as well, so this should be an acceptable fix for the time being.
      
      See #584838, #588944, #589423 and #589424.
      527da054
  6. 20 Jul, 2009 2 commits
  7. 15 Jun, 2009 1 commit
  8. 05 Jun, 2009 1 commit
  9. 11 May, 2009 1 commit
  10. 04 Apr, 2009 2 commits
  11. 11 Mar, 2009 1 commit
  12. 10 Mar, 2009 1 commit
  13. 23 Feb, 2009 1 commit
  14. 29 Jan, 2009 1 commit
  15. 04 Nov, 2008 1 commit
    • Wim Taymans's avatar
      Copy seqnums from events to messages so that they can all be related back to eachother. · 0a711700
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (bin_handle_async_start),
      (gst_bin_handle_message_func), (gst_bin_query):
      * libs/gst/base/gstbasesink.c: (gst_base_sink_render_object),
      (gst_base_sink_event), (gst_base_sink_change_state):
      * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
      (gst_base_src_loop), (gst_base_src_change_state):
      Copy seqnums from events to messages so that they can all be related
      back to eachother.
      0a711700
  16. 20 Oct, 2008 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Update comment. · b8609a7a
      Wim Taymans authored
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
      Update comment.
      * libs/gst/base/gstbasetransform.c:
      (gst_base_transform_handle_buffer),
      (gst_base_transform_reconfigure):
      Add some debug info.
      * win32/common/libgstbase.def:
      Add new method.
      b8609a7a
  17. 19 Oct, 2008 1 commit
  18. 16 Oct, 2008 1 commit
  19. 10 Oct, 2008 1 commit
    • Wim Taymans's avatar
      docs/design/part-negotiation.txt: Small doc update. · b3403511
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-negotiation.txt:
      Small doc update.
      * docs/libs/gstreamer-libs-sections.txt:
      * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
      (gst_base_sink_pad_getcaps), (gst_base_sink_pad_setcaps),
      (gst_base_sink_init), (gst_base_sink_set_blocksize),
      (gst_base_sink_get_blocksize), (gst_base_sink_set_property),
      (gst_base_sink_get_property), (gst_base_sink_needs_preroll),
      (gst_base_sink_loop), (gst_base_sink_pad_activate),
      (gst_base_sink_negotiate_pull), (gst_base_sink_pad_activate_pull),
      (gst_base_sink_change_state):
      * libs/gst/base/gstbasesink.h:
      Add blocksize property and methods to control the amount of data
      to pull.
      Negotiate first before activating upstream in pull mode so that they can
      negotiate themselves.
      When we operate in pull mode, we only accept the caps that we
      negotiated.
      Make the sink go ASYNC to PAUSED, like all other sinks.
      API: GstBaseSink::gst_base_sink_set_blocksize()
      API: GstBaseSink::gst_base_sink_get_blocksize()
      API: GstBaseSink::blocksize
      * libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
      (gst_base_src_set_live), (gst_base_src_is_live),
      (gst_base_src_set_format), (gst_base_src_query_latency),
      (gst_base_src_set_blocksize), (gst_base_src_get_blocksize),
      (gst_base_src_set_do_timestamp), (gst_base_src_get_do_timestamp),
      (gst_base_src_set_property), (gst_base_src_get_property):
      * libs/gst/base/gstbasesrc.h:
      Add typechecking in public API functions.
      Add methods to control the blocksize in subclasses.
      API: GstBaseSrc::gst_base_src_set_blocksize()
      API: GstBaseSrc::gst_base_src_get_blocksize()
      b3403511
  20. 21 Aug, 2008 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Use the result from gst_pad_set_caps() instead of... · f0ce6a40
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: Use the result from gst_pad_set_caps() instead of assuming the element always accepted th...
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
      Use the result from gst_pad_set_caps() instead of assuming the element
      always accepted the caps computed by the default negotiate function.
      f0ce6a40
  21. 12 Aug, 2008 1 commit
  22. 24 Jul, 2008 1 commit
  23. 28 May, 2008 1 commit
    • Bjarne Rosengren's avatar
      libs/gst/base/gstbasesrc.c: Make sending an EOS event to the basesrc... · eae0c4cb
      Bjarne Rosengren authored and Wim Taymans's avatar Wim Taymans committed
      libs/gst/base/gstbasesrc.c: Make sending an EOS event to the basesrc non-blocking even if the implementation does blo...
      
      Original commit message from CVS:
      Based on patch by: Bjarne Rosengren <bjarne at axis dot com>
      * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event),
      (gst_base_src_get_range), (gst_base_src_pad_get_range),
      (gst_base_src_loop), (gst_base_src_set_flushing),
      (gst_base_src_change_state):
      Make sending an EOS event to the basesrc non-blocking even if the
      implementation does blocking waits in the create function. This is done
      by unlocking the create function when EOS is sent.
      Fixes #535218.
      eae0c4cb
  24. 19 May, 2008 2 commits
    • Tim-Philipp Müller's avatar
      libs/gst/base/gstbasesrc.c: Use right error code when typefinding fails, so we... · 8ccf1508
      Tim-Philipp Müller authored
      libs/gst/base/gstbasesrc.c: Use right error code when typefinding fails, so we can use the default (translated) error...
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_start):
      Use right error code when typefinding fails, so we can use
      the default (translated) error messages.
      8ccf1508
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: When the subclass did not set caps on outgoing... · 638ecae5
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: When the subclass did not set caps on outgoing buffers, configure the caps we negotiated ...
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range),
      (gst_base_src_start):
      When the subclass did not set caps on outgoing buffers, configure the
      caps we negotiated on the source pad.
      When the typefind helper does not find caps, error out properly instead
      of doing things with NULL caps.
      638ecae5
  25. 07 May, 2008 2 commits
    • Ole Andre Vadla Ravnaas's avatar
      libs/gst/base/gstbasesrc.c (gst_base_src_default_query): Declaration after... · e1d03c3c
      Ole Andre Vadla Ravnaas authored
      libs/gst/base/gstbasesrc.c (gst_base_src_default_query): Declaration after statement fix for compilers like MSVC.
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c (gst_base_src_default_query):
      Declaration after statement fix for compilers like MSVC.
      e1d03c3c
    • Wim Taymans's avatar
      libs/gst/base/gstadapter.c: Small code cleanup. · 640d16a2
      Wim Taymans authored
      Original commit message from CVS:
      * libs/gst/base/gstadapter.c: (gst_adapter_available_fast):
      Small code cleanup.
      * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency),
      (gst_base_sink_set_flushing):
      * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
      Fix some comments.
      640d16a2
  26. 09 Apr, 2008 1 commit
  27. 22 Mar, 2008 1 commit
    • Sebastian Dröge's avatar
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and use it... · b0346dff
      Sebastian Dröge authored
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and use it everywhere for GParamSpecs that use static...
      
      Original commit message from CVS:
      * docs/pwg/advanced-dparams.xml:
      * docs/pwg/building-props.xml:
      * docs/pwg/other-source.xml:
      * gst/glib-compat.h:
      * gst/gstbin.c: (gst_bin_class_init):
      * gst/gstclock.c: (gst_clock_class_init):
      * gst/gstindex.c: (gst_index_class_init):
      * gst/gstobject.c: (gst_object_class_init):
      * gst/gstpad.c: (gst_pad_class_init):
      * gst/gstpipeline.c: (gst_pipeline_class_init):
      * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
      * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
      * libs/gst/base/gstbasetransform.c:
      (gst_base_transform_class_init):
      * libs/gst/base/gstdataqueue.c: (gst_data_queue_class_init):
      * libs/gst/check/gstcheck.c: (_gst_check_fault_handler_restore),
      (_gst_check_fault_handler_sighandler),
      (_gst_check_fault_handler_setup), (gst_check_init):
      * libs/gst/controller/gstcontroller.c:
      (_gst_controller_class_init):
      * libs/gst/controller/gstlfocontrolsource.c:
      (gst_lfo_control_source_class_init):
      * libs/gst/net/gstnetclientclock.c:
      (gst_net_client_clock_class_init):
      * libs/gst/net/gstnettimeprovider.c:
      (gst_net_time_provider_class_init):
      * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init):
      * plugins/elements/gstfakesink.c: (gst_fake_sink_class_init):
      * plugins/elements/gstfakesrc.c: (gst_fake_src_class_init):
      * plugins/elements/gstfdsink.c: (gst_fd_sink_class_init):
      * plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
      * plugins/elements/gstfilesink.c: (gst_file_sink_class_init):
      * plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
      * plugins/elements/gstidentity.c: (gst_identity_class_init):
      * plugins/elements/gstmultiqueue.c: (gst_multi_queue_class_init):
      * plugins/elements/gstqueue.c: (gst_queue_class_init):
      * plugins/elements/gsttee.c: (gst_tee_class_init):
      * plugins/elements/gsttypefindelement.c:
      (gst_type_find_element_class_init):
      * plugins/indexers/gstfileindex.c: (gst_file_index_class_init):
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and
      use it everywhere for GParamSpecs that use static strings (i.e. all).
      This gives us less memory usage, fewer allocations and thus less
      memory defragmentation. Fixes bug #523806.
      b0346dff
  28. 05 Feb, 2008 1 commit
    • Sebastian Dröge's avatar
      Revert previous changes to the behaviour of GstPadTemplates, etc and the... · 2faa7332
      Sebastian Dröge authored
      Revert previous changes to the behaviour of GstPadTemplates, etc and the possiblity to call them in class_init as it ...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_get_type), (gst_bin_base_init),
      (gst_bin_class_init):
      * gst/gstelement.c: (gst_element_base_class_init),
      (gst_element_class_add_pad_template):
      * gst/gstpadtemplate.c: (gst_pad_template_init):
      * gst/gstpipeline.c: (gst_pipeline_get_type),
      (gst_pipeline_base_init), (gst_pipeline_class_init):
      * libs/gst/base/gstbasesink.c:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_get_type),
      (gst_base_src_base_init), (gst_base_src_class_init):
      * plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init),
      (gst_capsfilter_class_init):
      * plugins/elements/gstfakesink.c: (gst_fake_sink_base_init),
      (gst_fake_sink_class_init):
      * plugins/elements/gstfakesrc.c: (gst_fake_src_base_init),
      (gst_fake_src_class_init):
      * plugins/elements/gstfdsink.c: (gst_fd_sink_base_init),
      (gst_fd_sink_class_init):
      * plugins/elements/gstfdsrc.c: (gst_fd_src_base_init),
      (gst_fd_src_class_init):
      * plugins/elements/gstfilesink.c: (gst_file_sink_base_init),
      (gst_file_sink_class_init):
      * plugins/elements/gstfilesrc.c: (gst_file_src_base_init),
      (gst_file_src_class_init):
      * plugins/elements/gstidentity.c: (gst_identity_base_init),
      (gst_identity_class_init):
      * plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init),
      (gst_multi_queue_class_init):
      * plugins/elements/gstqueue.c: (gst_queue_base_init),
      (gst_queue_class_init):
      * plugins/elements/gsttee.c: (gst_tee_base_init),
      (gst_tee_class_init):
      * plugins/elements/gsttypefindelement.c:
      (gst_type_find_element_base_init),
      (gst_type_find_element_class_init):
      * tests/check/gst/gstelement.c: (gst_element_suite):
      Revert previous changes to the behaviour of GstPadTemplates, etc
      and the possiblity to call them in class_init as it breaks too
      many elements. Reopens bug #491501.
      Should be applied again for 0.11, thus added a few FIXME 0.11 at
      several places.
      2faa7332
  29. 03 Feb, 2008 1 commit
    • Sebastian Dröge's avatar
      Don't use base_init where not absolutely necessary. For example it's not... · 9db28f85
      Sebastian Dröge authored
      Don't use base_init where not absolutely necessary. For example it's not necessary anymore for adding pad templates o...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init):
      * gst/gstpipeline.c: (gst_pipeline_get_type),
      (gst_pipeline_class_init):
      * libs/gst/base/gstbasesink.c: (gst_base_sink_get_type),
      (gst_base_sink_class_init):
      * libs/gst/base/gstbasesrc.c: (gst_base_src_get_type),
      (gst_base_src_class_init):
      * libs/gst/base/gstbasetransform.c: (gst_base_transform_get_type),
      (gst_base_transform_class_init):
      * libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
      (gst_collect_pads_class_init):
      * libs/gst/base/gstdataqueue.c: (gst_data_queue_get_type):
      * libs/gst/net/gstnettimeprovider.c:
      (gst_net_time_provider_base_init),
      (gst_net_time_provider_class_init):
      * plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init),
      (gst_capsfilter_class_init):
      * plugins/elements/gstfakesink.c: (gst_fake_sink_base_init),
      (gst_fake_sink_class_init):
      * plugins/elements/gstfakesrc.c: (gst_fake_src_base_init),
      (gst_fake_src_class_init):
      * plugins/elements/gstfdsink.c: (gst_fd_sink_base_init),
      (gst_fd_sink_class_init):
      * plugins/elements/gstfdsrc.c: (gst_fd_src_base_init),
      (gst_fd_src_class_init):
      * plugins/elements/gstfilesink.c: (gst_file_sink_base_init),
      (gst_file_sink_class_init):
      * plugins/elements/gstfilesrc.c: (gst_file_src_base_init),
      (gst_file_src_class_init):
      * plugins/elements/gstidentity.c: (gst_identity_base_init),
      (gst_identity_class_init):
      * plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init),
      (gst_multi_queue_class_init):
      * plugins/elements/gstqueue.c: (gst_queue_base_init),
      (gst_queue_class_init):
      * plugins/elements/gsttee.c: (gst_tee_base_init),
      (gst_tee_class_init):
      * plugins/elements/gsttypefindelement.c:
      (gst_type_find_element_base_init),
      (gst_type_find_element_class_init):
      Don't use base_init where not absolutely necessary. For example it's
      not necessary anymore for adding pad templates or setting element
      details.
      Leave empty base_init functions in several places as GST_BOILERPLATE
      still defines and uses them.
      9db28f85
  30. 09 Jan, 2008 1 commit
  31. 07 Jan, 2008 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Don't update the last_stop position in do_seek,... · f473d727
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: Don't update the last_stop position in do_seek, that's the position we did a seek to.
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_default_do_seek),
      (gst_base_src_loop):
      Don't update the last_stop position in do_seek, that's the position we
      did a seek to.
      Read backwards when we have a negative rate.
      * tests/check/elements/filesrc.c: (event_func), (wait_eos),
      (setup_filesrc), (cleanup_filesrc), (GST_START_TEST),
      (filesrc_suite):
      Add check for reverse reading.
      f473d727
  32. 19 Dec, 2007 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Allow sending EOS to the source to make it send... · b0076d39
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: Allow sending EOS to the source to make it send out an EOS event from the streaming thread.
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event),
      (gst_base_src_get_range), (gst_base_src_pad_get_range),
      (gst_base_src_loop), (gst_base_src_set_flushing),
      (gst_base_src_change_state):
      Allow sending EOS to the source to make it send out an EOS event from
      the streaming thread.
      Update docs and deprecate the old NULL/READY shutdown method.
      * tests/check/libs/basesrc.c: (GST_START_TEST),
      (gst_basesrc_suite):
      Add unit test for controlled shutdown.
      b0076d39
  33. 17 Dec, 2007 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Make _wait_playing() not check any variables so... · 8a695165
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: Make _wait_playing() not check any variables so that we can call this function from subcl...
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
      (gst_base_src_perform_seek), (gst_base_src_get_range),
      (gst_base_src_set_playing), (gst_base_src_change_state):
      Make _wait_playing() not check any variables so that we can call this
      function from subclasses. Move the checks elsewhere similar to
      _wait_preroll() in basesink.
      Add some debugging.
      Only signal the LIVE cond when we are going back to PLAYING.
      8a695165
  34. 13 Dec, 2007 1 commit
    • Stefan Kost's avatar
      libs/gst/base/: Replace gst_pad_get_parent by GST_OBJECT_PARENT inside... · 55bfc68e
      Stefan Kost authored
      libs/gst/base/: Replace gst_pad_get_parent by GST_OBJECT_PARENT inside streaming thread. Correct log message in gstba...
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesink.c:
      * libs/gst/base/gstbasesrc.c:
      * libs/gst/base/gstbasetransform.c:
      Replace gst_pad_get_parent by GST_OBJECT_PARENT inside streaming
      thread. Correct log message in gstbasesrc.c.
      55bfc68e
  35. 06 Nov, 2007 1 commit
    • Wim Taymans's avatar
      libs/gst/base/gstbasesrc.c: Unify flushing code, remove some old unlock code... · 8b5019bb
      Wim Taymans authored
      libs/gst/base/gstbasesrc.c: Unify flushing code, remove some old unlock code that is no longer used.
      
      Original commit message from CVS:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_default_query),
      (gst_base_src_perform_seek), (gst_base_src_default_event),
      (gst_base_src_set_flushing), (gst_base_src_activate_push),
      (gst_base_src_activate_pull):
      Unify flushing code, remove some old unlock code that is no longer used.
      Take the streaming lock when seeking to avoid races. Fixes #492729.
      Added some more comments.
      8b5019bb
  36. 31 Oct, 2007 1 commit