[image]

ALSA на ICH10

Неблокируемый вывод, автовыбор числа каналов для mplayer.
 
+
-
edit
 

Balancer

администратор
★★★★★
Попросили поделиться.

~/.asoundrc
code bash
  1. pcm.snd_card {
  2.      type hw
  3.      card 0 # change to your cards number or name
  4. }
  5.  
  6. # 6 channel dmix:
  7. pcm.dmix6 {
  8.      type dmix
  9.         ipc_key 1024
  10.         ipc_key_add_uid false # let multiple users share
  11.         ipc_perm 0660 # IPC permissions (octal, default 0600)
  12.         slave {
  13.                 pcm snd_card # see below
  14.                 rate 48000
  15.                 channels 6
  16.                 period_time 0
  17.                 period_size 1024 # try 2048 against skipping
  18.                 buffer_time 0
  19.                 buffer_size 5120 # in case of problems reduce this
  20.                                  # in case of skipping, try increasing
  21.         }
  22.      }
  23.  
  24. # upmixing:
  25. pcm.ch51dup {
  26.     type route
  27. #   slave.pcm dmix6
  28.     slave.pcm "surround51"
  29.     slave.channels 6
  30.     ttable.0.0 1 #front left
  31.     ttable.1.1 1 #front right
  32.     ttable.2.2 1 #rear left
  33.     ttable.3.3 1 #rear right
  34.     ttable.4.4 1 #center
  35.     ttable.5.5 1
  36. }
  37.  
  38. pcm.main_20 {
  39. type route
  40. slave.pcm "dmix6"
  41. slave.channels 6
  42.  
  43. ttable.0.0 1
  44. ttable.0.2 0.6
  45. ttable.0.4 0
  46.  
  47. ttable.1.1 1
  48. ttable.1.3 0.6
  49. ttable.1.4 0
  50.  
  51. ttable.0.5 0.15
  52. ttable.1.5 0.15
  53. }
  54.  
  55. cm.duplex {
  56.      type asym
  57.      playback.pcm "ch51dup" # upmix first
  58. #     playback.pcm "dmix6"  # just pass to 6 channel dmix
  59. #     capture.pcm "dsnoop:0" # doesn't work for me
  60.      capture.pcm "snd_card"
  61. }
  62.  
  63. # change default device:
  64. pcm.!default {
  65.      type plug
  66. #     slave.pcm "duplex"
  67. #     slave.pcm "ch51dup"
  68.      slave.pcm "main_20"
  69. }
  70.  
  71. pcm.!surround20 "main_20"
  72.  
  73. # for aoss
  74. pcm.dsp "duplex"
  75.  
  76. pcm.dsp1 "duplex"


И код для запуска mplayer, /usr/local/bin/mpl:
code bash
  1. #!/bin/bash
  2.  
  3. AUDIO_CH=$(avinfo "$1"|grep audio|sort -r|head -n1|sed -r 's/^.*KHz//'|cut -d' ' -f 4)
  4.  
  5. FLAGS=""
  6.  
  7. case "${AUDIO_CH}" in
  8.     Stereo) FLAGS="${FLAGS} -channels 2 -ao alsa:device=main_20";;
  9.     6) FLAGS="${FLAGS} -channels 6 -ao alsa:device=ch51dup";;
  10.     *) exit;;
  11. esac
  12.  
  13. FLAGS="$FLAGS -vf pp=lb -autoq 100"
  14.  
  15. if [[ $(xvinfo | grep 'X-Video Extension version'|wc -l) == 0 ]]; then
  16.     FLAGS="$FLAGS -vo x11"
  17. fi
  18.  
  19. DISPLAY=:0 sudo nice -n -1 sudo -u balancer mplayer $FLAGS -dvd-device "`pwd`" "$1" $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12}
   
+
-
edit
 

Balancer

администратор
★★★★★
Да, поскольку 2.0 используется в средних программах намного чаще, чем 5.1, то по умолчанию стоит апмикс 2.0 в 5.1

Т.е. всякая музыка в проигрывателях слушается по умолчанию.

mplayer через указанный скрипт выбирает устройство сам.

У тех, кто играет через xine можно, скажем, через настройки kaffeine указать явно, для какого типа музыки какой использовать миксер.
   

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru