gitextract_5x9hpeoq/ ├── .gitignore ├── .idea/ │ ├── compiler.xml │ ├── copyright/ │ │ └── profiles_settings.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── markdown-exported-files.xml │ ├── markdown-navigator/ │ │ └── profiles_settings.xml │ ├── markdown-navigator.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── LICENSE.txt ├── aavt/ │ ├── .gitignore │ ├── bintrayUpload.gradle │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── wuwang/ │ │ └── aavt/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── shader/ │ │ │ ├── base.frag │ │ │ ├── base.vert │ │ │ ├── beauty/ │ │ │ │ ├── beauty.frag │ │ │ │ └── beauty.vert │ │ │ ├── color/ │ │ │ │ └── gray.frag │ │ │ ├── convert/ │ │ │ │ ├── eo_yuv420p.frag │ │ │ │ ├── export_yuv.frag │ │ │ │ ├── export_yuv420p.frag │ │ │ │ └── export_yuv420sp.frag │ │ │ ├── effect/ │ │ │ │ ├── fluorescence.frag │ │ │ │ ├── water_color.frag │ │ │ │ └── water_color_step1.frag │ │ │ ├── func/ │ │ │ │ ├── candy.frag │ │ │ │ ├── faltung3x3.frag │ │ │ │ ├── gauss.frag │ │ │ │ ├── sobel.frag │ │ │ │ └── sobel2.frag │ │ │ ├── oes.frag │ │ │ └── oes.vert │ │ ├── java/ │ │ │ └── com/ │ │ │ └── wuwang/ │ │ │ └── aavt/ │ │ │ ├── av/ │ │ │ │ ├── CameraRecorder2.java │ │ │ │ ├── Mp4Processor.java │ │ │ │ ├── Mp4Processor2.java │ │ │ │ ├── SurfaceRecorder.java │ │ │ │ └── VideoCapture.java │ │ │ ├── core/ │ │ │ │ ├── IObservable.java │ │ │ │ ├── IObserver.java │ │ │ │ ├── Observable.java │ │ │ │ └── Renderer.java │ │ │ ├── egl/ │ │ │ │ ├── EGLConfigAttrs.java │ │ │ │ ├── EGLContextAttrs.java │ │ │ │ └── EglHelper.java │ │ │ ├── expend/ │ │ │ │ └── SluggardFilterTool.java │ │ │ ├── gl/ │ │ │ │ ├── BaseFilter.java │ │ │ │ ├── BaseFuncFilter.java │ │ │ │ ├── BeautyFilter.java │ │ │ │ ├── BlackMagicFilter.java │ │ │ │ ├── CandyFilter.java │ │ │ │ ├── Faltung3x3Filter.java │ │ │ │ ├── FluorescenceFilter.java │ │ │ │ ├── FrameBuffer.java │ │ │ │ ├── GrayFilter.java │ │ │ │ ├── GroupFilter.java │ │ │ │ ├── LazyFilter.java │ │ │ │ ├── OesFilter.java │ │ │ │ ├── ProxyFilter.java │ │ │ │ ├── RollFilter.java │ │ │ │ ├── StickFigureFilter.java │ │ │ │ ├── WaterColorFilter.java │ │ │ │ ├── WaterMarkFilter.java │ │ │ │ └── YuvOutputFilter.java │ │ │ ├── log/ │ │ │ │ ├── AvLog.java │ │ │ │ ├── ConsoleLogger.java │ │ │ │ ├── EmptyLogger.java │ │ │ │ └── ILogger.java │ │ │ ├── media/ │ │ │ │ ├── CodecUtil.java │ │ │ │ ├── MediaConfig.java │ │ │ │ ├── RenderBean.java │ │ │ │ ├── SoundRecorder.java │ │ │ │ ├── SurfaceEncoder.java │ │ │ │ ├── SurfaceShower.java │ │ │ │ ├── VideoSurfaceProcessor.java │ │ │ │ ├── WrapRenderer.java │ │ │ │ ├── audio/ │ │ │ │ │ ├── FileAudioProvider.java │ │ │ │ │ ├── ISoundProvider.java │ │ │ │ │ └── MicAudioProvider.java │ │ │ │ ├── av/ │ │ │ │ │ ├── AvException.java │ │ │ │ │ ├── ICloseable.java │ │ │ │ │ └── IStore.java │ │ │ │ ├── hard/ │ │ │ │ │ ├── HardMediaData.java │ │ │ │ │ ├── IHardStore.java │ │ │ │ │ ├── MediaMuxerWraper.java │ │ │ │ │ ├── Mp4MuxStore.java │ │ │ │ │ ├── Recycler.java │ │ │ │ │ └── StrengthenMp4MuxStore.java │ │ │ │ ├── player/ │ │ │ │ │ ├── AudioDecoder.java │ │ │ │ │ ├── AudioPlayer.java │ │ │ │ │ ├── BaseAudioDecoder.java │ │ │ │ │ ├── BaseVideoDecoder.java │ │ │ │ │ ├── ByteBufferData.java │ │ │ │ │ ├── EPlayerException.java │ │ │ │ │ ├── EffectMediaPlayer.java │ │ │ │ │ ├── EffectMediaView.java │ │ │ │ │ ├── IAudioProcessor.java │ │ │ │ │ ├── IDecoder.java │ │ │ │ │ ├── ITextureProcessor.java │ │ │ │ │ ├── ITimeObserver.java │ │ │ │ │ ├── NormalAudioDecoder.java │ │ │ │ │ ├── NormalVideoDecoder.java │ │ │ │ │ └── VideoPlayer.java │ │ │ │ └── video/ │ │ │ │ ├── Camera2Provider.java │ │ │ │ ├── CameraProvider.java │ │ │ │ ├── ITextureProvider.java │ │ │ │ └── Mp4Provider.java │ │ │ └── utils/ │ │ │ ├── GpuUtils.java │ │ │ └── MatrixUtils.java │ │ └── res/ │ │ └── values/ │ │ ├── attr.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── wuwang/ │ └── aavt/ │ └── ExampleUnitTest.java ├── build.gradle ├── examples/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── wuwang/ │ │ └── aavt/ │ │ └── examples/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── wuwang/ │ │ │ └── aavt/ │ │ │ └── examples/ │ │ │ ├── CameraRecorderActivity.java │ │ │ ├── ExampleMp4ProcessActivity.java │ │ │ ├── GetPathFromUri4kitkat.java │ │ │ ├── MainActivity.java │ │ │ ├── PermissionAsker.java │ │ │ ├── VideoPlayerActivity.java │ │ │ ├── VideoUtils.java │ │ │ └── YuvExportActivity.java │ │ └── res/ │ │ ├── drawable/ │ │ │ └── tv_start_bg.xml │ │ ├── layout/ │ │ │ ├── activity__export_yuv.xml │ │ │ ├── activity_camera_record.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_mp4.xml │ │ │ └── activity_player.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test/ │ └── java/ │ └── com/ │ └── wuwang/ │ └── aavt/ │ └── examples/ │ └── ExampleUnitTest.java ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── readme.md └── settings.gradle