It seems that many contestants misunderstood the task. We are happy to provide clarifications regarding the task requirements, which you will find below.
Q: Can AVFoundation / VideoToolbox / CoreVideo be used?
A: Yes, anything that doesn't use AVPlayer to handle HLS playback is allowed.
Q: Are third party libraries/frameworks allowed (e.g. ffmpeg)?
A: Yes, anything that doesn't use AVPlayer to handle HLS playback is allowed.
Q: What do you mean by "switching between available video streams"?
A: The ability to change between different quality levels or versions of the video based on factors like network bandwidth or user selection. The player should be able to automatically switch to the most appropriate stream depending on the network conditions, or allow the user to manually select a stream which they prefer.
Q: Are there any minimum technical requirements for a video player? Which features are prioritized?
A: Video playback must be hardware-accelerated.
Q: Do we need support for offline playback?
A: No.
Q: Is it necessary to replace something specific in the source code of Telegram iOS from AVPlayer to our self-written player or all?
A: You only need to replace the relevant code in HLSVideoContent.swift
where the AVPlayer is used for handling HLS streams
Q: Which formats and codecs should be supported with HLS and video decoding?
A: fmp4 / H264 / AAC.
Q: Will there be any guidelines on how switching between available qualities should be implemented on the UI/UX part?
A: The UI is already implemented. Quality switching is handled here.
>>Click here to continue<<