Bug 15627 - broken alsasink in current gstreamer
Summary: broken alsasink in current gstreamer
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: gstreamer (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-12 20:45 MSD by Igor Zubkov
Modified: 2008-05-12 21:44 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Igor Zubkov 2008-05-12 20:45:08 MSD
Звук отвратительно скрипит при выводе звука через alsasink. Замена alsasink на
osssink решат проблему, но хочется вывод звука через alsa работал нормально.

Вот как я вызываю gst-launch:
$ gst-launch-0.10 filesrc location=Bullet\ for\ My\ Valentine\ -\ Room\ 409.mp3
! mad ! audioconvert ! osssink -- играет нормально

gst-launch-0.10 filesrc location=Bullet\ for\ My\ Valentine\ -\ Room\ 409.mp3 !
mad ! audioconvert ! alsasink -- скрипит

Версии:
[icesik@iceberg ~]$ rpm -q gstreamer
gstreamer-0.10.19-alt1
[icesik@iceberg ~]$ rpm -qa | grep gst-plugins
gst-plugins-tools-0.10.19-alt1
gst-plugins-bad-devel-0.10.7-alt1
gst-plugins-ugly-0.10.7-alt2
gst-plugins-good-devel-doc-0.10.8-alt1
gst-plugins-base-0.10.19-alt1
gst-plugins-network-0.10.0-alt2
gst-plugins-video-filters-0.10.0-alt2
gst-plugins-devel-0.10.19-alt1
gst-plugins-good-0.10.8-alt1
gst-plugins-video-formats-0.10.0-alt2
gst-plugins-test-0.10.0-alt2
gst-plugins-pango-0.10.19-alt1
gst-plugins-container-formats-0.10.0-alt2
gst-plugins-video-effects-0.10.0-alt2
gst-plugins-gnomevfs-0.10.19-alt1
gst-plugins-bad-0.10.7-alt1
gst-plugins-audio-filters-0.10.0-alt2
gst-plugins-audio-formats-0.10.0-alt2
gst-plugins-visualization-0.10.0-alt2
gst-plugins-libvisual-0.10.19-alt1
gst-plugins-gconf-0.10.8-alt1
gst-plugins-farsight-0.12.5-alt1
gst-plugins-all-0.10.0-alt2
gst-plugins-ugly-devel-doc-0.10.7-alt2
libgst-plugins-0.10.19-alt1
gst-plugins-subtitle-0.10.0-alt2
gst-plugins-tags-0.10.0-alt2
[icesik@iceberg ~]$ 

[icesik@iceberg ~]$ rpm -q libalsa
libalsa-1.0.15-alt1
[icesik@iceberg ~]$ 

[icesik@iceberg ~]$ uname -a
Linux iceberg.home 2.6.24-ice-wks-alt6 #1 SMP PREEMPT Mon Apr 28 02:04:43 MSD
2008 i686 GNU/Linux
[icesik@iceberg ~]$ 

2.6.24-ice-wks-alt6 не сильно отличается от 2.6.24-ice-wks-alt5 который в
Сизифе. ALSA модули там одинаковые. Такие же модули у std-def ядра.
Comment 1 Igor Zubkov 2008-05-12 20:45:29 MSD
reassign
Comment 2 Valery Inozemtsev 2008-05-12 20:53:47 MSD
не воспроизводится
Comment 3 Igor Zubkov 2008-05-12 21:00:06 MSD
(In reply to comment #2)
> не воспроизводится

на чём пытаешься воспроизводить:
1) ядро
2) libalsa

Я сейчас слушаю flac вот так:
$ gst-launch-0.10 filesrc location=01\ -\ Empy\ Walls.flac ! flacdec !
audioconvert ! alsasink -- проблем со звуком нет

Мне кажется что что-то сломано на пути mad ! alsasink

В gstreamer можно ещё чем-нибуть проиграть mp3 кроме mad?
Comment 4 Valery Inozemtsev 2008-05-12 21:08:40 MSD
$ rpmquery -a | grep "alsa.*1.0"
alsa-oss-1.0.15-alt1
kernel-modules-alsa-std-ng-1.0.16-alt3.132633.5
alsa-plugins-1.0.16-alt1
libalsa-devel-1.0.16-alt1
alsa-utils-1.0.16-alt1
libalsa-1.0.16-alt1
$ rpmquery -a kernel-image-\*
kernel-image-std-ng-2.6.25-alt5

