METHODS, FIRST COMPUTING DEVICE, AND SECOND COMPUTING DEVICE

BR112025021158A2Pending Publication Date: 2026-09-08
View PDF 0 Cites -1 Cited by

Patent Information

Application Number
BR112025021158
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-09-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 67 “EXTENSION OF REAL-TIME TRANSPORT PROTOCOL HEADER FOR IN-BAND DELAY MEASUREMENT

[0001] This application is a US utility priority PCT of US patent application No. 18 / 347,977, filed July 6, 2023, which claims the benefit of US provisional patent application No. 63 / 495,236, filed April 10, 2023, the contents of which are incorporated by reference. TECHNICAL FIELD

[0002] This disclosure refers to the transport of data, such as RTP / SRTP packets. BACKGROUND

[0003] Applications, such as extended reality (XR) applications, can be accessed by a device through one or more networks from another device. The one or more networks may include wireless wide area network(s), such as a 5G network, wireless local area network(s), such as a Wi-Fi network, the internet, or similar. In this way, the end-to-end connection between the two devices can traverse different types of networks. The traversal of networks by a data packet can cause data packet delay. SUMMARY

[0004] In general, this disclosure describes techniques for improving the accuracy of delay measurements. More particularly, this disclosure describes techniques for more accurately determining the end-to-end transport delay of data packets, such as RTP / SRTP packets. RTP / SRTP packets may include RTP packets and / or SRTP packets. A packet may include an element Petition 870250089281, dated 10 / 01 / 2025, page 77 / 172 2 / 67 header extension that may include information relating to a time indicator, such as at least one indication of a time indicator number(s), a start time(s) of the time indicator(s) and a location of the time indicator(s), a length of the time indicators in the packet, or a type of time indicator(s). The header extension element may include a one-byte or two-byte header extension element header, such as the one-byte format or the two-byte format for an RTP header extension element header. The packet may include a timestamp or a delay measurement message that may be contained in the header extension element or in a packet payload.

[0005] In one example, a method includes: transmitting, from a first computing device to a second computing device, a first data packet, wherein the first data packet comprises a first timestamp and at least one header extension element, wherein the header extension element has a length of at least one byte; receiving, by the first computing device from the second computing device, a second data packet, wherein the second data packet comprises a second timestamp; determining, by the first computing device, a data packet delay associated with the first data packet based on the first timestamp and the second timestamp; and transmitting, by Petition 870250089281, dated 10 / 01 / 2025, pp. 78 / 172 3 / 67 first computing device, an indication of the data packet delay to at least one of the second computing devices or a third computing device.

[0006] In another example, a method includes: receiving, by a second computing device from a first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmitting, by the second computing device to the first computing device, a second data packet, wherein the second data packet comprises a second time indicator, a third time indicator and at least one header extension element, wherein the header extension element has a length of at least one byte.

[0007] In another example, a first computing device includes a memory configured to store a first data packet; and one or more processors coupled to the memory, wherein the one or more processors are configured to: transmit to a second computing device the first data packet, wherein the first data packet comprises a first time indicator and at least one header extension element, wherein the header extension element has a length of at least one byte; receive Petition 870250089281, dated 10 / 01 / 2025, pp. 79 / 172 4 / 67 of the second computing device a second data packet, the second data packet comprising a second time indicator; determine a data packet delay associated with the first data packet based, at least in part, on at least one of the first time indicator or the second time indicator; and transmit an indication of the data packet delay to at least one of the second computing device or a third computing device.

[0008] In another example, a second computing device includes a memory configured to store a first data packet; and one or more processors coupled to the memory, wherein the one or more processors are configured to: receive, from a first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmit, to the first computing device, a second data packet, wherein the second data packet comprises a second time indicator, a third time indicator and at least one header extension element, wherein the header extension element has a length of at least one byte.

[0009] Details of one or more examples are presented in the attached drawings and in the description below. Other attributes, objectives, and advantages will become apparent from the description, drawings, and claims. Petition 870250089281, dated 10 / 01 / 2025, page 80 / 172 5 / 67 BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1A is a block diagram illustrating an example system that implements techniques for streaming media data over a network.

[0011] Figure 1B is a block diagram illustrating another example system that implements techniques for streaming media data over a network.

[0012] Figure 2 is a block diagram illustrating an end-to-end XR system in which data packets traverse more than one network.

[0013] Figure 3 is a conceptual diagram illustrating examples of delays in an end-to-end connection for an XR application according to one or more aspects of this disclosure.

[0014] Figure 4 is a conceptual diagram illustrating an example of an RTP / SRTP packet and RTP header extension format (RFC 3550).

[0015] Figures 5A and 5B are conceptual diagrams illustrating example RTP / SRTP packet formats (RFC 8285).

[0016] Figure 6 is a conceptual diagram illustrating a sample byte format with timestamps in a header extension according to one or more aspects of this disclosure.

[0017] Figure 7 is a conceptual diagram illustrating a sample byte format with timestamps in a payload according to one or more aspects of this disclosure.

[0018] Figure 8 is a conceptual diagram. Petition 870250089281, dated 10 / 01 / 2025, page 81 / 172 Figure 6 / 67 illustrates an example two-byte format with timestamps in a header extension in accordance with one or more aspects of that disclosure.

[0019] Figure 9 is a conceptual diagram illustrating an example two-byte format with timestamps in a payload according to one or more aspects of this disclosure.

[0020] Figure 10 is a flowchart illustrating an example data packet delay technique according to one or more aspects of this disclosure.

[0021] Figure 11 is a flowchart illustrating another example data packet delay technique according to one or more aspects of this disclosure. DETAILED DESCRIPTION

[0022] In general, this disclosure describes techniques for improving the accuracy of delay measurements. More particularly, this disclosure describes techniques for more accurately determining the delay in the transmission of data packets (data packet delay), such as the delay caused in the end-to-end transport of data packets. Such data packets may include an RTP packet or an SRTP packet (referred to in the present invention as an RTP / SRTP packet), wherein RTP stands for Real-Time Transport Protocol and SRTP stands for Real-Time Secure Transport Protocol. A packet, such as an RTP / SRTP packet, may include a time indicator, such as a timestamp or a delay measurement message. The packet may also include at least one header extension element. The at least one header extension element may include information relating to the time indicator. Petition 870250089281, dated 10 / 01 / 2025, page 82 / 172 7 / 67 Time. A header of at least one header extension element (which may be referred to in the present invention as a header extension element header) may have a length of at least one byte, such as one byte or two bytes in length. In some examples, the time indicator may be in at least one header extension element. In other examples, the time indicator may be in a packet payload.

[0023] In extended reality (XR) applications, an end-to-end connection can include wireless long-distance networks, such as 5G networks, and wireless long-distance networks (e.g., non-5G networks). Non-5G networks can include the internet, wireless local area networks (e.g., Wi-Fi networks), etc. Although the techniques in this disclosure may be applicable to wireless long-distance networks other than 5G networks, for ease of description, a 5G network is used below as a representative example of a wireless long-distance network.

[0024] Figure 1A is a block diagram illustrating an example system 10 that implements techniques for streaming media data over a network. In this example, system 10 includes content preparation device 20, server device 60, and client device 40. Server device 60 may be an XR application server. Client device 40 and server device 60 are communicatively coupled by network 74, which may comprise a wireless wide area network, a wireless local area network, the internet, and / or similar. In some examples, content preparation device 20 and server device 60 may be Petition 870250089281, dated 10 / 01 / 2025, page 83 / 172 8 / 67 coupled also by network 74, or by another network, or they may be directly and communicatively coupled. In some examples, the content preparation device 20 and the server device 60 may comprise the same device.

[0025] The content preparation device 20, in the example of Figure 1A, comprises an audio source 22 and a video source 24. The audio source 22 may comprise, for example, a microphone that produces electrical signals representative of the captured audio data to be encoded by the audio encoder 26. Alternatively, the audio source 22 may comprise a storage medium that stores previously recorded audio data, an audio data generator, such as a computerized synthesizer, or any other audio data source. The video source 24 may comprise a video camera that produces video data to be encoded by the video encoder 28, a storage medium encoded with previously recorded video data, a video data generation unit, such as a computer graphics source, or any other video data source.The content preparation device 20 is not necessarily communicatively coupled to the server device 60 in all examples, but it may store multimedia content on a separate medium that is read by the server device 60.

[0026] Raw audio and video data may comprise analog or digital data. Analog data may be digitized before being encoded by the audio encoder 26 and / or by Petition 870250089281, dated 10 / 01 / 2025, page 84 / 172 9 / 67 Video encoder 28. Audio source 22 can obtain audio data from a speaking participant while the speaking participant is speaking, and video source 24 can simultaneously obtain video data from the speaking participant. In other examples, audio source 22 may comprise a computer-readable storage medium comprising stored audio data, and video source 24 may comprise a computer-readable storage medium comprising stored video data. In this manner, the techniques described in this disclosure can be applied to live, streaming, real-time audio and video data or to archived and pre-recorded audio and video data.

[0027] Audio frames that correspond to video frames are generally audio frames that contain audio data that was captured (or generated) by audio source 22 contemporaneously with video data captured (or generated) by video source 24 that is contained within the video frames. For example, although a speaking participant generally produces audio data per speech, audio source 22 captures the audio data and video source 24 captures the video data of the speaking participant at the same time, i.e., while audio source 22 is capturing the audio data. In this way, an audio frame can temporally correspond to one or more particular video frames.Consequently, an audio frame corresponding to a video frame generally corresponds to a situation in which audio and video data were captured simultaneously, and for which an audio frame and a video frame comprise, respectively, the audio and video data that were captured at the same time. Petition 870250089281, dated 10 / 01 / 2025, page 85 / 172 10 / 67 at the same time.

[0028] In some examples, the audio encoder 26 may encode a timestamp in each encoded audio frame that represents a time at which the audio data for the encoded audio frame was recorded, and similarly, the video encoder 28 may encode a timestamp in each encoded video frame that represents a time at which the video data for an encoded video frame was recorded. In such examples, an audio frame corresponding to a video frame may comprise an audio frame comprising a timestamp and a video frame comprising the same timestamp. The content preparation device 20 may include an internal clock from which the audio encoder 26 and / or the video encoder 28 may generate the timestamps, or which the audio source 22 and the video source 24 may use to associate audio and video data, respectively, with a timestamp.It is observed that these timestamps may differ from the timestamps discussed in the present invention with respect to their use in determining a data packet delay, such as an end-to-end delay, which may be contained within a packet, such as in a header extension element or a packet payload.

[0029] In some examples, audio source 22 may send data to audio encoder 26 that corresponds to a time when audio data was recorded, and video source 24 may send data to video encoder 28 that corresponds to a time when video data was recorded. In some examples, the Petition 870250089281, dated 10 / 01 / 2025, page 86 / 172 Audio encoder 26 can encode a sequence identifier in encoded audio data to indicate a relative temporal order of encoded audio data, but without necessarily indicating an absolute time at which the audio data was recorded, and similarly, video encoder 28 can also use sequence identifiers to indicate a relative temporal order of encoded video data. Similarly, in some examples, a sequence identifier can be mapped or otherwise correlated to a timestamp.

[0030] Audio encoder 26 generally produces a stream of encoded audio data, while video encoder 28 produces a stream of encoded video data. Each individual data stream (whether audio or video) can be called an elementary stream. An elementary stream is a single, digitally encoded (possibly compressed) component of a representation. For example, the encoded video or audio portion of the representation can be an elementary stream. An elementary stream can be converted into a packetized elementary stream (PES) before being encapsulated in a video file. In the same representation, a stream ID can be used to distinguish the PES packets belonging to an elementary stream. The basic data unit of an elementary stream is a packetized elementary stream (PES) packet. Thus, encoded video data generally corresponds to elementary video streams.Similarly, audio data corresponds to one or more of the respective elementary streams.

[0031] Many video encoding standards, Petition 870250089281, dated 10 / 01 / 2025, page 87 / 172 12 / 67, such as ITU-T H.264 / AVC and the upcoming high-efficiency video coding (HEVC) standard, define the syntax, semantics, and decoding process for error-free bitstreams, any of which conform to a certain profile or level. Video coding standards typically do not specify the encoder, but the encoder is responsible for ensuring that the generated bitstreams are standard-compliant for a decoder. In the context of video coding standards, a profile corresponds to a subset of algorithms, attributes or tools, and constraints that apply to them. As defined by the H.264 standard, for example, a profile is a subset of all the bitstream syntax that is specified by the H.264 standard.A level corresponds to the limitations of decoder resource consumption, such as decoder computing and memory, which are related to image resolution, bit rate, and block processing rate. A profile can be indicated with a profile_idc value (profile indicator), while a level can be indicated with a level_idc value (level indicator).

[0032] The H.264 standard, for example, recognizes that, within the limits imposed by the syntax of a given profile, it is still possible to demand a large variation in the performance of encoders and decoders depending on the values ​​obtained by the syntax elements in the bitstream, such as the specified size of the decoded images. The H.264 standard further recognizes that, in many applications, it is neither practical nor economical to implement a decoder with the capacity to handle all uses. Petition 870250089281, dated 10 / 01 / 2025, page 88 / 172 13 / 67 hypothetical syntax elements in a specific profile. Consequently, the H.264 standard defines a level as a specified set of constraints imposed on the values ​​of syntax elements in the bitstream. These constraints can be simple limits on values. Alternatively, these constraints can take the form of constraints on arithmetic combinations of values ​​(e.g., image width multiplied by image height multiplied by the number of images decoded per second). The H.264 standard further provides that individual implementations can support a different level for each supported profile.

[0033] A decoder that conforms to a profile generally supports all attributes defined in the profile. For example, as an encoding attribute, B-image encoding is not supported in the H.264 / AVC baseline profile, but it is supported in other H.264 / AVC profiles. A decoder that conforms to a level must have the ability to decode any bitstream that does not require resources beyond the limitations defined in the level. Profile and level definitions can be useful for interpretability. For example, during video transmission, a pair of profile and level settings can be negotiated and agreed upon for an entire transmission session. More specifically, in H.In 264 / AVC, a level can define limitations on the number of macroblocks that need to be processed, the size of the decoded picture buffer (DPB), the size of the coded picture buffer (CPB), the vertical motion vector range, the maximum number of motion vectors per two consecutive MBs, and whether a B block can have one. Petition 870250089281, dated 10 / 01 / 2025, page 89 / 172 14 / 67 submacroblock partitions smaller than 8x8 pixels. In this way, a decoder can determine if the decoder has the ability to properly decode the bitstream.

[0034] In the example in Figure 1A, the encapsulation unit 30 of the content preparation device 20 receives elementary streams comprising encoded video data from the video encoder 28 and elementary streams comprising encoded audio data from the audio encoder 26. In some examples, each of the video encoder 28 and the audio encoder 26 may include packers to form PES packets from encoded data. In other examples, each of the video encoder 28 and the audio encoder 26 may interface with their respective packers to form PES packets from encoded data. In still other examples, the encapsulation unit 30 may include packers to form PES packets from both encoded audio and video data.

[0035] Video encoder 28 can encode video data from multimedia content in various ways to produce different representations of the multimedia content at various bitrates and with various characteristics, such as pixel resolutions, frame rates, compliance with various encoding standards, compliance with various profiles and / or profile levels for various encoding standards, representations that have one or multiple views (e.g., for two-dimensional or three-dimensional playback), or other characteristics. A representation, as used in this disclosure, may comprise one of audio data, video data, data Petition 870250089281, dated 10 / 01 / 2025, page 90 / 172 15 / 67 of text (e.g., for subtitles) or other data. The representation may include an elementary stream, such as an elementary audio stream or an elementary video stream. Each PES package may include a stream_id that identifies the elementary stream to which the PES package belongs. The encapsulation unit 30 is responsible for assembling elementary streams into video files (e.g., segments) of various representations.

[0036] The encapsulation unit 30 receives PES packets for elementary streams of an audio encoder representation 26 and a video encoder representation 28 and forms corresponding network abstraction layer (NAL) units from the PES packets. The encoded video segments can be organized into NAL units, which provide “network-friendly” video representation addressing applications such as video telephony, storage, broadcast, or streaming. NAL units can be categorized into video coding layer (VCL) NAL units and non-VCL NAL units. VCL units may contain the core compression mechanism and may include block, macroblock, and / or slice-level data. Other NAL units may be non-VCL NAL units.In some examples, an image encoded in a time instance, typically presented as a primary encoded image, may be contained within an access unit, which may include one or more NAL units.

[0037] Non-VCL NAL units may include parameter set NAL units and SEI NAL units, among others. Parameter sets may contain Petition 870250089281, dated 10 / 01 / 2025, page 91 / 172 16 / 67 Sequence-level header information (in sequence parameter sets (SPS)) and the infrequently changed image-level header information (in picture parameter sets (PPS)). With parameter sets (e.g., PPS and SPS), rarely changed information does not need to be repeated for each sequence or image; thus, encoding efficiency can be improved. Furthermore, the use of parameter sets can enable out-of-band transmission of important header information, avoiding the need for redundant transmissions for error resilience. In out-of-band transmission examples, parameter set NAL units can be transmitted on a different channel than other NAL units, such as SEI NAL units.

[0038] Supplemental enhancement information (SEI) may contain information that is not necessary for decoding encoded image samples from VCL NAL units, but may assist in processes related to decoding, display, error resilience, and other purposes. SEI messages may be contained in non-VCL NAL units. SEI messages are the normative part of some standard specifications and are therefore not always mandatory for standard-compliant decoder implementation. SEI messages may be sequence-level SEI messages or image-level SEI messages. Some sequence-level information may be contained in SEI messages, such as resizability information SEI messages in Petition 870250089281, dated 10 / 01 / 2025, page 92 / 172 Example 17 / 67 of SVC and SEI messages regarding view resizability information in MVC. These example SEI messages can carry information about, for example, the extraction of operation points and the characteristics of the operation points. Additionally, encapsulation unit 30 can form a manifest file, such as a media presentation descriptor (MPD), which describes the characteristics of the representations. Encapsulation unit 30 can format the MPD according to the extensible markup language (XML).

[0039] The encapsulation unit 30 may provide data for one or more multimedia content representations, together with the manifest file (e.g., the MPD), to the output interface 32. The output interface 32 may comprise a network interface or an interface for writing to a storage medium, such as a Universal Serial Bus (USB) interface, a CD or DVD recorder, an interface for magnetic or flash storage media, or other interfaces for storing or transmitting media data. The encapsulation unit 30 may provide data for each of the multimedia content representations to the output interface 32, which may send the data to the server device 60 via network transmission or storage medium.In the example in Figure 1A, the server device 60 includes the storage medium 62 which stores various multimedia contents 64, where each includes a respective manifest file 66 and one or more representations 68A to 68N (representations 68). In some cases... Petition 870250089281, dated 10 / 01 / 2025, page 93 / 172 18 / 67 examples, the output interface 32 can also send data directly to the network 74.

[0040] In some examples, 68 representations may be separated into adaptation sets. That is, various subsets of 68 representations may include respective common sets of features, such as codec, profile and level, resolution, number of views, file format for segments, text type information that may identify a language or other text features to be displayed with the representation data and / or audio to be decoded and presented, for example, by loudspeakers, camera angle information that may describe a camera angle or actual camera perspective of a scene for representations in the adaptation set, classification information that describes the suitability of content for specific or related audiences.

[0041] Manifest file 66 may include data indicating subsets of representations 68 corresponding to specific adaptation sets, as well as common characteristics for adaptation sets. Manifest file 66 may also include data representing individual characteristics, such as bit rates, for individual representations of adaptation sets. In this way, an adaptation set may provide simplified network bandwidth adaptation. Representations in an adaptation set may be indicated using child elements of an adaptation set element in manifest file 66.

[0042] The server device 60 includes a request processing unit 70 and an interface Petition 870250089281, dated 10 / 01 / 2025, page 94 / 172 19 / 67 network 72. In some examples, the server device 60 may include a plurality of network interfaces. Furthermore, any or all of the attributes of the server device 60 may be implemented in other devices of a content delivery network, such as routers, bridges, proxy devices, switches, or other devices. In some examples, the intermediate devices of a content delivery network may cache multimedia content 64 and include components that substantially adapt to those of the server device 60. Generally, the network interface 72 is configured to send and receive data via network 74.

[0043] Request processing unit 70 is configured to receive network requests from client devices, such as client device 40, for data from storage medium 62. In some instances, request processing unit 70 may receive network requests from client device 40 in the form of RTP / SRTP packets and may deliver content, such as XR application content, to client device 40 in the form of RTP / SRTP packets. In some instances, the RTP / SRTP packets may include one or more time indicators, such as timestamps or delay measurement messages, which may be used to determine a delay, such as a delay caused by RTP / SRTP packets traversing one or more networks.

[0044] Alternatively, or as an additional option, request processing unit 70 may implement Hypertext Transfer Protocol (HTTP) version 1.1, as described in RFC. Petition 870250089281, dated 10 / 01 / 2025, p. 95 / 172 20 / 67 2616, “Hypertext Transfer Protocol - HTTP / 1.1”, by R. Fielding et al, Network Working Group, IETF, June 1999. That is, the request processing unit 70 can be configured to receive HTTP GET or partial GET requests and provide multimedia content data 64 in response to the requests. The requests can specify a segment of one of the representations 68, for example, using a segment URL. In some examples, the requests can also specify one or more byte ranges of the segment, thus comprising partial GET requests. The request processing unit 70 can additionally be configured to handle HTTP HEAD requests to provide header data of a segment of one of the representations 68. In any case, the request processing unit 70 can be configured to process the requests to provide requested data to a requesting device, such as the client device 40.

[0045] Alternatively, the request processing unit 70 can be configured to deliver media data via a broadcast or multicast protocol, such as eMBMS. The content preparation device 20 can create DASH segments and / or subsegments in substantially the same manner described, but the server device 60 can deliver these segments or subsegments using eMBMS or another broadcast or multicast network transport protocol. For example, the request processing unit 70 can be configured to receive a multicast group join request from the client device 40. That is, the server device 60 can advertise an address of Petition 870250089281, dated 10 / 01 / 2025, page 96 / 172 21 / 67 Internet Protocol (IP) associated with a multicast group for client devices, including client device 40, associated with specific media content (e.g., a live event broadcast). Client device 40, in turn, can send a request to join the multicast group. This request can be propagated throughout network 74, for example, routers that make up network 74, so that the routers are led to direct traffic destined for the IP address associated with the multicast group to subscribe client devices, such as client device 40.

[0046] As illustrated in the example in Figure 1A, multimedia content 64 includes manifest file 66, which may correspond to a media presentation description (MPD). Manifest file 66 may contain descriptions of different alternative representations 68 (e.g., video services with different qualities), and the description may include, for example, codec information, a profile value, a level value, a bitrate, and other descriptive characteristics of the representations 68. Client device 40 can retrieve the MPD of a media presentation to determine how to access segments of representations 68.

[0047] In particular, the recovery unit 52 can retrieve configuration data (not shown) from the client device 40 to determine the decoding capabilities of the video decoder 48 and the rendering capabilities of the video output 44. The configuration data may also include any or all of a language preference selected by a Petition 870250089281, dated 10 / 01 / 2025, page 97 / 172 22 / 67 Client device user 40, one or more camera perspectives that correspond to depth preferences defined by the Client device user 40 and / or a sorting preference selected by the Client device user 40. The retrieval unit 52 may comprise, for example, a web browser or a media client configured to send HTTP GET and partial GET requests. The retrieval unit 52 may correspond to software instructions executed by one or more processors or processing units (not shown) of the Client device 40. In some examples, all or portions of the functionality described in relation to the retrieval unit 52 may be implemented in hardware, or a combination of hardware, software and / or firmware, where the necessary hardware can be provided to execute software or firmware instructions.

[0048] The retrieval unit 52 can compare the decoding and rendering capabilities of the client device 40 with the characteristics of the representations 68 indicated by the information in the manifest file 66. The retrieval unit 52 can initially retrieve at least a portion of the manifest file 66 to determine the characteristics of the representations 68. For example, the retrieval unit 52 can request a portion of the manifest file 66 that describes characteristics of one or more adaptation sets. The retrieval unit 52 can select a subset of representations 68 (for example, an adaptation set) that has characteristics that can be satisfied by the encoding and rendering capabilities of the device. Petition 870250089281, dated 10 / 01 / 2025, page 98 / 172 23 / 67 client 40. The recovery unit 52 can then determine bit rates for representations in the adaptation set, determine a currently available amount of network bandwidth, and recover segments from one of the representations that have a bit rate that can be satisfied by the network bandwidth.

[0049] In general, higher bitrate representations can produce higher quality video playback, while lower bitrate representations can provide sufficient quality video playback when available network bandwidth decreases. Consequently, when available network bandwidth is relatively high, recovery unit 52 can retrieve data from relatively high bitrate representations, while when available network bandwidth is low, recovery unit 52 can retrieve data from relatively low bitrate representations. In this way, client device 40 can stream multimedia data over network 74, while also adapting to changes in network bandwidth availability on network 74.

[0050] Alternatively, or as an additional option, recovery unit 52 can be configured to receive data according to a broadcast or multicast network protocol, such as multicast IP or eMBMS. In such examples, recovery unit 52 can send a request to join a multicast network group associated with a particular media content. After joining the multicast group, recovery unit 52 can receive data from the multicast group without additional requests being issued to the Petition 870250089281, dated 10 / 01 / 2025, page 99 / 172 24 / 67 server device 60 or content preparation device 20. The recovery unit 52 can send a request to leave the multicast group when the multicast group data is no longer needed, for example, to stop playback or change channels to a different multicast group.

[0051] Network interface 54 can receive and provide segment data of a selected representation to recovery unit 52, which can, in turn, provide the segments to decapsulation unit 50. Decapsulation unit 50 can decapsulate elements of a video file into constituent PES streams, unpack the PES streams to recover encoded data, and send the encoded data either to audio decoder 46 or to video decoder 48, depending on whether the encoded data is part of an audio or video stream, for example, as indicated by the PES packet headers of the stream. Audio decoder 46 decodes encoded audio data and sends the decoded audio data to audio output 42, while video decoder 48 decodes encoded video data and sends the decoded video data, which may include multiple views of a stream, to video output 44.

[0052] The video encoder 28, the video decoder 48, the audio encoder 26, the audio decoder 46, the encapsulation unit 30, the recovery unit 52 and the decapsulation unit 50 can each be implemented as any one of several suitable processing circuit sets, as applicable, such as one or more microprocessors, Petition 870250089281, dated 10 / 01 / 2025, pages 100 / 172 25 / 67 digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic circuitry, hardware, firmware, or any combination thereof. Each of the video encoder 28 and video decoder 48 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined video encoder / decoder (CODEC encoder / decoder). Similarly, each of the audio encoder 26 and audio decoder 46 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined CODEC.An apparatus that includes video encoder 28, video decoder 48, audio encoder 26, audio decoder 46, encapsulation unit 30, recovery unit 52 and / or decapsulation unit 50 may comprise an integrated circuit, a microprocessor and / or a wireless communication device, such as a mobile phone.

[0053] Client device 40, server device 60, and / or content preparation device 20 may be configured to operate in accordance with the techniques of this disclosure. For example purposes, this disclosure describes these techniques with respect to client device 40 and server device 60. However, it should be understood that content preparation device 20 may be configured to perform these techniques instead of (or in addition to) server device 60. Petition 870250089281, dated 10 / 01 / 2025, pp. 101 / 172 26 / 67

[0054] The encapsulation unit 30 can form NAL units comprising a header that identifies a program to which the NAL unit belongs, as well as a payload, for example, audio data, video data, or data describing the transport or program stream to which the NAL unit corresponds. For example, in H.2 64 / AVC, a NAL unit includes a 1-byte header and a variable-size payload. A NAL unit that includes video data in its payload can comprise various levels of video data granularity. For example, a NAL unit can comprise a video data block, a plurality of blocks, a video data slice, or an entire video data image. The encapsulation unit 30 can receive encoded video data from the video encoder 28 in the form of PES packets of elementary streams. The encapsulation unit 30 can associate each elementary stream with a corresponding program.

[0055] The encapsulation unit 30 can also assemble access units from a plurality of NAL units. In general, an access unit may comprise one or more NAL units to represent a video data frame, as well as audio data corresponding to the frame when such audio data is available. An access unit generally includes all NAL units for an output time instance, for example, all audio and video data for a time instance. For example, if each view has a frame rate of 20 frames per second (fps), then each time instance may correspond to a time interval of 0.05 seconds. During this Petition 870250089281, dated 10 / 01 / 2025, pp. 102 / 172 In a 27 / 67 time interval, specific frames for all views of the same access unit (the same time instance) can be rendered simultaneously. For example, an access unit might comprise an image encoded in a time instance, which could be presented as a primary encoded image.

[0056] Consequently, an access unit can comprise all audio and video frames of a common temporal instance, for example, all views corresponding to time X. This disclosure also refers to an encoded image of a particular view, as a “view component”. That is, a view component can comprise an image (or frame) encoded for a particular view at a particular time. Consequently, an access unit can be defined as comprising all view components of a common temporal instance. The decoding order of access units does not necessarily have to be the same as the output or display order.

[0057] A media presentation may include a media presentation description (MPD), which may contain descriptions of different alternative representations (e.g., video services with different qualities) and the description may include, for example, codec information, a profile value, and a level value. An MPD is an example of a manifest file, such as manifest file 66. Client device 40 may retrieve the MPD of a media presentation to determine how to access movie fragments from various presentations. Movie fragments may be located in movie fragment boxes. Petition 870250089281, dated 10 / 01 / 2025, pp. 103 / 172 28 / 67 (moof boxes) of video files.

[0058] The manifest file 66 (which may comprise, for example, an MPD) may announce the availability of segments of representations 68. That is, the MPD may include information indicating the time on the wall clock at which a first segment of one of the representations 68 becomes available, as well as information indicating the durations of segments in the representations 68. In this way, the recovery unit 52 of the client device 40 can determine when each segment is available, based on the start time as well as the durations of the segments preceding a particular segment.

[0059] After encapsulation unit 30 has assembled NAL units and / or access units on a video file based on the received data, encapsulation unit 30 passes the video file to output interface 32 for output. In some examples, encapsulation unit 30 may store the video file locally or send the video file to a remote server via output interface 32, instead of sending the video file directly to the client device 40. Output interface 32 may comprise, for example, a transmitter, a transceiver, a device for recording data on a computer-readable medium, such as an optical drive, a magnetic media drive (e.g., floppy disk drive), a universal serial bus (USB) port, a network interface, or another output interface.Output interface 32 sends the video file to a computer-readable medium, such as a broadcast signal or other medium. Petition 870250089281, dated 10 / 01 / 2025, pp. 104 / 172 29 / 67 magnetic, an optical medium, a memory, a flash drive or other computer-readable medium.

[0060] Network interface 54 can receive a NAL unit or a network access unit 74 and provide the NAL unit or the access unit to the decapsulation unit 50, via recovery unit 52. The decapsulation unit 50 can decapsulate elements of a video file into constituent PES streams, unpack the PES streams to recover encoded data, and send the encoded data either to the audio decoder 46 or to the video decoder 48, depending on whether the encoded data is part of an audio or video stream, for example, as indicated by the PES packet headers of the stream. Audio decoder 46 decodes encoded audio data and sends the decoded audio data to audio output 42, while video decoder 48 decodes encoded video data and sends the decoded video data, which may include multiple views of a stream, to video output 44.

[0061] The example in Figure 1A describes the use of streaming based on RTP, DASH, and HTTP for illustrative purposes. However, it should be understood that other types of protocols can be used to transport media data. For example, the request processing unit 70 and the retrieval unit 52 can be configured to operate according to the Real-Time Streaming Protocol (RTSP) or similar protocols and use supporting protocols such as the Session Description Protocol (SDP) or the protocol Petition 870250089281, dated 10 / 01 / 2025, page 105 / 172 30 / 67 session initiation protocol (SIP).

[0062] Figure 1B is a block diagram illustrating another example system that implements techniques for streaming media data over a network. Figure 1B is similar to the example in Figure 1A, but Figure 1B includes two end devices instead of a client device and a server device. For example, each end device 80A and 80B of system 10B can be configured to consume content and provide content to the other client devices 80A and 80B. The system in Figure 1B can implement the techniques disclosed here.

[0063] Figure 2 is a block diagram illustrating an end-to-end XR system in which data packets traverse more than one network.

[0064] The XR device 102, which may be an example of client device 40 or a portion thereof, may be coupled to network 104. In some examples, the XR device 102 may include XR glasses or an XR headset configured to distribute XR content to a user. In some examples, network 104 may include a wireless local area network, such as a Wi-Fi network. In some examples, network 104 may include multiple networks, such as a cascaded Wi-Fi network with Ethernet.

[0065] Mobile device 106, which may be an example of client device 40 or a portion thereof, may be coupled to network 104 and network 108. Network 108 may include a wireless long-distance network, such as a 5G network.

[0066] The user plane function (UPF) 110 can be coupled to the network 108 and the network Petition 870250089281, dated 10 / 01 / 2025, pp. 106 / 172 31 / 67 112. Network 112 may include the internet. In some examples, network 112 may also include one or more local area networks. Edge application server 114, which may be an example of server device 60, may be coupled to network 112 and content preparation device 20 (not shown in Figure 2). Thus, an end-to-end connection between XR device 102 and edge application server 114 may traverse a plurality of networks, network 104, network 108, and network 112. These networks may be of different types, having different delay properties and different mechanisms for determining the delay, for example, for quality of service (QoS) purposes. Thus, techniques for determining end-to-end delay may be desirable.

[0067] Network 108 can be coupled to QoS device 116. The QoS device can be any computing device that can compute delays or compare delays to delay thresholds for QoS purposes.

[0068] According to the techniques of this disclosure, the XR device 102 can transmit to the edge application server 114 (and / or any intervening computing device) a first data packet 120, wherein the first data packet 120 includes a first time indicator and at least one header extension element, wherein the at least one header extension element includes a header extension element header, wherein the header extension element header has a length of at least one byte. The XR device 102 can receive from the server Petition 870250089281, dated 10 / 01 / 2025, pp. 107 / 172 32 / 67 edge applications 114 (and / or any intervening computing device), a second data packet 130, wherein the second data packet 130 includes a second time indicator. The XR device 102 can determine a data packet delay associated with the first data packet 120 based on the first time indicator and the second time indicator and transmit a data packet delay indication to the edge application service 114 (and / or any intervening computing device) and / or QoS device 116. For example, the data packet delay indication 140 may include information relating to a delay associated with network 104 and network 112 (as a delay time period) or a delay associated with each of network 104, network 108 and network 112 (as a delay time length).The QoS device 116 can use the data packet delay indication 140 to adjust parameters within the network 108 to attempt to ensure that an end-to-end path (such as a one-way delay or a round-trip delay) between the XR device 102 and the edge application server 114 meets any QoS requirements associated with an application of the edge application service 114 being used by the XR device 102.

[0069] For example, it may be desirable for the QoS device 116 to target an end-to-end delay. One way to provision a target end-to-end delay De2e is for the 5G network QoS device (e.g., network 108) to define the 5G network delay Dc according to the non-5G network delays Dn, i.e., Dc = De2e - Dn. Petition 870250089281, dated 10 / 01 / 2025, pp. 108 / 172 33 / 67 wherein includes a delay between the XR device 102 and the mobile device 106 (e.g., a network-associated delay 104) and a delay between the edge application server 114 and the UPF 110 (e.g., a network-associated delay 112).

[0070] According to the techniques of this disclosure, the edge application server 114 may receive, from the XR device 102 (and / or any intervening computing device), the first data packet 120, wherein the first data packet 120 includes a first time indicator. The edge application server 114 may transmit, to the XR device 102 (and / or any intervening computing device), the second data packet 130, wherein the second data packet 130 may include a second time indicator, a third time indicator and at least one header extension element, wherein the at least one header extension element comprises a header extension element header, wherein the header extension element header has a length of at least one byte (e.g., one byte or two bytes).In some examples, the XR 102 device may use the second time indicator, the third time indicator, and / or a fourth time indicator that may be generated by the XR 102 device after receiving the second data packet 130 during the determination of the data packet delay. The data packet delay indication 140 may include a delay indication assigned to network 104 and network 112 in one direction (first data packet delay 120) or a delay indication assigned to network 104 and network 112 in both directions (e.g., a delay). Petition 870250089281, dated 10 / 01 / 2025, pp. 109 / 172 34 / 67 round trip: the delay of the first data packet 120 and the delay of the second data packet 130 with or without a processing delay caused by the edge application server 114 processing the first data packet 120). Such a delay indication may or may not include a delay indication attributed to the network 108. In some examples, the round trip delay may include a processing delay of the edge application server 114 in processing the first data packet 120.

[0071] Figure 3 is a conceptual diagram illustrating examples of delays in an end-to-end connection for an XR application according to one or more aspects of this disclosure. In the example in Figure 3, the wireless long-distance network (such as network 108) is called the 5G network, represented as gNodeB (gNB - gNodeB) 206 in Figure 3. As can be seen in Figure 3, the end-to-end delay De2e can be equal to that in the 5G network D between the phone 206 (which can be an example of mobile device 106) and the UPF 210 (which can be an example of UPF 110), plus the delay from the AR glasses 202 (which is an example of XR device 102) to the phone 206, Dn,1 and the delay from the UPF 210 to the edge application server 214 Dn,2. The delay, in addition to the delay in the 5G Dc network, can therefore be the delays Dn,1 + Dn,2.

[0072] Non-5G network delays can be estimated through end-to-end delay measurements. There are existing schemes or techniques for measuring 5G Dc network delay, for example, according to clause 5.33.3 of TS23.501. Measurement packets (in 5G and non-5G networks) must be representative of packets of Petition 870250089281, dated 10 / 01 / 2025, pages 110 / 172 35 / 67 XR data: for example, having the same QoS treatment, similar packet size, etc.

[0073] However, the QoS treatment received by measurement packets may differ from that received by the data packets themselves, for example, with the use of out-of-band measurement techniques. For example, in a 5G network, a measurement message and a data packet may use different protocols (e.g., ICMP messages (echo or echo reply)). For example, the measurement message may have protocol number 1, while the data packets (RTP / UDP) may have protocol number 17. A measurement message and a data packet may have 5 IP tuples (source IP address, destination IP address, source port number, destination port number, protocol number). A measurement message and a data packet may be mapped to different QoS flows, and may receive different QoS treatment in the 5G network. On the internet, the measurement packet and the data packet may differ in the DSCP value in the IP packet header.In a Wi-Fi network (e.g., network 104), the measurement packet and the data packet can be mapped to different access categories. Additionally, the difference in packet size between the measurement packet and the data packet can affect the accuracy of the delay measurement, especially for low bitrate links.

[0074] Thus, it may be desirable to include header extension elements to improve the accuracy of delay measurements. Figure 4 is a conceptual diagram illustrating an example of an RTP / SRTP packet and RTP header extension format (RFC 3550). Petition 870250089281, dated 10 / 01 / 2025, pp. 111 / 172 36 / 67

[0075] Figures 5A and 5B are conceptual diagrams illustrating example RTP packet formats (RFC 8285). The RTP header extension formats for in-band delay measurements are now described. The loaded content may include delay measurement messages or timestamps or any other information related to delay measurements. In some examples, timestamps or delay measurement messages may be located in a header extension or in the data packet payload. A header extension may include one or multiple header extension elements, such as header extension element 302 or header extension element 312.The header (the identifier (ID) field and the L field) of an extension element header (referred to in the present invention as a header extension element header) may be one byte long, as shown in header extension element header 300, or two bytes long, as shown in header extension element header 310. A plurality of header extension format types are disclosed herein. The example in Figure 5B includes appbits which, in some examples, may be a 4-bit field that is application-dependent and may be set based on the application or as any value (e.g., all zeros or some other value). Header extension element 302 and / or header extension element 312 are examples of header extension elements that may be included in the first data packet 120 and / or the second data packet 130 (Figure 2).

[0076] Figure 6 is a conceptual diagram. Petition 870250089281, dated 10 / 01 / 2025, pp. 112 / 172 Figure 37 / 67 illustrates an example one-byte format with timestamps in a header extension according to one or more aspects of this disclosure. Packet 400 may be an example of the first data packet 120. Packet 400 may include: a payload 410, which, for example, may include video data; a header extension 420, which may include one or more header extension elements, such as header extension element 302, which carries a first timestamp T1; and a header 430, which may be an RTP header.

[0077] Packet 402 may be an example of the second data packet 130. Packet 402 may include: a payload 412, which in this example may include video data; a header extension 422, which may include one or more header extension elements, such as header extension element 302, which carries the first time indicator T1, a second time indicator T2, and a third time indicator T3 and / or be an example of header extension element 302; and a header 432, which may be an RTP header. Edge application server 214 may determine the second time indicator T2 upon receiving packet 400 and may determine the third time indicator T3 after processing packet 400 and before transmitting packet 402.In some examples, a difference between the second time indicator T2 and the third time indicator T3 may represent a processing delay associated with processing packet 400 of the edge application server 214.

[0078] The AR 202 glasses can determine a fourth time indicator T4 upon receipt of the package. Petition 870250089281, dated 10 / 01 / 2025, pp. 113 / 172 38 / 67 402. The AR 202 glasses can use the first time indicator T1, the second time indicator T2, the third time indicator T3, and / or the time indicator T4 during the determination of a data packet delay.

[0079] Figure 7 is a conceptual diagram illustrating an example one-byte format with timestamps in a payload according to one or more aspects of this disclosure. Packet 500 may be an example of the first data packet 120. Packet 500 may include: a payload 510, which may include the first timestamp T1 and, for example, video data; a header extension 520, which may include one or more header extension elements, such as header extension element 302, which carries information relating to the first timestamp T1; and a header 530, which may be an RTP header.

[0080] Packet 502 may be an example of the second data packet 130. Packet 502 may include: a payload 412, which in this example may include the first time indicator T1, a second time indicator T2, a third time indicator T3, and video data; a header extension 522, which may include one or more header extension elements, such as header extension element 302, which carries information relating to the first time indicator T1, the second time indicator T2, and the third time indicator T3 and / or be an example of header extension element 302; and a header 432, which may be an RTP header. The edge application server 214 may determine the second time indicator T2 upon receiving packet 500 and may determine the third Petition 870250089281, dated 10 / 01 / 2025, pp. 114 / 172 39 / 67 time indicator T3 after processing packet 500 and before transmitting packet 502. In some examples, a difference between the second time indicator T2 and the third time indicator T3 may represent a processing delay associated with processing packet 500 from edge application server 214.

[0081] AR glasses 202 can determine a fourth time indicator T4 upon receiving packet 502. AR glasses 202 can use the first time indicator T1, the second time indicator T2, the third time indicator T3 and / or the time indicator T4 during the determination of a data packet delay.

[0082] Figure 8 is a conceptual diagram illustrating an example two-byte format with timestamps in a header extension according to one or more aspects of this disclosure. In the example in Figure 8, the appbits can be defined as all zeros or used to indicate information about the header extension elements, for example, the format of the time indicator(s) carried in the RTP header extension elements. Packet 600 might be an example of the first data packet 120. Packet 600 might include: a payload 610, which in this example might include video data; a header extension 620, which might include one or more RTP header extension elements, such as header extension element 312, which carries a first time indicator T1; and a header 630, which might be an RTP header.

[0083] Packet 602 may be an example of the second data packet 130. Packet 602 may include: a payload 612, which in this example may include data from Petition 870250089281, dated 10 / 01 / 2025, pp. 115 / 172 40 / 67 video; a header extension 622, which may include one or more header extension elements, such as header extension element 312, which carries the first time indicator T1, a second time indicator T2, and a third time indicator T3; and a header 632, which may be an RTP header. The 214 edge application server may determine the second time indicator T2 upon receiving packet 600 and may determine the third time indicator T3 after processing packet 600 and before transmitting packet 602. In some instances, a difference between the second time indicator T2 and the third time indicator T3 may represent a processing delay associated with the processing of packet 600 by the 214 edge application server.

[0084] AR glasses 202 can determine a fourth time indicator T4 upon receiving packet 602. AR glasses 202 can use the first time indicator T1, the second time indicator T2, the third time indicator T3 and / or the time indicator T4 during the determination of a data packet delay.

[0085] Figure 9 is a conceptual diagram illustrating an example two-byte format with timestamps in a payload according to one or more aspects of this disclosure. Packet 700 may be an example of the first data packet 120. Packet 700 may include: a payload 710, which in this example may include a first timestamp T1 and video data; a header extension 720, which may include one or more header extension elements, such as header extension element 312, which carries information relating to the first timestamp. Petition 870250089281, dated 10 / 01 / 2025, pp. 116 / 172 41 / 67 of time T1; and a 730 header, which may be an RTP header.

[0086] Packet 702 may be an example of the second data packet 130. Packet 702 may include: a payload 712, which may include the first time indicator T1, a second time indicator T2, a third time indicator T3, and video data; a header extension 722, which may include one or more header extension elements, such as header extension element 312, which carries information relating to the first time indicator T1, the second time indicator T2, and the third time indicator T3; and a header 732, which may be an RTP header. The edge application server 214 may determine the second time indicator T2 upon receiving packet 700 and may determine the third time indicator T3 after processing packet 700 and before transmitting packet 702.In some examples, a difference between the second time indicator T2 and the third time indicator T3 may represent a processing delay associated with processing packet 700 of the edge application server 214.

[0087] AR glasses 202 can determine a fourth time indicator T4 upon receiving packet 702. AR glasses 202 can use the first time indicator T1, the second time indicator T2, the third time indicator T3 and / or the time indicator T4 during the determination of a data packet delay.

[0088] In each of the examples in Figures 6 to 9, the first time indicator, the second time indicator, the third time indicator and the fourth time indicator Petition 870250089281, dated 10 / 01 / 2025, pages 117 / 172 42 / 67 time can be time stamps or delay measurement messages.

[0089] For example, the techniques of this disclosure can use loading timestamps. Endpoints (e.g., endpoint devices such as the XR device 102 and the Edge Application Server 114) can negotiate the format for the RTP header extension for delay measurement. In a first example, an identifier (ID) field in a header extension element indicates that timestamps are loaded in a header extension element (e.g., header extension element 420, 422, 620, or 622) and, specifically, may include the number of timestamps and / or the format of the timestamps, since different timestamps may have different formats.For example, ID=1 might indicate one timestamp, which could be the intermediate 24 bits of a 32-bit NTP timestamp, while ID=2 might indicate three timestamps, which could be the intermediate 24 bits of a 32-bit NTP timestamp. In some examples, when the RTP header extension includes multiple timestamps, multiple RTP header extension elements might be used; for example, one timestamp is carried in the data portion of a separate RTP header extension element, as shown as ALT 2 in Figure 6 for the one-byte format or as shown as ALT 2 in Figure 8 for the two-byte format. The case of a single RTP header extension element that includes multiple timestamps is shown as ALT 1 for the format of. Petition 870250089281, dated 10 / 01 / 2025, pp. 118 / 172 43 / 67 one byte in Figure 6 or as shown as ALT 2 for the two-byte format in Figure 8.

[0090] In a second example, the ID field in a header extension element header indicates timestamp(s) that is / are loaded in the packet payload (e.g., payload 510, 512, 710, or 712). Additionally, the ID or data field of the header extension element header may indicate the number of timestamps, the location of the timestamp(s), and / or the format and length of the timestamp(s).

[0091] In some examples, the header extension element header may be in the format of one byte (ID field + L field totals one byte) or in the format of two bytes (ID field + L field totals two bytes). In some examples, the techniques of this disclosure may include carrying delay measurement messages.

[0092] Endpoints (for example, endpoint devices such as the XR device 102 and the Edge Application Server 114) can negotiate the format for the RTP header extension element for delay measurement. In a first example, the ID field in a header extension element indicates the delay measurement message(s) that is / are loaded into a header extension element (for example, header extension element 420, 422, 620, or 622) and, specifically, may include the number of delay measurement messages and / or the delay measurement message types (for example, ICMP echo, echo reply, timestamp, timestamp reply per RFC792); Petition 870250089281, dated 10 / 01 / 2025, pp. 119 / 172 44 / 67 PTP messages - Pdelay_Req, Pdelay_Resp and / or Pdelay_Resp_Follow_Up as per IEEE-1588-2019). For example, ID=1 may mean ICMP timestamp message, while ID=2 may mean ICMP timestamp reply message.

[0093] In a second example, the ID field in a header extension element indicates delay measurement messages that are carried in a packet payload (for example, payload 510, 512, 710, or 712). Additionally, the ID or data field of the header extension element may indicate the number of delay measurement messages, the location of the delay measurement messages, and / or the types of delay measurement messages.

[0094] Figure 10 is a flowchart illustrating an example data packet delay technique according to one or more aspects of this disclosure. Although the example in Figure 10 is described in relation to the computing devices of Figure 2, the techniques in Figure 10 can be practiced by any computing device capable of performing such techniques. A first computing device (e.g., XR device 102 and / or mobile device 106) can transmit, to a second computing device (e.g., mobile device 106, UPF 110 and / or edge application server 114), a first data packet 120, wherein the first data packet 120 includes a first time indicator T1 and at least one header extension element (e.g., header extension element 420, 520, 620 or 720), wherein the at least one header extension element comprises a header extension element header Petition 870250089281, dated 10 / 01 / 2025, pp. 120 / 172 45 / 67 (for example, header extension element header 300 or 310), wherein the header extension element header has a length of at least one byte (800).

[0095] The first computing device (XR device 102 and / or mobile device 106) may receive, from the second computing device (for example, mobile device 106, UPF 110 and / or edge application server 114), a second data packet 130, wherein the second data packet 130 comprises a second T2 time indicator (802).

[0096] The first computing device (XR device 102 and / or mobile device 106) can determine a data packet delay associated with the first data packet 120 based on the first time indicator T1 and the second time indicator T2 (804). For example, the data packet delay may include a time period of a delay associated with network 104 and network 112, Dn1+ Dn,2, or a delay time length associated with each of network 104, network 108 and network 112 De2e.

[0097] The first computing device (XR device 102 and / or mobile device 106) can transmit a data packet delay indication 140 to at least one of the second computing devices (e.g., mobile device 106, UPF 110 and / or edge application server 114) or a third computing device (e.g., QoS device 116) (806).

[0098] In some examples, at least one header extension element (for example, header extension element 420, 520, 620, or 720) includes the first T1 timestamp. In some examples, at least one Petition 870250089281, dated 10 / 01 / 2025, pp. 121 / 172 46 / 67 header extension element includes an indication that a payload of the first data packet 120 (e.g., payload 410, 510, 610, or 710) includes the first time indicator T1, where the first data packet 120 additionally includes the payload, and where the payload includes the first time indicator T1.

[0099] In some examples, the header extension element header (for example, header extension element header 300 or 310) includes an identifier and a length indicator, where the length indicator is indicative of the length of the header extension element. In some examples, the identifier includes information indicating at least one of a) a number of time indicators contained in the header extension element of the first data packet 120, or b) the first time indicator T1 that is in a payload of the first data packet 120. In some examples, the header extension element additionally includes a first start time indicator T1, a location of the first time indicator T1, a length of the first time indicator T1, or a type of the first time indicator T1.

[00100] In some examples, the first data packet 120 is an RTP packet or an SRTP packet. In some examples, the first time indicator T1 includes a timestamp or a delay measurement message.

[00101] In some examples, as part of determining the data packet delay associated with the first data packet 120, the first computing device is configured to determine a transit time. Petition 870250089281, dated 10 / 01 / 2025, pages 122 / 172 47 / 67 one-way (e.g., uplink) of the first data packet 120 based on the first time indicator T1 and the second time indicator T2. For example, the first computing device can determine that the data packet delay can be the time length of a delay associated with network 104 and network 112, Dn,1 + Dn,2, or a time length of delay associated with each of network 104, network 108, and network 112, De2e. In the case where the time length is the data packet delay associated with each of network 104, network 108, and network 112, De2e, the QoS device 116 can determine Dn1 + Dn,2 by subtracting Dc (which can be determined by the QoS device 116 or gNB 206) from De2e.The QoS device 116 can then adjust the network parameters 108 in an attempt to guarantee a QoS level (such as a maximum one-way or round-trip packet delay) for an edge application server application 114.

[00102] In some examples, the first computing device may be additionally configured to determine a fourth time indicator T4 based on the receipt of the second data packet 130, wherein, as part of determining the data packet delay associated with the first data packet 120, the first computing device is configured to determine a reverse one-way transit time (e.g., downlink) of the second data packet 130 based on the third time indicator T3 in the second data packet 130 and the fourth time indicator T4. In such examples, the first computing device is configured to determine the data packet delay by adding the time Petition 870250089281, dated 10 / 01 / 2025, pp. 123 / 172 48 / 67 of one-way transit time (e.g., uplink) and reverse one-way transit time (e.g., downlink). In some examples, as part of determining the data packet delay, the first computing device is additionally configured to determine a processing delay based on the second time indicator T2 and the third time indicator T3, and to determine the data packet delay by additionally adding the processing delay to the one-way transit time and the reverse one-way transit time.

[00103] In some examples, a communication path between the first computing device and the second computing device spans a first communication network that is a 5G network and at least one second communication network that is not a 5G network.

[00104] Figure 11 is a flowchart illustrating another example data packet delay technique according to one or more aspects of this disclosure. Although the example in Figure 11 is described in relation to the computing devices of Figure 2, the techniques in Figure 11 can be practiced by any computing device capable of performing such techniques. A second computing device (e.g., mobile device 106, UPF 110 and / or edge application server 114) can receive, from a first computing device (XR device 102 and / or mobile device 106), the first data packet 120, wherein the first data packet 120 includes a first time indicator T1 (900).

[00105] The second computing device (by Petition 870250089281, dated 10 / 01 / 2025, pp. 124 / 172 49 / 67 example, mobile device 106, UPF 110 and / or edge application server 114) can transmit, to the first computing device (XR device 102 and / or mobile device 106), the second data packet 130, wherein the second data packet 130 comprises a second time indicator T2, a third time indicator T3 and at least one header extension element (for example, header extension element 422, 522, 622 or 722), wherein the at least one header extension element comprises a header extension element header (for example, header extension element header 300 or 310), wherein the header extension element header having a length of at least one byte (900).

[00106] In some examples, the first time indicator T1 includes a first timestamp or a first delay measurement. In some examples, the second time indicator T2 includes a second timestamp or a second delay measurement message and is associated with a first data packet reception time of 120. For example, the second time indicator T2 might be indicative of a first data packet time of 120 received by the edge application server 114. In some examples, the third time indicator T3 includes a third timestamp or a third delay message and is associated with a first data packet processing time of 120. For example, the third time indicator T3 might be indicative of the time it took for the edge application server 114 to process the first data packet 120. In some examples, the edge application server 114 might add the third time indicator T3 to Petition 870250089281, dated 10 / 01 / 2025, pages 125 / 172 50 / 67 second data packet 130 immediately before the edge application server 114 transmits the second data packet 130.

[00107] In some examples, at least one header extension element (for example, header extension element 422, 522, 622, or 722) includes the second time indicator T2 and the third time indicator T3. In some examples, at least one header extension element comprises an indication that a payload of the second data packet 130 (for example, payload 412, 512, 612, or 712) includes the second time indicator T2 and the third time indicator T3. In some examples, the second data packet 130 additionally includes the payload, and the payload includes the second time indicator T2 and the third time indicator T3.

[00108] In some examples, the header extension element header (for example, header extension element header 300 or 310) includes an identifier and a length indicator, where the length indicator is indicative of the length of the header extension element. In some examples, the identifier includes information indicating at least one of a) a number of time indicators contained in the header extension element or second data packet 130, or b) second time indicator T2 and third time indicator T3 that are in a payload of the second data packet 130. In some examples, the header extension element additionally includes a start of the second time indicator T2, a location of the second time indicator T2, a length of the second time indicator T2 Petition 870250089281, dated 10 / 01 / 2025, pp. 126 / 172 51 / 67 or a type of second time indicator T2 (for example, a timestamp or a delay measurement message type). It should be understood that the header extension element of the second data packet 130 may include similar information regarding the first time indicator T1, the third time indicator T3 and / or the fourth time indicator T4.

[00109] In some examples, the second computing device includes a server (for example, edge application server 114).

[00110] Several examples of the techniques of this disclosure are summarized in the following clauses:

[00111] Clause 1A: A method of processing media data, wherein the method comprises: indicating, in an extension of an RTP header, information relating to a time indicator; placing, on a first device, the time indicator in a portion of an RTP / SRTP packet; and forwarding the RTP / SRTP packet to a second device.

[00112] Clause 2A. A method of media data processing, wherein the method comprises: receiving, by a second device and from a first device, an RTP / SRTP packet comprising an RTP header extension and a timestamp in a portion of the packet; determining, by the second device, information relating to the timestamp based on the RTP header extension; and determining, by the second device, a delay based on the timestamp.

[00113] Clause 3A. The method of clause 1A or clause 2A, wherein the information relating to the indicator of Petition 870250089281, dated 10 / 01 / 2025, pp. 127 / 172 52 / 67 time indicators include at least one indication of a number of time indicators, a start of the time indicators, and a length of at least one of the time indicators in the RTP / SRTP packet.

[00114] Clause 4A. The method of any of clauses 1A to 3A, wherein the RTP header extension comprises one or more RTP header extension elements and wherein the header of an RTP header extension element comprises one byte.

[00115] Clause 5A. The method of any of clauses 1A to 3A, wherein the RTP header extension comprises one or more RTP header extension elements and wherein the header of an RTP header extension element comprises two bytes.

[00116] Clause 6A. The method of any of clauses 1A to 5A, wherein the RTP / SRTP packet portion comprises the RTP header extension.

[00117] Clause 7A. The method of any of clauses 1A to 5A, wherein the RTP / SRTP packet portion comprises a payload.

[00118] Clause 8A. The method of any of clauses 1A to 7A, wherein the time flag comprises a time stamp.

[00119] Clause 9A. The method of any of clauses 1A to 7A, where the time indicator comprises a delay measurement message.

[00120] Clause 10A. The method of any of clauses 1A to 9A, wherein at least one of the first device or the second device comprises at least one of an augmented reality device, a Petition 870250089281, dated 10 / 01 / 2025, pp. 128 / 172 53 / 67 extended reality device, a virtual reality device, a mobile device, a UPF, or an edge application server.

[00121] Clause 11A. A device for processing an RTP / SRTP packet comprising: a memory configured to store the RTP / SRTP packet; and one or more processors implemented in the circuit set and communicatively coupled to the memory, wherein the one or more processors are configured to perform the method of any of clauses 1A to 10A.

[00122] Clause 12A. A computer-readable storage medium that has stored in it instructions which, when executed, cause a processor to perform the method of any of clauses 1A to 10A.

[00123] Clause 13A. A device for processing an RTP / SRTP packet, wherein the device comprises at least one means for carrying out the method of any of clauses 1A to 10A.

[00124] Clause 1B. A method comprising: transmitting, by a first computing device to a second computing device, a first data packet, wherein the first data packet comprises a first timestamp and at least one header extension element, wherein the header extension element has a length of at least one byte; receiving, by the first computing device from the second computing device, a second data packet, wherein the second data packet comprises a second Petition 870250089281, dated 10 / 01 / 2025, pp. 129 / 172 54 / 67 time indicator; determine, by the first computing device, a data packet delay associated with the first data packet based on the first time indicator and the second time indicator; and transmit, by the first computing device, an indication of the data packet delay to at least one of the second computing devices or a third computing device.

[00125] Clause 2B. The method of clause 1B, wherein at least one header extension element comprises the first time indicator.

[00126] Clause 3B. The method of clause 1B, wherein at least one header extension element comprises an indication that a payload of the first data packet includes the first time indicator, wherein the first data packet additionally comprises the payload and wherein the payload comprises the first time indicator.

[00127] Clause 4B. The method of any of clauses 1B to 3B, wherein the header extension element header comprises an identifier and a length indicator, wherein the length indicator is indicative of the length of the header extension element.

[00128] Clause 5B. The method of clause 4B, wherein the identifier comprises indicative information of at least one of a) a number of timestamps contained in the header extension element or in the first data packet, or b) the first timestamp that is in a payload of the first data packet. Petition 870250089281, dated 10 / 01 / 2025, pp. 130 / 172 55 / 67

[00129] Clause 6B. The method of clause 4B, wherein the header extension element additionally comprises a start of the first time indicator, a location of the first time indicator, a length of the first time indicator, or a type of the first time indicator.

[00130] Clause 7B. The method of any of clauses 1B to 6B, where the first data packet is an RTP packet or an SRTP packet.

[00131] Clause 8B. The method of any of clauses 1B to 7B, wherein the first time flag comprises a timestamp or a delay measurement message.

[00132] Clause 9B. The method of any of clauses 1B to 8B, wherein determining the data packet delay associated with the first data packet comprises determining a one-way transit time of the first data packet based on the first time indicator and the second time indicator.

[00133] Clause 10B. The method of clause 9B which further comprises determining a fourth time indicator based on receipt of the second data packet, wherein the determination of the data packet delay associated with the first data packet comprises: determining a reverse one-way transit time of the second data packet based on a third time indicator in the second data packet and the fourth time indicator; and determining the data packet delay by adding the one-way transit time, the reverse one-way transit time. Petition 870250089281, dated 10 / 01 / 2025, pages 131 / 172 56 / 67

[00134] Clause 11B. The method of clause 10B, wherein determining the data packet delay further comprises: determining a processing delay based on the second time indicator and the third time indicator; and determining the data packet delay by further adding the processing delay to the one-way transit time and the reverse one-way transit time.

[00135] Clause 12B. The method of clauses 1B to 11B, wherein the communication path between the first computing device and the second computing device encompasses a first communication network that is a 5G network and at least one second communication network that is not a 5G network.

[00136] Clause 13B. A first computing device comprising: memory configured to store a first data packet; and one or more memory-coupled processors, wherein the one or more processors are configured to: transmit to a second computing device the first data packet, wherein the first data packet comprises a first time indicator and at least one header extension element, wherein the header extension element has a length of at least one byte; receive from the second computing device a second data packet, the second data packet comprising a second time indicator; determine a data packet delay associated with the first data packet based on at least Petition 870250089281, dated 10 / 01 / 2025, pages 132 / 172 57 / 67 part, in at least one of the first time indicator or the second time indicator; and transmit an indication of the data packet delay to at least one of the second computing device or a third computing device.

[00137] Clause 14B. The first computing device of clause 13B, in which at least one header extension element comprises the first time indicator.

[00138] Clause 15B. The first computing device of clause 13B, wherein at least one header extension element comprises an indication that a payload of the first data packet includes the first time indicator, wherein the first data packet additionally comprises the payload and wherein the payload comprises the first time indicator.

[00139] Clause 16B. The first computing device of clause 13B, wherein the header extension element header comprises an identifier and a length indicator, wherein the length indicator is indicative of the length of the header extension element.

[00140] Clause 17B. The first computing device of clause 16B, wherein the identifier comprises indicative information of at least one of a) a number of timestamps contained in the header extension element or in the first data packet, or b) the first timestamp that is in a payload of the first data packet.

[00141] Clause 18B. The first device of Petition 870250089281, dated 10 / 01 / 2025, pages 133 / 172 58 / 67 computation of clause 16B, wherein the header extension element additionally comprises a start of the first time indicator, a location of the first time indicator, a length of the first time indicator, or a type of the first time indicator.

[00142] Clause 19B. The first computing device of any of clauses 13B to 18B, where the first data packet is an RTP packet or an SRTP packet.

[00143] Clause 20B. The first computing device of any of clauses 13B to 19B, wherein the first time indicator comprises a timestamp or a delay measurement message.

[00144] Clause 21B. The first computing device of any of clauses 13B to 20B, wherein, as part of the determination of the data packet delay associated with the first data packet, one or more processors are configured to determine a one-way transit time of the first data packet based on the first time indicator and the second time indicator.

[00145] Clause 22B. The first computing device of clause 21B, wherein one or more processors are additionally configured to determine a fourth time indicator based on the receipt of the second data packet, wherein, as part of determining the data packet delay associated with the first data packet, one or more processors are additionally configured to: determine a one-way transit time of the second data packet with Petition 870250089281, dated 10 / 01 / 2025, pp. 134 / 172 59 / 67 based on a third time indicator in the second data packet and the fourth time indicator; and determine a round-trip data packet delay by adding the one-way transit time and the reverse one-way transit time.

[00146] Clause 23B. The first computing device of clause 22B, wherein, as part of the determination of the data packet delay, one or more processors are additionally configured to: determine a processing delay based on the second time indicator and the third time indicator; and determine the data packet delay by additionally adding the processing delay to the one-way transit time and the reverse one-way transit time.

[00147] Clause 24B. The first computing device of any of clauses 13B to 23B, wherein the first computing device comprises an augmented reality device, an extended reality device, a virtual reality device or a mobile device.

[00148] Clause 25B. A method comprising: receiving, by a second computing device from a first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmitting, by the second computing device to the first computing device, a second data packet, wherein the second data packet comprises a second time indicator, a third time indicator and at least one element of Petition 870250089281, dated 10 / 01 / 2025, pages 135 / 172 60 / 67 header extension, wherein at least one header extension element comprises a header of a header extension element, wherein the header of a header extension element has a length of at least one byte.

[00149] Clause 26B. The method of clause 25B, wherein the first time indicator comprises a first time stamp or first delay measurement, wherein the second time indicator comprises a second time stamp or a second delay measurement message and is associated with a reception time of the first data packet, and wherein the third time indicator comprises a third time stamp or a third delay message and is associated with a processing time of the first data packet.

[00150] Clause 27B. The method of clause 25B or clause 26B, wherein at least one header extension element comprises the second time indicator and the third time indicator.

[00151] Clause 28B. The method of clause 25B or clause 26B, wherein at least one header extension element comprises an indication that a payload of the second data packet includes the second time indicator and the third time indicator, wherein the second data packet additionally comprises the payload and wherein the payload comprises the second time indicator and the third time indicator.

[00152] Clause 29B. The method of any of clauses 25B to 28B, wherein the header extension element header comprises an identifier and a Petition 870250089281, dated 10 / 01 / 2025, pp. 136 / 172 61 / 67 length indicator, where the length indicator is indicative of the length of at least one header extension element.

[00153] Clause 30B. The method of clause 29B, wherein the identifier comprises indicative information of at least one of a) a number of timestamps contained in at least one header extension element or in the second data packet, or b) the second timestamp and the third timestamp that are in a payload of the first data packet.

[00154] Clause 31B. The method of clause 29B, wherein at least one header extension element additionally comprises a start of the second time indicator, a location of the second time indicator, a length of the second time indicator, or a type of the second time indicator.

[00155] Clause 32B. The method of any of clauses 25B to 31B, wherein the second data packet is an RTP packet or an SRTP packet.

