スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 体調が不安定なので | トップページ | CSoundExとか »

今週が山場だろう

今は、Windows用AmuseGraphicsの開発フェーズで、まず、macOS版上で開発した高速化したAGMエンコーダーを適用しているだが、まだ、終わらない。その理由は、現行版では各ソフトが個別ソースだったのを同一化しようとしているからだ。

作者製ソフトは基本的にはC++で記述してあるので、AGM形式用のライブラリも、C++のクラスになっている。

そして、ライブラリ関連については、macOS版についても、Objective-Cではなく、C++で記述してあるので、ソースコード環境がチャンとしていれば、macOS版で開発したAGM形式用の改良したライブラリはソースコードを入れ替えるだけで、Windows版にも適用可能な筈だ。

しかし、実際の所としては、そうはなっていないのだが、その理由は、例えば、今年開発したAGMConvというソフトは、そもそもは、macOS上のAV Foundationを使用するサンプルプログラムとして開発したからだ。

つまり、AGMConvというソフトを開発するにあたっては、まずはAV Foundationありきで、AGM形式用の処理コードは、それに合わせる形で実装していったので、使い方的には、従来のAmuseGraphics用ソフトとは色々と異なる訳だ。

具体的には、従来のAmuseGraphics用ソフトというのは、単純なモノから段々と機能追加していったので、例えば、ソース動画の音声のサンプリング設定をエンコード時に指定したサンプリング設定に変換する機能はエンコード処理ルーチン側に持たせていた訳だ。

しかし、AV Foundationの場合には、AV Foundationのデコーダーが、そういった機能を実現しているので、そういった変換処理はデコーダー側でやらせるのがスマートな訳だ。

このため、AV Foundationデコーダーと同格に位置するAGMデコーダーについても、同様の機能が無いと、内部処理的に同等の扱いが出来なくなるので、AGM形式用のライブラリに対しては、デコーダーに対してサンプリング設定の変換を行う機能を追加してある訳だ。

で、一昨日には、AG-ムービーカッターが実装しているAGM形式用デコーダーにはトリミング機能がある、と、書いているのだが、現状、上記のサンプリング変換機能を必要としているのはAGMConvのみで、トリミング機能についてはAG-ムービーカッターのみだ。

逆に言うと、上記の様な機能は、ソフトを新規開発したり、機能追加した時に、その機能が必要になったソフト用に追加実装してきた訳だ。

と、言う事なので、開発者的な選択肢は二つあった訳だ。

その一つは、変更したソースコードをAGM形式用ライブラリを使っている全てのソフトに適用する、という選択で、もう一つは、改変によるバグの混入を防ぐ意味から、その機能を必要としない他ソフトには変更を適用しない、という選択だ。

で、作者的には、基本的には、上記の後者を選択してきたので、現行版では、AmuseGraphics系ソフトに実装しているAGM形式用ライブラリのコードは、ソフトごとに微妙に異なる格好になっている訳だ。

しかし、そういう状況になっていると、今回の様に、全ソフトに一斉に適用したい様なソースコードの改変を行なった場合、色々と問題が出てくる。

具体的には、どれかのソースコードをベースに開発しても、そのソースコードを他ソフトに適用すると足りない機能が出てくるし、各ソフト毎に変更箇所のみを個別に適用していくと、一見、問題なく適用できていても、実際には、細かい初期化動作が異なったりして不具合が発生する可能性が出てくる。

と、言う事で、作者的には、ある意味、ソースコードを統一してこなかったツケを、今回払っている訳なのだが、その方法としては、上記の前者になる。

つまり、強引に、ソースコードを入れ替え、足りない機能を追加していっているのだが、今後の事を鑑みれば、最終的には、全機能が実装されたソースコードを、再度、全ソフトに適用しなおす必要がある。

と、言う事なので、何度か書いてきた様に、今回の変更では機能的な変更が無い筈なのに既存機能に対して不具合が発生する危険性が高くなっているのだが、将来性を鑑みれば、ソースコードの統一は必要で、それをやるとなれば、今回の様な、他に大した変更がないバージョンアップ時しかない訳だ。

もっとも、今回のバージョンアップでは、変更内容がリスキーである分、従来以上に全機能に対する詳細評価を行う事になるので、現行版にある細かい不具合が修正される可能性もある。

と、言うか、作者的には、次バージョンでは、品質向上を目指したい所なので、どの道、詳細な評価を行う予定だった。なので、リスキーなソースコードの統一化作業は、ここでやる事にした訳だ。

« 体調が不安定なので | トップページ | CSoundExとか »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66037371

この記事へのトラックバック一覧です: 今週が山場だろう:

« 体調が不安定なので | トップページ | CSoundExとか »

2017年11月
      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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google