$ gst-launch playbin 
uri=file:///home/valery/Documents/Music/Янка/ДягилеваЯна-Отбольшогоума.mp3
и пусть он сам разбирается чем и как воспроизводить
Comment 5 Igor Zubkov 2008-05-12 21:38:43 MSD
[icesik@iceberg (2005) A Beautiful Lie]$ gst-launch -v playbin
uri=file:///mnt/storage/Music/30\ Seconds\ To\ Mars/\(2005\)\ A\ Beautiful\
Lie/01\ -\ Attack.mp3 
Setting pipeline to PAUSED ...
/playbin0/decodebin0/typefind.src: caps = application/x-id3
Pipeline is PREROLLING ...
/playbin0/decodebin0/id3demux0.sink: caps = application/x-id3
/playbin0/decodebin0/mpegaudioparse0.sink: caps = audio/mpeg,
mpegversion=(int)1, layer=(int)3
/playbin0/selector_audio_src0: active-pad = NULL
/playbin0/decodebin0/mpegaudioparse0.src: caps = audio/mpeg, mpegversion=(int)1,
layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true
/playbin0/decodebin0/mad0.sink: caps = audio/mpeg, mpegversion=(int)1,
layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true
/playbin0/decodebin0/mad0.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/selector_audio_src0.sink0: caps = audio/x-raw-int,
endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32,
rate=(int)44100, channels=(int)2
/playbin0/decodebin0.src0: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/decodebin0.src0.proxypad1: caps = audio/x-raw-int,
endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32,
rate=(int)44100, channels=(int)2
/playbin0/selector_audio_src0.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/preroll_audio_src0.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/preroll_audio_src0.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/aconv.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/aconv.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin.sink.proxypad3: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/aresample.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/aresample.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/volume.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/volume.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/audiosink/audiosink-actual-sink-alsa.sink: caps =
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32,
depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/audiosink.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/audiosink.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
/playbin0/abin/audiosink.sink.proxypad2: caps = audio/x-raw-int,
endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32,
rate=(int)44100, channels=(int)2
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Caught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 29245354377 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/playbin0/abin/audiosink/audiosink-actual-sink-alsa.sink: caps = NULL
/playbin0/abin/audiosink.sink: caps = NULL
/playbin0/abin/volume.src: caps = NULL
/playbin0/abin/volume.sink: caps = NULL
/playbin0/abin/aresample.src: caps = NULL
/playbin0/abin/aresample.sink: caps = NULL
/playbin0/abin/aconv.src: caps = NULL
/playbin0/abin/aconv.sink: caps = NULL
/playbin0/abin.sink: caps = NULL
/playbin0/preroll_audio_src0.src: caps = NULL
/playbin0/preroll_audio_src0.sink: caps = NULL
/playbin0/selector_audio_src0.sink0: caps = NULL
/playbin0/selector_audio_src0.src: caps = NULL
/playbin0/decodebin0.src0: caps = NULL
/playbin0/decodebin0/mad0.src: caps = NULL
/playbin0/decodebin0/mad0.sink: caps = NULL
/playbin0/decodebin0/mpegaudioparse0.src: caps = NULL
/playbin0/decodebin0/mpegaudioparse0.sink: caps = NULL
/playbin0/decodebin0/id3demux0.src: caps = NULL
/playbin0/decodebin0/id3demux0.sink: caps = NULL
/playbin0/decodebin0/typefind.src: caps = NULL
Setting pipeline to NULL ...
FREEING pipeline ...
[icesik@iceberg (2005) A Beautiful Lie]$ 

Скрипит.

$ gst-launch filesrc location=01\ -\ Attack.mp3 ! mad ! audioconvert ! vorbisenc
! oggmux ! filesink location=music.ogg

$ ogg123 music.ogg -- не скрипит
$ yauap music.ogg -- скрипит

Надо поробовать обновить libalsa...
Comment 6 Igor Zubkov 2008-05-12 21:44:30 MSD
(In reply to comment #5)
> Надо поробовать обновить libalsa...

Обновление libalsa до 1.0.16 помогло.