2016-06-01 5 views
0

私はビデオ処理を行うためにOpenGLES3.0を使用しています。 Android MediaExtractorMediaCodec APIをSurfaceテクスチャと一緒に使用して動画からフレームを取得することができました。AndroidでOpengles3.0を使用したサーフェステクスチャ

glGenTextures(1, &textureId); 
glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureId); 
glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 
glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 
glBindTexture(GL_TEXTURE_EXTERNAL_OES, 0); 

しかし、GLES3.0にはそのようなAPIはありません。

私の質問は、OpenGLES3.0でサーフェステクスチャを生成して使用するためのAPIですか?または、Androidの他のAPIを使って、動画からすべてのフレームを取得できますか?

getFrameAtTime()MediaMetadataRetrieverFFmpegMediaMetadataRetrieverにしようとしましたが、MediaMetadataRetriever.OPTION_CLOSESTであっても、すべてのフレームではなくキーフレームしか取得できませんでした。

答えて

0

3.0ではまだ拡張機能が1.1または2.0になっているようです。 GL_TEXTURE_EXTERNAL_OESを使用するには、gl2ext.hを含める必要があります。

関連する問題