LINUX.ORG.RU
ФорумTalks

Проблема с проигрыванием файлов в mplayer/ALSA с ядром 2.6.34 и выше


0

1

_______________________________________________________________________________________

Если у вас всё работает, вы не пользуйтесь ALSA, у вас Windows/MacOS/etc, ПОЖАЛУЙСТА, не пишите в тему.

Прошу модераторов закрепить эту тему хотя бы на сутки и удалять сообщения не по теме

.
_______________________________________________________________________________________

В ядре 2.6.34 появилась регрессия в ALSA, которая проявляет себя следующим образом: когда вы проигрываете файлы в mplayer, этот проигрыватель начинает вести себя как бешенный - он начинает играть аудио/видео быстрее, чем надо, иногда просто пропуская куски по секунде и больше. Да, и если вам не лень, проверьте что при -ao oss ошибка исчезает.

Если у вас наблюдается эта проблема, то можете вздохнуть с облегчением - баг обнаружен (15912 и 16300), только, увы, источник ошибки пока не выявлен.

Чтобы помочь в его устранении, пожалуйста, приведите в этой теме вывод (обрамляя [ code ] [ /code ] ) следующих команд:

1) lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ "vga" || $0 ~ "audio" ) {found=1; print $0}; if (found && $2=="modules:") print $3; if (found && $0 ~ "^[:space:]*$") found=0}'
2) cat /proc/asound/cards 
3) grep  '^[[:space:]]*[0-9]' /proc/interrupts

Пункт 1 изменён, чтобы показывался драйвер, который у вас отвечает за видео/аудио.



Последнее исправление: tempuser002 (всего исправлений: 1)

пункт изменен так, что он теперь не показывает мою SB Live! 5.1, через которую собственно ведется вывод звука.

daemonpnz ★★★★★
()
lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ "vga" || $2 ~ "multimedia" ) {found=1; print $0}; if (found && $2=="modules:") print $3; if (found && $0 ~ "^[:space:]*$") found=0}'
01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4200] (prog-if 00 [VGA controller])
fglrx,
02:00.0 VGA compatible controller: ATI Technologies Inc RV770 LE [Radeon HD 4800 Series] (prog-if 00 [VGA controller])
fglrx,
04:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
snd-emu10k1
 0 [Live           ]: EMU10K1 - SB Live! 5.1 [SB0220] 
                      SB Live! 5.1 [SB0220] (rev.10, serial:0x80651102) at 0xbf00, irq 20
  0:        125          0          0          0   IO-APIC-edge      timer 
  1:          0         16        835      97483   IO-APIC-edge      i8042 
  4:          0          0          0          2   IO-APIC-edge     
  7:          1          0          0          0   IO-APIC-edge      parport0 
  9:          0          0          0          0   IO-APIC-fasteoi   acpi 
 14:          1        288      13510    2500384   IO-APIC-edge      pata_atiixp 
 15:          0          0          0          0   IO-APIC-edge      pata_atiixp 
 16:          1        110       7352     863915   IO-APIC-fasteoi   ohci_hcd:usb3, ohci_hcd:usb4 
 17:          1          5        264      37982   IO-APIC-fasteoi   ehci_hcd:usb1 
 18:          1          9        805      75357   IO-APIC-fasteoi   ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7, fglrx[0]@PCI:1:5:0 
 19:          0          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb2 
 20:          5        466      29204    3830513   IO-APIC-fasteoi   EMU10K1 
 22:         12       2845     181443   39162131   IO-APIC-fasteoi   ahci, ohci1394 
 26:        190       9142    3448484 1623730409   PCI-MSI-edge      eth0

багу подтверждаю, думал это из-за xvba последнего и mplayer-vaapi, а получилось так, что это я просто с пульса ушел на чистую альсу.

PS. 1 пункт подправил под себя, так как если audio второе слово в строке, то естественно оно не выводилось

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz

Исправил скрипт, но теперь, возможно, и не только звуковые карты будут показываться ;)

