Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. Feb 06, 2023
  4. Jan 31, 2023
  5. Sep 29, 2022
    • Andreas Traczyk's avatar
      avmodel: use synchronous callbacks for DecodingStarted/Stopped · 15e13330
      Andreas Traczyk authored and Adrien Béraud's avatar Adrien Béraud committed
      This is an older issue that has resurfaced where mobile device rotation
      at the beginning of a call cause a frame-copy to a stale buffer because
      the DecodingStarted event is handled asynchronously.
      
      Noticed on Windows but I believe any non-dbus build should have it.
      
      So we make all the connections blocking and adjust some parameters.
      This commit also removes the DecodingStarted handler in CallModel which
      was causing the client's target video frame to be reallocated for each
      account present.
      
      Change-Id: I23ac4e0bd4b446e7a532f0d362f7ecd209d3c790
      GitLab: #536
      15e13330
  6. Jun 14, 2022
  7. May 31, 2022
  8. May 19, 2022
  9. May 12, 2022
  10. Apr 14, 2022
    • Mohamed Chibani's avatar
      SMH: fix check on buffer size · d940c725
      Mohamed Chibani authored
      The SHM buffer size might be slightly larger than the expected
      size due to 16-byte memory alignment used to create the SHM
      buffers.
      
      Gitlab: #731
      
      Change-Id: Ida174fd16698cdbe6b19ccfd3c0c266adad68fa2
      d940c725
  11. Apr 13, 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