alsasink can't get appropiate sound format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hello, all?

I have trouble with alsasink plugin (I just guessed, I'm a newbie).

First, my circumstances are,

gst-plugins-base-0.10.20
gstreamer-0.10.20
alsa-lib-1.0.15
kernel 2.6.29-rc2

CPU : PXA270
H/W audio codec : UCB1400 AC97 codec

My problem is alsasink dosen't produce appropriate sound.

Left channel : noise (simillar with white noise)
Right channel : play sound but slow (2 times slower... I guess)

First I checked operation of sound device with speaker-test of
alsa-utils and it works well.
Here is log.

---
root at mgpmp:~# speaker-test -c 2 -t wav

speaker-test 1.0.15

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 8 to 32768
Period size range from 8 to 2040
Using max buffer size 32768
Periods = 4
was set period_size = 1024
was set buffer_size = 32768
 0 - Front Left
 1 - Front Right
---

Also, I can play well with ALSA's oss compatibility module (snd-oss-pcm).

Here is gstreamers log. (long)

---
root at mgpmp:~# gst-launch playbin uri=file:///home/root/07\ Red\
Dress.mp3       Setting pipeline to PAUSED ...
0:00:00.933727077   716    0x15050 DEBUG                 alsa
gstalsaplugin.c:75:plugin_init: binding text domain
gst-plugins-base-0.10 to locale dir /usr/share/locale
0:00:00.940897231   716    0x15050 DEBUG                 alsa
gstalsasink.c:276:gst_alsasink_init:<GstAlsaSink at 0xac060> initializing
alsasink
0:00:00.942173538   716    0x15050 DEBUG                 alsa
gstalsasink.c:306:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
device not open, using template caps
0:00:01.001892308   716    0x15050 LOG                   alsa
gstalsasink.c:681:gst_alsasink_open:<audiosink-actual-sink-alsa>
Opened device default
0:00:01.059183077   716    0x15050 WARN                  alsa
gstalsa.c:124:gst_alsa_detect_formats:<audiosink-actual-sink-alsa>
skipping non-int format
0:00:01.060123077   716    0x15050 LOG                   alsa
gstalsa.c:30:gst_alsa_detect_rates:<audiosink-actual-sink-alsa>
probing sample rates ...
0:00:01.060633538   716    0x15050 DEBUG                 alsa
gstalsa.c:49:gst_alsa_detect_rates:<audiosink-actual-sink-alsa> Min.
rate = 4000 (4000)
0:00:01.061093538   716    0x15050 DEBUG                 alsa
gstalsa.c:50:gst_alsa_detect_rates:<audiosink-actual-sink-alsa> Max.
rate = 2147483647 (-1)
0:00:01.061746461   716    0x15050 LOG                   alsa
gstalsa.c:265:gst_alsa_detect_channels:<audiosink-actual-sink-alsa>
probing channels ...
0:00:01.062253846   716    0x15050 DEBUG                 alsa
gstalsa.c:309:gst_alsa_detect_channels:<audiosink-actual-sink-alsa>
Min. channels = 1 (1)
0:00:01.062769538   716    0x15050 DEBUG                 alsa
gstalsa.c:310:gst_alsa_detect_channels:<audiosink-actual-sink-alsa>
Max. channels = 8 (10000)
0:00:01.069656308   716    0x15050 DEBUG                 alsa
gstalsa.c:388:gst_alsa_open_iec958_pcm:<audiosink-actual-sink-alsa>
Generated device string "iec958:{AES0 0x02 AES1 0x82 AES2 0x00 AES3
0x02}"
0:00:01.070788308   716    0x15050 WARN                  alsa
conf.c:3949:snd_config_expand: alsalib error: Unknown parameters {AES0
0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:01.071308000   716    0x15050 WARN                  alsa
pcm.c:2145:snd_pcm_open_noupdate: alsalib error: Unknown PCM
iec958:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:01.071997231   716    0x15050 DEBUG                 alsa
gstalsa.c:394:gst_alsa_open_iec958_pcm:<audiosink-actual-sink-alsa>
failed opening IEC958 device: Invalid argument
0:00:01.072552615   716    0x15050 INFO                  alsa
gstalsasink.c:326:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
returning caps audio/x-raw-int, endianness=(int)1234,
signed=(boolean){ true, false }, width=(int)32, depth=(int)32,
rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ];
audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true, false
}, width=(int)32, depth=(int)32, rate=(int)[ 4000, 2147483647 ],
channels=(int)3, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE
>; audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true,
false }, width=(int)32, depth=(int)32, rate=(int)[ 4000, 2147483647 ],
channels=(int)4, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)32,
depth=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)6,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)32,
depth=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)8,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)24,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ];
audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true, false
}, width=(int)24, depth=(int)24, rate=(int)[ 4000, 2147483647 ],
channels=(int)3, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE
>; audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true,
false }, width=(int)24, depth=(int)24, rate=(int)[ 4000, 2147483647 ],
channels=(int)4, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)24,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)6,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)24,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)8,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)32,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ];
audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true, false
}, width=(int)32, depth=(int)24, rate=(int)[ 4000, 2147483647 ],
channels=(int)3, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE
>; audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true,
false }, width=(int)32, depth=(int)24, rate=(int)[ 4000, 2147483647 ],
channels=(int)4, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)32,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)6,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)32,
depth=(int)24, rate=(int)[ 4000, 2147483647 ], channels=(int)8,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)16,
depth=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ];
audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true, false
}, width=(int)16, depth=(int)16, rate=(int)[ 4000, 2147483647 ],
channels=(int)3, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE
>; audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true,
false }, width=(int)16, depth=(int)16, rate=(int)[ 4000, 2147483647 ],
channels=(int)4, channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)16,
depth=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)6,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE >; audio/x-raw-int,
endianness=(int)1234, signed=(boolean){ true, false }, width=(int)16,
depth=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)8,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >; audio/x-raw-int,
signed=(boolean){ true, false }, width=(int)8, depth=(int)8,
rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ];
audio/x-raw-int, signed=(boolean){ true, false }, width=(int)8,
depth=(int)8, rate=(int)[ 4000, 2147483647 ], channels=(int)3,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE
>; audio/x-raw-int, signed=(boolean){ true, false }, width=(int)8,
depth=(int)8, rate=(int)[ 4000, 2147483647 ], channels=(int)4,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >; audio/x-raw-int,
signed=(boolean){ true, false }, width=(int)8, depth=(int)8,
rate=(int)[ 4000, 2147483647 ], channels=(int)6,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE >; audio/x-raw-int, signed=(boolean){
true, false }, width=(int)8, depth=(int)8, rate=(int)[ 4000,
2147483647 ], channels=(int)8,
channel-positions=(GstAudioChannelPosition)<
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >
0:00:01.780125846   716    0x15050 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
Pipeline is PREROLLING ...
0:00:02.020555692   716    0x62888 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.121833231   716    0x62888 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.265676000   716    0x62888 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.403471693   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.482740615   716    0x62888 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.677360308   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.741654461   716    0x62888 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.858667077   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:02.982380000   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:03.110284923   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:03.218500308   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:03.262078461   716    0xba968 LOG                   alsa
gstalsasink.c:311:gst_alsasink_getcaps:<audiosink-actual-sink-alsa>
Returning cached caps
0:00:03.324798769   716    0xba968 DEBUG                 alsa
gstalsasink.c:619:alsasink_parse_spec:<audiosink-actual-sink-alsa>
Linear format : depth=32, width=32, sign=1, bigend=0
0:00:03.325648308   716    0xba968 DEBUG                 alsa
gstalsasink.c:343:set_hwparams:<audiosink-actual-sink-alsa>
Negotiating to 2 channels @ 44100 Hz (format = S32_LE) SPDIF (0)
0:00:03.329065231   716    0xba968 DEBUG                 alsa
gstalsasink.c:387:set_hwparams:<audiosink-actual-sink-alsa> buffer
time 200000, min 90, max 371520
0:00:03.329612923   716    0xba968 DEBUG                 alsa
gstalsasink.c:393:set_hwparams:<audiosink-actual-sink-alsa> period
time 10000, min 90, max 23130
0:00:03.330100615   716    0xba968 DEBUG                 alsa
gstalsasink.c:398:set_hwparams:<audiosink-actual-sink-alsa> periods
min 0, max 4096
0:00:03.331443077   716    0xba968 DEBUG                 alsa
gstalsasink.c:414:set_hwparams:<audiosink-actual-sink-alsa> buffer
time 200000
0:00:03.333042770   716    0xba968 DEBUG                 alsa
gstalsasink.c:427:set_hwparams:<audiosink-actual-sink-alsa> period
time 9523
0:00:03.353240308   716    0xba968 DEBUG                 alsa
gstalsasink.c:451:set_hwparams:<audiosink-actual-sink-alsa> buffer
size 8820, period size 420
0:00:03.354189539   716    0xba968 DEBUG                 alsa
gstalsasink.c:738:gst_alsasink_prepare:<audiosink-actual-sink-alsa>
Hardware setup:
 stream       : PLAYBACK
 access       : RW_INTERLEAVED
 format       : S32_LE
 subformat    : STD
 channels     : 2
 rate         : 44100
 exact rate   : 44100 (44100/1)
 msbits       : 32
 buffer_size  : 8820
 period_size  : 420
 period_time  : 9523
 tick_time    : 0