tempuser002
() автор топика
root ~ # lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ "vga" || $0 ~ "audio" ) {found=1; print $0}; if (found && $2=="modules:") print $3; if (found && $0 ~ "^[:space:]*$") found=0}' 
00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
02:00.0 VGA compatible controller: nVidia Corporation C79 [GeForce 9400M] (rev b1) (prog-if 00 [VGA controller])
nvidia
root ~ # cat /proc/asound/cards 
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0x93480000 irq 18
root ~ # grep  '^[[:space:]]*[0-9]' /proc/interrupts 
  0:    2626248          0   IO-APIC-edge      timer
  7:          1          0   IO-APIC-edge    
  8:         10          0   IO-APIC-edge      rtc0
  9:      12173          0   IO-APIC-fasteoi   acpi
 16:         89          0   IO-APIC-fasteoi   ohci_hcd:usb2
 17:     135705          0   IO-APIC-fasteoi   ohci_hcd:usb1
 18:     253608          0   IO-APIC-fasteoi   hda_intel
 21:          9          0   IO-APIC-fasteoi   nouveau
 22:     135537          0   IO-APIC-fasteoi   ohci1394, ehci_hcd:usb4
 23:         18          0   IO-APIC-fasteoi   ehci_hcd:usb3
 24:          0          0   PCI-MSI-edge      PCIe PME
 25:          0          0   PCI-MSI-edge      PCIe PME
 26:      48876          0   PCI-MSI-edge      ahci
 27:     320826          0   PCI-MSI-edge      eth0

jcd ★★★★★
()
# lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ "vga" || $0 ~ "audio" ) {found=1; print $0}; if (found && $2=="modules:") print $3; if (found && $0 ~ "^[:space:]*$") found=0}' 
01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8400 GS] (rev a1) (prog-if 00 [VGA controller])
nvidia
02:06.0 Multimedia audio controller: Creative Labs CA0106 Soundblaster
snd-ca0106

# cat /proc/asound/cards 
 0 [CA0106         ]: CA0106 - CA0106
                      Live! 7.1 24bit [SB0410] at 0xdc00 irq 21

# grep  '^[[:space:]]*[0-9]' /proc/interrupts
  0:        188        256       3524     253371   65621362 2023506685   IO-APIC-edge      timer
  1:          0          0          0          0          0          2   IO-APIC-edge      i8042
  4:          0          1         51       3880     246901   12278154   IO-APIC-edge      serial
  8:          0          0          0          0          0         38   IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          0          0          0          0          0          4   IO-APIC-edge      i8042
 17:          0          5        167       8185     358852   21584267   IO-APIC-fasteoi   ehci_hcd:usb1, ehci_hcd:usb2, ehci_hcd:usb3
 18:          1          9        142      13759     801725   39721954   IO-APIC-fasteoi   ohci_hcd:usb4, ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7, nvidia
 21:          3          9        216      22375    1951012   89892986   IO-APIC-fasteoi   snd_ca0106
 22:         74        265       2721     260869   18548874 2972159212   IO-APIC-fasteoi   eth0
 27:          7         22        854      46878    1851716   66635214   PCI-MSI-edge      ahci

Не совсем уверен оно ли у меня, но со звуком явно какая то беда. По команде

# speaker-test -t wav -c 2

speaker-test 1.0.23

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
 0 - Front Left
 1 - Front Right
Time per period = 3,008342
 0 - Front Left
Write error: -32,Обрыв канала
 1 - Front Right
Write error: -32,Обрыв канала
Time per period = 2,602976
 0 - Front Left
 1 - Front Right
Write error: -32,Обрыв канала
Write error: -32,Обрыв канала
Write error: -32,Обрыв канала
Time per period = 2,560179
 0 - Front Left
 1 - Front Right
В плеерах звук идет рывками.

t-IX
()

обожаю ЛОР. Столько времени модераторы боролись с техническими вопросами в толксах, а теперь сами техническую тему прикрепили.

