├── .gitignore ├── .idea ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── LICENSE ├── README.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── samples ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── io │ │ └── github │ │ └── leonhover │ │ └── samples │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── io │ │ │ └── github │ │ │ └── leonhover │ │ │ └── videorecorder │ │ │ └── samples │ │ │ └── RecordingActivity.java │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_recording_normal.png │ │ └── ic_recording_started.png │ │ ├── drawable-mdpi │ │ ├── ic_recording_normal.png │ │ └── ic_recording_started.png │ │ ├── drawable-xhdpi │ │ ├── ic_recording_normal.png │ │ └── ic_recording_started.png │ │ ├── drawable-xxhdpi │ │ ├── ic_recording_normal.png │ │ └── ic_recording_started.png │ │ ├── drawable-xxxhdpi │ │ ├── ic_recording_normal.png │ │ └── ic_recording_started.png │ │ ├── drawable │ │ └── sel_recording_btn.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ └── activity_recording.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── io │ └── github │ └── leonhover │ └── samples │ └── ExampleUnitTest.java ├── settings.gradle └── videorecorder ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── io │ └── github │ └── leonhover │ └── videorecorder │ └── ExampleInstrumentedTest.java ├── main ├── AndroidManifest.xml ├── java │ └── io │ │ └── github │ │ └── leonhover │ │ └── videorecorder │ │ ├── camera │ │ └── CameraView.java │ │ ├── opengl │ │ ├── GLContext.java │ │ ├── GLSurface.java │ │ ├── GLUtil.java │ │ └── filter │ │ │ └── GLSurfaceFilter.java │ │ ├── pub │ │ └── Profile.java │ │ └── recorder │ │ ├── VideoRecorder.java │ │ ├── android │ │ └── AndroidRecorder.java │ │ └── mediacodec │ │ ├── MediaCodecRecorder.java │ │ ├── Utils.java │ │ ├── encode │ │ ├── AudioEncoder.java │ │ ├── AudioRecorder.java │ │ └── VideoEncoder.java │ │ ├── muxer │ │ └── SyncMediaMuxer.java │ │ └── surface │ │ └── OffScreenWindow.java └── res │ └── values │ ├── attrs.xml │ └── strings.xml └── test └── java └── io └── github └── leonhover └── videorecorder └── ExampleUnitTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.idea/gradle.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.idea/runConfigurations.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/README.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/gradlew.bat -------------------------------------------------------------------------------- /samples/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /samples/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/build.gradle -------------------------------------------------------------------------------- /samples/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/proguard-rules.pro -------------------------------------------------------------------------------- /samples/src/androidTest/java/io/github/leonhover/samples/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/androidTest/java/io/github/leonhover/samples/ExampleInstrumentedTest.java -------------------------------------------------------------------------------- /samples/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /samples/src/main/java/io/github/leonhover/videorecorder/samples/RecordingActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/java/io/github/leonhover/videorecorder/samples/RecordingActivity.java -------------------------------------------------------------------------------- /samples/src/main/res/drawable-hdpi/ic_recording_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-hdpi/ic_recording_normal.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-hdpi/ic_recording_started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-hdpi/ic_recording_started.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-mdpi/ic_recording_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-mdpi/ic_recording_normal.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-mdpi/ic_recording_started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-mdpi/ic_recording_started.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xhdpi/ic_recording_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xhdpi/ic_recording_normal.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xhdpi/ic_recording_started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xhdpi/ic_recording_started.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xxhdpi/ic_recording_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xxhdpi/ic_recording_normal.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xxhdpi/ic_recording_started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xxhdpi/ic_recording_started.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xxxhdpi/ic_recording_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xxxhdpi/ic_recording_normal.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable-xxxhdpi/ic_recording_started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable-xxxhdpi/ic_recording_started.png -------------------------------------------------------------------------------- /samples/src/main/res/drawable/sel_recording_btn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/drawable/sel_recording_btn.xml -------------------------------------------------------------------------------- /samples/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /samples/src/main/res/layout/activity_recording.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/layout/activity_recording.xml -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /samples/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /samples/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /samples/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /samples/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /samples/src/test/java/io/github/leonhover/samples/ExampleUnitTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/samples/src/test/java/io/github/leonhover/samples/ExampleUnitTest.java -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':samples', ':videorecorder' 2 | -------------------------------------------------------------------------------- /videorecorder/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /videorecorder/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/build.gradle -------------------------------------------------------------------------------- /videorecorder/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/proguard-rules.pro -------------------------------------------------------------------------------- /videorecorder/src/androidTest/java/io/github/leonhover/videorecorder/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/androidTest/java/io/github/leonhover/videorecorder/ExampleInstrumentedTest.java -------------------------------------------------------------------------------- /videorecorder/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/camera/CameraView.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/camera/CameraView.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLContext.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLSurface.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLSurface.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/GLUtil.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/filter/GLSurfaceFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/opengl/filter/GLSurfaceFilter.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/pub/Profile.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/pub/Profile.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/VideoRecorder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/VideoRecorder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/android/AndroidRecorder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/android/AndroidRecorder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/MediaCodecRecorder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/MediaCodecRecorder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/Utils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/Utils.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/AudioEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/AudioEncoder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/AudioRecorder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/AudioRecorder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/VideoEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/encode/VideoEncoder.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/muxer/SyncMediaMuxer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/muxer/SyncMediaMuxer.java -------------------------------------------------------------------------------- /videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/surface/OffScreenWindow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/java/io/github/leonhover/videorecorder/recorder/mediacodec/surface/OffScreenWindow.java -------------------------------------------------------------------------------- /videorecorder/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /videorecorder/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /videorecorder/src/test/java/io/github/leonhover/videorecorder/ExampleUnitTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeonHover/MediaCodecRecorder/HEAD/videorecorder/src/test/java/io/github/leonhover/videorecorder/ExampleUnitTest.java --------------------------------------------------------------------------------