Files
AndroidStudioSettings/ChatGPTConversations_170.xml
T

6 lines
1.2 MiB
XML
Raw Normal View History

<application>
<component name="ee.carlrobert.codegpt.state.conversations.ConversationsState">
<option name="currentConversation" value="{&quot;id&quot;:&quot;1579b64a-24e2-4bae-a0cd-a2a6d6730133&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;运行在RK3588上,应该怎么修改?&quot;,&quot;id&quot;:&quot;a1041346-4d04-494f-84eb-802f4b8f0834&quot;,&quot;response&quot;:&quot;可以。先给出实现思路,再结合 [GstVideoPlayer](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc) 在 RK3588 上的典型优化方向说明。\n\n### 实现计划\n1. 检查当前管线瓶颈:确认 [CreatePipeline](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#CreatePipeline) 里是否强制走了 CPU 路径。\n2. 将通用的 `videoconvert + fakesink` 方案改为适合 RK3588 的硬件解码/零拷贝方案。\n3. 如果目标仍然是 Flutter/纹理上传,优先启用 DMABUF/EGLImage 路径,也就是利用 [GetEGLImage](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetEGLImage)。\n4. 根据 RK3588 实际可用的 GStreamer 插件,替换解码器/convert/sink 组件,并处理像素格式差异。\n5. 保留回退路径,避免在没有 Rockchip 专有插件时完全不可用。\n\n---\n\n你这份代码当前**不太适合 RK3588 的高性能播放**,主要原因是:\n\n- [CreatePipeline](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#CreatePipeline) 里固定用了 `playbin + videoconvert + fakesink`\n- [GetFrameBuffer](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetFrameBuffer) 里又用 `gst_buffer_extract(...)` 把帧拷到 CPU 内存\n- caps 还固定成了 `video/x-raw,format=RGBA`\n\n这意味着:\n1. 解码后的图像大概率被转成 RGBA\n2. 再从 GStreamer buffer 拷贝到 [pixels_](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#pixels_)\n3. 对 4K/高码率视频,RK3588 即使能播,也会增加 CPU 占用和内存带宽压力。\n\n---\n\n## RK3588 上建议怎么改\n\n## 方案一:优先走 DMABUF / EGLImage,避免 CPU 拷贝\n你这份代码已经有 `#ifdef USE_EGL_IMAGE_DMABUF` 分支,核心就是 [GetEGLImage](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetEGLImage)。 \n**在 RK3588 上最推荐的方向就是把这条路打通**。\n\n### 需要做的修改重点\n#### 第 1 步:不要强制转成 RGBA\n当前这里:\n\n```cpp\nauto* caps = gst_caps_from_string(\&quot;video/x-raw,format=RGBA\&quot;);\nauto link_ok =\n gst_element_link_filtered(gst_.video_convert, gst_.video_sink, caps);\n```\n\n这会迫使流水线输出 RGBA,通常会破坏零拷贝价值。 \n在 RK3588 上,硬件解码后更常见的是 `NV12` 或其他 DRM/DMABUF 友好格式。\n\n你应该改成类似思路:\n\n- 如果启用 DMABUF/EGLImage:尽量接受 `video/x-raw(memory:DMABuf)`,格式优先 NV12\n- 如果未启用 DMABUF:再回退到 RGBA + CPU copy\n\n例如逻辑上改成:\n\n- `USE_EGL_IMAGE_DMABUF` 开启时:\n - caps 用 `video/x-raw(memory:DMABuf),format=NV12`\n - 或者不强绑 `videoconvert`\n- 普通模式:\n - 保持 `video/x-raw,format=RGBA`\n\n---\n\n#### 第 2 步:尽量不要用 [GetFrameBuffer](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetFrameBuffer) 上传 CPU 像素\n如果你的渲染链支持 EGLImage,就应优先使用 [GetEGLImage](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetEGLImage),而不是 [GetFrameBuffer](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetFrameBuffer)。\n\n因为:\n- [GetFrameBuffer](file:///home/debuggerx/StudioProjects/elinux_test/plugins/video_player/elinux/gst_video_player.cc#GetFrameBuffer) 会执行 `gst_buffer_extract`\n- 这是显式内存拷贝\
<option name="conversations" value="[{&quot;id&quot;:&quot;2ea372bf-f79d-4805-a228-8cd51bf07dc9&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;我在适用ProxyAI这个Intellij插件,想要实现代码自动补全,gemini系列的哪个模型最适合?为什么?另外配置里有个“FIM”模板选项,我应该选什么?&quot;,&quot;id&quot;:&quot;ab4b92a6-8055-4844-85d6-57ffd6339399&quot;,&quot;response&quot;:&quot;对于在 IntelliJ IDEA 使 ProxyAI **Inline Code Completion** Gemini FIM \n\n### Gemini 1.5 Flash Gemini 2.0 Flash\n\n**使 `gemini-1.5-flash` `gemini-2.0-flash`** API \n\n** Pro **\n1. **Latency** 300-500 `gemini-1.5-pro` Flash \n2. ****Flash 1M 2M ProxyAI \n3. ****Flash API Pro \n\n* `gemini-1.5-pro`****Flash *\n\n---\n\n### FIM \n\n**FIM (Fill-In-the-Middle)** PrefixSuffixMiddle\n\n**Gemini **\n DeepSeek CoderQwen Coder CodeLlama 使 FIM Token `&lt;|fim_prefix|&gt;``&lt;|fim_suffix|&gt;` **Gemini FIM ** ProxyAI Gemini `DeepSeek` `Qwen` FIM Gemini \n\n****\n\n1. ** Prompt / Instruction **\n ProxyAI FIM `Prompt``Instruction` `Gemini/OpenAI` \n\n2. **CustomFIM **\n FIM 使 XML Gemini XML \n ```text\n You are an expert programmer. Please complete the missing code between &lt;prefix&gt; and &lt;suffix&gt;. \n Output ONLY the missing code, without any markdown formatting, explanations, or repeating the prefix/suffix.\n \n &lt;prefix&gt;\n {prefix}\n &lt;/prefix&gt;\n &lt;suffix&gt;\n {suffix}\n &lt;/suffix&gt;\n ```\n *( `{prefix}` `{suffix}` ProxyAI )*\n\n3. ** FIM**\n FIM Gemini ProxyAI ** FIM ** None/Default退 Gemini &quot;,&quot;referencedFilePaths&quot;:null,&quot;conversationsHistoryIds&quot;:null,&quot;imageFilePath&quot;:null,&quot;
</component>
</application>