• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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![Logical architecture diagram](images/histreamer_architecture.png)
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**