2009年7月 3日

[plamo:29886] vlc, juk locale patches

本多です

# あれ? 昨日投稿したつもりが流れません。再投稿してみます。。
# やはり流れないみたいですね。添付fileはだめなのかな?
# 今度は添付なしでやってみます。重複した場合許してくださいませ。。。。

今回、前から気になっていたvlc & jukの日本語fileの不具合
を修正してみましたので添付します。 必要があれば試してみてください。

なおこれらの修正は日本語に特化したものではなくて、localeに素直に対応
させたものです。ですからutfその他の環境でも問題は発生しません。
以下の 3 filesです。添付から直接挿入にしたので見にくいですが許してください。

1) VLC (0.9.9a)
* (VLC) src/text/unicode.c

"directoryを読みこむ"でfile名が正しく扱われない点を修正。

#なおplaylistに読みこまれる訳ですが、playlistを使うと終了時に
#seg faultが起きます。これは、もともとあるbugでこの修正の為起きている訳では
#ありません。実害はないのでほってあります。
----------------------------------------------------------------
*** dvdnav.c.old 2009-07-03 13:53:00.000000000 +0900
--- dvdnav.c 2009-07-02 18:25:25.000000000 +0900
***************
*** 1435,1441 ****
--- 1435,1445 ----
return VLC_SUCCESS;
}

+ #ifdef ORIGINAL_CODE
if( utf8_stat( psz_name, &stat_info ) || !S_ISREG( stat_info.st_mode ) )
+ #else
+ if( stat( psz_name, &stat_info ) || !S_ISREG( stat_info.st_mode ) )
+ #endif
{
/* Let dvdnav_open() do the probing */
return VLC_SUCCESS;
----------------------------------------------------------------------------------

* (VLC) modules/access/dvdnav.c

日本語名の付いたfileはすべてdvdnavがopenを試みてしまうbugを修正。
このbugの為、再生時に音飛びを起してしまい耳ざわりです。

#Extra: あとvlcのconfigure に --enable-faadを付けないとmp4aの再生(mov file)
が出来無いです。 せっかくfaadが追加されたのですから。。。

----------------------------------------------------------------------------------
*** unicode.c.old 2009-07-03 13:53:56.000000000 +0900
--- unicode.c 2009-07-02 18:25:31.000000000 +0900
***************
*** 470,476 ****
--- 470,491 ----
if( ent == NULL )
return NULL;

+ #ifdef ORIGINAL_CODE
return vlc_fix_readdir( ent->d_name );
+ #else
+ {
+ const char *utf8_name = FromLocale( ent->d_name );
+
+ if (utf8_name != NULL)
+ {
+ char *result_name = vlc_fix_readdir ( utf8_name );
+ LocaleFree (utf8_name);
+ return result_name;
+ }
+ else
+ return vlc_fix_readdir( ent->d_name );
+ }
+ #endif
#endif
}
----------------------------------------------------------------------------------

2) juk (kdemultimedia-4.2.4)

* (JUK) juk/playermanager.cpp

a)日本語名fileの連続再生で2番目のfileを読み込めずskipするbugを修正。
b)stopを実行すると以降playで音が出なくなるのを回避(本当の修正はphononですべきですが)

----------------------------------------------------------------------------------
*** playermanager.cpp.old 2009-07-03 13:53:34.000000000 +0900
--- playermanager.cpp 2009-07-02 18:24:29.000000000 +0900
***************
*** 227,232 ****
--- 227,235 ----
// Ensure we're not trying to fade if we were previously stopped or end
// up not crossfading.
m_fader->setVolume(volume());
+ #ifndef ORIGINAL_CODE
+ m_fader->fadeTo(volume(), 10);
+ #endif

if(file.isNull()) {
if(paused())
***************
*** 654,660 ****
--- 657,667 ----
if(m_sliderAction->volumeSlider())
m_sliderAction->volumeSlider()->setAudioOutput(m_output);

+ #ifdef ORIGINAL_CODE
m_media->setCurrentSource(newFile.absFilePath());
+ #else
+ m_media->setCurrentSource(KUrl::fromPath(newFile.absFilePath()));
+ #endif
m_media->play();

oldFader->fadeTo(0.0f, 2000);
----------------------------------------------------------------------------------

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




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