Ich möchte den MediaCodec verwenden, um eine Oberfläche in H.264 zu codieren.MediaCodec createInputSurface
Mit API 18 gibt es eine Möglichkeit, von einer Oberfläche zu codieren, indem createInputSurface() aufgerufen und auf dieser Oberfläche gezeichnet wird.
Ich bekomme eine IllegalStateException auf createInputSurface(). Hier ist zusätzliche Logcat-Ausgabe:
D/H264Encoder(17570): MediaFormat: {frame-rate=25, bitrate=1000000, height=600, mime=video/avc, color-format=19, i-frame-interval=75, width=800}
D/NvOsDebugPrintf( 125): NvMMLiteOpen : Block : BlockType = 4
D/NvOsDebugPrintf( 125): NvRmPowerModuleClockControl on MOD[29] INST[0]
D/NvOsDebugPrintf( 125): NvRmModuleResetWithHold deassert MOD[29] INST[0]
D/NvOsDebugPrintf( 125): NvMMLiteBlockCreate : Block : BlockType = 4
I/ACodec (17570): setupVideoEncoder succeeded
E/OMXNodeInstance( 125): OMX_EnableAndroidNativeBuffers failed with error -2147479547 (0x80001005)
E/OMXNodeInstance( 125): createInputSurface requires AndroidOpaque color format
E/ACodec (17570): [OMX.Nvidia.h264.encoder] onCreateInputSurface returning error -38
W/MediaCodec(17570): createInputSurface failed, err=-38
Jeder Einblick, wie die neue API funktioniert, wäre hilfreich.
Danke, das hat sehr geholfen! Ich nahm an, dass es etwas damit zu tun hat, konnte aber auf AndroidOpaque nichts finden – Broatian