0

H264を再生するアプリを作っています。

ffMpeg デコード、fragmentShader で YUV->RGB に変換し、レンダリングします。

ただframeRateが足りない(15~20fps程度)。

それで、それについて尋ねたところ、レンダリングの方法を変更するという答えが得られました。

現在の方法は、FBO、RBO、RTT で「glTexSubImage2D」を使用することです。

推奨される方法は、eglImage を使用することです。

たくさんの情報をかき集めて、OpenMax を見つけました。

ほとんどのハードウェアは yuv420p の変換をサポートしています。ですから、ffMpeg を執拗に使用するべきではありません。

eglImage を使用している場合、「GraphicBuffer」はどのように使用できますか???????

以前に試してみたところ、
「#include ui/GraphicBuffer.h」という行の「ファイルまたはディレクトリがありません」というメッセージしか表示されませんでした(OfCourseはAndroid.mkにロードライブラリを追加しました)

これは、libui.so、android/frameworks/native/ のプライベート API です。

4

1 に答える 1

1

必要なインクルード フォルダーを Android プラットフォーム ツリーからコピーするか、/frameworks/native/ui へのフル パスを Android.mk の LOCAL_C_INCLUDES に追加します。

LOCAL_LDLIBS    := -llog -landroid -lGLESv2 -lEGL -lm -ljnigraphics -lui
LOCAL_C_INCLUDES := C:\Android\android-ndk-r8b\platforms\android-14\include

そして、あなたのコードにはそれが含まれている必要があります:

#include <ui/GraphicBuffer.h>
using namespace android;
于 2013-10-17T22:47:51.997 に答える