0:00:03.354938154   716    0xba968 DEBUG                 alsa
gstalsasink.c:743:gst_alsasink_prepare:<audiosink-actual-sink-alsa>
Software setup:
 tstamp_mode  : NONE
 period_step  : 1
 sleep_min    : 0
 avail_min    : 420
 xfer_align   : 1
 start_threshold  : 8820
 stop_threshold   : 8820
 silence_threshold: 0
 silence_size : 0
 boundary     : 1156055040

Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
0:00:03.430652923   716    0x5f658 LOG                   alsa
gstalsasink.c:893:gst_alsasink_write:<audiosink-actual-sink-alsa>
received audio samples buffer of 3360 bytes
0:00:03.431441231   716    0x5f658 DEBUG                 alsa
gstalsasink.c:901:gst_alsasink_write:<audiosink-actual-sink-alsa>
written 420 frames out of 420
---

Currently, I think " format       : S32_LE" is wrong.
" format       : S16_LE" will be adequate.

But I can't determine what is the cause of fault (alsasink, somewhat
outdated UCB1400 driver, ALSA-lib).

I want to someone advise me for proper debugging points.

Any little help will be really appreciated.

I already post this message to gst-devel, but I'm not sure where is
the most proper place, so I repost this here again.

unsik Kim




[Index of Archives]     [Linux Embedded]     [Linux ARM Kernel]     [Linux for ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux Media]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux