PlayStation®Mobileの動画プレイヤーを作りました

No Comments

PlayStation®Mobile の動画プレイヤーを作ってみました。
GitHubにて公開中です。

psm-avi_movie_player (GitHub)

PlayStation®Mobile SDKには音楽再生のモジュールはありましたが、動画再生のモジュールはありませんでした。

ちなみにPlayStation®MobileはPlayStation®Vitaや対応しているAndroid端末上で動作させることのできるアプリのプラットフォームです。
PlayStation®Mobileとは?

対応している動画のフォーマットは下記のものになります。

  • 動画コンテナ
    AVI
  • ビデオ
    Motion JPEG
  • オーディオ
    MP3

また、動画ファイルの場所の指定として、下記のURIスキームをサポートしています。

  • file
    ローカルファイル
  • http
    3Gや4Gといった携帯電話ネットワークで使用する際は、パケット通信料に注意してください。
    ドキュメントには現状Wifi と 携帯電話ネットワークのどちらを使用しているのか分からないため、”20MB を超えるファイルをダウンロードしない”ようにと記載されています。

SDKにはJPEGとMP3のデコードモジュールは存在するので、この形式のAVIファイルなら再生できるだろうと試しに作ってみたところ成功。


© copyright Blender Foundation | www.sintel.org

リリースノートを見ると、”将来追加予定の機能”に”動画再生”があるので、いずれは正式なプレイヤーがリリースされるようです。それまでは、PSM開発はこれで乗り切るつもりです(笑)

個人的には実機をスタンバイしても音楽を再生し続けられる機能を待望しています。

■動作確認済みPSM SDKバージョン
1.11.01以上
■動作確認済みデバイス
PlayStation(R) Vita


Windows7でChromiumをビルドする

No Comments

Chromiumをビルドしてみた。
リビジョン番号は139214。
(ChromiumはGoogle ChromeのもとになっているオープンソースのWebブラウザ)

環境はWindows7 64bitで,Visual Studio 2010 Expressを用いる。
また,すでにgitがインストールされているとする。

基本的に下記のページに指示に従えば良かった。

Build Instructions (Windows)

ビルド前の準備

VS2010Expressの場合は下記をの2つを実施する。

  • Prerequisite software
    注意点は下記の通り。
    • Windows 7.1 SDK
      こいつをインストールした後にVS2010C++SP1をインストールするとコンパイラを上書きされるというバグあり。(手順の中に修正プログラムのインストールも含まれているので問題はない)
    • KB articles: KB957912, KB958842, KB960075, KB967631, KB971092, and KB2519277
      KB971092はVS2008用のためインストール出来ず。
    • Cygwin
      インストールしなかった。以下,コマンドはすべてコマンドプロンプトから実行した。
  • Setting up the environment for Visual Studio 2010
    途中で,”gclient runhooks”を実行する箇所があるけれど,depot_toolsが無いと実行できないので,取得後実行する。
    後は手順通りにやれば問題なく実施できる。

depot_toolsの取得

depot_toolsをインストールするディレクトリにて下記のコマンドを実行する。

次にWindowsの環境変数PATHにこのdepot_toolsまでのパスを通す。

ソースの取得

ソースを取得するディレクトリにて,下記のコマンドを実行する。

作成されたリポジトリの内容は下記で確認できる。

次に,ソースを実際に取得する

ソースが取得できたら次はビルド。

ビルド

取得したソースのsrc/chrome/chrome.slnをダブルクリックで実行する。
そしてこのソリューションをビルドする。
(動かすだけならchromeプロジェクトをビルドすればよいみたい。)

ビルドが完了するとsrc/build/Debug(またはRelease)にchromium.exeができるので,これを実行すればChromiumが起動する。

http://www1205uf.sakura.ne.jp/wp/world/wp-content/uploads/2012/05/chromium.png

ビルドの失敗の修正

手順通りにやってもいくつかビルドエラーが起こったので,その時に解決した方法をメモ。

ファイルのエンコードの間違い

下記のようなエラーが起こった。

エラー箇所は下記のようになっており,C++コンパイラがコードをUnicodeとして認識していないのが原因らしい。

そこで,解決方法はこのファイルを選択し,[ファイル]-[保存オプションの詳細設定]を選択する。

http://www1205uf.sakura.ne.jp/wp/world/wp-content/uploads/2012/05/change_encoding.png

次に,開くダイアログにてエンコードに”Unicode(UTF-8 シグネチャ付き)-コードページ65001″を選択し保存。

http://www1205uf.sakura.ne.jp/wp/world/wp-content/uploads/2012/05/change_encoding2.png

これで解決した。

ANSIコードページに表示できないUnicodeが含まれている

次に下記のようなエラーが出た。
警告をエラーとして扱ったため,オブジェクトファイルが生成されなかったとのこと。

ANSI コード ページに表示できない,Unicodeの文字を使っているのが原因とのこと。
とりあえず警告をエラーとして扱うのを無効化して回避。。。
問題が出ていたunit_testプロジェクトにて下記の赤枠のように設定する。
構成を”すべての構成”にしておかないと,Debug,Releaseの両方には適用されないので注意。

http://www1205uf.sakura.ne.jp/wp/world/wp-content/uploads/2012/05/warning_error_off.png

これで解決。

インストーラーの作成

chrome.slnをビルドしただけでは,インストーラー(mini_installer.exe)は作成されなかった。

そこで,src\chrome\installerの中のmini_installer.slnをダブルクリックで起動する。
ソリューションをビルドすればDebug(またはRelease)フォルダにmini_installer.exeが生成されているはず。

これをダブルクリックで実行すればPCにインストールされる。

Chromiumのリビジョン番号を知る

作成したインストーラーの名前にリビジョン番号を追加しておきたくなった。
これからソースを更新していってもリビジョン番号がわかるようにしたい。

そのためにはsrcディレクトリに入って,下記を実行する。

すると下記のように表示される。

ここのRevisionがリビジョン番号を示している。

gclientのツールでもわかるのかと,helpを見て調べたがよくわからなかった(汗)