nu11 ★★★★★
()
[olorin@stitch ~]$ lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ "vga" || $0 ~ "audio" ) {found=1; print $0}; if (found && $2=="modules:") print $3; if (found && $0 ~ "^[:space:]*$") found=0}' 
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
snd-hda-intel
01:05.0 VGA compatible controller: ATI Technologies Inc RC410 [Radeon Xpress 200M] (prog-if 00 [VGA controller])
radeon,
[olorin@stitch ~]$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfebf4000 irq 16
[olorin@stitch ~]$ grep  '^[[:space:]]*[0-9]' /proc/interrupts 
  0:  146088985   IO-APIC-edge      timer
  1:     178775   IO-APIC-edge      i8042
  8:        120   IO-APIC-edge      rtc0
  9:    1571324   IO-APIC-fasteoi   acpi
 12:     588998   IO-APIC-edge      i8042
 14:   19759375   IO-APIC-edge      pata_atiixp
 15:          0   IO-APIC-edge      pata_atiixp
 16:   35696894   IO-APIC-fasteoi   ohci_hcd:usb2, ath, hda_intel
 17:     176815   IO-APIC-fasteoi   ohci_hcd:usb3, ohci_hcd:usb5, radeon@pci:0000:01:05.0
 18:    2824908   IO-APIC-fasteoi   ohci_hcd:usb4, ohci_hcd:usb6
 19:      11049   IO-APIC-fasteoi   ehci_hcd:usb1
 20:   51305764   IO-APIC-fasteoi   eth0
 21:          0   IO-APIC-fasteoi   yenta
 22:    4372263   IO-APIC-fasteoi   ahci
 23:          0   IO-APIC-fasteoi   mmc0

Багу тоже подтверждаю. Некоторые ютубовые ролики, через флеш работающие, просто с бешеной скоростью пролетают и звук гонит. Но, кстати, не все о_О

mega_venik ★★★
()
Ответ на: комментарий от mega_venik

Хм. Чёрт, у меня в системе НЕ установлен mplayer. Так я под опрос не попадаю? Вывод звука в системе таки да, через альсу идёт.

mega_venik ★★★
()

Это точно только в 2.6.34+? Что-то у меня в дебианском .32 подобная вещь пробегала…

Deleted
()
Ответ на: комментарий от Deleted

100% только с 2.6.34 (если только debian'новцы не backport'ировали новую ALSA).

tempuser002
() автор топика

Тему можно открепить, в 2.6.35-36 проблема будет устранена.

tempuser002
() автор топика
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
snd-hda-intel
01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9800 GT] (rev a2) (prog-if 00 [VGA controller])
0 [Intel          ]: HDA-Intel - HDA Intel
                     HDA Intel at 0xfb000000 irq 29
  0:         46         28   IO-APIC-edge      timer
  1:          0          2   IO-APIC-edge      i8042
  4:          1          1   IO-APIC-edge    
  8:         25         29   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          1   IO-APIC-edge      i8042
 14:      72185      72225   IO-APIC-edge      ata_piix
 15:          0          0   IO-APIC-edge      ata_piix
 16:          4          4   IO-APIC-fasteoi   nouveau, uhci_hcd:usb3
 18:      84379      84173   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 19:      78843      78926   IO-APIC-fasteoi   ata_piix, pata_jmicron, uhci_hcd:usb7
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 23:          0          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb6
 28:      42511      42580   PCI-MSI-edge      eth0
 29:        323        327   PCI-MSI-edge      hda_intel
cheerfulboy
()

А я-то думал, почему видео стало гнять иногда в mplayer.
Причем гнать начинает после установки на паузу, и последующего с нее снятия. Чтобы убрать проблему надо лишь перемотать назад на 10 сек.

При последующей постановке на паузу опять проявляется.

[code]

[dikiy@rosh buildtools]$ lspci -vvv | awk 'BEGIN {IGNORECASE=1}{if ($2 ~ «vga» || $0 ~ «audio» ) {found=1; print $0}; if (found && $2==«modules:») print $3; if (found && $0 ~ «^[:space:]*$») found=0}'

00:0b.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
snd-emu10k1
00:0e.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
01:00.0 VGA compatible controller: nVidia Corporation NV25 [GeForce4 Ti 4200] (rev a3) (prog-if 00 [VGA controller])
nvidiafb,

