« 2016年7月 | トップページ | 2016年9月 »

2016年8月

2016年8月19日 (金)

Ver.1.5.6 リリース

以下からダウンロードできます。(Windows/Linux/Mac版)

https://github.com/funfun-dc5/qtbrynhildr/releases

Ver.1.2.8 修正時のポカミスが原因でネットワーク接続が切れた場合の再接続機能が正常動作しなくなっていました。

UACによる制御が入り強制的にサーバとの接続が切られた場合に自動で再接続しないので手動で「切断」-> 「接続」を行うか、Qt Brynhildrを再起動しなければならないことになっていました。

主な変更は以下です。

[不具合修正]
・ネットワーク通信の自動再接続処理が正常に行えない不具合修正(Ver.1.2.8からVer.1.5.6-RC1)

[その他変更]
・Qt5.7.0でビルドするように変更(Linux(x86)版のみ5.4.2のまま)
・Mac版の制限事項をドキュメントに追加


ポカミスの内容はクラスのメンバ関数宣言で派生先(子クラス)でオーバライド可能なメンバ関数であることを示す"virtual"を付け忘れていたという酷いものでした…。当然オーバライドされていて呼び出されていると思っていた処理が全然呼び出されていなかったというオチです。

Mac版では上記の修正ミス以外にBSD socketへの対応が必要でした。ネットワーク接続を確立する時にリトライを何度かすることがあるのですがBSDベースの実装では一度失敗したソケット記述子はcloseして新たにソケット記述子を取得して再度トライする必要があるのですね。一度失敗したソケット記述子は永遠に失敗し続けると…

WinSock2やLinuxでは一度失敗したソケット記述子をそのまま使っても問題なさそうです。

-----------------------------------------------------------------------------------
[SHA256SUM]
-----------------------------------------------------------------------------------
9bbad3803efcc9255091d8eff1bd41c53103e32714bea090cd8b00575e2afdb4 *QtBrynhildr-linux_x64-v156.run

c48e6dd724e3d302f3a6de037bc402ea9aced6ef4234277193bd1851e85c3199 *QtBrynhildr-linux_x86-v156.run

30144f5ba6bf4f1572c90bb9b306d4e82ede2f5003eed1fde618b6edad2b2a0d *QtBrynhildr-macosx_x64-v156.dmg

652e0c2e59b20ff1e6916053d6a7eca8159eeabfa18a3922e301c3543e0e18db *QtBrynhildr-windows-v156.exe

2016年8月 2日 (火)

CELTライブラリをビルドする その4

modeが0ということは

mode = celt_mode_create(44100, 256, &error)

という一文が失敗しているようです。失敗の原因はerrorに設定されて戻されるようなのでこの値を表示させてみると"-1"という値でした。

libceltのソースコードを眺めるとerrorという変数にはcelt.hに定義されているCELT_xxxxxという値がエラーコードとして設定されるようです。"-1"という値はCELT_BAD_ARGという名前で定義されていました。つまり、不正な引数が渡されているということのようですね。

READMEを読むと第二引数で渡している値256は開発中のテストでも利用されている代表的な値だと書いてあるので引数としては問題なさそうです。となると怪しい引数は第一引数の"44100"という値だということになりますがCDのサンプリングレートである44.1KHzが怪しいとは思えなかったのですが…

./configure --help でオプションをよく見ると、

--enable-custom-modes Enable non-Opus modes, like 44.1 kHz and powers of two

というのがありましたヽ(´▽`)/

結局以下のオプションを付けて、configure し直しました。

--enable-custom-modes --disable-oggtest

上記のように指定してもtoolsの下でmakeしようとするので、Makefileを手で修正しました。

SUBDIRS = libcelt tests tools

SUBDIRS = libcelt tests

makeして出来上がったlibcelt0.a と 2つのヘッダーファイル(celt.h/celt_types.h)を前回と同様にコピーしました。
これでサンプリングレートに44.1KHzも指定できるようになったような気がします。

(注)
前回必要と書いた celt_header.h は不要でした…

« 2016年7月 | トップページ | 2016年9月 »