On Fri, Mar 6, 2009 at 9:21 AM, David Guibert <david.guib...@gmail.com> wrote:
> This patch introduces the mixer for the pulse output.
>
> Technically speaking, the pulse index is needed to get or set
> the volume. You must define callback fonctions to get this index since
> the pulse output in mpd is done using the simpe api. The pulse simple api
> does not provide the index of the newly defined output.
>
> So callback fonctions are associated to the pulse context.
> The list of all the sink input is then retreived.
> Then we select the name of the mpd pulse output and control
> its volume by its associated index number.

Starting with /usr/bin/mpd --no-daemon --verbose --stdout /etc/mpd-6601.conf:
daemon: writing pid file
pulse_mixer: init
pulse_mixer: init
sink input cb ALSA Playback, index 1
bad name
eol error sink_input_cb
pulse_mixer: init
sink input cb ALSA Playback, index 1
bad name
eol error sink_input_cb
pulse_mixer: init
sink input cb ALSA Playback, index 1
bad name
eol error sink_input_cb
pulse_mixer: error context not ready
Segmentation fault


Still not working here:
#0  mixer_new (plugin=0x435fc0, param=<value optimized out>) at
src/mixer_api.c:50
#1  0x0000000000415ad3 in pulse_init (audio_format=<value optimized
out>, param=0x666fe0, error=<value optimized out>) at
src/output/pulse_plugin.c:79
#2  0x0000000000414939 in audio_output_init (ao=0xc10560,
param=0x666fe0, error=0x7fffeebd6350) at src/output_plugin.h:143
#3  0x0000000000413b5a in audio_output_all_init () at src/output_all.c:97
#4  0x0000000000421aad in main (argc=<value optimized out>,
argv=<value optimized out>) at src/main.c:265



# A default Gentoo configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.

# Required files and directories ##############################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database.
#
music_directory                 "/var/lib/mpd/6601/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format.
#
playlist_directory              "/var/lib/mpd/6601/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up.
#
db_file                         "/var/lib/mpd/6601/database"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon.
# On most systems, log messages will appear in /var/log/daemon.log
# then.
#
log_file                        "/var/log/mpd-6601.log"
###############################################################################


# Optional files ##############################################################
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default.
#
pid_file                        "/var/run/mpd/mpd-6601.pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default.
#
state_file                      "/var/lib/mpd/6601/state"
#
###############################################################################


# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as, if set. MPD should
# never run as root and you may use this setting to make MPD change its user
# id after initialization. Do not use this setting if you start MPD as an
# unprivileged user. This setting is disabled by default, and the server will
# run as root.
#
user                            "mpd"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
#
# For network
#bind_to_address                        "localhost"
#
# And for Unix Socket
#bind_to_address                "~/.mpd/socket"
#
# This setting is the port that is desired for the daemon to get assigned to.
#
port                            "6601"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level                      "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback                   "yes"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists       "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. Optionally, 'comment' can be added to this
# list.
#
#metadata_to_use        
"artist,album,title,track,name,genre,date,composer,performer,disc"
#
###############################################################################

# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks        "yes"
#
# If this setting is set to "yes, MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks         "yes"
#
###############################################################################

# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
zeroconf_enabled                "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
zeroconf_name                   "his"
#
###############################################################################


# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password                        "passw...@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions             "read,add,control,admin"
#
###############################################################################


# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of
# other audio outputs.
#
# An example of an ALSA output:
#
audio_output {
        type                    "alsa"
        name                    "Living Room"
        device                  "hw:Audigy2,0"  # optional
#       format                  "44100:16:2"    # optional
        mix_device              "default"       # optional
        mix_control             "PCM"           # optional
}

audio_output {
        type                    "pulse"
        name                    "Desktop Speakers"
        server                  "rocket"
        sink
"alsa_output.pci_8086_284b_sound_card_0_alsa_playback_0"
        mixer_type              "software"
}

audio_output {
        type                    "pulse"
        name                    "Shawn's Headphones"
        server                  "rocket"
        sink                    
"alsa_output.pci_1102_2_sound_card_0_alsa_playback_0"
        mixer_type              "software"
}

