# esplusplayer [![Potential Defect (Analysis Hub)](https://code.sec.samsung.net/crb/image/api/badge/18007/analysis-hub-service)](https://code.sec.samsung.net/crb/projects/1/18007) [![Potential Defect (Analysis Hub)](https://code.sec.samsung.net/crb/image/api/badge/18007/analysis-hub-service?show=sam)](https://code.sec.samsung.net/crb/projects/1/18007) [![gbs-build](https://github.sec.samsung.net/tizen-vault/esplusplayer/actions/workflows/gbs-build-p4.yml/badge.svg)](https://github.sec.samsung.net/tizen-vault/esplusplayer/actions/workflows/gbs-build-p4.yml) [![Reviewability Service](https://code.sec.samsung.net/crb/image/api/badge/18007/reviewability-service)](https://code.sec.samsung.net/crb/projects/1/18007) [![CheckSpell Service](https://code.sec.samsung.net/crb/image/api/badge/18007/checkspell-service)](https://code.sec.samsung.net/crb/projects/1/18007) [![Reform Service](https://code.sec.samsung.net/crb/image/api/badge/18007/reform-service)](https://code.sec.samsung.net/crb/projects/1/18007) [![Idiom Service](https://code.sec.samsung.net/crb/image/api/badge/18007/idiom-service)](https://code.sec.samsung.net/crb/projects/1/18007) - [Introduction](#intro) - [Contributing](#contrib) - [Release Process](#release) - [Programming Guide](#guide) - [Suggestion & Trouble Shooting](#suggest) ## Introduction ### What is ESPlusPlayer? * It is a player framework which focuses on handling ES (Elementary Stream) packet data to render audio and video. * It was named after PlusPlayer, which was designed for rapidly increasing video streaming services. * PlusPlayer has two parts - one is variant part and the other one is invariant part, which is called TrackRenderer. * ESPlusPlayer also uses TrackRenderer for actual ES data handling (decryption, decoding and rendering). > You can refer [PlusPlayer GitHub](https://github.sec.samsung.net/VD8-PlusPlayer/plusplayer), but note that PlusPlayer is not managed on Github now. ### Why ESPlusPlayer is required? * Traditional media application relied on a plaform-provided player framework. The application just gives source URL to player and player does everything instead. * This type of player performs source fetching, parsing (to get ES packet), decoding and rendering. * The application just needs to monitor what player is doing now, and control its status - start, pause, resume, seek, etc. * Recently some major OTT services (YouTube, Netflix, ...) have different concept of player: * These apps don't rely on a platform player, instead they fetch media source and parse to extract ES packet by themselves. * The only part that they rely on a platform player is ES packet handling, since it highly depends on the target devices. * Not only the major OTT services, but web engines like Chromium also have the same playback concept. > In Tizen platform, traditional player (MMPlayer) can support ES handling playback too.\ > but for better code maintenence, VD decided to make another player framework which only focuses on ES playback - That is ESPlusPlayer. ## Contributing * Check the [contributing guidelines](CONTRIBUTING.md) about the submission process, coding rules, and more. ## Release Process * This repository is auto-synced to VD P4, so please be aware of VD's [release process](https://github.sec.samsung.net/tizen-vault/esplusplayer/discussions/23). ## Programming Guide * (TBD) Some important changes in ESPlusPlayer and basic guidelines will be provided [here](https://github.sec.samsung.net/tizen-vault/esplusplayer/wiki) ## Suggestion & Trouble Shooting * Open new [discussion](https://github.sec.samsung.net/tizen-vault/esplusplayer/discussions) for any idea, or suggestion about ESPP feature or management of this repository. * Open new [issues](https://github.sec.samsung.net/tizen-vault/esplusplayer/issues) when you have any problem on ESPP feature or using this repository.