Skip to content
Snippets Groups Projects
  1. Feb 29, 2024
  2. Feb 15, 2024
  3. Jan 03, 2024
  4. Jun 01, 2023
  5. May 15, 2023
    • Vladimir Stoiakin's avatar
      videoprovider: cleanup synchronization with the scene graph renderer · 9b876c19
      Vladimir Stoiakin authored and Sébastien Blin's avatar Sébastien Blin committed
      Applies some suggestions based on reviews by vstoiakin regarding concurrent resource access and overall structural simplification.
      - Create and handoff ownership of QVideoFrames each frame
      - use QReadWriteLocks when multiple reads are possible instead of QMutex
      - remove the superfluous layer of unique_ptrs on QVideoFrames which are explicitly shared using QExplicitlySharedDataPointer for their underlying data.
      
      This patch is required to prevent crashes when using Qt 6.4 and up.
      
      Gitlab: #938
      Change-Id: Ia9a9f0310344bcee47dbd88ec622bc3daa2ce6d7
      9b876c19
  6. Apr 14, 2023
  7. Mar 15, 2023
  8. Feb 22, 2023
    • Andreas Traczyk's avatar
      videoprovider: remove frame subscription on QVideoSink::destroyed · 2baf76e7
      Andreas Traczyk authored
      We can observe that frame update signals can occur after a VideoOutput component's QVideoSink object has started destruction. The deregistration of the object pointer needs to be synchronized to the object's destruction.
      
      Additionally:
      + scope the frame obj mutex locker around checks for no subs
      + rename (un)registerSink to (un)subscribe
      + subscribe will now remove the previous subscription
      + subscribe with an empty id will unsubscribe
      
      Gitlab: #997
      Change-Id: I21460564e49189b9276f153e8c1fd3a5cc52c6b2
  9. Feb 06, 2023
  10. May 19, 2022
  11. Apr 05, 2022
  12. Mar 08, 2022
    • Andreas Traczyk's avatar
      video: use QVideoSink/VideoOutput and QVideoFrame instead of QImage · e7cc0497
      Andreas Traczyk authored and Adrien Béraud's avatar Adrien Béraud committed
      Removes the rendermanager and framewrapper objects along with any
      QQuickPaintedItem-based QML render widget classes. This simplifies
      the video widget stack implementation.
      
      The new mechanism uses the VideoOutput component of QtMultimedia.
      By accessing the VideoOutput's QVideoSink object, we update the
      mapped buffer data of a sink's QVideoFrame when new frames are
      published. Updates to frames and component sink subscriptions are
      managed by a new class called VideoProvider.
      
      Gitlab: #500
      Also #536
      
      Change-Id: I2391a32294922ea435ab80ac1f876c004ff6c21e
      e7cc0497
Loading