1. 27 Sep, 2019 1 commit
    • Axel Mårtensson's avatar
      alsasink: pause/resume · 5d3c9485
      Axel Mårtensson authored
      alsasink can now detect a resume, stop and pause. The sink is now
      properly paused using snd_pcm_pause(), and without losing any data
      5d3c9485
  2. 15 Jul, 2016 1 commit
  3. 24 Jan, 2013 1 commit
    • yanghuolin's avatar
      alsasink: don't use 100% CPU · 67a7b5a9
      yanghuolin authored
      The root cause is that alsa-lib is not thread safe for the same handle.
      There are two threads in the gstreamer accessing alsa-lib not serilized.
      The race condition happens when one thread holds the old framebuffer app_ptr
      position in the kernel, another thread advances the framebuffer app_ptr.
      when the former thread is scheduled to run again, it overwrites the app_ptr
      to old value by copying from kernel.Thus,the app_ptr in the upper
      alsa-lib(pcm_rate) become one period size more advanced than the lower
      alsa-lib(pcm_hw & kernel).
      
      gstreamer uses noblock and poll method to communicate with the alsa-lib.
      The app_ptr unsync situation as described above makes the poll return immediately because
      it concludes there is enough space for the ring-buffer via the low-level alsa-lib.
      The write function returns immediately because it concludes there is not enough
      space for the ring-buffer from the upper-level alsa-lib. Then the loop of poll
      and write runs again and again until another period size is available for
      ring-buffer.This leads to the cpu 100 problem.
      
      delay_lock  is used to avoid the race condition.
      
      Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=690937
      67a7b5a9
  4. 12 Dec, 2012 1 commit
  5. 03 Nov, 2012 1 commit
  6. 10 Sep, 2012 1 commit
  7. 18 Aug, 2011 1 commit
    • Wim Taymans's avatar
      audio: rework audio caps. · dae84881
      Wim Taymans authored
      Rework the audio caps similar to the video caps. Remove
      width/depth/endianness/signed fields and replace with a simple string
      format and media type audio/x-raw.
      Create a GstAudioInfo and some helper methods to parse caps.
      Remove duplicate code from the ringbuffer and replace with audio info.
      Use AudioInfo in the base audio filter class.
      Port elements to new API.
      dae84881
  8. 29 Feb, 2008 1 commit
    • Julien Moutte Moutte's avatar
      ext/alsa/gstalsa.c: Probe for IEC958 pcm to detect if we can do SPDIF output. · f0154849
      Julien Moutte Moutte authored
      Original commit message from CVS:
      2008-02-29  Julien Moutte  <julien@fluendo.com>
      
      * ext/alsa/gstalsa.c: (gst_alsa_open_iec958_pcm),
      (gst_alsa_probe_supported_formats): Probe for IEC958 pcm to
      detect
      if we can do SPDIF output.
      * ext/alsa/gstalsa.h:
      * ext/alsa/gstalsasink.c: (set_hwparams), (alsasink_parse_spec),
      (gst_alsasink_prepare), (gst_alsasink_close),
      (gst_alsasink_write):
      * ext/alsa/gstalsasink.h: Initial support for SPDIF.
      * gst-libs/gst/audio/gstringbuffer.c:
      (gst_ring_buffer_parse_caps):
      * gst-libs/gst/audio/gstringbuffer.h: Add non linear buffer
      types
      to support AC3, EC3 and IEC958 buffers.
      f0154849
  9. 01 Mar, 2007 1 commit
    • Wim Taymans's avatar
      ext/alsa/gstalsasink.*: Remove unused dispose function. · 1d0e1586
      Wim Taymans authored
      Original commit message from CVS:
      * ext/alsa/gstalsasink.c: (gst_alsasink_class_init),
      (gst_alsasink_write), (gst_alsasink_reset):
      * ext/alsa/gstalsasink.h:
      Remove unused dispose function.
      Rename lock to not interfere with alsasrc lock.
      * ext/alsa/gstalsasrc.c: (gst_alsasrc_finalize),
      (gst_alsasrc_class_init), (gst_alsasrc_init), (set_swparams),
      (gst_alsasrc_read), (gst_alsasrc_reset):
      * ext/alsa/gstalsasrc.h:
      Implement finalize function.
      Use lock to protect alsa access.
      Implement _reset.
      Fine tune sw params.
      1d0e1586
  10. 15 May, 2006 1 commit
    • Tim-Philipp Müller's avatar
      ext/alsa/gstalsasink.*: Don't leak allocated snd_output_t structure if there's... · acde916f
      Tim-Philipp Müller authored
      ext/alsa/gstalsasink.*: Don't leak allocated snd_output_t structure if there's more than one alsasink instance at a t...
      
      Original commit message from CVS:
      * ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
      (gst_alsasink_init):
      * ext/alsa/gstalsasink.h:
      Don't leak allocated snd_output_t structure if there's
      more than one alsasink instance at a time (#341873).
      Also fix GObject macros in header file.
      acde916f
  11. 01 Mar, 2006 1 commit
    • Wim Taymans's avatar
      Added alsa docs. · b6e01659
      Wim Taymans authored
      Original commit message from CVS:
      * docs/plugins/Makefile.am:
      * docs/plugins/gst-plugins-base-plugins-docs.sgml:
      * docs/plugins/gst-plugins-base-plugins-sections.txt:
      * ext/alsa/gstalsamixer.c:
      * ext/alsa/gstalsamixer.h:
      * ext/alsa/gstalsamixerelement.c:
      (gst_alsa_mixer_element_class_init), (gst_alsa_mixer_element_init):
      * ext/alsa/gstalsamixerelement.h:
      * ext/alsa/gstalsasink.c:
      * ext/alsa/gstalsasink.h:
      * ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init),
      (gst_alsasrc_init):
      * ext/alsa/gstalsasrc.h:
      Added alsa docs.
      Small code cleanups.
      b6e01659
  12. 16 Feb, 2006 1 commit
  13. 03 Feb, 2006 1 commit
    • Wim Taymans's avatar
      ext/alsa/gstalsasink.*: Add lock to protect alsa calls. · 7aeb1d45
      Wim Taymans authored
      Original commit message from CVS:
      * ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
      (gst_alsasink_class_init), (gst_alsasink_init),
      (gst_alsasink_write), (gst_alsasink_reset):
      * ext/alsa/gstalsasink.h:
      Add lock to protect alsa calls.
      Implement reset to flush samples ASAP, does not work
      with dmix though.
      7aeb1d45
  14. 06 Dec, 2005 1 commit
  15. 09 May, 2005 1 commit
    • Andy Wingo Wingo's avatar
      ext/: ext/ogg/gstoggdemux.c (gst_ogg_demux_perform_seek)... · 276f6fe5
      Andy Wingo Wingo authored
      ext/: ext/ogg/gstoggdemux.c (gst_ogg_demux_perform_seek) (gst_ogg_demux_read_chain, gst_ogg_demux_read_end_chain) ext...
      
      Original commit message from CVS:
      2005-05-09  Andy Wingo  <wingo@pobox.com>
      
      * ext/alsa/gstalsasink.h:
      * ext/gnomevfs/gstgnomevfssrc.c:
      (gst_gnomevfssrc_get_icy_metadata):
      * ext/ogg/gstoggdemux.c (gst_ogg_demux_perform_seek)
      (gst_ogg_demux_read_chain, gst_ogg_demux_read_end_chain)
      * ext/theora/theoradec.c (theora_dec_src_query)
      (theora_dec_src_event, theora_dec_sink_event)
      (theora_handle_comment_packet, theora_handle_data_packet):
      * ext/theora/theoraenc.c (theora_enc_chain):
      * ext/vorbis/vorbisdec.c (vorbis_dec_src_event)
      (vorbis_dec_sink_event, vorbis_handle_comment_packet):
      * gst/audioconvert/gstaudioconvert.c (gst_audio_convert_getcaps):
      * gst/typefind/gsttypefindfunctions.c (mp3_type_find)
      (qt_type_find):
      * gst/videotestsrc/videotestsrc.c (paint_setup_I420)
      (paint_setup_YV12, paint_setup_YUY2, paint_setup_UYVY)
      (paint_setup_YVYU, paint_setup_IYU2, paint_setup_Y41B)
      (paint_setup_Y42B, paint_setup_Y800, paint_setup_IMC1)
      (paint_setup_IMC2, paint_setup_IMC3, paint_setup_IMC4)
      (paint_setup_YVU9, paint_setup_YUV9, paint_setup_xRGB8888)
      (paint_setup_xBGR8888, paint_setup_RGBx8888)
      (paint_setup_BGRx8888, paint_setup_RGB888, paint_setup_BGR888)
      (paint_setup_RGB565, paint_setup_xRGB1555):
      * gst/videotestsrc/videotestsrc.h:
      * sys/ximage/ximagesink.c (gst_ximagesink_buffer_alloc):
      * sys/xvimage/xvimagesink.c (gst_xvimagesink_get_xv_support)
      (gst_xvimagesink_setcaps, gst_xvimagesink_buffer_alloc):
      GCC4 fixes.
      
      * ext/ogg/gstoggdemux.c (gst_ogg_demux_find_chains): Use the new
      gst_pad_query_position. Fixes oggdemux.
      276f6fe5
  16. 05 May, 2005 1 commit
  17. 28 Apr, 2005 1 commit
    • Wim Taymans's avatar
      ext/alsa/: Implement alsasink with simple open/write/close API. · 851547e3
      Wim Taymans authored
      Original commit message from CVS:
      * ext/alsa/Makefile.am:
      * ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_get_caps),
      (gst_alsa_fixate_to_mimetype), (gst_alsa_fixate_field_nearest_int),
      (gst_alsa_link), (gst_alsa_close_audio):
      * ext/alsa/gstalsaplugin.c: (plugin_init):
      * ext/alsa/gstalsasink.c: (gst_alsasink_get_type),
      (gst_alsasink_dispose), (gst_alsasink_base_init),
      (gst_alsasink_class_init), (gst_alsasink_init),
      (gst_alsasink_getcaps), (set_hwparams), (set_swparams),
      (alsasink_parse_spec), (gst_alsasink_open), (gst_alsasink_close),
      (xrun_recovery), (gst_alsasink_write), (gst_alsasink_delay),
      (gst_alsasink_reset):
      * ext/alsa/gstalsasink.h:
      Implement alsasink with simple open/write/close API.
      Make alsa dir build by disabling compilation of code.
      851547e3
  18. 08 Jul, 2004 1 commit
    • Thomas Vander Stichele's avatar
      ext/alsa/: - add debugging info · 253c4e72
      Thomas Vander Stichele authored
      Original commit message from CVS:
      * ext/alsa/gstalsa.c: (gst_alsa_drain_audio):
      * ext/alsa/gstalsasink.c: (gst_alsa_sink_flush_one_pad),
      (gst_alsa_sink_check_event), (gst_alsa_sink_mmap),
      (gst_alsa_sink_write), (gst_alsa_sink_loop):
      * ext/alsa/gstalsasink.h:
      - add debugging info
      - clean up schizophrenia of data/buffer/event
      - fix double event unref error
      253c4e72
  19. 07 May, 2004 1 commit
    • Ronald S. Bultje's avatar
      ext/alsa/: Make alsasink/src a subclass of alsamixer so that mixer stuff shows... · 7fa3cd3b
      Ronald S. Bultje authored
      ext/alsa/: Make alsasink/src a subclass of alsamixer so that mixer stuff shows up in gst-rec. Needs some finetuning.
      
      Original commit message from CVS:
      * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
      * ext/alsa/gstalsasink.c: (gst_alsa_sink_get_type),
      (gst_alsa_sink_class_init):
      * ext/alsa/gstalsasink.h:
      * ext/alsa/gstalsasrc.c: (gst_alsa_src_get_type),
      (gst_alsa_src_class_init):
      * ext/alsa/gstalsasrc.h:
      Make alsasink/src a subclass of alsamixer so that mixer stuff
      shows up in gst-rec. Needs some finetuning.
      7fa3cd3b
  20. 15 Mar, 2004 1 commit
  21. 14 Mar, 2004 1 commit
  22. 16 Nov, 2003 1 commit