wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
126 stars 20 forks source link

[Linux][Bug] When overlaying animations on the player, a crash occurs. #100

Closed Predidit closed 1 week ago

Predidit commented 1 week ago

Bug描述

当播放器页面叠加有其他正在运行的flutter动画时,程序发生崩溃。这一问题可以通过fvp官方example复现。

复现方法

打开官方示例,点击播放按钮开始视频播放,点击视频右上角的视频倍速选项,在选单展开后,鼠标在选项上移动,触发Inkwell动画,程序崩溃。 这一缺陷只存在于 flutter 3.22 版本之后,我在使用的版本为最新的 3.22.2。降级到 3.19.6 后此问题消失。此问题同样可以在 media_kit 包中稳定复现。

分析

flutter官方目前正在迁移到 gtk4。他们的迁移可能破坏了兼容性。可能是 flutter/engine#50754

日志

我没有捕获到有意义的日志

wang-bin commented 1 week ago

崩溃在libflutter_linux_gtk.so,这个得给flutter报bug,我这边啥都做不了

Predidit commented 1 week ago

我无法向flutter报告这个bug,我不是第三方库的维护者,他们不接受包含第三方库的bug报告。

您看您方便进行一下报告吗,这个bug从flutter 3.22.0 就开始存在了。

wang-bin commented 1 week ago

不接受包含第三方库的bug报告是啥意思?不能有第三方依赖?也许可以根据fvp_plugin.cc写个测试用例,移除所有fvp、mdk相关代码,只保留创建、绑定fbo和纹理。不过我没空做这个,现有程序就能稳定复现对flutter开发人员来说很容易去查

Predidit commented 1 week ago

是的,flutter不接受包含第三方依赖的bug报告。并且他们需要一个最小的可以复现bug的sample,就像您说的那样,只包括纹理和native绑定。

我缺乏相关的经验,构建不出这样的sample。

Predidit commented 1 week ago

我发现了其他的事情。

我不了解fvp的具体实现,当使用了硬件不兼容的mdk-sdk编解码器选项,导致视频输出损坏时(仅音频可用,视频黑屏),此bug不会触发。

wang-bin commented 1 week ago

没触发是因为没在渲染

wang-bin commented 1 week ago

bug已报 https://github.com/flutter/flutter/issues/150668

wang-bin commented 4 days ago

master channel,也就是3.23版本里修复了崩溃