# 2.5 解码数据通过 GPU 渲染
当希望视频数据解码之后,直接传递给 GPU 进行渲染,实现高分辩率的高效率显示,即显示部分在 Codec 中完成,则可以通过如下方式实现:
1. 在库能力标志上加上:MEDIACODEC_CAPABILITY_DIRECTRENDER,告知上层 Codec 具备 GPU 渲染的能力;
2. 在应用层开启 GPU 渲染模式,即调用 API:BRAC_SetSDKOption,设置 BRAC_SO_VIDEOSHOW_GPUDIRECTRENDER 为 1;
3. AnyChat 内核在初始化解码器“MediaCodec_VideoCodec_InitEncoder”时,会初始化上下文句柄“MediaCodecContext”中的“lpGlobalContext”、 “lpSuface”,告知解码器显示窗口,便于 GPU 渲染;若上层没有初始化前述两个变量,则表示上层只要求 Codec 进行解码,不需要显示;
4. 视频解码器解码到一帧数据之后,将数据直接传递给 GPU 渲染,同时返回-1,向上层反馈解码失败的信息,告知上层没有解码输出数据。