スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 形だけはビルドできた | トップページ | もう音楽CDは買えない »

動かし始めた

今日は、ビルドだけしていたAG-ムービーカッターのUbuntu版のダミー部を実際の処理に置き換えつつ動かし始めた。とりあえず、AviFileクラスのReadOpenメソッドは動作しているっぽいのだが、まだ画像表示が出来ないので確認は不十分だ。

今日は、まず、CreateFile/ReadFile/SetFilePointerEx/CloseHandleをLinux用の処理関数を使って実装した。

で、冒頭に書いたReadOpenというメソッドでは、OS依存の処理としては、ファイルアクセスしかしていないため、一応、上記の実装だけで動作したようだ。

もっとも、動作確認は、AGM形式動画をオープンしてAVIヘッダー部分に書かれている画像サイズだとか音声形式だとかの情報をコンソール出力して正しい値になっている事を確認しただけなので、まだ、問題が無いとも言いきれない。

Java版を作っている時にも書いたのだが、ReadOpenメソッドが動作すると、好きな時間にシークでき、その時間の画像/音声データも取り出せるようになる。

なので、次に、動画ファイルの先頭にある画像フレームを取り出してみたのだが、データの読み込みは出来ているっぽいのだが、AGM形式動画のデコード部が動作する状況になっていなかったため、そこでフリーズした。

今読み込んでいるAGM形式動画は、DCT形式でエンコードされていて、デコード時にはSSE2を使ったマルチスレッド動作になる。

で、その時点では、まだ、マルチスレッド用のMutex/Event/CreateThread関係の実装が出来ていなかったため、フリーズしたのだが、一応、それらについての実装も出来たっぽいので、多分、何事も無ければ、明日には画像フレームを表示しつつ、動作確認が出来る様になっているモノと思われる。

ちなみに、Windows版のAG-ムービーカッターでは、内部的にはUnicodeインタフェースの関数を使っている。なので、ファイルパスなんかについてもWCHAR *を使っている。つまり、文字コードはUTF16になっているのだが、どうも、Linuxでは、WCHARに相当するモノはUTF-32になってしまうようで、最初、ファイルのオープン処理が上手く動作しなかった。

で、ネットで調べてみたのだが、どうも、Linuxではファイルパスなんかの文字列については、char *を使うのが普通のようで、日本語のファイル名なんかの文字列は、UTF-8で扱われる事になっているようだ。

なので、Linux用の処理関数では、ファイルパスの文字列にchar *を使うようにしてみたのだが、そうすると、エディタ上で固定値で書いた日本語ファイル名も普通に通り、日本語名のファイルにもアクセスできるようになった。当然の事ながら、エディタの文字コードはUTF-8にしてあるのだが。

= この記事に関連する公開中ソフト =

AG-ムービーカッター for Ubuntu 12.04LTS

AG-ムービーカッター for Ubuntu12.04LTS

(2013/12/07追加)

« 形だけはビルドできた | トップページ | もう音楽CDは買えない »

トラックバック


この記事へのトラックバック一覧です: 動かし始めた:

« 形だけはビルドできた | トップページ | もう音楽CDは買えない »

2020年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google