Skip to content
Snippets Groups Projects
  1. Oct 15, 2022
  2. Oct 14, 2022
  3. Oct 13, 2022
  4. Oct 11, 2022
    • Martin Storsjö's avatar
      ci: Disable branch protection for the current Windows/ARM64 builds · fee6371a
      Martin Storsjö authored
      Clang does support the flag and gladly generates the instructions
      for return address signing, but it doesn't generate matching unwind
      info for it.
      
      If a return address is signed, unwinding through it would fail unless
      the signing is reversed at the right place. The ARM64 SEH unwind info
      format has no public documentation on how to handle return address
      signing currently.
      
      This issue isn't noticeable on any current public Windows on ARM64
      devices or servers, as the CPUs don't implement the return address
      signing instructions (which then are handled as no-ops). However,
      binaries with those instructions would fail subtly (seemingly work
      fine, but fail whenever unwinding the stack) on newer CPUs.
      
      Therefore, disable it in the CI configuration, as long as that uses
      a version of Clang that doesn't generate correct unwind info for this
      case.
      fee6371a
    • Steve Lhomme's avatar
      contrib: use cmake --install to install CMake targets · d2b9059d
      Steve Lhomme authored
      It is cleaner than using an internal "install" target which may not be on all
      CMake generators.
      
      We don't need multiple threads to install files. They will be better used for
      compiling files.
      d2b9059d
    • Steve Lhomme's avatar
    • Steve Lhomme's avatar
      contrib: replace CMAKEBUILD --target install with CMAKEINSTALL · 6c86ff70
      Steve Lhomme authored
      We don't need to know the prefix when compiling. We also don't need multiple
      threads to install files. They will be better used for compiling files.
      6c86ff70
    • Steve Lhomme's avatar
    • Romain Vimont's avatar
      qt: refactor media tree listener · 7cc8e707
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      This C++ listener is actually a wrapper over a media tree listener, not
      a media source listener.
      
      This allows to make NetworkMediaModel independent of media sources, so
      that it can be reused with only a media tree not linked to a media
      source.
      
      NetworkDeviceModel, which still requires a media source, stores it in
      its listener callbacks implementation (ListenerCb).
      7cc8e707
    • Romain Vimont's avatar
      qt: avoid unnecessary smart pointer copies · b9552485
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      b9552485
    • Romain Vimont's avatar
      qt: remove unused mediaSource · 104fa8e8
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      Only NetworkDeviceModel need to expose a mediaSource. The mediaSource
      was forwarded to all media item, but it is never used, so remove it.
      
      This paves the way to make NetworkMediaModel independent of media
      sources.
      104fa8e8
    • Romain Vimont's avatar
      qt: remove unused include · baacc656
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      baacc656
    • Romain Vimont's avatar
      qt: use one "callbacks" instance per listener · eae4b0c0
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      For each model (NetworkDeviceModel and NetworkMediaModel), every
      NetworkSourceListener instance were created with the same
      SourceListenercb instance:
      
         +------------------+
         | SourceListenerCb |-----------------------------.
         +------------------+                             |
                 ^                                        |
                 | implements                             |
        +--------------------+                            |
        | NetworkDeviceModel |                            |
        +--------------------+                            |
                 | m_listeners                            |
               +---+            +-----------------------+ |
               | ---------------| NetworkSourceListener |-|
               +---+            +-----------------------+ |
               | ----------     +-----------------------+ |
               +---+       `----| NetworkSourceListener |-|
               | -------...     +-----------------------+ .
               +---+                                      .
               |   |                                      .
               +---+
      
      To prepare storing additional data for each registration, use one
      SourceListenerCb instance per listener:
      
                                                        +------------------+
                                                        | SourceListenerCb |
                                                        +------------------+
                                                                         ^
                                                              implements |
        +--------------------+                                           |
        | NetworkDeviceModel |                                           |
        +--------------------+                                           |
                 | m_listeners                                           |
               +---+         +-----------------------+  +--------------+ |
               | ------------| NetworkSourceListener |--| MyListenerCb |-|
               +---+         +-----------------------+  +--------------+ |
               | ----------  +-----------------------+  +--------------+ |
               +---+       `-| NetworkSourceListener |--| MyListenerCb |-|
               | -------...  +-----------------------+  +--------------+ .
               +---+                                                     .
               |   |                                                     .
               +---+
      
      In practice, this will allow the SourceListenerCb (to be renamed to
      MediaTreeListenerCb) to only use a media tree (not a media source), and
      let the caller store an additional associated media source usable
      from the callbacks implementation.
      
      As a drawback, the MyListenerCb instance must be owned by the listener
      (to avoid additional complexity on the client side), but then this
      forces the client to always create a separate class for the listener
      callbacks, even when not necessary (i.e. making NetworkMediaModel
      "implement" SourceListenerCb is not possible anymore).
      
      Alternatives considered:
       1. keep SourceListenerCb as is, but make NetworkSourceListener virtual
          (inheritable), so that the additional media source could be stored
          there. As a drawback, the SourceListenerCb methods would need to get
          the NetworkSourceListener instance as parameter (so yet another
          indirection). And having both the listener and the callbacks virtual
          seems odd.
       2. merge SourceListenerCb into NetworkSourceListener, so that the
          client can just inherit and store additional private data in the
          same class. But this requires more changes from the existing code
          base.
      eae4b0c0
    • Romain Vimont's avatar
      qt: use static free functions for C callbacks · 1a9ab8b5
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      Callbacks to be called from C should be free functions rather than class
      members.
      1a9ab8b5
    • Romain Vimont's avatar
      qt: remove unnecessary explicit destructor · 0aeafa2d
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      0aeafa2d
    • Romain Vimont's avatar
      qt: remove unused default constructor · 07fc99b9
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      07fc99b9
    • Romain Vimont's avatar
      media tree: make functions public · c808e3e8
      Romain Vimont authored and Steve Lhomme's avatar Steve Lhomme committed
      This will allow to create and handle a media tree separately from a
      media source (linked to a service discovery).
      c808e3e8
    • François Cartegnie's avatar
      demux: es: set audio channel type · 9dafb994
      François Cartegnie authored and Steve Lhomme's avatar Steve Lhomme committed
      9dafb994
Loading