1. 21 May, 2009 2 commits
  2. 30 Apr, 2009 1 commit
  3. 18 Apr, 2009 1 commit
  4. 16 Apr, 2009 1 commit
  5. 10 Apr, 2009 4 commits
  6. 09 Apr, 2009 9 commits
  7. 23 Mar, 2009 1 commit
  8. 20 Mar, 2009 2 commits
  9. 13 Mar, 2009 1 commit
    • Jan Schmidt's avatar
      pulsesink: Wait until there is enough room to write an entire segment · 608d13d4
      Jan Schmidt authored
      When trying to write out a segment, wait until there is enough free space
      for the entire segment. This helps to reduce ripple in the clock reporting,
      where the app might query the playback position while only half a segment
      has been written (and is therefore reported by _delay(), even though
      the ring buffer has not yet been advanced)
      608d13d4
  10. 13 Feb, 2009 1 commit
    • Mark Nauwelaerts's avatar
      pulsesink: Issue property change notification in streaming thread, · 7756d375
      Mark Nauwelaerts authored
      rather than PA thread.
      
      pa_threaded_mainloop_lock() (a.o.) and by extension get_property should
      not be done from a PA thread, but the latter may occur as a result of a
      property change notification.  Fixes #571204 (though current situation
      not ideal, e.g. post message rather than signal).
      7756d375
  11. 28 Jan, 2009 3 commits
    • Jan Schmidt's avatar
      Fix compile error in the last commit · 9795e95f
      Jan Schmidt authored
      9795e95f
    • Jan Schmidt's avatar
      Rewrite the pulse plugin, conditionally enabling new behaviour with · 0037635b
      Jan Schmidt authored
      
      newer pulseaudio.
      
      Fixes: #567794
      
      * Hook pulsesink's volume property up with the stream volume -- not the
        sink volume in PA.
      
      * Read the device description directly from the sink instead of going
        via the mixer.
      
      * Properly implement _reset() methods for both sink and source to avoid
        deadlocks when shutting down a pipeline.
      
      * Replace all simple pa_threaded_mainloop_wait() by proper loops to
        guarantee that we wait for the right event in case multiple events are
        fired.  While this is not strictly necessary in many cases it
        certainly is more correct and makes me sleep better at night.
      
      * Replace CHECK_DEAD_GOTO macros with proper functions
      
      * Extend the number of supported channels to 32 since that is the actual
        limit in PA.
      
      * Get rid of _dispose() methods since we don't need them.
      
      * Increase the volume property upper limit of the sink to 1000.
      
      * Reset function pointers after we disconnect a stream/context. Better
        fix for bug 556986.
      
      * Reset the state of the element properly if open/prepare fails
      
      * Cork the PA stream when the pipeline is paused. This allows the PA
      * daemon to
        close audio device on pause and thus save a bit of power.
      
      * Set PA stream properties based on GST tags such as GST_TAG_TITLE,
        GST_TAG_ARTIST, and so on.
      Signed-off-by: Lennart Poettering's avatarLennart Poettering <lennart@poettering.net>
      0037635b
    • Stefan Kost's avatar
      Update and add documentation for plugins with deps (ext). · 9cf73bdd
      Stefan Kost authored
      Link to properties. Correct titles for examples. Document a few trivial cases. Keep lists in section file and docs/plugins/Makefile.am alphabetically ordered. Fix warnings that gtk-doc points out.
      9cf73bdd
  12. 07 Jan, 2009 1 commit
    • Jan Schmidt's avatar
      ext/pulse/pulsesink.*: Use a mutex to protect the current stream pointer, and... · 3e380b48
      Jan Schmidt authored
      ext/pulse/pulsesink.*: Use a mutex to protect the current stream pointer, and ignore callbacks for stream objects tha...
      
      Original commit message from CVS:
      * ext/pulse/pulsesink.c:
      * ext/pulse/pulsesink.h:
      Use a mutex to protect the current stream pointer, and ignore
      callbacks for stream objects that have been destroyed already.
      Fixes problems with unprepare/prepare cycles caused by the input
      caps changing, without reintroducing bug #556986.
      3e380b48
  13. 05 Jan, 2009 1 commit
  14. 23 Nov, 2008 1 commit
  15. 03 Oct, 2008 1 commit
  16. 27 Sep, 2008 1 commit
  17. 20 Aug, 2008 1 commit
    • Sebastian Dröge's avatar
      ext/pulse/: Use GST_BOILERPLATE everywhere and fix coding style at some places. · 95d42398
      Sebastian Dröge authored
      Original commit message from CVS:
      * ext/pulse/pulsemixer.c: (gst_pulsemixer_class_init),
      (gst_pulsemixer_set_property), (gst_pulsemixer_get_property):
      * ext/pulse/pulsemixerctrl.c: (gst_pulsemixer_ctrl_subscribe_cb),
      (gst_pulsemixer_ctrl_open), (gst_pulsemixer_ctrl_timeout_event),
      (gst_pulsemixer_ctrl_set_volume):
      * ext/pulse/pulsemixertrack.c: (gst_pulsemixer_track_new):
      * ext/pulse/pulseprobe.c: (gst_pulseprobe_open):
      * ext/pulse/pulsesink.c: (gst_pulsesink_class_init),
      (gst_pulsesink_init), (gst_pulsesink_open),
      (gst_pulsesink_prepare), (gst_pulsesink_write),
      (gst_pulsesink_delay), (gst_pulsesink_reset):
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_class_init),
      (gst_pulsesrc_init):
      Use GST_BOILERPLATE everywhere and fix coding style at some places.
      Fix a locking issue in pulsesink's prepare function.
      * ext/pulse/pulseutil.c: (gst_pulse_channel_map_to_gst):
      Check if the created channel layout is valid for GStreamer.
      95d42398
  18. 18 Aug, 2008 1 commit
    • Sebastian Dröge's avatar
      ext/pulse/: The bytes_per_sample and silence_sample fields of the... · cfc5ea68
      Sebastian Dröge authored
      ext/pulse/: The bytes_per_sample and silence_sample fields of the GstRingBufferSpec are already filled with the corre...
      
      Original commit message from CVS:
      * ext/pulse/pulsesink.c: (gst_pulsesink_prepare):
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_prepare):
      The bytes_per_sample and silence_sample fields of the GstRingBufferSpec
      are already filled with the correct values by
      gst_ring_buffer_parse_caps() so there's no need to set them again
      with wrong values.
      cfc5ea68
  19. 13 Aug, 2008 3 commits
    • Sebastian Dröge's avatar
      ext/pulse/pulsesink.*: Add "device-name" property to pulsesink too and... · 37dee77f
      Sebastian Dröge authored
      ext/pulse/pulsesink.*: Add "device-name" property to pulsesink too and currently commented out and not working suppor...
      
      Original commit message from CVS:
      * ext/pulse/pulsesink.c: (gst_pulsesink_class_init),
      (gst_pulsesink_init), (gst_pulsesink_finalize),
      (gst_pulsesink_set_volume), (gst_pulsesink_get_volume),
      (gst_pulsesink_set_property), (gst_pulsesink_get_property),
      (gst_pulsesink_prepare), (gst_pulsesink_change_state):
      * ext/pulse/pulsesink.h:
      Add "device-name" property to pulsesink too and currently commented
      out and not working support for a "volume" property.
      37dee77f
    • Sebastian Dröge's avatar
      ext/pulse/: Improve debugging a bit by including the parent object in... · 9e572ebf
      Sebastian Dröge authored
      ext/pulse/: Improve debugging a bit by including the parent object in pulsemixerctrl and pulseprobe objects and using...
      
      Original commit message from CVS:
      * ext/pulse/pulsemixer.c: (gst_pulsemixer_change_state):
      * ext/pulse/pulsemixerctrl.c: (gst_pulsemixer_ctrl_subscribe_cb),
      (gst_pulsemixer_ctrl_open), (gst_pulsemixer_ctrl_new),
      (gst_pulsemixer_ctrl_free), (gst_pulsemixer_ctrl_timeout_event):
      * ext/pulse/pulsemixerctrl.h:
      * ext/pulse/pulseprobe.c: (gst_pulseprobe_open),
      (gst_pulseprobe_enumerate), (gst_pulseprobe_new),
      (gst_pulseprobe_free), (gst_pulseprobe_needs_probe),
      (gst_pulseprobe_probe_property), (gst_pulseprobe_get_values):
      * ext/pulse/pulseprobe.h:
      * ext/pulse/pulsesink.c: (gst_pulsesink_init):
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_init), (gst_pulsesrc_delay),
      (gst_pulsesrc_change_state):
      Improve debugging a bit by including the parent object in pulsemixerctrl
      and pulseprobe objects and using GST_WARNING_OBJECT instead of
      GST_WARNING.
      Use the parent GObject subclass instead of a random struct as GObject
      parameter for G_OBJECT_WARN_INVALID_PROPERTY_ID. This fixes a crash
      when probing for another property than "device".
      9e572ebf
    • Laszlo Pandy's avatar
      ext/pulse/: Implement GstPropertyProbe interface on pulsesink for detecting... · 397da5da
      Laszlo Pandy authored
      ext/pulse/: Implement GstPropertyProbe interface on pulsesink for detecting sink devices and on pulsesrc for detectin...
      
      Original commit message from CVS:
      Patch by: Laszlo Pandy <laszlok2 at gmail dot com>
      * ext/pulse/pulsesink.c: (gst_pulsesink_interface_supported),
      (gst_pulsesink_implements_interface_init),
      (gst_pulsesink_init_interfaces), (gst_pulsesink_init),
      (gst_pulsesink_finalize), (gst_pulsesink_set_property),
      (gst_pulsesink_get_type):
      * ext/pulse/pulsesink.h:
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_interface_supported),
      (gst_pulsesrc_init_interfaces), (gst_pulsesrc_init),
      (gst_pulsesrc_finalize), (gst_pulsesrc_set_property):
      * ext/pulse/pulsesrc.h:
      Implement GstPropertyProbe interface on pulsesink for detecting
      sink devices and on pulsesrc for detecting source devices.
      Fixes bugs #547227 and #547217.
      397da5da
  20. 10 Jun, 2008 3 commits
    • Sebastian Dröge's avatar
      ext/pulse/: Some smaller cleanup. Use G_PARAM_STATIC_STRINGS,... · 74e9eb72
      Sebastian Dröge authored
      ext/pulse/: Some smaller cleanup. Use G_PARAM_STATIC_STRINGS, gst_element_class_set_details_simple() and fix coding s...
      
      Original commit message from CVS:
      * ext/pulse/pulsemixer.c: (gst_pulsemixer_base_init),
      (gst_pulsemixer_class_init):
      * ext/pulse/pulsesink.c: (gst_pulsesink_base_init),
      (gst_pulsesink_class_init), (gst_pulsesink_prepare):
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_interface_supported),
      (gst_pulsesrc_base_init), (gst_pulsesrc_class_init),
      (gst_pulsesrc_prepare):
      Some smaller cleanup. Use G_PARAM_STATIC_STRINGS,
      gst_element_class_set_details_simple() and fix coding style a bit
      more.
      74e9eb72
    • Sebastian Dröge's avatar
      Add documentation to the pulseaudio plugin and run make update in docs/plugins. · 73909852
      Sebastian Dröge authored
      Original commit message from CVS:
      * docs/plugins/Makefile.am:
      * docs/plugins/gst-plugins-good-plugins-docs.sgml:
      * docs/plugins/gst-plugins-good-plugins-sections.txt:
      * docs/plugins/gst-plugins-good-plugins.args:
      * docs/plugins/gst-plugins-good-plugins.hierarchy:
      * docs/plugins/gst-plugins-good-plugins.interfaces:
      * docs/plugins/gst-plugins-good-plugins.prerequisites:
      * docs/plugins/inspect/plugin-aasink.xml:
      * docs/plugins/inspect/plugin-alaw.xml:
      * docs/plugins/inspect/plugin-alpha.xml:
      * docs/plugins/inspect/plugin-alphacolor.xml:
      * docs/plugins/inspect/plugin-annodex.xml:
      * docs/plugins/inspect/plugin-apetag.xml:
      * docs/plugins/inspect/plugin-audiofx.xml:
      * docs/plugins/inspect/plugin-auparse.xml:
      * docs/plugins/inspect/plugin-autodetect.xml:
      * docs/plugins/inspect/plugin-avi.xml:
      * docs/plugins/inspect/plugin-cacasink.xml:
      * docs/plugins/inspect/plugin-cairo.xml:
      * docs/plugins/inspect/plugin-cdio.xml:
      * docs/plugins/inspect/plugin-cutter.xml:
      * docs/plugins/inspect/plugin-debug.xml:
      * docs/plugins/inspect/plugin-dv.xml:
      * docs/plugins/inspect/plugin-efence.xml:
      * docs/plugins/inspect/plugin-effectv.xml:
      * docs/plugins/inspect/plugin-equalizer.xml:
      * docs/plugins/inspect/plugin-esdsink.xml:
      * docs/plugins/inspect/plugin-flac.xml:
      * docs/plugins/inspect/plugin-flxdec.xml:
      * docs/plugins/inspect/plugin-gamma.xml:
      * docs/plugins/inspect/plugin-gconfelements.xml:
      * docs/plugins/inspect/plugin-gdkpixbuf.xml:
      * docs/plugins/inspect/plugin-goom.xml:
      * docs/plugins/inspect/plugin-goom2k1.xml:
      * docs/plugins/inspect/plugin-halelements.xml:
      * docs/plugins/inspect/plugin-icydemux.xml:
      * docs/plugins/inspect/plugin-id3demux.xml:
      * docs/plugins/inspect/plugin-jpeg.xml:
      * docs/plugins/inspect/plugin-level.xml:
      * docs/plugins/inspect/plugin-matroska.xml:
      * docs/plugins/inspect/plugin-monoscope.xml:
      * docs/plugins/inspect/plugin-mulaw.xml:
      * docs/plugins/inspect/plugin-multifile.xml:
      * docs/plugins/inspect/plugin-multipart.xml:
      * docs/plugins/inspect/plugin-navigationtest.xml:
      * docs/plugins/inspect/plugin-ossaudio.xml:
      * docs/plugins/inspect/plugin-png.xml:
      * docs/plugins/inspect/plugin-pulseaudio.xml:
      * docs/plugins/inspect/plugin-quicktime.xml:
      * docs/plugins/inspect/plugin-rtp.xml:
      * docs/plugins/inspect/plugin-rtsp.xml:
      * docs/plugins/inspect/plugin-smpte.xml:
      * docs/plugins/inspect/plugin-soup.xml:
      * docs/plugins/inspect/plugin-spectrum.xml:
      * docs/plugins/inspect/plugin-speex.xml:
      * docs/plugins/inspect/plugin-taglib.xml:
      * docs/plugins/inspect/plugin-udp.xml:
      * docs/plugins/inspect/plugin-video4linux2.xml:
      * docs/plugins/inspect/plugin-videobalance.xml:
      * docs/plugins/inspect/plugin-videobox.xml:
      * docs/plugins/inspect/plugin-videocrop.xml:
      * docs/plugins/inspect/plugin-videoflip.xml:
      * docs/plugins/inspect/plugin-videomixer.xml:
      * docs/plugins/inspect/plugin-wavenc.xml:
      * docs/plugins/inspect/plugin-wavpack.xml:
      * docs/plugins/inspect/plugin-wavparse.xml:
      * docs/plugins/inspect/plugin-ximagesrc.xml:
      * ext/pulse/plugin.c:
      * ext/pulse/pulsemixer.c:
      * ext/pulse/pulsesink.c:
      * ext/pulse/pulsesrc.c:
      Add documentation to the pulseaudio plugin and run make update
      in docs/plugins.
      73909852
    • Sebastian Dröge's avatar
      Add pulseaudio GStreamer element from gst-pulse. Development will continue... · f3b03cd7
      Sebastian Dröge authored
      Add pulseaudio GStreamer element from gst-pulse. Development will continue here instead of pulseaudio SVN. Fixes bug ...
      
      Original commit message from CVS:
      * configure.ac:
      * ext/pulse/Makefile.am:
      * ext/pulse/plugin.c: (plugin_init):
      * ext/pulse/pulsemixer.c: (gst_pulsemixer_interface_supported),
      (gst_pulsemixer_implements_interface_init),
      (gst_pulsemixer_init_interfaces), (gst_pulsemixer_base_init),
      (gst_pulsemixer_class_init), (gst_pulsemixer_init),
      (gst_pulsemixer_finalize), (gst_pulsemixer_set_property),
      (gst_pulsemixer_get_property), (gst_pulsemixer_change_state):
      * ext/pulse/pulsemixer.h:
      * ext/pulse/pulsemixerctrl.c:
      (gst_pulsemixer_ctrl_context_state_cb),
      (gst_pulsemixer_ctrl_sink_info_cb),
      (gst_pulsemixer_ctrl_source_info_cb),
      (gst_pulsemixer_ctrl_subscribe_cb),
      (gst_pulsemixer_ctrl_success_cb), (gst_pulsemixer_ctrl_open),
      (gst_pulsemixer_ctrl_close), (gst_pulsemixer_ctrl_new),
      (gst_pulsemixer_ctrl_free), (gst_pulsemixer_ctrl_list_tracks),
      (gst_pulsemixer_ctrl_timeout_event), (restart_time_event),
      (gst_pulsemixer_ctrl_set_volume), (gst_pulsemixer_ctrl_get_volume),
      (gst_pulsemixer_ctrl_set_record), (gst_pulsemixer_ctrl_set_mute):
      * ext/pulse/pulsemixerctrl.h:
      * ext/pulse/pulsemixertrack.c: (gst_pulsemixer_track_class_init),
      (gst_pulsemixer_track_init), (gst_pulsemixer_track_new):
      * ext/pulse/pulsemixertrack.h:
      * ext/pulse/pulseprobe.c: (gst_pulseprobe_context_state_cb),
      (gst_pulseprobe_sink_info_cb), (gst_pulseprobe_source_info_cb),
      (gst_pulseprobe_invalidate), (gst_pulseprobe_open),
      (gst_pulseprobe_enumerate), (gst_pulseprobe_close),
      (gst_pulseprobe_new), (gst_pulseprobe_free),
      (gst_pulseprobe_get_properties), (gst_pulseprobe_needs_probe),
      (gst_pulseprobe_probe_property), (gst_pulseprobe_get_values),
      (gst_pulseprobe_set_server):
      * ext/pulse/pulseprobe.h:
      * ext/pulse/pulsesink.c: (gst_pulsesink_base_init),
      (gst_pulsesink_class_init), (gst_pulsesink_init),
      (gst_pulsesink_destroy_stream), (gst_pulsesink_destroy_context),
      (gst_pulsesink_finalize), (gst_pulsesink_dispose),
      (gst_pulsesink_set_property), (gst_pulsesink_get_property),
      (gst_pulsesink_context_state_cb), (gst_pulsesink_stream_state_cb),
      (gst_pulsesink_stream_request_cb),
      (gst_pulsesink_stream_latency_update_cb), (gst_pulsesink_open),
      (gst_pulsesink_close), (gst_pulsesink_prepare),
      (gst_pulsesink_unprepare), (gst_pulsesink_write),
      (gst_pulsesink_delay), (gst_pulsesink_success_cb),
      (gst_pulsesink_reset), (gst_pulsesink_change_title),
      (gst_pulsesink_event), (gst_pulsesink_get_type):
      * ext/pulse/pulsesink.h:
      * ext/pulse/pulsesrc.c: (gst_pulsesrc_interface_supported),
      (gst_pulsesrc_implements_interface_init),
      (gst_pulsesrc_init_interfaces), (gst_pulsesrc_base_init),
      (gst_pulsesrc_class_init), (gst_pulsesrc_init),
      (gst_pulsesrc_destroy_stream), (gst_pulsesrc_destroy_context),
      (gst_pulsesrc_finalize), (gst_pulsesrc_dispose),
      (gst_pulsesrc_set_property), (gst_pulsesrc_get_property),
      (gst_pulsesrc_context_state_cb), (gst_pulsesrc_stream_state_cb),
      (gst_pulsesrc_stream_request_cb), (gst_pulsesrc_open),
      (gst_pulsesrc_close), (gst_pulsesrc_prepare),
      (gst_pulsesrc_unprepare), (gst_pulsesrc_read),
      (gst_pulsesrc_delay), (gst_pulsesrc_change_state),
      (gst_pulsesrc_get_type):
      * ext/pulse/pulsesrc.h:
      * ext/pulse/pulseutil.c: (gst_pulse_fill_sample_spec),
      (gst_pulse_client_name), (gst_pulse_gst_to_channel_map):
      * ext/pulse/pulseutil.h:
      Add pulseaudio GStreamer element from gst-pulse. Development will
      continue here instead of pulseaudio SVN. Fixes bug #400679.
      Only changes over gst-pulse SVN are added copyright to the top of
      files and coding style changes.
      f3b03cd7