2017-10-23 21 views
1

私は、カメラフレームを表示するために金属を使用しています。私は出力されたサンプルバッファーをに変換してCVMetalTextureCacheCreateTextureFromImageを使用しています。それはフレームが時計回りに90度回転していることを除いて素晴らしいことです。MTLTextureを回転

id<MTLTexture>を時計回りに90度回転させるにはどうすればよいですか?

テクスチャを表示するとき(MTKView)、ビデオを録画するときに回転が間違っていると考えました。

答えて

1

ここでは、少なくとも2つの異なるオプションがあります。

最も簡単なのは、おそらく、AVFoundationの「物理的に」回転したフレームを要求することです。 AVCaptureConnectionを使用している場合は、setVideoOrientation API(使用可能な場合)を使用して、フレームを配信前にローテーションするように指定できます。そうすれば、表示と録音を一貫した方法で処理することができます。

また、フレームをメタルビューに描画するときとムービーを記録するときの両方で回転変換を適用することもできます。あなたはすでに前者をやる方法を知っているように思えます。後者は、あなたが使用していると仮定してAVAssetWriterInputtransformプロパティを設定するだけです。同様のAPIは、AVMutableCompositionなどの下位レベルのAVFoundationクラスにも存在します。