gpt4 book ai didi

android - 使用 MediaCodec 将加密数据解密和解码到 SurfaceTexture

转载 作者:行者123 更新时间:2023-12-05 00:21:55 35 4
gpt4 key购买 nike

是否可以使用 MediaCodec API 解密和解码数据?
我想解密和解码由 Widevine 或其他 DRM 机制加密的数据。
我想尝试的基本事情是
我使用从 SurfaceTexure 创建的 Surface 配置了 MediaCodec。MediaCodec->configure(..????., with mediacrypto instance, ...)我不确定在这种情况下是否可以通过 SurfaceTexture?
或者我应该做的任何安全配置?

MediaCodec->start()
MediaCodec->queuesecureinputbuffer(...,with cryptoinfo,...)
MediaCodec->dequeoutputbuffer() to get the decoded data back....

我能找到的示例是直接将解密的数据渲染到 SurfaceView 上。

但我只想获取解码后的缓冲区或由 MediaCodec 呈现的 SurfaceTexture。

如果我没有设置任何安全配置,例如 MediaFormat->SetFeatureEnabled("secure-playback", true) ;使用 OMX.qcom.video.decoder.avc 创建解码器。
我会收到这样的错误,
E/OMX-VDEC-1080P(23290): 
E/OMX-VDEC-1080P(23290): ERROR: Sending OMX_EventError to Client
E/ (23290): not in avi mode
E/ACodec ( 1930): [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
E/ACodec ( 1930): signalError(omxError 0x80001009, internalError -2147483648)
E/MediaCodec( 1930): Codec reported err 0x80001009, actionCode 0, while in state 6
W/System.err( 1930): java.lang.IllegalStateException
W/System.err( 1930): at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
W/System.err( 1930): at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1033)

一旦我设置了安全配置并使用 MediaCodec::CreateByCodecName(附加了“.secure”)
我会遇到这种错误...
E/ACodec: native window could not be authenticated
E/ACodec: Failed to allocate buffers after transitioning to IDLE state (error 0xffffffff)
E/ACodec: signalError(omxError 0x80001001, internalError -1)

最佳答案

这在一定程度上取决于设备的硬件,但一般来说,受 DRM 保护的视频只能发送到 SurfaceView。此外,SurfaceView 的 Surface 必须位于硬件覆盖层上。

受 DRM 保护的视频由视频解码器硬件解密,解码后的帧被写入软件无法访问的内存。甚至 Linux 内核也无法从中读取。帧通过句柄传递给 Hardware Composer,它告诉显示硬件在覆盖平面上显示它们。

因为内存只有视频解码器和显示器可以访问,GPU不能访问,这意味着数据不能用作GLES外部纹理。该帧无法与 GLES 合成,因此如果 HWC 无法分配覆盖,则不会出现视频。 (有关 HWC 和组成的更多信息,请参阅 graphics arch doc。)

关于android - 使用 MediaCodec 将加密数据解密和解码到 SurfaceTexture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282437/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com