C++

OBS複数サイト同時配信プラグイン(ソースコード付き)

1. 現状 1.1. OBS複数起動 1.2. OBSの録画機能を使ってURLに出力する 1.3. nginx-rtmpで自前中継サーバーを立つ 1.4. Restream.ioのサービスを利用する 1.5. OBSの代わりにXSplitを利用する 1.6. RtmpRelayerを利用する 2. 自作プラグイン 2.1 …

デレステ譜面フィルター

久しさ記事を書いた。 最近デレステを遊んだ。私は大学生のときから音ゲーに興味が起こる。 そしてネット友はデレステのスクリーンショットを見てくれたあと、始めた。ユビート遊んだとき、Jubeat Analyzerというツールがあるが、デレステにそんなツールはな…

特定な場合で仮想メソッドの呼び出しを高速化する方法

C++

一昨日に考えたことです。 CRC16の計算に、こういうインターフェイスを設計した。class ICrc16 { public: virtual ~ICrc16() = 0 {} virtual void ProcessBit(bool val) = 0; virtual void ProcessByte(char val) = 0; virtual void ProcessBlock(char* ptr,…

Boost.Spirit.Qiで自作int型パーサーの使用

Boost.Spirit.Qiはパーサー作成のライブラリです。 このライブラリの説明書に、主に文字列の解析で説明した。 ほかの型も解析できると思うが、今試した。int型の解析器で練習してた。いろいろの問題に会ったが最後にできた。まず、基本のパーサーを作る。Qi…

C++でスタックでメモリ確保

C++

動的配列を作るとき、普段でnewとかmallocとか使う。 それはヒープからメモリブロックを取得するのです。 小さいメモリブロックを取得する時、性能的にスタックから取得より低いと思う。スタックからメモリブロックの取得は、allocaと言う関数がありますが、…

mciSendStringでMP3再生するときID3v2のせいで起こる遅延の計算(C++コード付き)

昨日言ったこと。 自分で書いた計算のC++コードは大体この感じ double CheckMp3_mciSendStringWorkAround(std::istream& mp3file) { char id3[3]; mp3file.read(id3, 3); if(mp3file.gcount() != 3) throw MyException("Fail to read id3v2 tag"); if(std::e…

昨日書いた文字列コード変換のこと・・・

C++

mbstate_t state;と書いたよね。それじゃだめです。 よくみると、このmbstate_tはただのintです。 構造関数がありません。 ローカル変数なので初期化しなければならない。 おかしい変換結果になるよ。 だからmbstate_t state = 0;と書けばいい。デフォルトの…

C++で文字列コードを変換する

C++

最近、jubeat analyzerの譜面からyubiosiの譜面への変換機を作った。 その中に、文字列コードの問題に会った。jubeat analyzerの譜面は、Shift-JISコードのテキストファイルだ。 私の使っているOSは中国語のだ。だから読み込んだ文字列は化けになる。ネッ…

STLのコンテナで自作のallocatorを使う

C++

特に理由もなく、突然自作allocatorをSTLコンテナ、文字列で試したいです。STLで、デフォルトのstd::allocatorがある。vectorを使う時、allocatorを指定しなかったらそれを使う。 VC2010のSTLのvectorヘーダに、こういうコードがある template<class _Ty, class _Ax = allocator<_Ty> > class vecto</class>…

boost::asioライブラリに複数の io_service::run の正しい呼び出し方

C++

幾日の前に、私はboost::asioを遊んでた。こういうコードを書いた #include #include #include #include using std::cout; using std::endl; using namespace boost; using namespace boost::asio;io_service ioserv; mutex m; volatile int c = 0;void add(…

VC7.1でboost::xpressiveを使うとき、as_xprにエラーが出す。対策は知った

C++

静的正規表現ライブラリーのboost::xpressiveを、今日はじめてVC7.1で使った。 前にVC9で正しく動ける as_xpr("class") などのコードは、コンパイルできなくなった。 原因は、as_xpr になった。 正しくのは as_xpr かなにか分からなかったが、 とりあえず as…