2009年7月 6日

[plamo:29890] Re: vlc, juk locale patches

本多です

> 逆に,このあたりの問題がきちんと解決できれば,あわてて UTF-8 に移行する
> 必要も無さげな気がしてきた(笑

ええ、私もそう思います。機構としてはutfであろうがeucであろうが同じなのですから。。

> これで juk も使いものになりますね.ありがとうございます (_ _)


ああ、すいません。jukというかKDE multimediaに関してはphononのpatchも
必要でした。こちらはずいぶん昔にした事なので忘却しておりました。
このpatchもあてればjukは正常に動くはずです。もし挙動がascii nameのfileと異なっていたら
報告を!

* phonon-xxx/xine/xinestream.cpp
patchの内容は、urlがfile://ではじまる(つまりlocal file)の時はxine_openに
utf8 encodeからlocal locale encodeにしたfile名を渡します。

# install上注意があるのですが、installしたとき/opt/kde/lib/kde4/phonon-xine.soが残っていたら
# 消去しましょう。現在は/opt/kde/lib/kde4/plugins以下にinstallされるはずです。
# これが残っていると古いほうがpluginとして読み込まれますから悲惨な結果となります。
# 私もこれにはまった記憶があります。
---------------------------------------------------------------------------------
*** xinestream.cpp.old 2009-07-06 01:51:51.000000000 +0900
--- xinestream.cpp 2009-07-05 15:58:02.000000000 +0900
***************
*** 259,265 ****
--- 259,279 ----

// xine_open can call functions from ByteStream which will block waiting
for data.
//debug() << Q_FUNC_INFO << "xine_open(" << m_mrl.constData() << ")";
+ #ifdef ORIGINAL_CODE
if (xine_open(m_stream, m_mrl.constData()) == 0) {
+ #else
+ const char *target_url;
+ if (m_mrl.startsWith("file:/"))
+ {
+ QByteArray s_data = QByteArray::fromPercentEncoding(m_mrl);
+ QString target_qpath = QString::fromUtf8(s_data.constData());
+ QByteArray target_path = target_qpath.toLocal8Bit();
+ target_url = target_path.constData();
+ }
+ else
+ target_url = m_mrl.constData();
+ if (xine_open(m_stream, target_url) == 0) {
+ #endif
debug() << Q_FUNC_INFO << "xine_open failed for m_mrl =" <<
m_mrl.constData();
switch (xine_get_error(m_stream)) {
case XINE_ERROR_NONE:
----------------------------------------------------------------------------------------

投稿者 xml-rpc : 2009年7月 6日 02:01
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86439
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。