[dikiy@rosh buildtools]$ cat /proc/asound/cards
0 [Live ]: EMU10K1 - SB Live! 5.1
SB Live! 5.1 (rev.7, serial:0x80641102) at 0xa400, irq 19

[dikiy@rosh buildtools]$ grep '^[[:space:]]*[0-9]' /proc/interrupts
0: 132 IO-APIC-edge timer
1: 71731 IO-APIC-edge i8042
3: 11489 IO-APIC-edge lirc_serial
4: 1 IO-APIC-edge
7: 1 IO-APIC-edge parport0
8: 1 IO-APIC-edge rtc0
9: 1 IO-APIC-fasteoi acpi
16: 3458901 IO-APIC-fasteoi sata_via, nvidia
17: 18 IO-APIC-fasteoi bttv0
18: 303608 IO-APIC-fasteoi skge@pci:0000:00:09.0
19: 94120 IO-APIC-fasteoi EMU10K1
20: 182922 IO-APIC-fasteoi sata_via
21: 291609 IO-APIC-fasteoi uhci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, ehci_hcd:usb5
[dikiy@rosh buildtools]$

[/code]

dikiy ★★☆☆☆
()
Ответ на: комментарий от daemonpnz

Да, патчи для emu10k1 пока не приняты.

Если хотите решить проблему, то надо применить два патча:

для mplayer и для audacious.

Только для второго достаточно 256.

Также нужно грузить модуль следующим образом:

# modprobe snd_emu10k1 delay_pcm_irq=2,2,2,2,2,2,2,2

tempuser002
() автор топика
Ответ на: комментарий от daemonpnz

В арчевском 2.6.34.1-1 с hda-intel и alc861 икать перестало.

mv ★★★★★
()

У меня .34 проблем таких не было. звуковая карта см ниже.

О, а нельзя пользуясь случаем и мою багу пофиксить? :)

Достала годами уже. При перемотке если мотать быстро - повисает mplayer насмерть. mplayer из svn, давно не работает, пульсесервер разный был, сейчас с последнего стабитьного дебиана.

У мну звуковая карта по сети через пулса:

gena@work:~$ cat ~/.asoundrc

pcm.pulse { type pulse server 192.168.0.1 }

ctl.pulse { type pulse server 192.168.0.1 }

gena2x ★★★
()
Ответ на: комментарий от nu11

>обожаю ЛОР. Столько времени модераторы боролись с техническими вопросами в толксах, а теперь сами техническую тему прикрепили.
по поводу таких тем - а куда?
и просто идея - почему бы не создать ветку для тестов багов/их_фиксов?
хотя ща набежит куча ненужнаторов...

megabaks ★★★★
()
Ответ на: комментарий от nu11

да знаю конечно :)
и 2 года из 3-х меня здесь не было - то ноут накрылся, то сапо^Wберцы топтал )

megabaks ★★★★
()

Как и следовало ожидать, вместо того чтобы фиксить проблему по-натоящему - добавили обычный костыль:

This problem will be seen in jack, too.



So I would propose just to use safe values and experienced users might get

lower latencies.



Another possibility is to use the emu10k1 wallclock to check if interrupts are

not comming so fast to avoid double acks, but it's just another slow PCI I/O

read operation - limiting the period interrupt rate is more elegant in this

case.


Hm, OK, using period_size_min=256 sounds more reasonable as a quick fix than
other smarter but more intrusive solutions.

And last note: All hw configuration offered by the driver should work including

the smallest periods.


How can you guarantee that period_size=256 works on all machines? :)

dikiy ★★☆☆☆
()

https://bugzilla.kernel.org/show_bug.cgi?id=16300

Software error:
The ./data/params file does not exist. You probably need to run checksetup.pl. at Bugzilla/Config.pm line 333.
Compilation failed in require at /var/www/bugzilla/show_bug.cgi line 27.
BEGIN failed--compilation aborted at /var/www/bugzilla/show_bug.cgi line 27.

For help, please send mail to the webmaster (root@localhost), giving this error message and the time and date of the error.

alex_custov ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.