Hi all,
For a recent project I’ve had to port our mopidy (2.1.0) player to a docker container on an aarch64 system (running Linux 3.14.29). For some weird reason, which I can’t find, Mopidy only plays the tracks (local files as well as remote streams) when making the following adjustment to the [audio][output] config var:
- alsasink buffer-time=100
It stops working when I remove the ‘buffer-time=100’ part… I’ve been trying to find the cause, but so far without any luck. What I’ve tried:
- Run
gst-launch-1.0 playbin uri=file:///data/songs/89d0e7ea42f86b762520f839933fd7a5 audio-sink="alsasink" volume="0.1"
- Run
gst-launch-1.0 filesrc location=/data/songs/011d56f9a4ff26b87068a7ec7c4115cc ! mad ! alsasink
- Run
gst-launch-1.0 -v audiotestsrc ! audioconvert ! alsasink
All of the commands above produce output as I would expect: normal playback with a normal CPU utilization.
Below you’ll find the debug logs from Mopidy when running with GST_DEBUG=3:
obj, end = self.scan_once(s, idx)
ValueError: Unterminated string starting at: line 1 column 36855 (char 36854)
0:00:12.965400997 21 0x7f8c05e360 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet
0:00:12.974942663 21 0x7f8c05e360 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet
0:00:12.975852670 21 0x7f8c0614a0 WARN typefind gsttypefindelement.c:798:gst_type_find_get_extension:<typefind> could not find uri extension in file:///data/songs/89d0e7ea42f86b762520f839933fd7a5
0:00:12.986277552 21 0x7f8c0614a0 WARN alsa conf.c:4705:snd_config_expand: alsalib error: Unknown parameters {AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:12.986375136 21 0x7f8c0614a0 WARN alsa pcm.c:2239:snd_pcm_open_noupdate: alsalib error: Unknown PCM default:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:13.016386312 21 0x7f681db630 FIXME id3v2 gstid3tag.c:142:gst_tag_from_id3_tag: Cannot map ID3v2 tag 'TDRL' to GStreamer tag
0:00:13.052614416 21 0x24c1b140 WARN playsink gstplaysink.c:2862:gen_audio_chain:<playsink> warning: No volume control found
0:00:13.052718459 21 0x24c1b140 WARN playsink gstplaysink.c:2862:gen_audio_chain:<playsink> warning: Volume/mute is not available
WARNING GStreamer warning: gst-stream-error-quark: No volume control found (3)
0:00:13.084155939 21 0x7f5405a800 WARN alsa gstalsasink.c:496:set_hwparams:<alsasink0> warning: Unable to set buffer time 200000 for playback: Invalid argument
0:00:13.085917746 21 0x7f5405a800 WARN alsa pcm_hw.c:1209:snd_pcm_hw_get_chmap: alsalib error: Cannot read Channel Map ctl
: No such file or directory
WARNING GStreamer warning: gst-resource-error-quark: Could not get/set settings from/on resource. (13)
Comparing that with the logs from my manually ran commands it all looks quit the same:
Setting pipeline to PAUSED ...
0:00:00.096269653 48 0xd3372f0 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.100070012 48 0xd3372f0 WARN basesrc gstbasesrc.c:3470:gst_base_src_start_complete:<source> pad not activated yet
Pipeline is PREROLLING ...
0:00:00.102216735 48 0xd3174a0 WARN typefind gsttypefindelement.c:798:gst_type_find_get_extension:<typefind> could not find uri extension in file:///data/songs/89d0e7ea42f86b762520f839933fd7a5
0:00:00.113443603 48 0xd3174a0 WARN alsa conf.c:4705:snd_config_expand: alsalib error: Unknown parameters {AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.113604896 48 0xd3174a0 WARN alsa pcm.c:2239:snd_pcm_open_noupdate: alsalib error: Unknown PCM default:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.140715455 48 0x7f7c06b8f0 FIXME id3v2 gstid3tag.c:142:gst_tag_from_id3_tag: Cannot map ID3v2 tag 'TDRL' to GStreamer tag
0:00:00.180083556 48 0xd24c590 WARN alsa gstalsasink.c:496:set_hwparams:<alsasink0> warning: Unable to set buffer time 200000 for playback: Invalid argument
WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAlsaSink:alsasink0: Could not get/set settings from/on resource.
Additional debug info:
gstalsasink.c(496): set_hwparams (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAlsaSink:alsasink0:
Unable to set buffer time 200000 for playback: Invalid argument
0:00:00.182093111 48 0xd24c590 WARN alsa pcm_hw.c:1209:snd_pcm_hw_get_chmap: alsalib error: Cannot read Channel Map ctl
: No such file or directory
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Anyone who has any idea what could be going on? I’ve reached a dead-end at the moment…
Thanks!