Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 修复相机卡顿问题 #327

Closed
wants to merge 1 commit into from

Conversation

myk1343
Copy link
Contributor

@myk1343 myk1343 commented Nov 23, 2024

修复相机卡顿问题
Bug: https://pms.uniontech.com/bug-view-281903.html
https://pms.uniontech.com/bug-view-264635.html
Log: 修复相机卡顿问题

@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: myk1343

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@deepin-ci-robot
Copy link

deepin pr auto review

代码审查意见:

  1. 代码注释:在previewopenglwidget.cpp文件中,glTexImage2D函数调用后的注释应该更详细地解释为什么需要使用0作为m_yuvPtr的参数。这有助于其他开发者理解代码的意图。

  2. 逻辑改进:在previewopenglwidget.cpp文件中,bReBuildImage变量在每次paintGL函数调用时都会被重新赋值,这可能是多余的。可以考虑将其移动到类的成员变量中,以避免每次调用时都重新计算。

  3. 性能优化:在previewopenglwidget.cpp文件中,glTexImage2DglTexSubImage2D的调用可以合并,以减少OpenGL状态的变化次数。如果纹理大小没有变化,可以直接使用glTexSubImage2D更新纹理数据。

  4. 代码重复:在previewopenglwidget.cpp文件中,glTexImage2DglTexSubImage2D的调用代码几乎完全相同,只是纹理的宽度和高度以及数据指针不同。可以考虑将这部分代码提取到一个单独的函数中,以减少代码重复。

  5. 资源管理:在videowidget.cpp文件中,ReceiveOpenGLstatus(true);的调用可能不是必要的,因为它在resizeEvent函数中已经被调用。如果ReceiveOpenGLstatus函数有副作用,那么这个调用可能是必要的,否则应该移除。

  6. 信号槽连接:在videowidget.cpp文件中,connect(m_imgPrcThread, SIGNAL(sigRenderYuv(bool)), this, SLOT(ReceiveOpenGLstatus(bool)));这行代码可能是不必要的,因为ReceiveOpenGLstatus函数已经在resizeEvent函数中调用了。如果ReceiveOpenGLstatus函数有副作用,那么这个连接可能是必要的,否则应该移除。

  7. 线程安全:在majorimageprocessingthread.cpp文件中,emit sigYUVFrame(m_yuvPtr, m_nVdWidth, m_nVdHeight);这行代码可能会在多线程环境下引发竞态条件。如果m_yuvPtr是共享资源,应该考虑使用互斥锁或其他同步机制来保护它。

  8. 变量命名:在previewopenglwidget.h文件中,m_imgSize变量应该有一个更具描述性的名称,以反映它所表示的内容。例如,可以命名为m_textureSize

  9. 代码风格:在previewopenglwidget.cpp文件中,glTexParameteri函数的调用应该按照一致的顺序排列,以提高代码的可读性。

  10. 错误处理:在previewopenglwidget.cpp文件中,glTexImage2DglTexSubImage2D函数调用后没有错误检查。应该添加错误检查代码,以确保纹理数据正确加载。

以上是针对代码审查意见的详细说明,希望能够对您有所帮助。

@myk1343 myk1343 closed this Dec 20, 2024
@myk1343 myk1343 deleted the uploadcode branch December 20, 2024 07:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants