From 788f5c498dd50651263832b4f80cbbca7c919405 Mon Sep 17 00:00:00 2001
From: kolanp
Date: Tue, 13 May 2025 15:48:14 +0000
Subject: [PATCH 1/4] WT3a: Changes to support multi-access media delivery
(26.512-CR0087)
---
TS26510_CommonData.yaml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/TS26510_CommonData.yaml b/TS26510_CommonData.yaml
index aa7b6bb4..acabbea8 100644
--- a/TS26510_CommonData.yaml
+++ b/TS26510_CommonData.yaml
@@ -257,6 +257,20 @@ components:
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
+ EndpointAddressWithOptionalPort:
+ type: object
+ required:
+ - domainName
+ properties:
+ domainName:
+ type: string
+ minLength: 1
+ portNumbers:
+ type: array
+ minItems: 1
+ items:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
+
UnidirectionalQosSpecification:
type: object
description: A specification for network Quality of Service in either the downlink or uplink direction.
--
GitLab
From 3bc5de30056a49dc8e6f30d7edaf7888c3f9260a Mon Sep 17 00:00:00 2001
From: kolanp
Date: Tue, 13 May 2025 15:55:17 +0000
Subject: [PATCH 2/4] WT3a: Changes to support multi-access media delivery
(26.512-CR0087)
---
TS26512_CommonData.yaml | 181 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 180 insertions(+), 1 deletion(-)
diff --git a/TS26512_CommonData.yaml b/TS26512_CommonData.yaml
index 8e5bee44..e2f9996c 100644
--- a/TS26512_CommonData.yaml
+++ b/TS26512_CommonData.yaml
@@ -142,6 +142,97 @@ components:
minimumBitRate:
$ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
+ ServiceDescription:
+ description: Service description as defined in annex K of ISO/IEC 23009-1. This allows the application to define additional service descriptions beyond those defined in a media description document such as MPD.
+ type: object
+ properties:
+ id:
+ type: string
+ description: Service description identifier.
+ serviceLatency:
+ type: object
+ description: Service description parameters for the service latency, as defined in table K.1 of ISO/IEC 23009-1.
+ playBackRate:
+ type: object
+ description: Service description parameters for the playback rate, as defined in table K.2 of ISO/IEC 23009-1 when the service is consumed in live mode.
+ operatingQuality:
+ type: object
+ description: Service description parameters for the operating quality, as defined in table K.3 of ISO/IEC 23009-1.
+ operatingBandwidth:
+ type: object
+ description: Service description parameters for the operating bandwidth, as defined in table K.4 of ISO/IEC 23009-1.
+
+ ServiceOperationPoint:
+ description: Service Operation Point parameters according to which the DASH client is operating.
+ type: object
+ properties:
+ externalIdentifier:
+ type: string
+ description: Identifier uniquely identifying Service Operation Point in the presentation manifest (e.g. DASH MPD).
+ mode:
+ $ref: '#/components/schemas/MediaOperationMode'
+ description: >
+ In case of live operation mode, the DASH client operates to maintain configured target latencies using playback rate adjustments and possibly resync.
+ In case of vod operation mode, the DASH client operates without latency requirements and rebuffering may result in additional latencies.
+ maxBufferTime:
+ type: integer
+ description: Maximum buffer time in milliseconds for the service.
+ switchBufferTime:
+ type: integer
+ description: Buffer time threshold below which the DASH clients attempt to switch Representations.
+ latency:
+ type: object
+ description: Defines the latency parameters used by the DASH client when operating in live mode.
+ properties:
+ target:
+ type: integer
+ description: The target latency for the service in milliseconds.
+ max:
+ type: integer
+ description: The maximum latency for the service in milliseconds.
+ min:
+ type: integer
+ description: The minimum latency for the service in milliseconds.
+ playbackRate:
+ type: object
+ description: Defines the playback rate parameters used by the DASH client for catchup mode and deceleration to avoid buffer underruns and maintaining target latencies.
+ properties:
+ max:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Double'
+ description: Maximum playback rate for the purposes of automatically adjusting playback latency and buffer occupancy during normal playback, where 1.0 is normal playback speed.
+ min:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Double'
+ description: Minimum playback rate for the purposes of automatically adjusting playback latency and buffer occupancy during normal playback, where 1.0 is normal playback speed.
+ bitRate:
+ type: object
+ description: Defines the operating bit rate parameters used by the DASH client used for a specific media type or aggregated. The values are on IP level.
+ properties:
+ target:
+ type: integer
+ description: The target bit rate for the service in bit/s that the client is configured to consume.
+ max:
+ type: integer
+ description: The maximum bit rate for the service in bit/s that the client is configured to consume.
+ min:
+ type: integer
+ description: The minimum bit rate for the service in bit/s that the client is configured to consume.
+ playerSpecificParameters:
+ type: object
+ description: Player-specific parameters may be provided, for example about the used algorithm, etc..
+
+ MultiAccessConnectionStatus:
+ description: Multi-access delivery connection status information.
+ properties:
+ status:
+ type: boolean
+ description: Indicates status of multi-access delivery connection.
+ transportProtocol:
+ $ref: '#/components/schemas/MultiAccessTransportProtocolType'
+ description: An enumerated value indicating the multi-access transport protocol.
+ numberOfPaths:
+ type: integer
+ description: The current number of active subflows or paths at reference point M4d.
+
#####################################
# Clause 6.4.4: Enumerated data types
#####################################
@@ -156,4 +247,92 @@ components:
description: >
This string provides forward-compatibility with future
extensions to the enumeration but is not used to encode
- content defined in the present version of this API.
\ No newline at end of file
+ content defined in the present version of this API.
+
+ MultiAccessTransportProtocolType:
+ anyOf:
+ - type: string
+ enum:
+ - MPTCP
+ - MPQUIC
+ - type: string
+ description: >
+ Represents type of multipath protocol for multi-access delivery introduced in TS 23.501
+
+ MediaOperationMode:
+ anyOf:
+ - type: string
+ enum:
+ - live
+ - vod
+ - type: string
+ description: >
+ Two operation modes of 5GMS media delivery session.
+
+ MediaPlayerNotificationEvent:
+ description: 'Enumeration of media player notifications.'
+ anyOf:
+ - type: string
+ enum:
+ - NOTIFICATION_AST_IN_FUTURE
+ - NOTIFICATION_AVAILABLE_MEDIA_CHANGED
+ - NOTIFICATION_BUFFER_EMPTY
+ - NOTIFICATION_BUFFER_LOADED
+ - NOTIFICATION_CAN_PLAY
+ - NOTIFICATION_MANIFEST_LOADED
+ - NOTIFICATION_METRIC_ADDED
+ - NOTIFICATION_METRIC_CHANGED
+ - NOTIFICATION_METRIC_UPDATED
+ - NOTIFICATION_METRICS_CHANGED
+ - NOTIFICATION_OPERATION_POINT_CHANGED
+ - NOTIFICATION_PLAYBACK_ENDED
+ - NOTIFICATION_PLAYBACK_ERROR
+ - NOTIFICATION_PLAYBACK_PAUSED
+ - NOTIFICATION_PLAYBACK_PLAYING
+ - NOTIFICATION_PLAYBACK_SEEKED
+ - NOTIFICATION_PLAYBACK_SEEKING
+ - NOTIFICATION_PLAYBACK_STALLED
+ - NOTIFICATION_PLAYBACK_STARTED
+ - NOTIFICATION_PLAYBACK_WAITING
+ - NOTIFICATION_SERVICE_DESCRIPTION_SELECTED
+ - NOTIFICATION_SERVICE_DESCRIPTION_CHANGED
+ - NOTIFICATION_SERVICE_DESCRIPTION_VIOLATED
+ - NOTIFICATION_SOURCE_INITIALIZED
+ - NOTIFICATION_DOWNLOAD_STARTED
+ - NOTIFICATION_DOWNLOAD_COMPLETED
+ - NOTIFICATION_DOWNLOAD_ERROR
+ - NOTIFICATION_MULTI-ACCESS_DELIVERY_ESTABLISHED
+ - NOTIFICATION_MILTI-ACCESS_DELIVERY_CHANGED
+ - type: object
+ description: Notification payload.
+
+ MediaPlayerErrorReason:
+ description: 'Enumeration of media player errors.'
+ anyOf:
+ - type: string
+ enum:
+ - ERROR_MEDIA_ENTRY_NOT_FOUND
+ - ERROR_CONTENT_NOT_FOUND
+ - ERROR_MEDIA_PLAYBACK
+ - ERROR_INVALID_MEDIA_ENTRY
+ - ERROR_INACCESSIBLE_MEDIA_TIME
+ - ERROR_UNSUPPORTED_PROFILE
+ - ERROR_DOWNLOAD_DEADLINE_MISSED
+ - ERROR_MULTI-ACCESS_DELIVERY_UNAVAILABLE
+ - type: object
+ description: Error reason.
+
+ MediaPlayerState:
+ description: 'Enumeration of media player states.'
+ anyOf:
+ - type: string
+ enum:
+ - STATE_INITIALIZED
+ - STATE_READY
+ - STATE_PRELOADED
+ - STATE_PLAYING
+ - STATE_PAUSED
+ - STATE_DOWNLOADING
+ - STATE_IDLE
+ - type: object
+ description: Media Player state.
\ No newline at end of file
--
GitLab
From 0eabd70b1e403645029e9527fc12048dc3e2f71d Mon Sep 17 00:00:00 2001
From: kolanp
Date: Tue, 13 May 2025 15:58:20 +0000
Subject: [PATCH 3/4] WT3a: Changes to support multi-access media delivery
(26.512-CR0087)
---
TS26512_M6_MediaSessionHandling.yaml | 73 ++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 TS26512_M6_MediaSessionHandling.yaml
diff --git a/TS26512_M6_MediaSessionHandling.yaml b/TS26512_M6_MediaSessionHandling.yaml
new file mode 100644
index 00000000..58998c47
--- /dev/null
+++ b/TS26512_M6_MediaSessionHandling.yaml
@@ -0,0 +1,73 @@
+openapi: 3.0.0
+
+info:
+ title: 5GMS UE Media Session Handling
+ version: 1.1.0
+ description: |
+ 5GMS UE Media Session Handling syntax
+ © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: 5GMS UE Media Session Handling
+ description: '5G Media Streaming: Media Session Handling'
+
+externalDocs:
+ description: 'TS 26.512 V18.5.0; 5G Media Streaming (5GMS); Protocols'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/'
+
+paths: {}
+
+components:
+ schemas:
+ 3GPPServiceURLParameters:
+ type: object
+ description: Parameters of the 3GPP Service URL for 5G Media Streaming
+ required:
+ - serviceId
+ properties:
+ serviceId:
+ type: string
+ description: An External Service Identifier that resolves to a Provisioning Session in the 5GMS System.
+ afHostAddress:
+ type: array
+ minItems: 0
+ items:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/EndpointAddressWithOptionalPort'
+ description: The Fully Qualified Domain Name and optional port number of a 5GMS AF endpoint to be used by the Media Session Handler at reference point M5 with the format hostname[:port].
+ accessToken:
+ type: string
+ description: A token that is presented by the Media Session Handler to the 5GMS AF at reference point M5 that asserts its right to invoke the media session handling operations exposed by the 5GMS AF.
+ serviceOperationPoint:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/ServiceOperationPoint'
+ description: A reference to the target Service Operation Point of the 5G Media Streaming session.
+ estimatedVolume:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: A reference to the target Service Operation Point of the 5G Media Streaming sessionAn estimate of the volume of media data to be transferred between the 5GMS Client and the 5GMS AS at reference point M4 during the 5G Media Streaming session.
+ mediaEntryPoint:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ description: A Media Entry Point reference expressed as a fully qualified URL.
+ multipathProtocol:
+ type: array
+ minItems: 0
+ items:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/MultiAccessTransportProtocolType'
+ description: A multipath transport protocol to be used for multi-access media delivery at reference point M4.
+ minPaths:
+ type: integer
+ description: The minimum number of subflows or paths to be used for multi-access media delivery at reference point M4.
+ maxPaths:
+ type: integer
+ description: The maximum number of subflows or paths to be used for multi-access media delivery at reference point M4.
+ contentType:
+ type: array
+ minItems: 0
+ items:
+ type: string
+ description: An array of content type strings conforming to section 5 of RFC 2045 [57] identifying type of Media Entry Points that are acceptable to the Media Stream Handler (Media Player or Media Streamer).
+ profile:
+ type: array
+ minItems: 0
+ items:
+ type: string
+ description: Fully-qualified term identifiers from a controlled vocabulary specified outside the scope of the present document identifying profiles of Media Entry Points that are acceptable to the Media Stream Handler (Media Player or Media Streamer). The term identifier shall be formatted as a URI according to RFC 3986.
\ No newline at end of file
--
GitLab
From 9953bf62df3e36f21e157425e1a0b209dd2bae9b Mon Sep 17 00:00:00 2001
From: kolanp
Date: Tue, 13 May 2025 15:59:46 +0000
Subject: [PATCH 4/4] WT3a: Changes to support multi-access media delivery
(26.512-CR0087)
---
TS26512_M7_M11_MediaStreamHandling.yaml | 128 ++++++++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 TS26512_M7_M11_MediaStreamHandling.yaml
diff --git a/TS26512_M7_M11_MediaStreamHandling.yaml b/TS26512_M7_M11_MediaStreamHandling.yaml
new file mode 100644
index 00000000..f07219ea
--- /dev/null
+++ b/TS26512_M7_M11_MediaStreamHandling.yaml
@@ -0,0 +1,128 @@
+openapi: 3.0.0
+
+info:
+ title: 5GMS UE Media Stream Handling
+ version: 1.1.0
+ description: |
+ 5GMS UE Media Stream Handling syntax
+ © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: 5GMS UE Media Stream Handling
+ description: '5G Media Streaming: Media Stream Handling'
+
+externalDocs:
+ description: 'TS 26.512 V18.5.0; 5G Media Streaming (5GMS); Protocols'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/'
+
+paths: {}
+
+components:
+ schemas:
+ MediaPlayerConfiguration:
+ type: object
+ description: Configuration of 5GMS media delivery session by 5GMS-Aware Application at reference point M7 or by the Media Session Handler at reference point M11.
+ properties:
+ sessionId:
+ type: string
+ description: A media delivery session identifier for the downlink media streaming session.
+ source:
+ type: object
+ description: Provides the MPD and all contained information.
+ consumptionMode:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/MediaOperationMode'
+ description: >
+ In case of live consumption mode, the target latency is maintained, if specified in the service description.
+ In case of vod consumption mode, the latency is set by the application and the latency settings are ignored.
+ maxBufferTime:
+ type: integer
+ description: Maximum buffer time in milliseconds for the service.
+ serviceDescriptionId:
+ type: string
+ description: Selects a service description by selecting an identifier.
+ serviceDescriptions:
+ type: array
+ items:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/ServiceDescription'
+ description: Service description parameters as defined in annex K of ISO/IEC 23009-1. This allows the application to define additional service descriptions beyond those defined in the MPD.
+ mediaSettings:
+ type: array
+ items:
+ $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/MediaType'
+ description: Sets the selected Adaptation Set based on the available Adaptation Sets for each media type.
+ metricsConfiguration:
+ type: array
+ items:
+ type: object
+ description: Zero or more sets of settings for collecting metrics in relation to the downlink media streaming session.
+ multiAccessConfiguration:
+ type: object
+ description: Configuration of multi-access media delivery at reference point M4d. If omitted, multi-access delivery is disabled.
+ properties:
+ transportProtocols:
+ type: array
+ minItems: 1
+ items:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/MultiAccessTransportProtocolType'
+ description: A non-empty array of enumerated values to be used by the Media Player for multi-access media delivery at reference point M4d.
+ minPaths:
+ type: integer
+ description: Minimum number of subflows or paths used by the Media Player for multi-access delivery at reference point M4d.
+ maxPaths:
+ type: integer
+ description: Maximum number of subflows or paths used by the Media Player for multi-access delivery at reference point M4d.
+
+ MediaPlayerDynamicStatus:
+ type: object
+ description: Dynamically changing status information that can be obtained from the Media Player via reference point M7d or M11d.
+ properties:
+ state:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/MediaPlayerState'
+ description: Enumerated value from list of media player states.
+ averageThroughput:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: Current average throughput computed in the ABR logic in bit/s.
+ bufferLength:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: Current length of the buffer for a given media type, in seconds.
+ liveLatency:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: Current live stream latency in seconds based on the latency measurement.
+ mediaSettings:
+ type: array
+ items:
+ type: object
+ description: Current media settings for each media type based on the CMAF Header and the MPD information based on the selected Adaptation Set for this media type.
+ mediaTime:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: Current media playback time from media playback platform.
+ playbackRate:
+ $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
+ description: The current rate of playback.
+ availableServiceDescriptions:
+ type: array
+ items:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/ServiceDescription'
+ description: List of available selectable service descriptions with an id to select from.
+ availableMediaOptions:
+ type: array
+ items:
+ type: object
+ description: List of available media options that can be selected by the application based on the capability discovery and the subset information.
+ serviceOperationPoints:
+ type: array
+ items:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/ServiceOperationPoint'
+ description: Set of Service Operation Points declared in the presentation manifest (e.g. DASH MPD) of the current media presentation.
+ operativeServiceOperationPoint:
+ type: integer
+ description: A zero-based index into the serviceOperationPoints array indicating the Service Operation Point currently operative in the playback session.
+ metrics:
+ type: array
+ description: Data blob of metrics for each configured metrics collecting scheme.
+ items:
+ type: object
+ multiAccessConnectionStatus:
+ $ref: 'TS26512_CommonData.yaml#/components/schemas/MultiAccessConnectionStatus'
+ description: Status information of multi-access delivery connection instance.
\ No newline at end of file
--
GitLab