GNOME Bugzilla – Bug 428901
[icydemux] broken tags for non-UTF-8/ISO-8859-1-using radio streams
Last modified: 2007-04-12 20:51:49 UTC
Please describe the problem: When I play a streaming station with the istream panel applet, I can see songs' title shown with unreadable characters. My system's LANG is en_US.UTF-8, and the station I played usually broadcasts Korean(mostly cp949 tagged) songs. I know there is no charset info on the stream to begin with because it's usual case by shoutcast and icecast streamings - the info is conditional by spec. But, because I can guess those songs tagged with Korean, starting istream given with LANG=ko_KR.euckr brings song's title look OK. But, problem is with normal starting of the istream, this is because, I looked, that icydemux's magling functions try to convert, 1) $LANG to UTF-8 2) iso8859-1 to UTF-8 if 1) failed. As you may see now, 1) mine is already UTF-8 and it doesn't match with song's tagging charset(cp949) either, 2) makes more trouble - cp949 can't be iso8859-1. I think, this is a common problem to at least for CJK (Chinese, Japanese and Korean) users who use their UTF-8 system and listen streaming station running on Windows so maybe already filed for bug. But, I am new here and this is my first bug report to Gnome so wasn't familiar to check duplications. Steps to reproduce: 1. install the istream panel applet 2. edit ~/.istream file to add this entry to top, mukulcast (KPop)=http://mukulcast.com 3. play the mukulcast, after openings you will see unreadable song's title for Korean. Actual results: Title of songs can't be readable for Korean. Expected results: No matter I start the istream applet with or without LANG env set, the title should be readable for Korean. Does this happen every time? Yes. Other information: I looked, http://bugzilla.gnome.org/show_bug.cgi?id=428689 this patch maybe targeted for files, but the idea of the patch generally fix this problem too if it's for icydemux, I believe. Somewhere need to manually store preferred charset for conversion, since currently no valid charset info provided by LANG nor streaming for this reported case.
You should be able to make this work by setting the GST_ICY_TAG_ENCODING environment variable now: 2007-04-12 Tim-Philipp Müller <tim at centricular dot net> * gst/icydemux/gsticydemux.c: (notgst_tag_freeform_string_to_utf8), (gst_icydemux_unicodify): If the metadata strings we get in the stream are not UTF-8, try to interpret them according to the character encodings specified in the GST_ICY_TAG_ENCODING and GST_TAG_ENCODING environment variables, and only fall back to locale/ISO-8859-1 if those aren't set or don't work. Should fix #428901.
Any chance you could provide a sample URI/web site, so I can make sure it works as expected?
Thanks for quick fix. one is there on step 2 for reproducing, and in case here is 2nd URI for your test. http://mukul.inlive.co.kr/listen.pls
Seems to work: $ GST_ICY_TAG_ENCODING=CP949 gst-launch-0.10 -t playbin uri=http://c27.inlive.co.kr:33000 ... FOUND TAG : found by element "icydemux0". title: 서문탁 - 흔적 ...
Confirm the fix worked with my plugin package built, thanks.