[00156] Clause 33B. The method of any of clauses 25B to 31B, wherein the communication path between the first computing device and the second computing device spans a first communication network that is a 5G network and at least one second communication network that is not a 5G network.

[00157] Clause 34B. A second computing device comprising: memory configured to store a first data packet; and one or more memory-coupled processors, wherein the one or more processors are configured to: receive, from a Petition 870250089281, dated 10 / 01 / 2025, pp. 137 / 172 62 / 67 first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmit, to the first computing device, a second data packet, wherein the second data packet comprises a second time indicator, a third time indicator and at least one header extension element, wherein the header extension element has a length of at least one byte.

[00158] Clause 35B. The method of clause 34B, wherein the first time indicator comprises a first time stamp or first delay measurement, wherein the second time indicator comprises a second time stamp or a second delay measurement message and is associated with a reception time of the first data packet, and wherein the third time indicator comprises a third time stamp or a third delay message and is associated with a processing time of the first data packet.

[00159] Clause 36B. The second computing device of clause 34B or clause 35B, wherein at least one header extension element comprises the second time indicator and the third time indicator.

[00160] Clause 37B. The second computing device of clause 34B or clause 35B, wherein at least one header extension element comprises an indication that a payload of the second data packet includes the second time indicator and the third time indicator. Petition 870250089281, dated 10 / 01 / 2025, pages 138 / 172 63 / 67 time, wherein the second data packet additionally comprises the payload and wherein the payload comprises the second time indicator and the third time indicator.

[00161] Clause 38B. The second computing device of any of clauses 34B to 37B, wherein the header extension element header comprises an identifier and a length indicator, wherein the length indicator is indicative of the length of at least one header extension element.

[00162] Clause 39B. The second computing device of clause 38B, wherein the identifier comprises indicative information of at least one of a) a number of timestamps contained in at least one header extension element or in the second data packet, or b) the second timestamp and the third timestamp that are in a payload of the first data packet.

[00163] Clause 40B. The second computing device of clause 38B, wherein at least one header extension element additionally comprises a start of the second time indicator, a location of the second time indicator, a length of the second time indicator, or a type of the second time indicator.

[00164] Clause 41B. The second computing device of any of clauses 34B to 40B, wherein the second data packet is an RTP packet or an SRTP packet.

[00165] Clause 42B. The second computing device of any of clauses 34B to 41B, wherein the second time indicator comprises a time stamp. Petition 870250089281, dated 10 / 01 / 2025, pp. 139 / 172 64 / 67 or a delay measurement message.

[00166] Clause 43B. The second computing device of any of clauses 34B to 42B, wherein the second computing device comprises a server.

[00167] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code in a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to a tangible medium, such as data storage media, or communication media, including any medium that facilitates the transfer of a computer program from one place to another, for example, according to a communication protocol. In this way, computer-readable media may generally correspond to (1) tangible computer-readable storage media that are non-transient or (2) a communication medium, such as a signal or a carrier wave.Data storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[00168] By way of example, and not limitation, such computer-readable storage media may include random access memory (RAM). Petition 870250089281, dated 10 / 01 / 2025, pages 140 / 172 65 / 67 memory), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM or other optical disc storage, magnetic disc storage or other magnetic storage devices, flash memory, or any other medium that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection is properly termed a computer-readable medium.For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave will be included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but instead refer to tangible, non-transient storage media.As used in the present invention, discs (disk and disc) include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where “disks” generally reproduce data magnetically, while “discs” reproduce data optically by means of lasers. Combinations of the items. Petition 870250089281, dated 10 / 01 / 2025, pages 141 / 172 Items 66 / 67 above should also be included within the scope of computer-readable media.

[00169] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent set of discrete or integrated logic circuits. Consequently, the term processor, as used in the present invention, may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described in the present invention. Furthermore, in some respects, the functionality described in the present invention may be provided in dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combined codec. Additionally, the techniques may be fully implemented in one or more logic circuits or elements.

[00170] The techniques of this disclosure can be implemented in a wide variety of devices or appliances, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Several components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Instead, as described above, several units can be combined into a codec hardware unit or provided by a collection of hardware units. Petition 870250089281, dated 10 / 01 / 2025, pages 142 / 172 67 / 67 interoperable systems, including one or more processors as described above, in conjunction with appropriate software and / or firmware.

[00171] Several examples have been described. These and other examples are within the scope of the following claims. Petition 870250089281, dated 10 / 01 / 2025, pp. 143 / 172

Claims

1 / 7 CLAIMS 1. A method characterized in that it comprises: transmitting (800), by a first computing device to a second computing device, a first data packet, wherein the first data packet comprises at least one header extension element, wherein the at least one header extension element comprises a header extension element header and a first timestamp, wherein the header extension element header has a length of at least one byte and comprises an identifier and a lengthstamp, the identifier comprising indicative information of a number of timestamps contained in the header extension element, the lengthstamp being indicative of the length of the header extension element;receive (802), by the first computing device from the second computing device, a second data packet, wherein the second data packet comprises a second time indicator; determine (804), by the first computing device, a data packet delay associated with the first data packet based on the first time indicator and the second time indicator; and transmit (806), by the first computing device, an indication of the data packet delay to at least one of the second computing devices or a third computing device.

2. Method according to claim 1, Petition 870260060743, dated 06 / 22 / 2026, page 5 / 26 2 / 7 characterized in that the header extension element additionally comprises a start of the first time indicator, a location of the first time indicator, a length of the first time indicator or a type of the first time indicator.

3. Method according to claim 1, characterized in that the first data packet is an RTP packet or an SRTP packet.

4. Method according to claim 1, characterized in that the first time indicator comprises a time stamp or a delay measurement message.

5. Method, according to claim 1, characterized in that the determination of the data packet delay associated with the first data packet comprises determining a one-way transit time of the first data packet based on the first time indicator and the second time indicator.

6. Method according to claim 5, characterized in that it further comprises determining a fourth time indicator based on the receipt of the second data packet, wherein determining the data packet delay associated with the first data packet comprises: determining a reverse one-way transit time of the second data packet based on a third time indicator in the second data packet and the fourth time indicator; and determining the data packet delay by adding the one-way transit time, the reverse one-way transit time.

7. A method according to claim 6, characterized in that determining the data packet delay further comprises: determining a processing delay based on the second time indicator and the third time indicator; and determining the data packet delay by additionally adding the processing delay to the one-way transit time and the reverse one-way transit time.

8. Method according to claim 1, characterized in that the communication path between the first computing device and the second computing device encompasses a first communication network that is a 5G network and at least one second communication network that is not a 5G network.

9. First computing device characterized in that it comprises: memory configured to store a first data packet; and one or more processors coupled to the memory, wherein the one or more processors are configured to: transmit (800) to a second computing device the first data packet, wherein the first data packet comprises at least one header extension element, wherein the at least one header extension element comprises a header of a header extension element comprising a first time indicator, wherein the header of a header extension element has a Petition 870260060743, dated 22 / 06 / 2026, page.7 / 26 4 / 7 length of at least one byte and comprising an identifier and a length indicator, the identifier comprising indicative information of a number of time indicators contained in a header extension element, the length indicator being indicative of the length of the header extension element; receive (802) from the second computing device a second data packet, the second data packet comprising a second time indicator; determine (804) a data packet delay associated with the first data packet based, at least in part, on at least one of the first time indicator or the second time indicator; and transmit (806) an indication of the data packet delay to at least one of the second computing device or a third computing device.

10. First computing device, according to claim 9, characterized in that the header extension element additionally comprises a start of the first time indicator, a location of the first time indicator, a length of the first time indicator, or a type of the first time indicator.

11. First computing device, according to claim 9, characterized in that the first data packet is an RTP packet or an SRTP packet.

12. First computing device according to claim 9, characterized in that the first time indicator comprises a time stamp or a delay measurement message. Petition 870260060743, dated 06 / 22 / 2026, p. 8 / 26 5 / 7 13. First computing device according to claim 9, characterized in that the first computing device comprises an augmented reality device, an extended reality device, a virtual reality device, or a mobile device.

14. A method characterized in that it comprises: receiving (900), by a second computing device from a first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmitting (902), by the second computing device to the first computing device, a second data packet, wherein the second data packet comprises at least one header extension element, wherein the at least one header extension element comprises a header extension element header, a second time indicator, and a third time indicator, the header extension element header having a length of at least one byte and comprising an identifier and a length indicator, the identifier comprising indicative information of a number of time indicators contained in the at least one header extension element,the length indicator being indicative of the length of at least one header extension element, wherein the first time indicator comprises a first timestamp or first delay measurement, wherein the second time indicator comprises a second timestamp or a second delay measurement message and is associated with a reception time of the first data packet, and wherein the third time indicator comprises a third timestamp or a third delay message and is associated with a processing time of the first data packet.

15. Second computing device characterized in that it comprises: memory configured to store a first data packet; and one or more processors coupled to the memory, wherein the one or more processors are configured to: receive (900), from a first computing device, a first data packet, wherein the first data packet comprises a first time indicator; and transmit (902), to the first computing device, a second data packet, wherein the second data packet comprises at least one header extension element, wherein the at least one header extension element comprises a header extension element header, a second time indicator, and a third time indicator, the header extension element header having a length of at least one byte, and comprising an identifier and a length indicator,the identifier comprising information indicative of a number of time indicators contained in at least one header extension element, the length indicator being indicative of the length of at least one header extension element, Petition 870260060743, dated 06 / 22 / 2026, p. 10 / 26 7 / 7 wherein the first time indicator comprises a first timestamp or first delay measurement, wherein the second time indicator comprises a second timestamp or a second delay measurement message and is associated with a reception time of the first data packet, and wherein the third time indicator comprises a third timestamp or a third delay message and is associated with a processing time of the first data packet. Petition 870260060743, dated 06 / 22 / 2026, p. 11 / 26,