読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

音声ファイルから動画ファイルを作成する(8) – IMFSinkWriter::GetServiceForStreamの使い方がよくわからない

画質向上のためにエンコーダーのパラメータをいじるべく調査を進めていて、SinkWriterの出力エンコーダーの設定のいじり方がなんとなくわかってきた。IMFSinkWriter::GetServiceForStreamでエンコーダーMFTを取得->IPropertyStoreを取得->設定の順で行えばよいようである。しかしIMFSinkWriter::GetServiceForStreamをどう使えばいいのかよくわからない。おそらくQIのイメージなんだろうけれども(WASAPIでも似たようなメソッドはある)なんのインターフェースを取得すれば最終的にエンコーダーMFTを取得->IPropertyStoreに行き着くのか、いやそもそもエンコーダーMFTにIPropertyStoreがあるのか?とか考えてなかなか処理の流れがイメージできない。SinkWriterってそもそもどんな構造をしているのだろうか。よくわからないことだらけだ。 IMFSinkWriter::GetServiceForStreamでググってもコード片の一つも出てきやしない。。これを使えばほんとにエンコーダパラメータがいじれるのであろうか。。

あと気づいたのはPropertyStoreの生成に関するAPIはWindows Store Appではほとんど使えないこと。すでにあるPropertyStoreのインスタンスをいじることしかできないのだ。デスクトップだと生成もできるし、APIもアップデートされているのでObsoluteなことも全然ないのだ。デスクトップAPIは自由度が高いのでついそちらに戻りたくなるが、Windows Store AppのUIフレームワークが魅力的なので頑張ってみることにする。デスクトップでWinRTのUIフレームワークが使えればいうことないのだけれども、MSの政策的にはそんなことしないだろうしなぁ。。