スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 変換自体は可能 | トップページ | 映像の拡大・縮小 »

処理ルーチンの共通化とか

今は、Mac用AGMPlayerの開発フェーズで、まず、AGM⇔MP4変換用コマンドラインツールを作成しているのだが、もう少し使える格好にしてから、リリースしておこうとしている。そのためには必須、という訳でもないのだが、今日は、内部処理ルーチンの共通化を行ったりした。

開発中の変換ツールは、今日の時点では、入力動画形式と出力動画形式毎に、異なった処理ルーチンを持っている。

具体的には、MP4ToAGMとAGMToMP4では、異なった処理ルーチンを使っているのだが、当然の事ながら、マクロな意味では、双方でやっている事に違いはない。

つまり、変換元のファイルを開き、変換先のファイルを作成し、変換元のファイルをデコードし、そのデータをエンコードして変換先のファイルに書き込んでいる訳だ。

プログラムを一から自分で作った事が無い人は、扱っている動画形式が違うからといって、やっている事が同じなら、処理ルーチンが別々になっているのはオカシイ、と、言うかもしれない。

何故なら、形式の違いはプロパティでしかないので、形式の違いによって、処理が記述されるメソッドが複数に別れる理由はないからだ。

と、言う事で、自分でプログラミングしない人は、前述の様な事を言う筈なのだが、実際問題としては、動画形式が異なると、利用可能なAPIは異なる訳だ。

例えば、デコード用のソースがAGM形式動画の場合、AGM形式動画用の処理ルーチンを使えるのだが、MP4形式動画の場合、AVFoundationのAPIを使う必要がある。

つまり、動画形式の違いというのは、現場では、プロパティの違いではなく、メソッドの違いとして具現化される訳なのだが、より上流の設計者的には、そんな事は意に介さなかったりする訳だ。

その結果として、プログラミング担当者は、苦労させられる事になるのだが、プログラミング担当者としても、同じ処理用に複数の関数を書くのは面倒だ。

と、言う事で、プログラミング担当者的には、色々と工夫する訳なのだが、もっとも簡単なのは、より上位層の処理ルーチンを作成する事だ。

その処理ルーチンでは、外部に対して動画形式を隠蔽しておけば、どの動画形式に対しても使える処理ルーチンにできる訳なのだが、その処理ルーチンの内部では、各動画形式用に複数の処理ルーチンが必要になる。

なので、そんな上位層を作ってみても、プログラムで行おうとしている処理が単純な場合には、作業量は増えるだけ、なのだが、複雑な事をやろうとする場合には、作業量は減らせるかもしれない。

と、言う事で、作者的には、AGM⇔MP4変換ツールに、複雑な処理も追加しようか、としているので、上記の様な上位層を追加してみているのだが、こういう隠蔽化は、それぞれの動画形式の個性を殺してしまう事になるので、作者的には、何が何でも共通ルーチン化、みたいな事は考えていない。

« 変換自体は可能 | トップページ | 映像の拡大・縮小 »

トラックバック

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

この記事へのトラックバック一覧です: 処理ルーチンの共通化とか:

« 変換自体は可能 | トップページ | 映像の拡大・縮小 »

2017年6月
        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