2.4.0-beta2: the final beta release

This is the last beta release for 2.4.0 version. It contains fixes for few bugs and few new minor features. Most important changes are fixes for displaying non-ASCII characters. Thanks to people who reported bugs.

Full list of changes:

  • Workaround for encoding of ID3v1 tags. New options: UseRCC - to use librcc for ID3v1 reencoding, ID3v1TagsEncoding - assumed encoding for ID3v1 tags.
  • Added UseCursorSelection option (default: no) to display cursor on the selected file. This is useful with braille displays.
  • Added SetXtermTitle option (disable/enable setting xterm title).
  • Fixed displaying menu title that contains non-ASCII characters.
  • Fixed next/previous commands when the position of the current file has changed.
  • Fixed segfault when adding URLs to the playlist using the -a command line option.
  • Fixed compilation with ffmpeg-config (--plugin-libs instead of --libs).
  • wcswidth() is required to compile MOC.

Comments

thank you for the release. i am still however unable to play internet streams (e. g. http://amp1.cesnet.cz:8000/cro3.ogg or mms streams)

It just works for me. Please give me more details. I think the server crashes, so a backtrace could be useful as described here: http://moc.daper.net/node/96

--
Damian Pietras - MOC developer

even after setting ulimit -c to 10000 the core is not created. here are the steps how to reproduce this on my machine:

1. run mocp
2. hit o
3. enter (paste) stream address (http://amp1.cesnet.cz:8000/cro3.ogg)
4. hit enter

the following error message follows:

"FATAL_ERROR: Can't receive value from the server."

and i find myself back at the terminal. my specs: slackware linux 10.2, kernel 2.4.30, MOC beta2 installed from sources

I run slackware 10.1 with the same kernel in qemu and works. Maybe log files can be useful.

--
Damian Pietras - MOC developer

$ tail -n 8 mocp_server_log
Jan 26 10:43:03.799140: audio.c:398 play_thread(): Playing item 0: http://amp1.cesnet.cz:8000/cro3.ogg
Jan 26 10:43:03.799163: server.c:251 wake_up_server(): Waking up the server
Jan 26 10:43:03.799233: server.c:1257 server_loop(): Got 'wake up'
Jan 26 10:43:03.799257: server.c:436 send_events(): Flushing events for client 0
Jan 26 10:43:03.803541: io_curl.c:264 io_curl_open(): curl_multi_add_handle() failed
Jan 26 10:43:03.803604: decoder.c:119 get_decoder_by_content(): Testing the stream...
Jan 26 10:43:03.803623: io.c:663 io_peek(): Reading...
Jan 26 10:43:03.803656: common.c:55 fatal(): FATAL ERROR: You can't peek data directly from curl

$ tail -n 2 mocp_client_log
Jan 26 10:43:03.805308: protocol.c:63 get_int(): recv() failed when getting int: Connection reset by peer
Jan 26 10:43:03.805371: common.c:55 fatal(): FATAL ERROR: Can't receive value from the server.

What version of libcurl do you use (curl-config --version)?
--
Damian Pietras - MOC developer

libcurl 7.12.1

I have 7.12.2, this package is available for slackware, try it: ftp://ftp.slackware.com/pub/slackware/slackware-current/slackware/n/curl-7.12.2-i486-2.tgz
--
Damian Pietras - MOC developer

thank you, that made the trick. how long do you think before mms streams support is supported? thanks. /j/

I don't have any idea, I haven't looked at it. mms will probably not fit well in the current MOC design, so it's not as easy.
--
Damian Pietras - MOC developer

PressTV

$ mplayer mms://217.218.67.242/audiostream

$ gst-launch playbin uri=mms://217.218.67.242/audiostream
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock

RadioTray has a script which seem to handle the mms protocol with urllib2
http://radiotray.sf.net/

File: DummyMMSHandler.py

##########################################################################
# Copyright 2009 Carlos Ribeiro
#
# This file is part of Radio Tray
#
# Radio Tray is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 1 of the License, or
# (at your option) any later version.
#
# Radio Tray is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Radio Tray. If not, see .
#
##########################################################################
import urllib2

class DummyMMSHandler(urllib2.BaseHandler):

def mms_open(self, request):
print request.get_full_url()
raise urllib2.URLError("MMS REDIRECT:"+request.get_full_url())