Skip to content

Commit c395e0f

Browse files
committed
codecs: remove helix-acc and mad-mp3 support due to license issue
1 parent d8ebce0 commit c395e0f

File tree

503 files changed

+43
-37602
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

503 files changed

+43
-37602
lines changed

Liteplayer.png

37.2 KB
Loading

README.md

+3-24
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,10 @@
1-
Liteplayer 是一个为嵌入式平台设计的低开销低延时的音频播放器,已运行在千万级别的设备上,包括 Android、iOS、Linux、RTOS 多种终端平台
1+
Liteplayer 是一个为嵌入式平台设计的低开销低延时的音频播放器,支持 Android、iOS、Linux、RTOS 等平台
22

33
Liteplayer 具有如下特点:
4-
1. 支持 MP3、AAC、M4A、WAV、FLAC、OPUS 格式,支持本地文件、本地播放列表、HTTP/HTTPS/HLS 和 TTS 数据流,接口和状态机与 Android MediaPlayer 一致
4+
1. 支持 MP3、AAC、M4A、WAV、格式,支持本地文件、本地播放列表、HTTP/HTTPS/HLS 和 TTS 数据流,接口和状态机与 Android MediaPlayer 一致
55
2. 极低的系统开销,1-2 个线程(建议网络流使用双线程模式,文件流使用单线程模式),最低至 48KB 堆内存占用,已集成在 主频192MHz + 内存448KB 的系统上并产品量产;高配置平台上可配置更大的缓冲区以取得更好的播放体验
66
3. 高度的移植性,纯 C 语言 C99 标准,已运行在 Linux、Android、iOS、MacOS、FreeRTOS、AliOS-Things 上;如果其平台不支持 POSIX 接口规范,则实现 Thread、Memory、Time 相关的少量 OSAL 接口也可接入
77
4. 抽象流数据输入、音频设备输出的接口,使用者可自由添加各种流协议如 rtsp、rtmp、sdcardfs、flash 等等
8-
5. 适配多个解码器,包括 libmad、pv-mp3、helix-aac、pv-aac 等等,也可适配芯片原厂提供的解码器
9-
6. 提供丰富的调试手段,可以收集及分析播放链路各节点的音频流数据;提供内存检测手段,能直观查看内存分配细节、分析内存泄漏和内存越界
10-
11-
**核心播放接口**
12-
- 提供播放器基本服务,包括 set_data_source、prepare、start、pause、resume、seek、stop、reset 等操作
13-
- https://github.com/sepnic/liteplayer_priv/blob/master/include/liteplayer_main.h
14-
15-
**列表播放接口**
16-
- 除了播放器基本功能外,还支持 m3u8 协议列表、本地播放列表、切换上下首、单曲循环等操作
17-
- https://github.com/sepnic/liteplayer_priv/blob/master/include/liteplayer_listplayer.h
18-
19-
**TTS播放接口**
20-
- 提供 TTS 流播放功能,支持 prepare、start、stop、reset 等操作
21-
- https://github.com/sepnic/liteplayer_priv/blob/master/include/liteplayer_ttsplayer.h
22-
23-
**播放器适配层**
24-
- 数据源输入、音频设备输出的抽象接口,默认适配了 "文件流-标准文件系统"、 "网络流-httpclient"、"音频设备输出-alsa/OpenSLES/AudioTrack"
25-
- https://github.com/sepnic/liteplayer_priv/blob/master/include/liteplayer_adapter.h
26-
27-
**OSAL 适配层**
28-
- Thread、Memory、Time 等操作系统相关的抽象接口,如果系统已支持 POSIX 接口规范,则不用修改直接使用即可
29-
- https://github.com/sepnic/sysutils/tree/cutils_c99/osal
8+
5. 适配多个解码器,包括 pv-mp3、pv-aac、wave 等等,也可适配芯片原厂提供的解码器
309

