OpenHarmony开发者论坛

标题: Xcomponent如何获取OHNativeWindow以便解码器输出送显? [打印本页]

作者: m0_63192735    时间: 2024-9-10 11:26
标题: Xcomponent如何获取OHNativeWindow以便解码器输出送显?
[md]### 【问题描述】

1. 介绍问题现象和发生的背景   Xcomponent如何获取OHNativeWindow以便解码器输出送显?
2. 相关的代码(请勿使用截图)
3. 运行结果、错误截图
4. 我尝试过的解决方法和结果
5. 我想要达到的结果

### 【运行环境】

硬件:
ROM版本:
DevEvoStudio版本:4.1
SDK版本:11
[/md]
作者: kuaile    时间: 2024-9-13 09:27
你好,可以从native侧的生命周期等回调中获取native window句柄
作者: m0_63192735    时间: 2024-9-18 09:43
回复 kuaile: 你好,我在native侧的回调获取native Window句柄的时候,遇到这个问题:        OHNativeWindowBuffer *buffer = nullptr;
        int fenceFd;
        // 通过 OH_NativeWindow_NativeWindowRequestBuffer 获取 OHNativeWindowBuffer 实例
        ret = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &buffer, &fenceFd);
这个操作会报错 OH_NativeWindow_NativeWindowRequestBuffer ret = 40601000。


这是具体的日志
作者: m0_63192735    时间: 2024-9-18 09:43
回复 kuaile: 这是具体的日志01-01 08:57:08.883   7308-7335    C03f00/MUSL-LDSO               pid-7308              E     do_dlsym failed: symbol not found. so=/vendor/lib/chipsetsdk/libEGL_impl.so s=glEndQuery v=
01-01 08:57:08.883   7272-7272    A01027/ScreenTag               pid-7272              I     test 1.5
01-01 08:57:08.883   7272-7272    A01027/ScreenTag               pid-7272              I     OnSurfaceCreatedCB start
01-01 08:57:08.883   7272-7272    A01027/ScreenTag               pid-7272              I     OH_NativeXComponent_GetXComponentId id = xcomponent_test_id
01-01 08:57:08.883   7308-7335    C03f00/MUSL-LDSO               pid-7308              E     do_dlsym failed: symbol not found. so=/vendor/lib/chipsetsdk/libEGL_impl.so s=glGetQueryiv v=
01-01 08:57:08.883   7272-7272    A01027/ScreenTag               pid-7272              I     OH_NativeXComponent_GetXComponentSize, width = 320, height = 240
01-01 08:57:08.883   7272-7272    A01027/ScreenTag               pid-7272              I     OH_NativeWindow_NativeWindowHandle Opt ret = 0 , code = 0
01-01 08:57:08.883   2369-2988    C01401/Bufferqueue             render_service        E     <516>CheckBufferConfig: width or height is greater than 0, now is w 320 h 0
01-01 08:57:08.883   2369-2988    C01401/Bufferqueue             render_service        E     (xcomponent_test_idSurface) AllocBuffer: Failure [71], Reason: Alloc failed, then <400 invalid arguments>
01-01 08:57:08.883   2369-2988    C01401/Bufferqueue             render_service        E     (xcomponent_test_idSurface) RequestBuffer: Fail to alloc or map Buffer[320 0] ret: 40001000, id: 10174777524281
01-01 08:57:08.884   7308-7335    C03f00/MUSL-LDSO               pid-7308              E     do_dlsym failed: symbol not found. so=/vendor/lib/chipsetsdk/libEGL_impl.so s=glGetQueryObjectuiv v=
01-01 08:57:08.884   7272-7272    C01401/Bufferqueue             pid-7272              E     <115>NativeWindowRequestBuffer: API failed, please check RequestBuffer function ret:40001000, Queue Id:10174777524281
01-01 08:57:08.884   7272-7272    A01027/ScreenTag               pid-7272              I     OH_NativeWindow_NativeWindowRequestBuffer ret = 40601000
01-01 08:57:08.884   7272-7272    A01027/ScreenTag               pid-7272              I     OnSurfaceCreatedCB finish
作者: kuaile    时间: 2024-9-18 17:53
回复 m0_63192735: 01-01 08:57:08.883   2369-2988    C01401/Bufferqueue             render_service        E     <516>CheckBufferConfig: width or height is greater than 0, now is w 320 h 0                   高度不合法
作者: m0_63192735    时间: 2024-9-19 09:15
回复 kuaile: 具体可能是什么原因造成的勒?我最开始设置的是320*240,用api接口获取size也是正常的




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5