Replies: 3 comments 1 reply
-
@kuehnhammer responded:
|
Beta Was this translation helpful? Give feedback.
-
We had an additional question after discussion this morning: MBS User Services supports the following modes of operation defined in clause 6 of TS 26.502:
Based on the analysis of libflute that @devbbc and @davidjwbbc have done, we think that it would support 2(i) easily; also 2(ii) and 2(iv) with appropriate surrounding logic. This is based on the understanding that the library sends each object once in the FLUTE Session and automatically removes it from the session afterwards. This comes as no surprise since DASH/HLS streaming over MBMS (similar to 2(iv) above) is the main Use Case for libflute so far in 5G-MAG. The one mode of operation we think libflute doen't support is 2(iii) where the same objects are repeatedly transmitted over a FLUTE Session with the same Transport Object Identifiers according to a schedule expressed in the object manifest. This is based on the understanding that the library invokes a callback to tell the application when it has sent each object once. Hence, the only way to transmit an object more than once is for the application to retransmit it by invoking the library again. However, this will result in a new Transport Object Identifier being allocated, which is not the wanted behaviour. Is our understanding correct, @kuehnhammer? |
Beta Was this translation helpful? Give feedback.
-
One potential enhancement to the library would therefore be for the application to be able to request that an object be sent repeatedly. However, this may stretch the scope of libflute beyond the original design brief. A simpler enhancement might be to allow the application to optionally specify an explicit Transmission Object Identifier when requesting transmission of an object in the FLUTE Session. This could then be combined with the callback which we think informs the application of the TOI value just transmitted. Using this, the application could request that the object be transmitted again with the same TOI value as last time, and the logic for scheduling the objects in the carousel would sit in the application rather than in the library. This sounds good in principle, but would result in objects constantly falling out of the FLUTE File Description Table (FDT) only for it to be reinserted in the next version of the FDT sent in TOI=0. This "flapping" is presumably signalled to the client, which must then keep reprocessing each new version of the FDT. Ideally, if the contents of the FLUTE Session is stable for a period of time (i.e. a static set of objects described in a manifest), then the FDT in TOI=0 doesn't need to change at all, and the client doesn't need to reprocess it. Maybe what's needed is a new public function to more explicitly add items to the FLUTE Session, and later to remove them. Asking libflute to schedule the multiple transmissions feels a stretch too far, but maybe the application could compile a schedule as an array of TOI values which is passed in via another new public function in order to start the transmission. This could be a simple ABCD, ABCD repetition pattern, or something more complex like ABABCABD, ABABCABD, etc. I can't quite remember if there is a packet counter in the FLUTE/ALC/LCT header, but maybe the set of packets for one rotation of the carousel is identical to the next rotation and they could be stored in the library for reuse in the next rotation. Maybe the use of AL-FEC messes with this, though? |
Beta Was this translation helpful? Give feedback.
-
@devbbc asked:
Beta Was this translation helpful? Give feedback.
All reactions