audio_output {
        type                    "pulse"
        name                    "Shawn's Headset"
        server                  "rocket"
        sink
"alsa_output.usb_device_46d_a02_noserial_if0_sound_card_0_alsa_playback_0.monitor"
        mixer_type              "software"
}

audio_output {
        type                    "pulse"
        name                    "Trish's Headphones"
        server                  "tulip"
        sink                    
"alsa_output.pci_8086_3a6e_sound_card_0_alsa_playback_0"
        mixer_type              "software"
}

audio_output {
        type                    "pulse"
        name                    "Trish's Headset"
        server                  "tulip"
        sink                    
"alsa_output.usb_device_d8c_c_noserial_if0_sound_card_0_alsa_playback_0"
        mixer_type              "software"
}

audio_output {
        type                    "pulse"
        name                    "Trish's Speakers"
        server                  "tulip"
        sink                    
"alsa_output.usb_device_d8c_c_noserial_if0_sound_card_0_alsa_playback_0"
        mixer_type              "software"
}

#audio_output {
#       type                    "alsa"
#       name                    "Unpowered Speakers"
#       device                  "hw:NVidia,0"
#}


#
# An example of an OSS output:
#
#audio_output {
#       type                    "oss"
#       name                    "My OSS Device"
#       device                  "/dev/dsp"      # optional
#       format                  "44100:16:2"    # optional
#       mix_device              "/dev/mixer"    # optional
#       mix_control             "PCM"           # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
#       type                    "shout"
#       encoding                "ogg"                   # optional
#       name                    "My Shout Stream"
#       host                    "localhost"
#       port                    "8000"
#       mount                   "/mpd.ogg"
#       password                "hackme"
#       quality                 "5.0"
#       bitrate                 "128"
#       format                  "44100:16:1"
#       protocol                "icecast2"              # optional
#       user                    "source"                # optional
#       description             "My Stream Description" # optional
#       genre                   "jazz"                  # optional
#       public                  "no"                    # optional
#       timeout                 "2"                     # optional
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
#       type                    "pulse"
#       name                    "My Pulse Output"
#       server                  "remote_server"
#       sink                    "remote_server_sink"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
#       type                    "null"
#       name                    "My Null Output"
#}
#
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format            "44100:16:2"
#
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use.  Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter           "Fastest Sinc Interpolator"
#
###############################################################################


# Volume control mixer ########################################################
#
# MPD has limited volume controls, to use them pick one below. If one is not
# specified it may be autodetected at startup, depending on the dependencies
# which were compiled into the server.
#
# An example for controlling an ALSA or OSS mixer:
#
mixer_type                      "hardware"
#
# This example is a general volume control mixer, it is used to adjust the
# volume of the audio sent to the audio output, and will work with all outputs.
#
#mixer_type                     "software"
#
#
###############################################################################


# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "album" or "track". See <http://www.replaygain.org> for more
# details. By default this setting is disabled.
#
#replaygain                     "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp              "0"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness".
#
#volume_normalization           "no"
#
###############################################################################


# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
#audio_buffer_size              "2048"
#
# This setting controls the percentage of the buffer which is filled before
# beginning to play. Increasing this reduces the chance of audio file skipping,
# at the cost of increased time prior to audio playback.
#
#buffer_before_play             "10%"
#
###############################################################################


# HTTP Streaming Proxy ########################################################
#
# This setting specifies the HTTP proxy to use for playing HTTP streams. By
# default, these settings will be disabled.
#
#http_proxy_host                "proxy.isp.com"
#http_proxy_port                "8080"
#http_proxy_user                "user"
#http_proxy_password            "password"
#
###############################################################################


# Resource Limitations ########################################################
#
# These settings are various limitations to prevent MPD from using too many
# resources. Generally, these settings should be minimized to prevent security
# risks, depending on the operating resources.
#
#connection_timeout             "60"
#max_connections                "10"
max_playlist_length             "1638400"
max_command_list_size           "128000"
max_output_buffer_size          "8192"
#
###############################################################################


# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting. After modification of this setting mpd
# --create-db must be run to change the database.
#
filesystem_charset "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
#id3v1_encoding                 "ISO-8859-1"
#
###############################################################################

-- 
avuton
--
|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to