画質向上のためにエンコーダーのパラメータをいじるべく調査を進めていて、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の政策的にはそんなことしないだろうしなぁ。。