Android MediaCodec は、デコードされたビデオを出力面の寸法に自動的にスケーリング (およびトリミング) します。SurfaceTexture が変換行列を介して回転/スケーリング/クロッピングを行う場合、ビデオ ストリームの計算は 2 回実行されます。出力テクスチャの MediaCodec の「カスタム」寸法を指定して、変換マトリックスが回転のみ (MediaCodec IIUC で適切に機能しない) を行い、スケーリングを行わないようにする方法はありますか? また、操作を正しく理解していれば、一連のダウンスケーリング/アップスケーリング/クロップ変換中に、出力ビデオの解像度が損なわれます。
たとえば、私の場合、ビデオは 16:9 の横向きモードですが、出力 TextureView は 90 度回転した 3:4 の縦向きモードです。つまり、MediaCodec は出力 TextureView (縦向きのアスペクトを持つ) の小さな幅にダウンスケール (解像度を下げる) し、続いて (回転後に) ビデオを回転後に完全な高さにアップスケールします。どうもありがとう。