|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 17-Mar-2025 | - |
| engine/ | H | 17-Mar-2025 | - | 57,652 | 45,155 |
| images/ | H | 17-Mar-2025 | - | | |
| interface/ | H | 17-Mar-2025 | - | 10,523 | 5,989 |
| services/media_monitor/ | H | 17-Mar-2025 | - | 7,429 | 6,000 |
| src/ | H | 17-Mar-2025 | - | 12,037 | 9,348 |
| test/ | H | 17-Mar-2025 | - | 17,082 | 13,409 |
| tests/ | H | 17-Mar-2025 | - | 12,095 | 8,855 |
| video_processing_engine/ | H | 17-Mar-2025 | - | 5,826 | 3,772 |
| .gitattributes | H A D | 17-Mar-2025 | 631 | 16 | 15 |
| .gitignore | H A D | 17-Mar-2025 | 427 | 23 | 22 |
| BUILD.gn | H A D | 17-Mar-2025 | 3 KiB | 102 | 99 |
| CMakeLists.txt | H A D | 17-Mar-2025 | 1.1 KiB | 31 | 25 |
| LICENSE | H A D | 17-Mar-2025 | 9.9 KiB | 177 | 150 |
| OAT.xml | H A D | 17-Mar-2025 | 4.4 KiB | 74 | 19 |
| README.md | H A D | 17-Mar-2025 | 6 KiB | 89 | 73 |
| README_zh.md | H A D | 17-Mar-2025 | 5.7 KiB | 89 | 75 |
| bundle.json | H A D | 17-Mar-2025 | 10.3 KiB | 256 | 255 |
| config.gni | H A D | 17-Mar-2025 | 4.7 KiB | 135 | 113 |
README.md
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/media_foundation # HiStreamer media engine component business code
41├─LICENSE # The license file
42├─engine # The engine code
43│ ├─foundation # Basic tool classes, including OS adaptation
44│ ├─include # Expose the necessary header files for calling histreamer in other modules, including calling pipeline/filter or calling plugins.
45│ │ ├─foundation # Basic tool library of histreamer, including logging, buffer tools, operating system adaptation, language extensions, etc.
46│ │ ├─pipeline # Header files for the pipeline framework, mainly the pipeline/filter interface.
47│ │ └─plugin # Header files for the "plugin" subfolder of the engine
48│ │ ├─common # Basic type header files required for plugin interfaces
49│ │ └─interface # Plugin interfaces
50│ ├─pipeline # pipeline framework
51│ │ ├─core # pipeline core implementation
52│ │ ├─factory # filter factory
53│ │ └─filters # Several filter node implementations
54│ │ ├─codec # Codec node implementation
55│ │ ├─common # Basic type definitions required by filters
56│ │ ├─demux # Decapsulation node implementation
57│ │ ├─muxer # Capsulation node implementation
58│ │ ├─sink # Output node implementation
59│ │ └─source # Data source node implementation
60│ ├─plugin # plug-in
61│ │ ├─common # The underlying type definitions on which the plug-in interface depends
62│ │ ├─core # Plug-in framework
63│ │ └─plugins # Several plug-in implementations
64│ │ ├─codec_adapter # Codec adapter
65│ │ ├─minimp3_adapter # minimp3 adapter
66│ │ ├─ffmpeg_adapter # FFMPEG adaption (adaption into encapsulation and decapsulation, codec plug-in)
67│ │ ├─hdi_adapter # HDI adapter (adapter to output plug-in)
68│ │ ├─lite_aac_decoder # Lite AAC decoder plugin
69│ │ ├─demuxer # Unpack plugin
70│ │ ├─sink # Output plug-in
71│ │ └─source # Data source plug-in
72│ ├─scene # Playback and recording scenes
73│ │ ├─common # Common basic type definitions
74│ │ ├─lite # interface implementation for integration with lite devices
75│ │ ├─player # Playback scene
76│ │ ├─recorder # Recording scene
77│ │ └─standard # interface implementation for integration with standard devices
78└─interface # Engine external interface
79```
80
81## Repositories Involved<a name="section1158716411641"></a>
82
83- [multimedia Subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/multimedia.md)
84
85- [player_framework](https://gitee.com/openharmony/multimedia_player_framework)
86
87- [media_lite](https://gitee.com/openharmony/multimedia_media_lite)
88
89- **histreamer**