3110
![LiteplayerArchitecture](https://github.com/sepnic/liteplayer_priv/blob/master/Liteplayer.png)

example/android/library/src/main/cpp/CMakeLists.txt

+5-5
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ target_include_directories(sysutils PRIVATE
3737

3838
# liteplayer_core
3939
file(GLOB CODEC_SRC src
40-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/src/*.cpp
41-
${TOP_DIR}/thirdparty/codecs/aac-pvaac/*.cpp)
40+
${TOP_DIR}/thirdparty/codecs/pvmp3/src/*.cpp
41+
${TOP_DIR}/thirdparty/codecs/pvaac/*.cpp)
4242
set(LITEPLAYER_CORE_SRC
4343
${CODEC_SRC}
4444
${TOP_DIR}/src/esp_adf/audio_element.c
@@ -68,9 +68,9 @@ target_compile_options(liteplayer_core PRIVATE
6868
target_include_directories(liteplayer_core PRIVATE
6969
${TOP_DIR}/thirdparty/sysutils/include
7070
${TOP_DIR}/thirdparty/codecs
71-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/include
72-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/src
73-
${TOP_DIR}/thirdparty/codecs/aac-pvaac
71+
${TOP_DIR}/thirdparty/codecs/pvmp3/include
72+
${TOP_DIR}/thirdparty/codecs/pvmp3/src
73+
${TOP_DIR}/thirdparty/codecs/pvaac
7474
${TOP_DIR}/src
7575
${TOP_DIR}/adapter)
7676

example/esp32/components/liteplayer_core/CMakeLists.txt

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ set(COMPONENT_ADD_INCLUDEDIRS ${TOP_DIR}/include)
1010
set(COMPONENT_PRIV_INCLUDEDIRS
1111
${THIRDPARTY_DIR}/sysutils/include
1212
${THIRDPARTY_DIR}/codecs
13-
${THIRDPARTY_DIR}/codecs/mp3-pvmp3/include
14-
${THIRDPARTY_DIR}/codecs/mp3-pvmp3/src
15-
${THIRDPARTY_DIR}/codecs/aac-pvaac
13+
${THIRDPARTY_DIR}/codecs/pvmp3/include
14+
${THIRDPARTY_DIR}/codecs/pvmp3/src
15+
${THIRDPARTY_DIR}/codecs/pvaac
1616
${LITEPLAYER_DIR}
1717
)
1818

1919
file(GLOB CODECS_SRCS src
20-
${THIRDPARTY_DIR}/codecs/mp3-pvmp3/src/*.cpp
21-
${THIRDPARTY_DIR}/codecs/aac-pvaac/*.cpp
20+
${THIRDPARTY_DIR}/codecs/pvmp3/src/*.cpp
21+
${THIRDPARTY_DIR}/codecs/pvaac/*.cpp
2222
)
2323

2424
set(COMPONENT_SRCS

example/unix/CMakeLists.txt

+5-5
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ target_include_directories(sysutils PRIVATE ${TOP_DIR}/thirdparty/mbedtls/includ
4545

4646
# liteplayer files
4747
file(GLOB LITEPLAYER_CODEC_SRC src
48-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/src/*.cpp
49-
${TOP_DIR}/thirdparty/codecs/aac-pvaac/*.cpp
48+
${TOP_DIR}/thirdparty/codecs/pvmp3/src/*.cpp
49+
${TOP_DIR}/thirdparty/codecs/pvaac/*.cpp
5050
)
5151
set(LITEPLAYER_CORE_SRC
5252
${LITEPLAYER_CODEC_SRC}
@@ -81,9 +81,9 @@ target_compile_options(liteplayer_core PRIVATE
8181
)
8282
target_include_directories(liteplayer_core PRIVATE
8383
${TOP_DIR}/thirdparty/codecs
84-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/include
85-
${TOP_DIR}/thirdparty/codecs/mp3-pvmp3/src
86-
${TOP_DIR}/thirdparty/codecs/aac-pvaac
84+
${TOP_DIR}/thirdparty/codecs/pvmp3/include
85+
${TOP_DIR}/thirdparty/codecs/pvmp3/src
86+
${TOP_DIR}/thirdparty/codecs/pvaac
8787
${TOP_DIR}/src
8888
)
8989

src/CMakeLists.txt

+23-53
Original file line numberDiff line numberDiff line change
@@ -4,60 +4,25 @@ project(liteplayer_core)
44
set(TOP_DIR "${CMAKE_SOURCE_DIR}/..")
55

66
# cflags: OS_LINUX, OS_ANDROID, OS_APPLE, OS_RTOS
7-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -fPIC -std=gnu99 -Wall -Werror -DOS_APPLE")
7+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -fPIC -std=gnu99 -Wall -Werror -DOS_APPLE")
8+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -fPIC -std=c++11 -Wall -Werror -DOS_APPLE")
89

910
# include files
1011
include_directories(${TOP_DIR}/thirdparty/sysutils/include)
1112
include_directories(${TOP_DIR}/include)
1213

1314
# liteplayer files
14-
set(CODECS_SRC
15-
${TOP_DIR}/thirdparty/codecs/mp3-mad/bit.c
16-
${TOP_DIR}/thirdparty/codecs/mp3-mad/decoder.c
17-
${TOP_DIR}/thirdparty/codecs/mp3-mad/fixed.c
18-
${TOP_DIR}/thirdparty/codecs/mp3-mad/frame.c
19-
${TOP_DIR}/thirdparty/codecs/mp3-mad/huffman.c
20-
${TOP_DIR}/thirdparty/codecs/mp3-mad/layer12.c
21-
${TOP_DIR}/thirdparty/codecs/mp3-mad/layer3.c
22-
${TOP_DIR}/thirdparty/codecs/mp3-mad/stream.c
23-
${TOP_DIR}/thirdparty/codecs/mp3-mad/synth.c
24-
${TOP_DIR}/thirdparty/codecs/mp3-mad/timer.c
25-
${TOP_DIR}/thirdparty/codecs/mp3-mad/version.c
26-
${TOP_DIR}/thirdparty/codecs/aac-helix/aacdec.c
27-
${TOP_DIR}/thirdparty/codecs/aac-helix/aactabs.c
28-
${TOP_DIR}/thirdparty/codecs/aac-helix/bitstream.c
29-
${TOP_DIR}/thirdparty/codecs/aac-helix/buffers.c
30-
${TOP_DIR}/thirdparty/codecs/aac-helix/dct4.c
31-
${TOP_DIR}/thirdparty/codecs/aac-helix/decelmnt.c
32-
${TOP_DIR}/thirdparty/codecs/aac-helix/dequant.c
33-
${TOP_DIR}/thirdparty/codecs/aac-helix/fft.c
34-
${TOP_DIR}/thirdparty/codecs/aac-helix/filefmt.c
35-
${TOP_DIR}/thirdparty/codecs/aac-helix/huffman.c
36-
${TOP_DIR}/thirdparty/codecs/aac-helix/hufftabs.c
37-
${TOP_DIR}/thirdparty/codecs/aac-helix/imdct.c
38-
${TOP_DIR}/thirdparty/codecs/aac-helix/noiseless.c
39-
${TOP_DIR}/thirdparty/codecs/aac-helix/pns.c
40-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbr.c
41-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrfft.c
42-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrfreq.c
43-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrhfadj.c
44-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrhfgen.c
45-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrhuff.c
46-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrimdct.c
47-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrmath.c
48-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrqmf.c
49-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrside.c
50-
${TOP_DIR}/thirdparty/codecs/aac-helix/sbrtabs.c
51-
${TOP_DIR}/thirdparty/codecs/aac-helix/stproc.c
52-
${TOP_DIR}/thirdparty/codecs/aac-helix/tns.c
53-
${TOP_DIR}/thirdparty/codecs/aac-helix/trigtabs.c)
15+
file(GLOB CODECS_SRC src
16+
${TOP_DIR}/thirdparty/codecs/pvmp3/src/*.cpp
17+
${TOP_DIR}/thirdparty/codecs/pvaac/*.cpp
18+
)
5419
set(LITEPLAYER_SRC
5520
${CODECS_SRC}
5621
${TOP_DIR}/src/esp_adf/audio_element.c
5722
${TOP_DIR}/src/esp_adf/audio_event_iface.c
58-
${TOP_DIR}/src/audio_decoder/mp3_mad_wrapper.c
23+
${TOP_DIR}/src/audio_decoder/mp3_pvmp3_wrapper.c
5924
${TOP_DIR}/src/audio_decoder/mp3_decoder.c
60-
${TOP_DIR}/src/audio_decoder/aac_helix_wrapper.c
25+
${TOP_DIR}/src/audio_decoder/aac_pvaac_wrapper.c
6126
${TOP_DIR}/src/audio_decoder/aac_decoder.c
6227
${TOP_DIR}/src/audio_decoder/m4a_decoder.c
6328
${TOP_DIR}/src/audio_decoder/wav_decoder.c
@@ -71,19 +36,23 @@ set(LITEPLAYER_SRC
7136
${TOP_DIR}/src/liteplayer_debug.c
7237
${TOP_DIR}/src/liteplayer_main.c
7338
${TOP_DIR}/src/liteplayer_listplayer.c
74-
${TOP_DIR}/src/liteplayer_ttsplayer.c)
39+
${TOP_DIR}/src/liteplayer_ttsplayer.c
40+
)
7541
add_library(liteplayer_core STATIC ${LITEPLAYER_SRC})
7642
target_compile_options(liteplayer_core PRIVATE
77-
-Wno-error=int-to-pointer-cast
78-
#platform: __arm__/__amd64__, __GNUC__
7943
-D__amd64__
80-
#libmad: LITEPLAYER_CONFIG_MAD_FPM_64BIT/LITEPLAYER_CONFIG_MAD_FPM_ARM/LITEPLAYER_CONFIG_MAD_FPM_DEFAULT
81-
-DLITEPLAYER_CONFIG_MAD_FPM_DEFAULT
82-
#helix-aac: don't config it if sbr isn't needed for rtos devices
44+
-DLITEPLAYER_CONFIG_SINK_FIXED_S16LE
8345
-DLITEPLAYER_CONFIG_AAC_SBR
84-
#sink: don't config it if sink support S24LE/S32LE
85-
-DLITEPLAYER_CONFIG_SINK_FIXED_S16LE)
86-
target_include_directories(liteplayer_core PRIVATE ${TOP_DIR}/thirdparty/codecs ${TOP_DIR}/src)
46+
-DOSCL_IMPORT_REF= -DOSCL_EXPORT_REF= -DOSCL_UNUSED_ARG=\(void\)
47+
-Wno-error=unused-value -Wno-error=unused-function -Wno-error=narrowing
48+
)
49+
target_include_directories(liteplayer_core PRIVATE
50+
${TOP_DIR}/thirdparty/codecs
51+
${TOP_DIR}/thirdparty/codecs/pvmp3/include
52+
${TOP_DIR}/thirdparty/codecs/pvmp3/src
53+
${TOP_DIR}/thirdparty/codecs/pvaac
54+
${TOP_DIR}/src
55+
)
8756

8857
# sysutils files
8958
set(SYSUTILS_SRC
@@ -94,5 +63,6 @@ set(SYSUTILS_SRC
9463
${TOP_DIR}/thirdparty/sysutils/source/cutils/memdbg.c
9564
${TOP_DIR}/thirdparty/sysutils/source/cutils/mlooper.c
9665
${TOP_DIR}/thirdparty/sysutils/source/cutils/mqueue.c
97-
${TOP_DIR}/thirdparty/sysutils/source/cutils/ringbuf.c)
66+
${TOP_DIR}/thirdparty/sysutils/source/cutils/ringbuf.c
67+
)
9868
add_library(sysutils STATIC ${SYSUTILS_SRC})

src/CMakeLists.txt.opensource

-68
This file was deleted.

0 commit comments

Comments
 (0)