]> code.delx.au - pulseaudio/blobdiff - src/daemon/main.c
introduce default channel map in addition to the default sample spec
[pulseaudio] / src / daemon / main.c
index 936c214df327edd6d76f4b8c1f4935d901c6aaa3..d176f458af6917c2a2ec17a1e02ab65dd99035b9 100644 (file)
@@ -348,7 +348,6 @@ int main(int argc, char *argv[]) {
     pa_time_event *win32_timer;
     struct timeval win32_tv;
 #endif
-    char *lf = NULL;
     int autospawn_fd = -1;
     pa_bool_t autospawn_locked = FALSE;
 
@@ -369,8 +368,11 @@ int main(int argc, char *argv[]) {
          * value of $LD_BIND_NOW on initialization. */
 
         pa_set_env("LD_BIND_NOW", "1");
-        pa_assert_se(rp = pa_readlink("/proc/self/exe"));
-        pa_assert_se(execv(rp, argv) == 0);
+
+        if ((rp = pa_readlink("/proc/self/exe")))
+            pa_assert_se(execv(rp, argv) == 0);
+        else
+            pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?");
     }
 #endif
 
@@ -906,6 +908,7 @@ int main(int argc, char *argv[]) {
     }
 
     c->default_sample_spec = conf->default_sample_spec;
+    c->default_channel_map = conf->default_channel_map;
     c->default_n_fragments = conf->default_n_fragments;
     c->default_fragment_size_msec = conf->default_fragment_size_msec;
     c->exit_idle_time = conf->exit_idle_time;
@@ -997,9 +1000,6 @@ finish:
         pa_autospawn_lock_done(FALSE);
     }
 
-    if (lf)
-        pa_xfree(lf);
-
 #ifdef OS_IS_WIN32
     if (win32_timer)
         pa_mainloop_get_api(mainloop)->time_free(win32_timer);