Replies: 2 comments
-
21.03.2025If two releases are very similar (small delta) there would be a “common ground” and release specific features could go into some kind of release specific "adapter"? Runtime option sounds attractive here. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks Daniel: Just to check, the configuration is done through an API? Is this API consistent across dash.js and Exo? Does it align with the API/Service description in the 6th edition of DASH? At least conceptually: Do you believe it is better to configure outside the MPD using Service Provisioning or should we rely on MPD carrying the information? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Description
Typically, the reference implementation of a certain technology or feature in the 5G-MAG Reference Tools is based on a specific 3GPP release. As an example, our reference implementation of 5G Downlink Media Streaming is based on Release 17.
As the work in 3GPP continues at a steady pace, new releases are published. These releases contain new features, additions, and enhancements to existing releases. As an example, consider Rel.18 or Rel.19 features for 5G Media Streaming such as the support for Common Media Client Data (CMCD).
This thread aims at collecting and discussing the integration strategy for new 3GPP releases into the existing reference implementations. 5G Downlink Media Streaming is just an example, the same question arises in the context of other projects.
General Questions / Discussion Items
Integration Strategies
This section collects possible integration strategies. To be defined in more detail and collected in this thread.
Release specific forks
Idea
Each GitHub repository implements a specific 3GPP release. To add support for a new release the corresponding repository is forked and labeled accordingly. For instance, to add a Rel.18 features to the rt-5gms-media-session-handler the repository is forked and labeled
rt-5gms-media-session-handler-rel-18.Pros
Cons
Maintaining 3GPP release specific branches
Idea
Each GitHub repository contains multiple 3GPP release specific branches. To add support for a new release, a new branch is created in the corresponding repository. For instance, to add a Rel.18 features to the rt-5gms-media-session-handler the repository a branch labeled
Rel.18is created.References / Examples
Pros
Cons
developmentandmainbranch anymore.Maintaining a core module and a set of extensions
Idea
Design the system with a core module and additional extensions that can be plugged together to support a specific release. As an example, there can be a CMCD module that is added to a set of core modules to support the Rel.19 CMCD feature.
References / Examples
Pros
Cons
Build or runtime configuration / Feature flags
Idea
There are no 3GPP release specific branches, and the configuration of which 3GPP release or feature to support is done either at build time or at runtime. For UE side components with a user interface, this can be a simple selection based on a group of radio buttons. For server side components, this can be a flag that is set at build time. Based on the configuration, the build includes 3GPP release specific features.
Pros
Cons
if..else) in the code, which leads to high code complexity.Beta Was this translation helpful? Give feedback.
All reactions