Skip to content

Instantly share code, notes, and snippets.

@icebreaker
Last active August 29, 2015 14:03
Show Gist options
  • Select an option

  • Save icebreaker/4070bc8f4b862e587c73 to your computer and use it in GitHub Desktop.

Select an option

Save icebreaker/4070bc8f4b862e587c73 to your computer and use it in GitHub Desktop.
ALSA > Pulse Audio - Skype

Why does Skype (c) have to make our lives hard by dropping support for the lovely ALSA?

In theory we could write a small shared library (object) that wraps all these and performs the equivalents with ALSA, which then could be 'injected' via LD_PRELOAD and voila, suck that Pulse Audio.

> strings skype | grep pa_

:/images/flags/16x11/pa_16x11.png
pa_stream_new
pa_stream_set_state_callback
pa_stream_set_write_callback
pa_stream_set_read_callback
pa_stream_connect_playback
pa_stream_connect_record
pa_stream_disconnect
pa_stream_unref
pa_stream_get_state
pa_stream_write
pa_stream_peek
pa_stream_drop
pa_stream_cork
pa_stream_trigger
pa_stream_flush
pa_stream_drain
pa_stream_get_sample_spec
pa_stream_get_index
pa_stream_get_device_index
pa_stream_get_buffer_attr
pa_context_new
pa_context_errno
pa_context_get_state
pa_context_set_state_callback
pa_context_connect
pa_context_drain
pa_context_disconnect
pa_context_unref
pa_threaded_mainloop_new
pa_threaded_mainloop_start
pa_threaded_mainloop_get_api
pa_threaded_mainloop_wait
pa_threaded_mainloop_lock
pa_threaded_mainloop_unlock
pa_threaded_mainloop_signal
pa_threaded_mainloop_free
pa_channel_map_init_mono
pa_channel_map_init_stereo
pa_operation_get_state
pa_operation_unref
pa_sample_spec_valid
pa_sample_spec_snprint
pa_frame_size
pa_usec_to_bytes
pa_cvolume_avg
pa_cvolume_set
pa_strerror
pa_get_library_version
pa_context_subscribe
pa_stream_new_with_proplist
pa_proplist_new
pa_proplist_free
pa_proplist_sets
pa_proplist_clear
pa_stream_set_underflow_callback
pa_threaded_mainloop_in_thread
pa_context_get_sink_input_info
pa_context_get_source_info_by_index
pa_context_set_sink_input_volume
pa_context_set_source_volume_by_index
pa_context_get_source_output_info
pa_context_set_subscribe_callback
A:E %s: pa_context_unsubscribe failed.
A:E %s: pa_context_subscribe failed.
A:E pa_context_get_sink_input_info() failed
A:E pa_context_get_source_info_by_index() failed
A:I cp4.o: before pa_stream_set_write_callback
A:I cp5.o: before pa_stream_set_underflow_callback
A:I cp6.o: before pa_stream_connect_playback
A:I cp4.i: before pa_stream_set_read_callback
A:I cp5.i: before pa_stream_connect_record; requesting fragsize %d bytes
A:E pa_stream_disconnect failed with %i (%s)
A:I Initial pa_stream_write failed.
A:E pa_stream_write failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment