1# HiStreamer<a name="EN-US_TOPIC_0000001148809513"></a> 2 3- [HiStreamer<a name="EN-US_TOPIC_0000001148809513"></a>](#histreamer) 4 - [Introduction<a name="section1158716411637"></a>](#introduction) 5 - [Logical architecture<a name="section1158716411638"></a>](#logical-architecture) 6 - [List of plug-ins<a name="section1158716411639"></a>](#plugin-list) 7 - [Directory Structure<a name="section1158716411640"></a>](#directory-structure) 8 - [Repositories Involved<a name="section1158716411641"></a>](#repositories-involved) 9 10## Introduction<a name="section1158716411637"></a> 11 12HiStreamer is the foundation module of the multimedia subsystem. It provides a processing pipeline and plug-ins required by the media framework, such as the file source, codecs, muxer and demuxer, and audio and video data processor. 13 14## Logical architecture<a name="section1158716411638"></a> 15As a media engine, HiStreamer connects to player_framework (on a Standard device) or media_lite (on a Mini or Small device) and provides application apis externally. It is divided into three layers: 16- Application scenario Encapsulation layer: for example, HiPlayer and HiRecorder. 17- Pipeline framework layer: including Pipeline framework, each Filter node implementation. 18- Plug-in layer: includes plug-in framework, various plug-ins. 19 20 21 22## Plugin list<a name="section1158716411639"></a> 23The HiStreamer plug-in list is as follows: 24| The plug-in name | path |External dependencies | License | function | applicable scene | 25| -- | -- | -- | -- | -- | -- | 26| FFMPEG Adapter| plugins/ffmpeg_adapter | FFMPEG | LGPL etc. | Decapsulation: mp3, m4a, mp4, wav<br>Decode: mp3, aac |Small/Standard devices that support dynamic linking | 27| File Source | plugins/source/file_source | FileSystem | Apache | Reading file data | All the device | 28| Minimp3 Adapter | plugins/minimp3_adapter | minimp3 | CC0 | Decapsulation: mp3<br>decode : mp3 | All the device | 29| Minimp4 Demuxer | plugins/demuxer/minimp4_demuxer | minimp4 | CC0 | Decapsulation: m4a | All the device | 30| Aac Demuxer | plugins/demuxer/aac_demuxer | NA | Apache | Decapsulation: aac | All the device | 31| HDI Sink | plugins/hdi_adapter | Audio HDI | Apache | play music | mini/small device| 32 33 34 35## Directory Structure<a name="section1158716411640"></a> 36 37The structure of the repository directory is as follows: 38 39``` 40/foundation/multimedia/histreamer 41├── LICENSE # License file 42└── ohos.build # Build file 43/foundation/multimedia/histreamer # HiStreamer media engine component business code 44├─LICENSE # The license file 45├─engine # The engine code 46│ ├─foundation # Basic tool classes, including OS adaptation 47│ ├─pipeline framework # pipeline frame 48│ │ ├─core # pipeline core implementation 49│ │ ├─factory # filter factory 50│ │ └─filters # Several filter node implementations 51│ │ ├─codec # Codec node implementation 52│ │ ├─demux # Decapsulation node implementation 53│ │ ├─sink # Output node implementation 54│ │ └─source # Data source node implementation 55│ ├─player # Player package 56│ └─plugin # plug-in 57│ ├─common # The underlying type definitions on which the plug-in interface depends 58│ ├─core # Plug-in framework 59│ ├─interface # Plug-in interface 60│ └─plugins # Several plug-in implementations 61│ ├─minimp3_adapter # minimp3 adapter 62│ ├─ffmpeg_adapter # FFMPEG adaption (adaption into encapsulation and decapsulation, codec plug-in) 63│ ├─hdi_adapter # HDI adapter (adapter to output plug-in) 64│ ├─demuxer # Unpack plugin 65│ ├─sink # Output plug-in 66│ └─source # Data source plug-in 67└─interface # Engine external interface 68``` 69 70## Repositories Involved<a name="section1158716411641"></a> 71 72- [multimedia Subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/multimedia.md) 73 74- [player_framework](https://gitee.com/openharmony/multimedia_player_framework) 75 76- [media_lite](https://gitee.com/openharmony/multimedia_media_lite) 77 78- **multimedia_histreamer**