LINUX.ORG.RU

Проблема с проигрыванием файлов в 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 изменён, чтобы показывался драйвер, который у вас отвечает за видео/аудио.


прикрепил

JB ★★★★★ ()

пункт изменен так, что он теперь не показывает мою 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 ★★★★ ()
Ответ на: комментарий от jcd

Кажется, мой скрипт не отработал на вашей звуковой - какой она использует драйвер?

tempuser002 ()
# 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 подобная вещь пробегала…

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

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 ★★★★ ()
Ответ на: комментарий от megabaks

>по поводу таких тем - а куда?
странный вопрос

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

3 года на лоре и не знаешь о существовании других разделов кроме толксов? :)

nu11 ★★★★★ ()
Ответ на: комментарий от 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 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.