From 47eacbf8e15ba835b2b88b04a2089dc169167dd1 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Fri, 1 Nov 2019 00:11:32 +0100 Subject: [PATCH] update android project --- android/android/CMakeLists.txt | 11 ++++++----- android/android/build.gradle | 5 ++++- src/mp4enc.cpp | 10 ++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/android/android/CMakeLists.txt b/android/android/CMakeLists.txt index 23a293d..b340f7e 100644 --- a/android/android/CMakeLists.txt +++ b/android/android/CMakeLists.txt @@ -19,11 +19,9 @@ add_library(openh264 SHARED IMPORTED) set_target_properties(openh264 PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../libs/openh264/lib/android/${ANDROID_ABI}/libopenh264.so) -# Specifies a library name, specifies whether the library is STATIC or -# SHARED, and provides relative paths to the source code. You can -# define multiple libraries by adding multiple add.library() commands, -# and CMake builds them for you. When you build your app, Gradle -# automatically packages shared libraries with your APK. +add_library(yuv SHARED IMPORTED) +set_target_properties(yuv PROPERTIES IMPORTED_LOCATION + ${CMAKE_SOURCE_DIR}/../../libs/libyuv/lib/android/${ANDROID_ABI}/libyuv.so) # now build app's shared lib set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") @@ -124,6 +122,7 @@ add_library( ../../src/node_input_box.cpp ../../src/node_dialog_export_ppbr.cpp ../../src/node_panel_animation.cpp + ../../src/mp4enc.cpp ) target_include_directories(native-lib PRIVATE @@ -145,12 +144,14 @@ target_include_directories(native-lib PRIVATE ../../libs/fmt/include ../../libs/openh264/include ../../libs/mp4v2/include + ../../libs/libyuv/include ) # add lib dependencies target_link_libraries( native-lib libmp4v2.a + yuv openh264 android app-glue diff --git a/android/android/build.gradle b/android/android/build.gradle index 1d40dd5..7e1176b 100644 --- a/android/android/build.gradle +++ b/android/android/build.gradle @@ -145,7 +145,10 @@ android { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs = ['../src/java', 'src/main/java'] - jniLibs.srcDirs = ['../../libs/openh264/lib/android'] + jniLibs.srcDirs = [ + '../../libs/openh264/lib/android', + '../../libs/libyuv/lib/android', + ] res.srcDirs = ['../src/res'] //assets.srcDirs = ['../../assets'] } diff --git a/src/mp4enc.cpp b/src/mp4enc.cpp index 6d4c35a..9078822 100644 --- a/src/mp4enc.cpp +++ b/src/mp4enc.cpp @@ -59,14 +59,20 @@ bool MP4Encoder::init(int width, int height, int fps, int bitrate) noexcept param.uiMaxNalSize = 1500; param.iTargetBitrate *= param.iSpatialLayerNum; - m_encoder->InitializeExt(¶m); + if (m_encoder->InitializeExt(¶m) != 0) + { + LOG("Error initializing the encoder"); + return false; + } int trace_level = WELS_LOG_ERROR; m_encoder->SetOption(ENCODER_OPTION_TRACE_LEVEL, &trace_level); - m_encoder->SetOption(ENCODER_OPTION_TRACE_CALLBACK, encoder_trace_callback); + m_encoder->SetOption(ENCODER_OPTION_TRACE_CALLBACK, (void*)encoder_trace_callback); m_encoder->SetOption(ENCODER_OPTION_TRACE_CALLBACK_CONTEXT, this); int videoFormat = videoFormatI420; m_encoder->SetOption(ENCODER_OPTION_DATAFORMAT, &videoFormat); + + return true; } bool MP4Encoder::encode(const Image& rgba) noexcept