13 | */
14 | interface RecorderListener {
15 |
16 | /**
17 | * 获取录制音量的大小
18 | *
19 | * @param volume
20 | */
21 | fun onGetVolume(volume: Int)
22 |
23 | }
--------------------------------------------------------------------------------
/audio_faac_encoder/src/main/java/com/yingke/audio/faac/encoder/util/DateUtils.java:
--------------------------------------------------------------------------------
1 | package com.yingke.audio.faac.encoder.util;
2 |
3 | import android.annotation.SuppressLint;
4 |
5 | /**
6 | * @author :chezi008 on 2018/4/17 22:24
7 | * @description :
8 | * @email :chezi008@163.com
9 | */
10 | public class DateUtils {
11 | @SuppressLint({"DefaultLocale"})
12 | public static String toTime(int var0) {
13 | var0 /= 1000;
14 | int var1 = var0 / 60;
15 | boolean var2 = false;
16 | if (var1 >= 60) {
17 | int var4 = var1 / 60;
18 | var1 %= 60;
19 | }
20 | int var3 = var0 % 60;
21 | if (var1>0){
22 | return String.format("%d′%d\"", new Object[]{Integer.valueOf(var1), Integer.valueOf(var3)});
23 | }
24 | return String.format("%d\"", Integer.valueOf(var3));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/audio_faac_encoder/src/main/output/armeabi-v7a/libyingke-faac.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_faac_encoder/src/main/output/armeabi-v7a/libyingke-faac.so
--------------------------------------------------------------------------------
/audio_faac_encoder/src/main/res/mipmap-xhdpi/ic_mic_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_faac_encoder/src/main/res/mipmap-xhdpi/ic_mic_white.png
--------------------------------------------------------------------------------
/audio_faac_encoder/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | audio_faac_encoder
3 |
4 |
--------------------------------------------------------------------------------
/audio_faac_encoder/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # 有关使用CMake在Android Studio的更多信息,请阅读文档:https://d.android.com/studio/projects/add-native-code.html
2 |
3 | # 设置CMake的最低版本构建本机所需库
4 | cmake_minimum_required(VERSION 3.4.1)
5 |
6 |
7 | # 导入 三方库,构建
8 | set(LIBMP3_DIR ${CMAKE_SOURCE_DIR}/libs)
9 | add_library(mp3lame
10 | SHARED
11 | IMPORTED)
12 |
13 | set_target_properties(mp3lame
14 | PROPERTIES
15 | IMPORTED_LOCATION ${LIBMP3_DIR}/${ANDROID_ABI}/libmp3lame.so)
16 |
17 | include_directories(libs/include)
18 |
19 | # 创建并命名库,将其设置为静态的
20 | # 或共享,并提供其源代码的相对路径。
21 | # 你可以定义多个library库,并使用CMake来构建。
22 | # Gradle会自动将包共享库关联到你的apk程序。
23 |
24 | add_library( # 设置库的名称
25 | yingke-mp3lame
26 | # 将库设置为共享库。
27 | SHARED
28 | # 为源文件提供一个相对路径。
29 | src/main/cpp/lame_util.cpp )
30 |
31 | # 搜索指定预先构建的库和存储路径变量。因为CMake包括系统库搜索路径中默认情况下,只需要指定想添加公共NDK库的名称,在CMake验证库之前存在完成构建
32 | find_library( # 设置path变量的名称
33 | log-lib
34 | # 在CMake定位前指定的NDK库名称
35 | log )
36 | # 指定库CMake应该链接到目标库中,可以链接多个库,比如定义库,构建脚本,预先构建的第三方库或者系统库
37 | target_link_libraries( # 指定目标库
38 | yingke-mp3lame
39 |
40 | # 是预先构建的三方库
41 | mp3lame
42 | # 目标库到日志库的链接 包含在NDK
43 | ${log-lib} )
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/README.md:
--------------------------------------------------------------------------------
1 | ### 参考的博客
2 | https://www.jianshu.com/p/dce4e2e9ed75
3 | https://blog.csdn.net/AndrExpert/article/details/77683776
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/abi/arm64-v8a/libmp3lame.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_mp3lame_encoder/abi/arm64-v8a/libmp3lame.so
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/abi/x86/libmp3lame.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_mp3lame_encoder/abi/x86/libmp3lame.so
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/abi/x86_64/libmp3lame.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_mp3lame_encoder/abi/x86_64/libmp3lame.so
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../module.gradle"
2 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_mp3lame_encoder/consumer-rules.pro
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/armeabi-v7a/libmp3lame.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/audio_mp3lame_encoder/libs/armeabi-v7a/libmp3lame.so
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/bitstream.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MP3 bitstream Output interface for LAME
3 | *
4 | * Copyright (c) 1999 Takehiro TOMINAGA
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_BITSTREAM_H
23 | #define LAME_BITSTREAM_H
24 |
25 | int getframebits(const lame_internal_flags * gfc);
26 |
27 | int format_bitstream(lame_internal_flags * gfc);
28 |
29 | void flush_bitstream(lame_internal_flags * gfc);
30 | void add_dummy_byte(lame_internal_flags * gfc, unsigned char val, unsigned int n);
31 |
32 | int copy_buffer(lame_internal_flags * gfc, unsigned char *buffer, int buffer_size,
33 | int update_crc);
34 | void init_bit_stream_w(lame_internal_flags * gfc);
35 | void CRC_writeheader(lame_internal_flags const *gfc, char *buffer);
36 | int compute_flushbits(const lame_internal_flags * gfp, int *nbytes);
37 |
38 | int get_max_frame_buffer_size_by_constraint(SessionConfig_t const * cfg, int constraint);
39 |
40 | #endif
41 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/fft.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Fast Fourier Transform include file
3 | *
4 | * Copyright (c) 2000 Mark Taylor
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_FFT_H
23 | #define LAME_FFT_H
24 |
25 | void fft_long(lame_internal_flags const *const gfc, FLOAT x_real[BLKSIZE],
26 | int chn, const sample_t *const data[2]);
27 |
28 | void fft_short(lame_internal_flags const *const gfc, FLOAT x_real[3][BLKSIZE_s],
29 | int chn, const sample_t *const data[2]);
30 |
31 | void init_fft(lame_internal_flags * const gfc);
32 |
33 | #endif
34 |
35 | /* End of fft.h */
36 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/lameerror.h:
--------------------------------------------------------------------------------
1 | /*
2 | * A collection of LAME Error Codes
3 | *
4 | * Please use the constants defined here instead of some arbitrary
5 | * values. Currently the values starting at -10 to avoid intersection
6 | * with the -1, -2, -3 and -4 used in the current code.
7 | *
8 | * May be this should be a part of the include/lame.h.
9 | */
10 |
11 | typedef enum {
12 | LAME_OKAY = 0,
13 | LAME_NOERROR = 0,
14 | LAME_GENERICERROR = -1,
15 | LAME_NOMEM = -10,
16 | LAME_BADBITRATE = -11,
17 | LAME_BADSAMPFREQ = -12,
18 | LAME_INTERNALERROR = -13,
19 |
20 | FRONTEND_READERROR = -80,
21 | FRONTEND_WRITEERROR = -81,
22 | FRONTEND_FILETOOLARGE = -82,
23 |
24 | } lame_errorcodes_t;
25 |
26 | /* end of lameerror.h */
27 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/newmdct.h:
--------------------------------------------------------------------------------
1 | /*
2 | * New Modified DCT include file
3 | *
4 | * Copyright (c) 1999 Takehiro TOMINAGA
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_NEWMDCT_H
23 | #define LAME_NEWMDCT_H
24 |
25 | void mdct_sub48(lame_internal_flags * gfc, const sample_t * w0, const sample_t * w1);
26 |
27 | #endif /* LAME_NEWMDCT_H */
28 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/quantize.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MP3 quantization
3 | *
4 | * Copyright (c) 1999 Mark Taylor
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_QUANTIZE_H
23 | #define LAME_QUANTIZE_H
24 |
25 | void CBR_iteration_loop(lame_internal_flags * gfc, const FLOAT pe[2][2],
26 | const FLOAT ms_ratio[2], const III_psy_ratio ratio[2][2]);
27 |
28 | void VBR_old_iteration_loop(lame_internal_flags * gfc, const FLOAT pe[2][2],
29 | const FLOAT ms_ratio[2], const III_psy_ratio ratio[2][2]);
30 |
31 | void VBR_new_iteration_loop(lame_internal_flags * gfc, const FLOAT pe[2][2],
32 | const FLOAT ms_ratio[2], const III_psy_ratio ratio[2][2]);
33 |
34 | void ABR_iteration_loop(lame_internal_flags * gfc, const FLOAT pe[2][2],
35 | const FLOAT ms_ratio[2], const III_psy_ratio ratio[2][2]);
36 |
37 |
38 | #endif /* LAME_QUANTIZE_H */
39 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/reservoir.h:
--------------------------------------------------------------------------------
1 | /*
2 | * bit reservoir include file
3 | *
4 | * Copyright (c) 1999 Mark Taylor
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_RESERVOIR_H
23 | #define LAME_RESERVOIR_H
24 |
25 | int ResvFrameBegin(lame_internal_flags * gfc, int *mean_bits);
26 | void ResvMaxBits(lame_internal_flags * gfc, int mean_bits, int *targ_bits, int *max_bits,
27 | int cbr);
28 | void ResvAdjust(lame_internal_flags * gfc, gr_info const *gi);
29 | void ResvFrameEnd(lame_internal_flags * gfc, int mean_bits);
30 |
31 | #endif /* LAME_RESERVOIR_H */
32 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/vbrquantize.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MP3 VBR quantization
3 | *
4 | * Copyright (c) 1999 Mark Taylor
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | #ifndef LAME_VBRQUANTIZE_H
23 | #define LAME_VBRQUANTIZE_H
24 |
25 | int VBR_encode_frame(lame_internal_flags * gfc, const FLOAT xr34orig[2][2][576],
26 | const FLOAT l3_xmin[2][2][SFBMAX], const int maxbits[2][2]);
27 |
28 | #endif /* LAME_VBRQUANTIZE_H */
29 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/libs/include/libmp3lame/vector/lame_intrin.h:
--------------------------------------------------------------------------------
1 | /*
2 | * lame_intrin.h include file
3 | *
4 | * Copyright (c) 2006 Gabriel Bouvigne
5 | *
6 | * This library is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Library General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2 of the License, or (at your option) any later version.
10 | *
11 | * This library is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Library General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Library General Public
17 | * License along with this library; if not, write to the
18 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 |
23 | #ifndef LAME_INTRIN_H
24 | #define LAME_INTRIN_H
25 |
26 |
27 | void
28 | init_xrpow_core_sse(gr_info * const cod_info, FLOAT xrpow[576], int upper, FLOAT * sum);
29 |
30 | void
31 | fht_SSE2(FLOAT* , int);
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/src/main/cpp/com_yingke_audio_mp3lame_encoder_encoder_LameUtil.h:
--------------------------------------------------------------------------------
1 | /* DO NOT EDIT THIS FILE - it is machine generated */
2 | #include
3 | /* Header for class com_yingke_audio_mp3lame_encoder_encoder_LameUtil */
4 |
5 | #ifndef _Included_com_yingke_audio_mp3lame_encoder_encoder_LameUtil
6 | #define _Included_com_yingke_audio_mp3lame_encoder_encoder_LameUtil
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 | #ifdef __cplusplus
11 | }
12 | #endif
13 | #endif
14 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/src/main/cpp/com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion.h:
--------------------------------------------------------------------------------
1 | /* DO NOT EDIT THIS FILE - it is machine generated */
2 | #include
3 | /* Header for class com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion */
4 |
5 | #ifndef _Included_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
6 | #define _Included_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 | /*
11 | * Class: com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
12 | * Method: init
13 | * Signature: (IIIII)V
14 | */
15 | JNIEXPORT void JNICALL Java_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_00024Companion_init
16 | (JNIEnv *, jobject, jint, jint, jint, jint, jint);
17 |
18 | /*
19 | * Class: com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
20 | * Method: encode
21 | * Signature: ([S[SI[B)I
22 | */
23 | JNIEXPORT jint JNICALL Java_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_00024Companion_encode
24 | (JNIEnv *, jobject, jshortArray, jshortArray, jint, jbyteArray);
25 |
26 | /*
27 | * Class: com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
28 | * Method: flush
29 | * Signature: ([B)I
30 | */
31 | JNIEXPORT jint JNICALL Java_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_00024Companion_flush
32 | (JNIEnv *, jobject, jbyteArray);
33 |
34 | /*
35 | * Class: com_yingke_audio_mp3lame_encoder_encoder_LameUtil_Companion
36 | * Method: close
37 | * Signature: ()V
38 | */
39 | JNIEXPORT void JNICALL Java_com_yingke_audio_mp3lame_encoder_encoder_LameUtil_00024Companion_close
40 | (JNIEnv *, jobject);
41 |
42 | #ifdef __cplusplus
43 | }
44 | #endif
45 | #endif
46 |
--------------------------------------------------------------------------------
/audio_mp3lame_encoder/src/main/java/com/yingke/audio/mp3lame/encoder/Recorder.kt:
--------------------------------------------------------------------------------
1 | package com.yingke.audio.mp3lame.encoder
2 |
3 | /**
4 | * 功能:
5 | *
12 | */
13 | public class Mp4MuxerUtil {
14 |
15 | static {
16 | System.loadLibrary("yingke-h264-aac-to-mp4");
17 | }
18 |
19 | /**
20 | * 封装成mp4
21 | * @param h264Path
22 | * @param aacPath
23 | * @param outputPath
24 | * @return
25 | */
26 | public static native int startMuxerMp4(String h264Path, String aacPath, String outputPath);
27 | }
28 |
--------------------------------------------------------------------------------
/ffmpeg-muxer-h264-aac-to-mp4/src/main/res/layout/main_mp4_muxer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
22 |
23 |
29 |
30 |
36 |
37 |
--------------------------------------------------------------------------------
/ffmpeg-muxer-h264-aac-to-mp4/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ffmpeg-muxer-h264-aac-to-mp4
3 |
4 |
--------------------------------------------------------------------------------
/ffmpeg_assets/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/ffmpeg_assets/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 28
5 | defaultConfig {
6 | minSdkVersion 21
7 | targetSdkVersion 28
8 | versionCode 1
9 | versionName "1.0"
10 | }
11 |
12 | buildTypes {
13 | release {
14 | minifyEnabled false
15 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
16 | }
17 | }
18 | }
19 |
20 | dependencies {
21 | implementation fileTree(dir: 'libs', include: ['*.jar'])
22 | compileOnly project(path: ':core')
23 | }
24 |
--------------------------------------------------------------------------------
/ffmpeg_assets/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/consumer-rules.pro
--------------------------------------------------------------------------------
/ffmpeg_assets/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/aac_for_mp4.aac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/aac_for_mp4.aac
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/h264_for_mp4.h264:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/h264_for_mp4.h264
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/input.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/input.mp4
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/mp4_for_h264_aac.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/mp4_for_h264_aac.mp4
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/mp4_for_native_player.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/mp4_for_native_player.mp4
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/assets/yuv_jpeg_png.yuv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_assets/src/main/assets/yuv_jpeg_png.yuv
--------------------------------------------------------------------------------
/ffmpeg_assets/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ffmpeg_assets
3 |
4 |
--------------------------------------------------------------------------------
/ffmpeg_single/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/ffmpeg_single/README.md:
--------------------------------------------------------------------------------
1 | ### ffmpeg-3.4.6
--------------------------------------------------------------------------------
/ffmpeg_single/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | // 构建版本
5 | compileSdkVersion rootProject.ext.android.compileSdkVersion
6 | buildToolsVersion rootProject.ext.android.buildToolsVersion
7 |
8 | // 默认的配置
9 | defaultConfig {
10 | minSdkVersion rootProject.ext.android.minSdkVersion
11 | targetSdkVersion rootProject.ext.android.targetSdkVersion
12 | versionCode rootProject.ext.android.versionCode
13 | versionName rootProject.ext.android.versionName
14 | }
15 |
16 | sourceSets {
17 | main {
18 | jniLibs.srcDirs = ['libs']
19 | }
20 | }
21 |
22 | buildTypes {
23 | release {
24 | minifyEnabled false
25 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
26 | }
27 | }
28 | }
29 |
30 | dependencies {
31 | implementation fileTree(dir: 'libs', include: ['*.jar'])
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/ffmpeg_single/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_single/consumer-rules.pro
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/compat/va_copy.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MSVC Compatible va_copy macro
3 | * Copyright (c) 2012 Derek Buitenhuis
4 | *
5 | * This file is part of FFmpeg.
6 | *
7 | * FFmpeg is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU Lesser General Public
9 | * License as published by the Free Software Foundation; either
10 | * version 2.1 of the License, or (at your option) any later version.
11 | *
12 | * FFmpeg is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with FFmpeg; if not, write to the Free Software
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 | */
21 |
22 | #ifndef COMPAT_VA_COPY_H
23 | #define COMPAT_VA_COPY_H
24 |
25 | #include
26 |
27 | #if !defined(va_copy) && defined(_MSC_VER)
28 | #define va_copy(dst, src) ((dst) = (src))
29 | #endif
30 | #if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
31 | #define va_copy(dst, src) __va_copy(dst, src)
32 | #endif
33 |
34 | #endif /* COMPAT_VA_COPY_H */
35 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavcodec/jni.h:
--------------------------------------------------------------------------------
1 | /*
2 | * JNI public API functions
3 | *
4 | * Copyright (c) 2015-2016 Matthieu Bouron
5 | *
6 | * This file is part of FFmpeg.
7 | *
8 | * FFmpeg is free software; you can redistribute it and/or
9 | * modify it under the terms of the GNU Lesser General Public
10 | * License as published by the Free Software Foundation; either
11 | * version 2.1 of the License, or (at your option) any later version.
12 | *
13 | * FFmpeg is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 | * Lesser General Public License for more details.
17 | *
18 | * You should have received a copy of the GNU Lesser General Public
19 | * License along with FFmpeg; if not, write to the Free Software
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 | */
22 |
23 | #ifndef AVCODEC_JNI_H
24 | #define AVCODEC_JNI_H
25 |
26 | /*
27 | * Manually set a Java virtual machine which will be used to retrieve the JNI
28 | * environment. Once a Java VM is set it cannot be changed afterwards, meaning
29 | * you can call multiple times av_jni_set_java_vm with the same Java VM pointer
30 | * however it will error out if you try to set a different Java VM.
31 | *
32 | * @param vm Java virtual machine
33 | * @param log_ctx context used for logging, can be NULL
34 | * @return 0 on success, < 0 otherwise
35 | */
36 | int av_jni_set_java_vm(void *vm, void *log_ctx);
37 |
38 | /*
39 | * Get the Java virtual machine which has been set with av_jni_set_java_vm.
40 | *
41 | * @param vm Java virtual machine
42 | * @return a pointer to the Java virtual machine
43 | */
44 | void *av_jni_get_java_vm(void *log_ctx);
45 |
46 | #endif /* AVCODEC_JNI_H */
47 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavfilter/avfiltergraph.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Filter graphs
3 | * copyright (c) 2007 Bobby Bingham
4 | *
5 | * This file is part of FFmpeg.
6 | *
7 | * FFmpeg is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU Lesser General Public
9 | * License as published by the Free Software Foundation; either
10 | * version 2.1 of the License, or (at your option) any later version.
11 | *
12 | * FFmpeg is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with FFmpeg; if not, write to the Free Software
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 | */
21 |
22 | #ifndef AVFILTER_AVFILTERGRAPH_H
23 | #define AVFILTER_AVFILTERGRAPH_H
24 |
25 | #include "avfilter.h"
26 | #include "libavutil/log.h"
27 |
28 | #endif /* AVFILTER_AVFILTERGRAPH_H */
29 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/adler32.h:
--------------------------------------------------------------------------------
1 | /*
2 | * copyright (c) 2006 Mans Rullgard
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | /**
22 | * @file
23 | * @ingroup lavu_adler32
24 | * Public header for Adler-32 hash function implementation.
25 | */
26 |
27 | #ifndef AVUTIL_ADLER32_H
28 | #define AVUTIL_ADLER32_H
29 |
30 | #include
31 | #include "attributes.h"
32 |
33 | /**
34 | * @defgroup lavu_adler32 Adler-32
35 | * @ingroup lavu_hash
36 | * Adler-32 hash function implementation.
37 | *
38 | * @{
39 | */
40 |
41 | /**
42 | * Calculate the Adler32 checksum of a buffer.
43 | *
44 | * Passing the return value to a subsequent av_adler32_update() call
45 | * allows the checksum of multiple buffers to be calculated as though
46 | * they were concatenated.
47 | *
48 | * @param adler initial checksum value
49 | * @param buf pointer to input buffer
50 | * @param len size of input buffer
51 | * @return updated checksum
52 | */
53 | unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
54 | unsigned int len) av_pure;
55 |
56 | /**
57 | * @}
58 | */
59 |
60 | #endif /* AVUTIL_ADLER32_H */
61 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/avconfig.h:
--------------------------------------------------------------------------------
1 | /* Generated by ffconf */
2 | #ifndef AVUTIL_AVCONFIG_H
3 | #define AVUTIL_AVCONFIG_H
4 | #define AV_HAVE_BIGENDIAN 0
5 | #define AV_HAVE_FAST_UNALIGNED 1
6 | #endif /* AVUTIL_AVCONFIG_H */
7 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/ffversion.h:
--------------------------------------------------------------------------------
1 | /* Automatically generated by version.sh, do not manually edit! */
2 | #ifndef AVUTIL_FFVERSION_H
3 | #define AVUTIL_FFVERSION_H
4 | #define FFMPEG_VERSION "3.3.8"
5 | #endif /* AVUTIL_FFVERSION_H */
6 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/hwcontext_cuda.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 |
20 | #ifndef AVUTIL_HWCONTEXT_CUDA_H
21 | #define AVUTIL_HWCONTEXT_CUDA_H
22 |
23 | #ifndef CUDA_VERSION
24 | #include
25 | #endif
26 |
27 | #include "pixfmt.h"
28 |
29 | /**
30 | * @file
31 | * An API-specific header for AV_HWDEVICE_TYPE_CUDA.
32 | *
33 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return
34 | * AVBufferRefs whose data pointer is a CUdeviceptr.
35 | */
36 |
37 | typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal;
38 |
39 | /**
40 | * This struct is allocated as AVHWDeviceContext.hwctx
41 | */
42 | typedef struct AVCUDADeviceContext {
43 | CUcontext cuda_ctx;
44 | AVCUDADeviceContextInternal *internal;
45 | } AVCUDADeviceContext;
46 |
47 | /**
48 | * AVHWFramesContext.hwctx is currently not used
49 | */
50 |
51 | #endif /* AVUTIL_HWCONTEXT_CUDA_H */
52 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/hwcontext_qsv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_QSV_H
20 | #define AVUTIL_HWCONTEXT_QSV_H
21 |
22 | #include
23 |
24 | /**
25 | * @file
26 | * An API-specific header for AV_HWDEVICE_TYPE_QSV.
27 | *
28 | * This API does not support dynamic frame pools. AVHWFramesContext.pool must
29 | * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct.
30 | */
31 |
32 | /**
33 | * This struct is allocated as AVHWDeviceContext.hwctx
34 | */
35 | typedef struct AVQSVDeviceContext {
36 | mfxSession session;
37 | } AVQSVDeviceContext;
38 |
39 | /**
40 | * This struct is allocated as AVHWFramesContext.hwctx
41 | */
42 | typedef struct AVQSVFramesContext {
43 | mfxFrameSurface1 *surfaces;
44 | int nb_surfaces;
45 |
46 | /**
47 | * A combination of MFX_MEMTYPE_* describing the frame pool.
48 | */
49 | int frame_type;
50 | } AVQSVFramesContext;
51 |
52 | #endif /* AVUTIL_HWCONTEXT_QSV_H */
53 |
54 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/hwcontext_vdpau.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_HWCONTEXT_VDPAU_H
20 | #define AVUTIL_HWCONTEXT_VDPAU_H
21 |
22 | #include
23 |
24 | /**
25 | * @file
26 | * An API-specific header for AV_HWDEVICE_TYPE_VDPAU.
27 | *
28 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return
29 | * AVBufferRefs whose data pointer is a VdpVideoSurface.
30 | */
31 |
32 | /**
33 | * This struct is allocated as AVHWDeviceContext.hwctx
34 | */
35 | typedef struct AVVDPAUDeviceContext {
36 | VdpDevice device;
37 | VdpGetProcAddress *get_proc_address;
38 | } AVVDPAUDeviceContext;
39 |
40 | /**
41 | * AVHWFramesContext.hwctx is currently not used
42 | */
43 |
44 | #endif /* AVUTIL_HWCONTEXT_VDPAU_H */
45 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/macros.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | /**
20 | * @file
21 | * @ingroup lavu
22 | * Utility Preprocessor macros
23 | */
24 |
25 | #ifndef AVUTIL_MACROS_H
26 | #define AVUTIL_MACROS_H
27 |
28 | /**
29 | * @addtogroup preproc_misc Preprocessor String Macros
30 | *
31 | * String manipulation macros
32 | *
33 | * @{
34 | */
35 |
36 | #define AV_STRINGIFY(s) AV_TOSTRING(s)
37 | #define AV_TOSTRING(s) #s
38 |
39 | #define AV_GLUE(a, b) a ## b
40 | #define AV_JOIN(a, b) AV_GLUE(a, b)
41 |
42 | /**
43 | * @}
44 | */
45 |
46 | #define AV_PRAGMA(s) _Pragma(#s)
47 |
48 | #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
49 |
50 | #endif /* AVUTIL_MACROS_H */
51 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/random_seed.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009 Baptiste Coudurier
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_RANDOM_SEED_H
22 | #define AVUTIL_RANDOM_SEED_H
23 |
24 | #include
25 | /**
26 | * @addtogroup lavu_crypto
27 | * @{
28 | */
29 |
30 | /**
31 | * Get a seed to use in conjunction with random functions.
32 | * This function tries to provide a good seed at a best effort bases.
33 | * Its possible to call this function multiple times if more bits are needed.
34 | * It can be quite slow, which is why it should only be used as seed for a faster
35 | * PRNG. The quality of the seed depends on the platform.
36 | */
37 | uint32_t av_get_random_seed(void);
38 |
39 | /**
40 | * @}
41 | */
42 |
43 | #endif /* AVUTIL_RANDOM_SEED_H */
44 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/replaygain.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of FFmpeg.
3 | *
4 | * FFmpeg is free software; you can redistribute it and/or
5 | * modify it under the terms of the GNU Lesser General Public
6 | * License as published by the Free Software Foundation; either
7 | * version 2.1 of the License, or (at your option) any later version.
8 | *
9 | * FFmpeg is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | * Lesser General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU Lesser General Public
15 | * License along with FFmpeg; if not, write to the Free Software
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef AVUTIL_REPLAYGAIN_H
20 | #define AVUTIL_REPLAYGAIN_H
21 |
22 | #include
23 |
24 | /**
25 | * ReplayGain information (see
26 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification).
27 | * The size of this struct is a part of the public ABI.
28 | */
29 | typedef struct AVReplayGain {
30 | /**
31 | * Track replay gain in microbels (divide by 100000 to get the value in dB).
32 | * Should be set to INT32_MIN when unknown.
33 | */
34 | int32_t track_gain;
35 | /**
36 | * Peak track amplitude, with 100000 representing full scale (but values
37 | * may overflow). 0 when unknown.
38 | */
39 | uint32_t track_peak;
40 | /**
41 | * Same as track_gain, but for the whole album.
42 | */
43 | int32_t album_gain;
44 | /**
45 | * Same as track_peak, but for the whole album,
46 | */
47 | uint32_t album_peak;
48 | } AVReplayGain;
49 |
50 | #endif /* AVUTIL_REPLAYGAIN_H */
51 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libavutil/reverse.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2002-2004 Michael Niedermayer
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef AVUTIL_REVERSE_H
22 | #define AVUTIL_REVERSE_H
23 |
24 | #include
25 |
26 | extern const uint8_t ff_reverse[256];
27 |
28 | #endif /* AVUTIL_REVERSE_H */
29 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libpostproc/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of FFmpeg.
5 | *
6 | * FFmpeg is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * FFmpeg is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with FFmpeg; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef POSTPROC_VERSION_H
22 | #define POSTPROC_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libpostproc version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBPOSTPROC_VERSION_MAJOR 54
32 | #define LIBPOSTPROC_VERSION_MINOR 5
33 | #define LIBPOSTPROC_VERSION_MICRO 100
34 |
35 | #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
36 | LIBPOSTPROC_VERSION_MINOR, \
37 | LIBPOSTPROC_VERSION_MICRO)
38 | #define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \
39 | LIBPOSTPROC_VERSION_MINOR, \
40 | LIBPOSTPROC_VERSION_MICRO)
41 | #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT
42 |
43 | #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION)
44 |
45 | #ifndef FF_API_QP_TYPE
46 | #define FF_API_QP_TYPE (LIBPOSTPROC_VERSION_MAJOR < 55)
47 | #endif
48 |
49 | #endif /* POSTPROC_VERSION_H */
50 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/include/libswresample/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Version macros.
3 | *
4 | * This file is part of libswresample
5 | *
6 | * libswresample is free software; you can redistribute it and/or
7 | * modify it under the terms of the GNU Lesser General Public
8 | * License as published by the Free Software Foundation; either
9 | * version 2.1 of the License, or (at your option) any later version.
10 | *
11 | * libswresample is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with libswresample; if not, write to the Free Software
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 | */
20 |
21 | #ifndef SWRESAMPLE_VERSION_H
22 | #define SWRESAMPLE_VERSION_H
23 |
24 | /**
25 | * @file
26 | * Libswresample version macros
27 | */
28 |
29 | #include "libavutil/avutil.h"
30 |
31 | #define LIBSWRESAMPLE_VERSION_MAJOR 2
32 | #define LIBSWRESAMPLE_VERSION_MINOR 7
33 | #define LIBSWRESAMPLE_VERSION_MICRO 100
34 |
35 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
36 | LIBSWRESAMPLE_VERSION_MINOR, \
37 | LIBSWRESAMPLE_VERSION_MICRO)
38 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \
39 | LIBSWRESAMPLE_VERSION_MINOR, \
40 | LIBSWRESAMPLE_VERSION_MICRO)
41 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT
42 |
43 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION)
44 |
45 | #endif /* SWRESAMPLE_VERSION_H */
46 |
--------------------------------------------------------------------------------
/ffmpeg_single/libs/armeabi-v7a/libffmpeg.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/ffmpeg_single/libs/armeabi-v7a/libffmpeg.so
--------------------------------------------------------------------------------
/ffmpeg_single/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/ffmpeg_single/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/ffmpeg_single/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ffmpeg_single
3 |
4 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 | # Kotlin code style for this project: "official" or "obsolete":
21 | kotlin.code.style=official
22 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Jun 18 17:46:14 CST 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/h264tool/H.264 示例/ElecardStreamEyeTools_2.9.2.70710.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H.264 示例/ElecardStreamEyeTools_2.9.2.70710.exe
--------------------------------------------------------------------------------
/h264tool/H.264 示例/slamtv60.264:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H.264 示例/slamtv60.264
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集.rar
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/CTI-TS.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集/CTI-TS.rar
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/EasyICE_2.6.0.5.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集/EasyICE_2.6.0.5.zip
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/README.txt:
--------------------------------------------------------------------------------
1 | https://www.jianshu.com/p/82968b03fedb
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/VideoEye_0.2.7z:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集/VideoEye_0.2.7z
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/elecardstreameyetools.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集/elecardstreameyetools.zip
--------------------------------------------------------------------------------
/h264tool/H264码流分析工具集/yuvplayer.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/h264tool/H264码流分析工具集/yuvplayer.exe
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | cmake_minimum_required(VERSION 3.4.1)
3 |
4 | ## 官方标准配置
5 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
6 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -Wall")
7 |
8 | # 引入三方库
9 |
10 | get_filename_component(PARENT_DIR ${CMAKE_SOURCE_DIR} PATH)
11 |
12 | set(LIB_JPEG_TURBO_DIR ${PARENT_DIR}/third-libjpeg-turbo)
13 | # 1, 包含头文件
14 | include_directories(${LIB_JPEG_TURBO_DIR}/libs/${ANDROID_ABI}/include_jpeg)
15 |
16 | # 2,包含so
17 | add_library(libjpeg
18 | SHARED
19 | IMPORTED)
20 |
21 | set_target_properties(libjpeg
22 | PROPERTIES IMPORTED_LOCATION
23 | ${LIB_JPEG_TURBO_DIR}/libs/${ANDROID_ABI}/libjpeg.so
24 | )
25 |
26 | add_library(libjpeg-turbo
27 | SHARED
28 | IMPORTED)
29 |
30 | set_target_properties(libjpeg-turbo
31 | PROPERTIES IMPORTED_LOCATION
32 | ${LIB_JPEG_TURBO_DIR}/libs/${ANDROID_ABI}/libturbojpeg.so
33 | )
34 |
35 | # 生成目标库,链接三方库
36 | # 头文件
37 | include_directories(src/main/cpp)
38 |
39 | add_library(yingke-libjpeg-turbo
40 | SHARED
41 | src/main/cpp/libjpegturbo_util.cpp)
42 |
43 | target_link_libraries(yingke-libjpeg-turbo
44 | libjpeg
45 | libjpeg-turbo
46 | android
47 | jnigraphics
48 | log)
49 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: '../module.gradle'
2 | dependencies {
3 | compileOnly project(path: ':ffmpeg_assets')
4 | compileOnly project(path: ':third-libjpeg-turbo')
5 | }
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/build_scripts/build_jpeg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #初始化环境变量
4 | source config.sh
5 |
6 | # 获取当前路径
7 | NOW_DIR=$(cd `dirname $0`; pwd)
8 |
9 | # 待编译的库目录名称
10 | MY_LIBS_NAME=libjpeg-turbo
11 | # 源代码路径
12 | MY_SOURCE_DIR=$NOW_DIR/libjpeg-turbo
13 |
14 | #编译的过程中产生的中间件的存放目录
15 | BINARY_DIR=binary
16 |
17 | #NDK路径
18 | ANDROID_NDK_ROOT=/media/byhook/backup/android/android-ndk-r16b
19 | BUILD_PLATFORM=linux-x86_64
20 | AOSP_TOOLCHAIN_SUFFIX=4.9
21 | AOSP_API=21
22 |
23 | LIBS_DIR=$NOW_DIR/libs
24 | echo "LIBS_DIR="$LIBS_DIR
25 |
26 |
27 | # 构建中间文件
28 | BUILD_DIR=./${BINARY_DIR}/${AOSP_ABI}
29 |
30 | # 最终编译的安装目录
31 | PREFIX=${LIBS_DIR}/${AOSP_ABI}/
32 | SYSROOT=${ANDROID_NDK_ROOT}/platforms/android-${AOSP_API}/${AOSP_ARCH}
33 |
34 | export CFLAGS="$AOSP_FLAGS -D__ANDROID_API__=${AOSP_API} --sysroot=${SYSROOT} \
35 | -isystem ${ANDROID_NDK_ROOT}/sysroot/usr/include \
36 | -isystem ${ANDROID_NDK_ROOT}/sysroot/usr/include/${HOST} "
37 | export LDFLAGS=-pie
38 |
39 | TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/$TOOLCHAIN_BASE-$AOSP_TOOLCHAIN_SUFFIX/prebuilt/${BUILD_PLATFORM}
40 |
41 | #创建当前编译目录
42 | mkdir -p ${BUILD_DIR}
43 | mkdir -p ${PREFIX}
44 | cd ${BUILD_DIR}
45 |
46 | cat <toolchain.cmake
47 | set(CMAKE_SYSTEM_NAME Linux)
48 | set(CMAKE_SYSTEM_PROCESSOR ${PROCESSOR})
49 | set(CMAKE_C_COMPILER ${TOOLCHAIN}/bin/${HOST}-gcc)
50 | set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN}/${HOST})
51 | EOF
52 |
53 | cmake -G"Unix Makefiles" \
54 | -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
55 | -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
56 | -DCMAKE_INSTALL_PREFIX=${PREFIX} \
57 | -DWITH_JPEG8=1 \
58 | ${MY_SOURCE_DIR}
59 |
60 | make clean
61 | make
62 | make install
63 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/build_scripts/build_jpeg_all.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | // armeabi
4 | for arch in armeabi-v7a arm64-v8a x86 x86_64
5 | do
6 | bash build_jpeg.sh $arch
7 | done
8 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/build_scripts/config.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 |
4 | #架构
5 | if [ "$#" -lt 1 ]; then
6 | THE_ARCH=armv7
7 | else
8 | THE_ARCH=$(tr [A-Z] [a-z] <<< "$1")
9 | fi
10 |
11 | #根据不同架构配置环境变量
12 | case "$THE_ARCH" in
13 | arm|armv5|armv6|armv7|armeabi)
14 | TOOLCHAIN_BASE="arm-linux-androideabi"
15 | HOST="arm-linux-androideabi"
16 | AOSP_ABI="armeabi"
17 | AOSP_ARCH="arch-arm"
18 | AOSP_FLAGS="-march=armv7-a -mfloat-abi=softfp -fprefetch-loop-arrays"
19 | PROCESSOR="arm"
20 | ;;
21 | armv7a|armeabi-v7a)
22 | TOOLCHAIN_BASE="arm-linux-androideabi"
23 | HOST="arm-linux-androideabi"
24 | AOSP_ABI="armeabi-v7a"
25 | AOSP_ARCH="arch-arm"
26 | AOSP_FLAGS="-march=armv7-a -mfloat-abi=softfp -fprefetch-loop-arrays"
27 | PROCESSOR="arm"
28 | ;;
29 | armv8|armv8a|aarch64|arm64|arm64-v8a)
30 | TOOLCHAIN_BASE="aarch64-linux-android"
31 | HOST="aarch64-linux-android"
32 | AOSP_ABI="arm64-v8a"
33 | AOSP_ARCH="arch-arm64"
34 | AOSP_FLAGS=""
35 | PROCESSOR="aarch64"
36 | ;;
37 | x86)
38 | TOOLCHAIN_BASE="x86"
39 | HOST="i686-linux-android"
40 | AOSP_ABI="x86"
41 | AOSP_ARCH="arch-x86"
42 | AOSP_FLAGS=""
43 | PROCESSOR="i386"
44 | ;;
45 | x86_64|x64)
46 | TOOLCHAIN_BASE="x86_64"
47 | HOST="x86_64-linux-android"
48 | AOSP_ABI="x86_64"
49 | AOSP_ARCH="arch-x86_64"
50 | AOSP_FLAGS=""
51 | PROCESSOR="x86_64"
52 | ;;
53 | *)
54 | echo "ERROR: Unknown architecture $1"
55 | [ "$0" = "$BASH_SOURCE" ] && exit 1 || return 1
56 | ;;
57 | esac
58 |
59 | echo "TOOLCHAIN_BASE="$TOOLCHAIN_BASE
60 | echo "TOOLNAME_BASE="$TOOLNAME_BASE
61 | echo "AOSP_ABI="$AOSP_ABI
62 | echo "AOSP_ARCH="$AOSP_ARCH
63 | echo "AOSP_FLAGS="$AOSP_FLAGS
64 | echo "HOST="$HOST
65 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/image-decode-jpeg-libjpeg-turbo/consumer-rules.pro
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/src/main/assets/input.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tuke0919/YingKe-SimpleCodeC/0c89a0c3d23fa15201cd77121146a5aeb6c508b9/image-decode-jpeg-libjpeg-turbo/src/main/assets/input.jpeg
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/src/main/cpp/libjpegturbo_util.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by KE TU on 2020-07-24.
3 | //
4 | #include
5 | #ifndef YINGKE_SIMPLECODEC_LIBJPEGTURBO_UTIL_H
6 | #define YINGKE_SIMPLECODEC_LIBJPEGTURBO_UTIL_H
7 |
8 | #ifdef __cplusplus
9 | extern "C" {
10 | #endif
11 |
12 | JNIEXPORT void JNICALL loadJPEGImage(JNIEnv *, jclass, jstring, jobject);
13 |
14 |
15 | #ifdef __cplusplus
16 | }
17 | #endif
18 |
19 | #endif //YINGKE_SIMPLECODEC_LIBJPEGTURBO_UTIL_H
20 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/src/main/cpp/logger.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by byhook on 18-11-26.
3 | //
4 |
5 | #ifndef FFMPEG4ANDROID_LOGGER_H
6 | #define FFMPEG4ANDROID_LOGGER_H
7 |
8 |
9 | #ifdef ANDROID
10 |
11 | #include
12 |
13 | #define LOG_TAG "Mp4ToYuvDecoder"
14 | #define LOGE(format, ...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, format, ##__VA_ARGS__)
15 | #define LOGI(format, ...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, format, ##__VA_ARGS__)
16 | #else
17 | #define LOGE(format, ...) printf(LOG_TAG format "\n", ##__VA_ARGS__)
18 | #define LOGI(format, ...) printf(LOG_TAG format "\n", ##__VA_ARGS__)
19 | #endif
20 |
21 | #endif //FFMPEG4ANDROID_LOGGER_H
22 |
--------------------------------------------------------------------------------
/image-decode-jpeg-libjpeg-turbo/src/main/java/com/yingke/libjpeg/turbo/LibJpegTurboUtil.java:
--------------------------------------------------------------------------------
1 | package com.yingke.libjpeg.turbo;
2 |
3 | import android.view.Surface;
4 |
5 | /**
6 | * 功能:
7 | *