1. 18 Jun, 2022 2 commits
  2. 05 Mar, 2022 1 commit
  3. 03 Mar, 2022 1 commit
  4. 15 Dec, 2021 3 commits
  5. 05 Oct, 2021 1 commit
    • Craig Turner's avatar
      doc: QtGL: fix textures being recreated · 180cc786
      Craig Turner authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      QOpenGLFramebufferObject::takeTexture is detaching the current texture
      and transfering ownership to the caller, and the texture was never
      destroyed afterwards. It was leading to a huge memory consumption and
      leak when using the sample app.
      
      From the documentation[^1] in Qt5:
      
          Returns the texture id for the texture attached to this framebuffer
          object. The ownership of the texture is transferred to the caller.
      
          If the framebuffer object is currently bound, an implicit release()
          will be done. During the next call to bind() a new texture will be
          created.
      
      [1]: https://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture
      
      Co-authored-by: Alexandre Janniaux's avatarAlexandre Janniaux <ajanni@videolabs.io>
      For the commit message and cleaning the fix mostly.
      
      Fixes #25867
      180cc786
  6. 01 Jul, 2021 7 commits
  7. 10 Dec, 2020 2 commits
    • Alexandre Janniaux's avatar
      doc: QtGl: fix heap use-after-free · 0135f73c
      Alexandre Janniaux authored
      From asan report:
      
      ==774849==ERROR: AddressSanitizer: heap-use-after-free on address 0x6080000051a8 at pc 0x7f06d1d61af3 bp 0x7ffe464e1af0 sp 0x7ffe464e1ae0
      WRITE of size 8 at 0x6080000051a8 thread T0
          #0 0x7f06d1d61af2 in vlc_atomic_rc_dec ../../include/vlc_atomic.h:58
          #1 0x7f06d1d61af2 in libvlc_release ../../lib/core.c:82
          #2 0x55bc01a4167c in QtVLCWidget::cleanup() ../qtvlcwidget.cpp:253
          #3 0x55bc01a439c1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (QtVLCWidget::*)()>::call(void (QtVLCWidget::*)(), QtVLCWidget*, void**) /usr/include/qt/QtCore/qobjectdefs_impl.h:152
          #4 0x55bc01a439c1 in void QtPrivate::FunctionPointer<void (QtVLCWidget::*)()>::call<QtPrivate::List<>, void>(void (QtVLCWidget::*)(), QtVLCWidget*, void**) /usr/include/qt/QtCore/qobjectdefs_impl.h:185
          #5 0x55bc01a439c1 in QtPrivate::QSlotObject<void (QtVLCWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt/QtCore/qobjectdefs_impl.h:418
          #6 0x7f06d0d86035  (/usr/lib/libQt5Core.so.5+0x2eb035)
          #7 0x7f06d116db79 in QOpenGLContext::destroy() (/usr/lib/libQt5Gui.so.5+0x180b79)
          #8 0x7f06d116de77 in QOpenGLContext::~QOpenGLContext() (/usr/lib/libQt5Gui.so.5+0x180e77)
          #9 0x7f06d116de99 in QOpenGLContext::~QOpenGLContext() (/usr/lib/libQt5Gui.so.5+0x180e99)
          #10 0x7f06d1874c0b  (/usr/lib/libQt5Widgets.so.5+0x1bac0b)
          #11 0x7f06d1874c94 in QOpenGLWidget::~QOpenGLWidget() (/usr/lib/libQt5Widgets.so.5+0x1bac94)
          #12 0x55bc01a430e1 in QtVLCWidget::~QtVLCWidget() ../qtvlcwidget.cpp:237
          #13 0x7f06d0d7936d in QObjectPrivate::deleteChildren() (/usr/lib/libQt5Core.so.5+0x2de36d)
          #14 0x7f06d185104d in QWidget::~QWidget() (/usr/lib/libQt5Widgets.so.5+0x19704d)
          #15 0x55bc01a40e25 in main ../main.cpp:27
          #16 0x7f06d0513151 in __libc_start_main (/usr/lib/libc.so.6+0x28151)
          #17 0x55bc01a40fed in _start (/home/alexandre/workspace/videolabs/vlc/doc/libvlc/QtGL/build/qtglvlc+0x5fed)
      0135f73c
    • Alexandre Janniaux's avatar
      doc: QtGl: fix memory leak on VLCVideo · 81a4d5c2
      Alexandre Janniaux authored
      VLCVideo was not released, probably because it was considered like a
      QObject (new VLCVideo(this)) and thus expected to be destroyed
      automatically like a QObject.
      
      Use a std::unique_ptr<> to destroy it when the parent widget is
      destroyed.
      81a4d5c2
  8. 18 Nov, 2020 2 commits
    • Alexandre Janniaux's avatar
      doc: QtGl: lower verbosity level · a50f873b
      Alexandre Janniaux authored
      We don't need to display avcodec logs typically, and we mostly want to
      give feedback to the user about what is loaded and what is happening,
      meaning info, error, warn, dbg.
      a50f873b
    • Alexandre Janniaux's avatar
      doc: QtGl: release token when cleanup · 0e7d444c
      Alexandre Janniaux authored
      We're waiting for the surface to be available and protecting the surface
      from having multiple clients at the same time, but it typically didn't
      return the token when cleanup(), meaning that any second open was
      actually a deadlock in the waiting.
      0e7d444c
  9. 12 Nov, 2020 7 commits
  10. 12 Feb, 2020 1 commit
  11. 11 Feb, 2020 2 commits
  12. 10 Feb, 2020 8 commits
  13. 28 Jan, 2019 1 commit