Skip to content

Commit c2c4811

Browse files
authored
ohos code optimization (#20861)
1 parent c6354af commit c2c4811

Some content is hidden

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

59 files changed

+1170
-2072
lines changed

CMakeLists.txt

-2
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,6 @@ if(OHOS)
245245
add_subdirectory(external/jpeg)
246246
add_subdirectory(external/tiff)
247247
add_subdirectory(external/zlib)
248-
add_subdirectory(external/ohos-specific/pvmp3dec)
249-
add_subdirectory(external/ohos-specific/tremolo)
250248
add_subdirectory(external/websockets)
251249
add_subdirectory(external/lua/luajit)
252250

cocos/CMakeLists.txt

+5-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ elseif(OHOS)
8888
# Specifies the name of the NDK library that
8989
# you want CMake to locate.
9090
native_drawing )
91-
set(COCOS_LINK ext_freetype ext_png ext_jpeg ext_tiff ext_webp ext_zlib ext_pvmp3dec ext_tremolo ${rawfile-lib} ${libnapi-lib} ${Drawing-lib} OpenSLES)
91+
set(COCOS_LINK ext_freetype ext_png ext_jpeg ext_tiff ext_webp ext_zlib ${rawfile-lib} ${libnapi-lib} ${Drawing-lib} OpenSLES)
9292
else()
9393
set(COCOS_LINK
9494
jpeg
@@ -108,7 +108,10 @@ set(COCOS_LINK
108108
endif()
109109

110110
if(OHOS)
111-
target_link_libraries(cocos2d ${Drawing-lib} ${libace-lib} ${GLES-lib} ${libnapi-lib} ${libuv-lib} ${rawfile-lib} ${EGL-lib} ${hilog-lib} libohaudio.so libavplayer.so libnative_window.so libnative_buffer.so)
111+
target_link_libraries(cocos2d ${Drawing-lib} ${libace-lib} ${GLES-lib} ${libnapi-lib} ${libuv-lib} ${rawfile-lib}
112+
${EGL-lib} ${hilog-lib} libohaudio.so libnative_window.so libnative_buffer.so
113+
libnative_display_manager.so libohsensor.so libnative_media_codecbase.so libnative_media_core.so
114+
libnative_media_acodec.so libnative_media_avdemuxer.so libnative_media_avsource.so)
112115
endif()
113116

114117
set(COMMON_LINK chipmunk_static tinyxml2 unzip xxhash)

cocos/audio/CMakeLists.txt

+3-10
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,20 @@ elseif(OHOS)
2222
ohos/AssetFd.cpp
2323
ohos/AudioDecoder.cpp
2424
ohos/AudioDecoderProvider.cpp
25-
ohos/AudioDecoderSLES.cpp
26-
ohos/AudioDecoderOgg.cpp
27-
ohos/AudioDecoderMp3.cpp
2825
ohos/AudioDecoderWav.cpp
2926
ohos/AudioPlayerProvider.cpp
3027
ohos/AudioResampler.cpp
3128
ohos/AudioResamplerCubic.cpp
3229
ohos/CCData.cpp
3330
ohos/PcmBufferProvider.cpp
3431
ohos/PcmAudioPlayer.cpp
32+
ohos/AudioDecoderOH.cpp
3533
ohos/PcmData.cpp
3634
ohos/PcmAudioService.cpp
37-
ohos/UrlAudioPlayer.cpp
35+
ohos/BigAudioPlayer.cpp
36+
ohos/BigAudioService.cpp
3837
ohos/AudioMixerController.cpp
3938
ohos/AudioMixer.cpp
40-
ohos/mp3reader.cpp
4139
ohos/tinysndfile.cpp
4240
ohos/Track.cpp
4341

@@ -68,11 +66,6 @@ if(OHOS)
6866
include_directories(
6967
../../cocos/2d
7068
)
71-
target_link_libraries(audio
72-
# ext_cpufeatures TBD need fixed?
73-
ext_pvmp3dec
74-
ext_tremolo
75-
)
7669
endif()
7770

7871
if((NOT APPLE) AND (NOT WIN32) AND (NOT OHOS) )

cocos/audio/ohos/AudioDecoder.cpp

+21-1
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ namespace cocos2d { namespace experimental {
7575
ALOGV("~AudioDecoder() %p", this);
7676
}
7777

78-
bool AudioDecoder::init(const std::string &url, int sampleRate) {
78+
bool AudioDecoder::init(const std::string &url, int sampleRate, AudioPlayerProvider::AudioFileInfo fileInfo) {
7979
_url = url;
8080
_sampleRate = sampleRate;
81+
_fileInfo = fileInfo;
8182
return true;
8283
}
8384

@@ -121,6 +122,25 @@ namespace cocos2d { namespace experimental {
121122
return ret;
122123
}
123124

125+
bool AudioDecoder::asyncStart() {
126+
auto oldTime = clockNow();
127+
auto nowTime = oldTime;
128+
bool ret;
129+
do {
130+
ret = decodeToPcm();
131+
if (!ret) {
132+
ALOGE("decodeToPcm (%s) failed!", _url.c_str());
133+
break;
134+
}
135+
136+
nowTime = clockNow();
137+
ALOGD("Decoding (%s) to pcm data wasted %fms", _url.c_str(), intervalInMS(oldTime, nowTime));
138+
} while (false);
139+
ALOGV_IF(!ret, "%s returns false, decode (%s)", __FUNCTION__, _url.c_str());
140+
return ret;
141+
}
142+
143+
124144
bool AudioDecoder::resample() {
125145
if (_result.sampleRate == _sampleRate) {
126146
ALOGI("No need to resample since the sample rate (%d) of the decoded pcm data is the same as the device output sample rate",

cocos/audio/ohos/AudioDecoder.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ THE SOFTWARE.
2727
#include "OpenSLHelper.h"
2828
#include "PcmData.h"
2929
#include "base/CCData.h"
30+
#include "AudioPlayerProvider.h"
3031

3132
namespace cocos2d {
3233
namespace experimental {
@@ -36,10 +37,12 @@ namespace cocos2d {
3637
AudioDecoder();
3738
virtual ~AudioDecoder();
3839

39-
virtual bool init(const std::string &url, int sampleRate);
40+
virtual bool init(const std::string &url, int sampleRate, AudioPlayerProvider::AudioFileInfo fileInfo);
4041

4142
bool start();
4243

44+
bool asyncStart();
45+
4346
inline PcmData getResult() { return _result; };
4447

4548
protected:
@@ -52,6 +55,7 @@ namespace cocos2d {
5255
static int fileClose(void *datasource);
5356
static long fileTell(void *datasource); // NOLINT
5457

58+
AudioPlayerProvider::AudioFileInfo _fileInfo;
5559
std::string _url;
5660
PcmData _result;
5761
int _sampleRate;

cocos/audio/ohos/AudioDecoderMp3.cpp

-76
This file was deleted.

cocos/audio/ohos/AudioDecoderMp3.h

-41
This file was deleted.

0 commit comments

Comments
 (0)