HTTP Live Streaming player

HLS player

HTTP Live Streaming player


Promwad ODC / DTV has unique experience in the development of set-top boxes and the integration of MW and CAS / DRM solutions. In addition to engineering support and development services for backend and client software and related hardware, we provide our clients with an optimized HLS streaming solution.

You get either a final solution or a custom one: depending on your needs, we can quickly deploy any additional functionality in your HTTP Live Streaming player.


Our team worked on a project where the main challenge was playing Live TV via HLS protocol on the Amlogic S905x platform set-top box.

The playback itself was stable enough, but we encountered several problems with additional functionality. For instance, time-shifted viewing, switching between audio tracks, or seeking the video worked with different video/audio glitches that were quite irritating.

Our solution

We examined the player implementation. It appeared to be a modified copy of standard NuPlayer, copied to /vendor AOSP folder and renamed to Am-NuPlayer. Solution provider changed it to support some additional features, but audio switching/seeking was not good enough.

We found the cause of the problem in the module responsible for downloading the content, but its specific architecture didn’t allow any improvements. So instead, we decided to write our own HLS implementation and adapt it to the "Source" API.

hls player promwad

HLS library architecture


HLS Download Manager

The main class is responsible for data downloading and storage. It stores data on all possible HLS-stream tracks, opening track on-demand, starting and coordinating the process of downloading playlists and segments of all open tracks. It also switches the quality of the playback. 

Media Downloader

Media Downloader downloads data for a specific open track. The class has two main commands – updateUrl and downloadNext. MediaContainer can notify the client about new data and give it to the client right after a download has been started. So the client (player) can start playing without waiting for the first segment download.

Media Container

Media Container stores downloaded segments for each open track. It has an interface both for Media Downloader (to stack the downloaded data) and for the client to supply it with data. It allocates memory for the downloaded data to the Media Downloader. It helps to avoid unnecessary data copying. 


Live TV, HLS, AOSP, AMLogic S905x, Android, iOS, DVB/VOD/OTT

Kirill Zut Promwad

"The project results are excellent. We have written the HLS player in C++, so it is platform-independent (it can work at least on desktop Linux and Android) and does its job well. Via the new HlsSource module, the player communicates with AmNuplayer and allows fast and smooth audio track switching without any visible audio/video glitches. It can handle separate audio tracks (from different playlists) and built-in ones (when several audio tracks are in the same stream with video)".

— Kirill Zut, Head of ODC/DTV department at Promwad.


Our case-studies in digital TV


Sport Club App for Smart TV: Tizen, WebOS & Android TV We've developed an application for Smart TV with live streaming, VOD, and voice control support

Android app for the biggest e-book vendor in CISAn application for Android-based devices for the selection and listening to your favourite audio books — LitRes: Listen!

Smart TV app for Tizen Samsung & WebOS LG TV We've developed an IPTV application with the TimeShifting, EPG, PVR, and pause/rewind features

Embedded UI customization for a set-top box We've created a software framework that allows the customer to change the user interface with minimal efforts

TI DM373-based SoM for video surveillance projects We've designed the CPU module based on the TI DM3730, which helps cut the time, costs, and risks of designing new products

AI application for set-top box: searching and buying products from video streaming

Shoppable video: AI-based app for STB & Smart TV We've developed and installed on STBs the first AI application for searching and buying clothes directly from the video stream

Locus DVB-T STBWe have developed a digital TV set-top box (STB) with support for DVB-T (MPEG-2/4) and terrestrial digital broadcasting

promwad have designed a digital IPTV STB with DVB-T and DVB-S/S2 support, based on the SMP8654 processor by SigmaDesigns

IPTV STB with DVB-T/S/S2We have designed a digital IPTV STB with DVB-T and DVB-S/S2 support, based on the SMP8654 processor by SigmaDesigns

SmartLabs IPTV set-top box We have developed a range of IPTV set-top boxes, ensured license coverage for all the proprietary coding standards for audio and video
Smart home multimedia controller

Smart house controller (HDMI-CEC) for a Swiss company We have designed the HDMI-CEC controller to manage a home multimedia complex: cinema, tuner, VCR and other devices

Do you need a quote for your engineering project for the DTV & broadcasting industry?

Please, drop us a line. We will contact you today or next business day. All submitted information will be kept confidential.