0
イメージをテクスチャとしてロードし、GLESを介してMediaCodecサーフェスの入力方法を使用してレンダリングするにはどうすればよいですか?Androidイメージとビデオ
私はEncodeAndMuxTestの例から始めました。
ありがとうございます。 grafikaからのサンプルで
イメージをテクスチャとしてロードし、GLESを介してMediaCodecサーフェスの入力方法を使用してレンダリングするにはどうすればよいですか?Androidイメージとビデオ
私はEncodeAndMuxTestの例から始めました。
ありがとうございます。 grafikaからのサンプルで
見て、それはあなたがここでそれを
を行うべきかについての洞察がテクスチャ
int mTextureId = -1;
public void loadTexture(Bitmap bitmap)
{
if (mTextureId != -1) {
int[] textureHandle = new int[1];
GLES20.glGenTextures(1, textureHandle, 0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_MIN_FILTER,
GLES20.GL_NEAREST);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_MAG_FILTER,
GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_WRAP_S,
GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_WRAP_T,
GLES20.GL_CLAMP_TO_EDGE);
} else {
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId);
}
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
}
、ここにビットマップをロードするためのコードであるあなたを与えるだろうあなたはinputsurfaceにそれをレンダリングすることができる方法であります
// Create Fullframe rectangle (a class from grafika),
mInputSurface.makeCurrent();
mFullFrameRect = new FullFrameRect(new Texture2dProgram(Texture2dProgram.ProgramType.TEXTURE_2D));
....
// And when you want to draw it
mInputSurface.makeCurrent(); // if its not already current
loadTexture(bitmap);
GLES20.glViewport(0, 0, viewWidth, viewHeight);
mFullFrameRect.drawFrame(mTextureId, GlUtil.IDENTITY_MATRIX);
mInputSurface.setPresentationTime(pts);
mInputSurface.swapBuffers();
FullFrameRect
、Texture2dProgram
、GlUtil
Grafikaからクラスですので、あなたが警官べきあなた自身も同様の機能を実装しています
お返事ありがとうございます。私はあなたの解決策を試してみましたが、まだ黒い画面のビデオが表示されています。私が理解できないことは、イメージテクスチャをレンダリングするためにGLSurfaceViewが必要なのでしょうか?ありがとう – Siv
私はイメージを変換することができました。私はEglの文脈に間違った設定をしていました。ご協力いただきありがとうございます。 – Siv
@Sivはあなたの解決策が何であるかを知るのに役立ちます –