2009年7月12日

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

本多です

すいません。何度も

# gnomeの更新すごいですね。。。。

ええと、phononの修正。前回ので一応動くのですが、横着があって(ex. filenameに#があるとダメ)
media urlを正しくhandlingしていません。せっかくPlamoに反映して頂いたので

恥しい場当たりなpatchはやはり修正したほうが良いと思うのでこちらに変えていただけませんか?
こちらは王道で(おそらく)あらゆる場合にOKです。

内容:Media urlの

file:///foo/bar/local_name[#stream_plugins]

の形を正しく扱えるようにしています。

あと、こういう個人的なpatchの処理がどうなってるのか
知りたい時もあると思います。phonon libに関しては CMAKE_BUILD_TYPE=Releaseで作成していても次の2つの環境変数
export PHONON_XINE_DEBUG=3
export PHONON_XINE_VERBOSITY=3
を設定すると動的に様々なdebug messagesを見る事が出来ます。今回のpatchによってdecode->encodeされた
xine_openに渡るurlもこれで見る事が出来ますから、不安な場合は確認してみて下さい。

------------------------------------------------------------------------------------------------
*** xinestream.cpp.old 2009-07-12 01:37:11.000000000 +0900
--- xinestream.cpp 2009-07-11 22:13:27.000000000 +0900
***************
*** 259,265 ****
--- 259,293 ----

// 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_string;
+ QByteArray target_mrl = "file:/";
+
+ if (m_mrl.startsWith(target_mrl))
+ {
+ // Don't confuse QByteArray with QString, and do NOT employ
+ // an implicit conversion between both objects.
+ QString target_qpath = QString::fromUtf8(m_mrl);
+ target_qpath.remove(0,6);
+ QStringList components_list = target_qpath.split("#");
+
+ QByteArray s_data =
QByteArray::fromPercentEncoding(components_list[0].toUtf8());
+ QString sq_data = QString::fromUtf8(s_data.constData());
+ debug() << Q_FUNC_INFO << "Target path =" << sq_data;
+ components_list[0] =
+
QString::fromAscii(sq_data.toLocal8Bit().toPercentEncoding("/"));
+
+ target_mrl.append(components_list.join("#").toUtf8());
+ target_string = target_mrl.constData();
+ debug() << Q_FUNC_INFO << "Target path (encoded) = " <<
target_string;
+ }
+ else
+ target_string = m_mrl.constData();
+
+ if (xine_open(m_stream, target_string) == 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:
***************
*** 312,318 ****
--- 340,350 ----
debug() << Q_FUNC_INFO << "creating xine_stream with null video
port";
videoPort = nullVideoPort();
}
+ #ifdef ORIGINAL_CODE
m_deinterlacer = xine_post_init(m_xine, "tvtime", 1, 0, &videoPort);
+ #else
+ m_deinterlacer = xine_post_init(m_xine,
"tvtime:method=LinearBlend,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1",
1, 0, &videoPort);
+ #endif
if (m_deinterlacer) {
// set method
xine_post_in_t *paraInput = xine_post_input(m_deinterlacer,
"parameters");
----------------------------------------------------------------------------------------------------------------

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




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