Android 如何在配置之前获得MediaCodec的最大分辨率

Android 如何在配置之前获得MediaCodec的最大分辨率,android,android-mediacodec,encoder-decoder,Android,Android Mediacodec,Encoder Decoder,我的应用程序创建了几个实例,它们作为视频/音频解码器和编码器并行工作 我知道视频编解码器的缓冲空间有限,这取决于设备 例如,在标签三星SM-P600上,我可以创建四个分辨率为720p的媒体编解码器: 1280*720*4=3686400 但不是五个: 1280*720*5=4608000 因为编解码器在配置过程中将返回错误: E/OMX: setParam sum(4608000) > max resolution(4177920) E/ACodec: [OMX.Exynos.AVC.

我的应用程序创建了几个实例,它们作为视频/音频解码器和编码器并行工作

我知道视频编解码器的缓冲空间有限,这取决于设备

例如,在标签三星SM-P600上,我可以创建四个分辨率为720p的媒体编解码器:

1280*720*4=3686400

但不是五个:

1280*720*5=4608000

因为编解码器在配置过程中将返回错误:

E/OMX:  setParam  sum(4608000) > max resolution(4177920)
E/ACodec: [OMX.Exynos.AVC.Encoder] failed to set input port definition parameters.
E/ACodec:  configureCodec multi window instance fail  appPid : 17054
E/ACodec: [OMX.Exynos.AVC.Encoder] configureCodec returning error -1021
E/ACodec: signalError(omxError 0x80001001, internalError -1021)
E/MediaCodec: Codec reported err 0xfffffc03, actionCode 0, while in state 3
E/MediaCodec: configure failed with err 0xfffffc03, resetting...

在配置MediaCodec以计算我所需的所有MediaCodec的最大可用分辨率之前,如何获得最大分辨率(4177920)

尝试使用MediaCodecInfo.CodecCapabilities中的getMaxSupportedInstances()。

或不受支持(整数宽度, int height)在MediaCodecInfo.VideoCapabilities中。

使用getMaxSupportedInstances()”是一个很好的解决方案,但并非所有设备都会返回此信息,例如三星p600不会返回此信息。
getMaxSupportedInstances()
与解决方案无关getMaxSupportedInstances()返回可并行运行的编解码器数量您是否能够解决此问题?我也找不到MediaCodec接口来获取此最大分辨率和。