gitextract_n9wctwe6/ ├── .gitignore ├── .travis.yml ├── COPYING.GPLv2 ├── COPYING.GPLv3 ├── COPYING.LGPLv2.1 ├── COPYING.LGPLv3 ├── MODULE_LICENSE_APACHE2 ├── NEWS.md ├── NOTICE ├── README.md ├── android/ │ ├── .gitignore │ ├── build-on-travis.sh │ ├── compile-ijk.sh │ ├── contrib/ │ │ ├── .gitignore │ │ ├── compile-ffmpeg.sh │ │ ├── compile-libsoxr.sh │ │ ├── compile-openssl.sh │ │ ├── setup-as-commiter.sh │ │ ├── sync-mirrors.sh │ │ └── tools/ │ │ ├── do-compile-ffmpeg.sh │ │ ├── do-compile-libsoxr.sh │ │ ├── do-compile-openssl.sh │ │ └── do-detect-env.sh │ ├── ijk-addr2line.sh │ ├── ijk-ndk-stack.sh │ ├── ijkplayer/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── ijkplayer-arm64/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_arm64/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_arm64/ │ │ │ │ └── Pragma.java │ │ │ ├── jni/ │ │ │ │ └── Application.mk │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-armv5/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_armv5/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_armv5/ │ │ │ │ └── Pragma.java │ │ │ ├── jni/ │ │ │ │ └── Application.mk │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-armv7a/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_armv7a/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_armv7a/ │ │ │ │ └── Pragma.java │ │ │ ├── jni/ │ │ │ │ ├── Android.mk │ │ │ │ ├── Application.mk │ │ │ │ └── ffmpeg/ │ │ │ │ └── Android.mk │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-example/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── example/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── example/ │ │ │ │ ├── activities/ │ │ │ │ │ ├── FileExplorerActivity.java │ │ │ │ │ ├── RecentMediaActivity.java │ │ │ │ │ ├── SampleMediaActivity.java │ │ │ │ │ ├── SettingsActivity.java │ │ │ │ │ └── VideoActivity.java │ │ │ │ ├── application/ │ │ │ │ │ ├── AppActivity.java │ │ │ │ │ └── Settings.java │ │ │ │ ├── content/ │ │ │ │ │ ├── PathCursor.java │ │ │ │ │ ├── PathCursorLoader.java │ │ │ │ │ └── RecentMediaStorage.java │ │ │ │ ├── eventbus/ │ │ │ │ │ └── FileExplorerEvents.java │ │ │ │ ├── fragments/ │ │ │ │ │ ├── FileListFragment.java │ │ │ │ │ ├── RecentMediaListFragment.java │ │ │ │ │ ├── SampleMediaListFragment.java │ │ │ │ │ ├── SettingsFragment.java │ │ │ │ │ └── TracksFragment.java │ │ │ │ ├── services/ │ │ │ │ │ └── MediaPlayerService.java │ │ │ │ └── widget/ │ │ │ │ ├── media/ │ │ │ │ │ ├── AndroidMediaController.java │ │ │ │ │ ├── FileMediaDataSource.java │ │ │ │ │ ├── IMediaController.java │ │ │ │ │ ├── IRenderView.java │ │ │ │ │ ├── IjkVideoView.java │ │ │ │ │ ├── InfoHudViewHolder.java │ │ │ │ │ ├── MeasureHelper.java │ │ │ │ │ ├── MediaPlayerCompat.java │ │ │ │ │ ├── SurfaceRenderView.java │ │ │ │ │ ├── TableLayoutBinder.java │ │ │ │ │ └── TextureRenderView.java │ │ │ │ └── preference/ │ │ │ │ └── IjkListPreference.java │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_app.xml │ │ │ │ ├── activity_player.xml │ │ │ │ ├── fragment_file_list.xml │ │ │ │ ├── fragment_file_list_item.xml │ │ │ │ ├── fragment_track_list.xml │ │ │ │ ├── table_media_info.xml │ │ │ │ ├── table_media_info_row1.xml │ │ │ │ ├── table_media_info_row2.xml │ │ │ │ ├── table_media_info_section.xml │ │ │ │ └── widget_toolbar.xml │ │ │ ├── menu/ │ │ │ │ ├── menu_app.xml │ │ │ │ └── menu_player.xml │ │ │ ├── values/ │ │ │ │ ├── attrs.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── ids.xml │ │ │ │ ├── strings.xml │ │ │ │ ├── strings_pref.xml │ │ │ │ ├── styles.xml │ │ │ │ └── themes.xml │ │ │ ├── values-v11/ │ │ │ │ └── styles.xml │ │ │ ├── values-v14/ │ │ │ │ └── styles.xml │ │ │ ├── values-w820dp/ │ │ │ │ └── dimens.xml │ │ │ └── xml/ │ │ │ └── settings.xml │ │ ├── ijkplayer-exo/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── exo/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── exo/ │ │ │ │ ├── IjkExoMediaPlayer.java │ │ │ │ └── demo/ │ │ │ │ ├── EventLogger.java │ │ │ │ ├── SmoothStreamingTestMediaDrmCallback.java │ │ │ │ └── player/ │ │ │ │ ├── DashRendererBuilder.java │ │ │ │ ├── DemoPlayer.java │ │ │ │ ├── ExtractorRendererBuilder.java │ │ │ │ ├── HlsRendererBuilder.java │ │ │ │ └── SmoothStreamingRendererBuilder.java │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-java/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player/ │ │ │ │ ├── AbstractMediaPlayer.java │ │ │ │ ├── AndroidMediaPlayer.java │ │ │ │ ├── IMediaPlayer.java │ │ │ │ ├── ISurfaceTextureHolder.java │ │ │ │ ├── ISurfaceTextureHost.java │ │ │ │ ├── IjkLibLoader.java │ │ │ │ ├── IjkMediaCodecInfo.java │ │ │ │ ├── IjkMediaMeta.java │ │ │ │ ├── IjkMediaPlayer.java │ │ │ │ ├── IjkTimedText.java │ │ │ │ ├── MediaInfo.java │ │ │ │ ├── MediaPlayerProxy.java │ │ │ │ ├── TextureMediaPlayer.java │ │ │ │ ├── annotations/ │ │ │ │ │ ├── AccessedByNative.java │ │ │ │ │ └── CalledByNative.java │ │ │ │ ├── exceptions/ │ │ │ │ │ └── IjkMediaException.java │ │ │ │ ├── ffmpeg/ │ │ │ │ │ └── FFmpegApi.java │ │ │ │ ├── misc/ │ │ │ │ │ ├── AndroidMediaFormat.java │ │ │ │ │ ├── AndroidTrackInfo.java │ │ │ │ │ ├── IAndroidIO.java │ │ │ │ │ ├── IMediaDataSource.java │ │ │ │ │ ├── IMediaFormat.java │ │ │ │ │ ├── ITrackInfo.java │ │ │ │ │ ├── IjkMediaFormat.java │ │ │ │ │ └── IjkTrackInfo.java │ │ │ │ └── pragma/ │ │ │ │ ├── DebugLog.java │ │ │ │ └── Pragma.java │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-x86/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── ijkplayer/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings/ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player_x86/ │ │ │ │ └── Pragma.java │ │ │ ├── jni/ │ │ │ │ ├── Application.mk │ │ │ │ └── ffmpeg/ │ │ │ │ └── Android.mk │ │ │ ├── project.properties │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── ijkplayer-x86_64/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ └── ijkplayer_x86_64/ │ │ │ │ └── ApplicationTest.java │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── jni/ │ │ │ │ ├── Application.mk │ │ │ │ └── ffmpeg/ │ │ │ │ └── Android.mk │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── settings.gradle │ │ └── tools/ │ │ ├── gradle-bintray-upload.gradle │ │ ├── gradle-mvn-push.gradle │ │ └── gradle-on-demand.gradle │ ├── patch-debugging-with-lldb.sh │ └── patches/ │ ├── 0001-gitignore-ignore-.externalNativeBuild.patch │ ├── 0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch │ ├── 0003-arm64-enable-debugging-with-LLDB.patch │ ├── 0003-armv5-enable-debugging-with-LLDB.patch │ ├── 0003-armv7a-enable-debugging-with-LLDB.patch │ ├── 0003-x86-enable-debugging-with-LLDB.patch │ ├── 0003-x86_64-enable-debugging-with-LLDB.patch │ ├── 0004-armv7a-link-prebuilt-staic-libraries-of-ffmepg.patch │ ├── 0004-x86-link-prebuilt-staic-libraries-of-ffmepg.patch │ └── 0004-x86_64-link-prebuilt-staic-libraries-of-ffmepg.patch ├── compile-android-j4a.sh ├── config/ │ ├── module-default.sh │ ├── module-lite-hevc.sh │ └── module-lite.sh ├── doc/ │ └── preflight_checklist.md ├── ijkmedia/ │ ├── Android.mk │ ├── ijkj4a/ │ │ ├── .gitignore │ │ ├── Android.mk │ │ ├── Makefile │ │ ├── j4a/ │ │ │ ├── class/ │ │ │ │ ├── android/ │ │ │ │ │ ├── media/ │ │ │ │ │ │ ├── AudioTrack.c │ │ │ │ │ │ ├── AudioTrack.h │ │ │ │ │ │ ├── AudioTrack.include.j4a │ │ │ │ │ │ ├── AudioTrack.loader.j4a │ │ │ │ │ │ ├── MediaCodec.c │ │ │ │ │ │ ├── MediaCodec.h │ │ │ │ │ │ ├── MediaCodec.include.j4a │ │ │ │ │ │ ├── MediaCodec.loader.j4a │ │ │ │ │ │ ├── MediaFormat.c │ │ │ │ │ │ ├── MediaFormat.h │ │ │ │ │ │ ├── MediaFormat.include.j4a │ │ │ │ │ │ ├── MediaFormat.loader.j4a │ │ │ │ │ │ ├── PlaybackParams.c │ │ │ │ │ │ ├── PlaybackParams.h │ │ │ │ │ │ ├── PlaybackParams.include.j4a │ │ │ │ │ │ └── PlaybackParams.loader.j4a │ │ │ │ │ └── os/ │ │ │ │ │ ├── Build.c │ │ │ │ │ ├── Build.h │ │ │ │ │ ├── Build.include.j4a │ │ │ │ │ ├── Build.loader.j4a │ │ │ │ │ ├── Bundle.c │ │ │ │ │ ├── Bundle.h │ │ │ │ │ ├── Bundle.include.j4a │ │ │ │ │ └── Bundle.loader.j4a │ │ │ │ ├── java/ │ │ │ │ │ ├── nio/ │ │ │ │ │ │ ├── Buffer.c │ │ │ │ │ │ ├── Buffer.h │ │ │ │ │ │ ├── Buffer.include.j4a │ │ │ │ │ │ ├── Buffer.loader.j4a │ │ │ │ │ │ ├── ByteBuffer.c │ │ │ │ │ │ ├── ByteBuffer.h │ │ │ │ │ │ ├── ByteBuffer.include.j4a │ │ │ │ │ │ └── ByteBuffer.loader.j4a │ │ │ │ │ └── util/ │ │ │ │ │ ├── ArrayList.c │ │ │ │ │ ├── ArrayList.h │ │ │ │ │ ├── ArrayList.include.j4a │ │ │ │ │ └── ArrayList.loader.j4a │ │ │ │ └── tv/ │ │ │ │ └── danmaku/ │ │ │ │ └── ijk/ │ │ │ │ └── media/ │ │ │ │ └── player/ │ │ │ │ ├── IjkMediaPlayer.c │ │ │ │ ├── IjkMediaPlayer.h │ │ │ │ ├── IjkMediaPlayer.include.j4a │ │ │ │ ├── IjkMediaPlayer.loader.j4a │ │ │ │ └── misc/ │ │ │ │ ├── IAndroidIO.c │ │ │ │ ├── IAndroidIO.h │ │ │ │ ├── IAndroidIO.include.j4a │ │ │ │ ├── IAndroidIO.loader.j4a │ │ │ │ ├── IMediaDataSource.c │ │ │ │ ├── IMediaDataSource.h │ │ │ │ ├── IMediaDataSource.include.j4a │ │ │ │ └── IMediaDataSource.loader.j4a │ │ │ ├── j4a_allclasses.c │ │ │ ├── j4a_allclasses.h │ │ │ ├── j4a_allclasses.include.h │ │ │ ├── j4a_allclasses.loader.h │ │ │ ├── j4a_base.c │ │ │ └── j4a_base.h │ │ ├── j4au/ │ │ │ └── class/ │ │ │ ├── android/ │ │ │ │ └── media/ │ │ │ │ ├── AudioTrack.util.c │ │ │ │ └── AudioTrack.util.h │ │ │ └── java/ │ │ │ └── nio/ │ │ │ ├── ByteBuffer.util.c │ │ │ └── ByteBuffer.util.h │ │ └── java/ │ │ ├── android/ │ │ │ ├── media/ │ │ │ │ ├── AudioTrack.java │ │ │ │ ├── MediaCodec.java │ │ │ │ ├── MediaCrypto.java │ │ │ │ ├── MediaFormat.java │ │ │ │ └── PlaybackParams.java │ │ │ └── os/ │ │ │ ├── Build.java │ │ │ └── Bundle.java │ │ ├── java/ │ │ │ ├── nio/ │ │ │ │ ├── Buffer.java │ │ │ │ └── ByteBuffer.java │ │ │ └── util/ │ │ │ └── ArrayList.java │ │ └── tv/ │ │ └── danmaku/ │ │ └── ijk/ │ │ └── media/ │ │ └── player/ │ │ ├── IjkMediaPlayer.java │ │ └── misc/ │ │ ├── IAndroidIO.java │ │ └── IMediaDataSource.java │ ├── ijkplayer/ │ │ ├── .gitignore │ │ ├── Android.mk │ │ ├── android/ │ │ │ ├── ffmpeg_api_jni.c │ │ │ ├── ffmpeg_api_jni.h │ │ │ ├── ijkplayer_android.c │ │ │ ├── ijkplayer_android.h │ │ │ ├── ijkplayer_android_def.h │ │ │ ├── ijkplayer_jni.c │ │ │ └── pipeline/ │ │ │ ├── ffpipeline_android.c │ │ │ ├── ffpipeline_android.h │ │ │ ├── ffpipenode_android_mediacodec_vdec.c │ │ │ ├── ffpipenode_android_mediacodec_vdec.h │ │ │ ├── h264_nal.h │ │ │ ├── hevc_nal.h │ │ │ └── mpeg4_esds.h │ │ ├── config.h │ │ ├── ff_cmdutils.c │ │ ├── ff_cmdutils.h │ │ ├── ff_fferror.h │ │ ├── ff_ffinc.h │ │ ├── ff_ffmsg.h │ │ ├── ff_ffmsg_queue.h │ │ ├── ff_ffpipeline.c │ │ ├── ff_ffpipeline.h │ │ ├── ff_ffpipenode.c │ │ ├── ff_ffpipenode.h │ │ ├── ff_ffplay.c │ │ ├── ff_ffplay.h │ │ ├── ff_ffplay_debug.h │ │ ├── ff_ffplay_def.h │ │ ├── ff_ffplay_options.h │ │ ├── ijkavformat/ │ │ │ ├── allformats.c │ │ │ ├── cJSON.c │ │ │ ├── cJSON.h │ │ │ ├── ijkasync.c │ │ │ ├── ijkavformat.h │ │ │ ├── ijkio.c │ │ │ ├── ijkioandroidio.c │ │ │ ├── ijkioapplication.c │ │ │ ├── ijkioapplication.h │ │ │ ├── ijkiocache.c │ │ │ ├── ijkioffio.c │ │ │ ├── ijkiomanager.c │ │ │ ├── ijkiomanager.h │ │ │ ├── ijkioprotocol.c │ │ │ ├── ijkioprotocol.h │ │ │ ├── ijkiourl.h │ │ │ ├── ijkiourlhook.c │ │ │ ├── ijklas.c │ │ │ ├── ijklas.h │ │ │ ├── ijklivehook.c │ │ │ ├── ijklongurl.c │ │ │ ├── ijkmediadatasource.c │ │ │ ├── ijksegment.c │ │ │ └── ijkurlhook.c │ │ ├── ijkavutil/ │ │ │ ├── ijkdict.c │ │ │ ├── ijkdict.h │ │ │ ├── ijkfifo.c │ │ │ ├── ijkfifo.h │ │ │ ├── ijkstl.cpp │ │ │ ├── ijkstl.h │ │ │ ├── ijkthreadpool.c │ │ │ ├── ijkthreadpool.h │ │ │ ├── ijktree.c │ │ │ ├── ijktree.h │ │ │ ├── ijkutils.c │ │ │ ├── ijkutils.h │ │ │ └── opt.h │ │ ├── ijkmeta.c │ │ ├── ijkmeta.h │ │ ├── ijkplayer.c │ │ ├── ijkplayer.h │ │ ├── ijkplayer_internal.h │ │ ├── pipeline/ │ │ │ ├── ffpipeline_ffplay.c │ │ │ ├── ffpipeline_ffplay.h │ │ │ ├── ffpipenode_ffplay_vdec.c │ │ │ └── ffpipenode_ffplay_vdec.h │ │ └── version.sh │ └── ijksdl/ │ ├── Android.mk │ ├── android/ │ │ ├── android_audiotrack.c │ │ ├── android_audiotrack.h │ │ ├── android_nativewindow.c │ │ ├── android_nativewindow.h │ │ ├── ijksdl_android.h │ │ ├── ijksdl_android_jni.c │ │ ├── ijksdl_android_jni.h │ │ ├── ijksdl_aout_android_audiotrack.c │ │ ├── ijksdl_aout_android_audiotrack.h │ │ ├── ijksdl_aout_android_opensles.c │ │ ├── ijksdl_aout_android_opensles.h │ │ ├── ijksdl_codec_android_mediacodec.c │ │ ├── ijksdl_codec_android_mediacodec.h │ │ ├── ijksdl_codec_android_mediacodec_dummy.c │ │ ├── ijksdl_codec_android_mediacodec_dummy.h │ │ ├── ijksdl_codec_android_mediacodec_internal.c │ │ ├── ijksdl_codec_android_mediacodec_internal.h │ │ ├── ijksdl_codec_android_mediacodec_java.c │ │ ├── ijksdl_codec_android_mediacodec_java.h │ │ ├── ijksdl_codec_android_mediadef.c │ │ ├── ijksdl_codec_android_mediadef.h │ │ ├── ijksdl_codec_android_mediaformat.c │ │ ├── ijksdl_codec_android_mediaformat.h │ │ ├── ijksdl_codec_android_mediaformat_internal.h │ │ ├── ijksdl_codec_android_mediaformat_java.c │ │ ├── ijksdl_codec_android_mediaformat_java.h │ │ ├── ijksdl_inc_internal_android.h │ │ ├── ijksdl_vout_android_nativewindow.c │ │ ├── ijksdl_vout_android_nativewindow.h │ │ ├── ijksdl_vout_android_surface.c │ │ ├── ijksdl_vout_android_surface.h │ │ ├── ijksdl_vout_overlay_android_mediacodec.c │ │ └── ijksdl_vout_overlay_android_mediacodec.h │ ├── dummy/ │ │ ├── ijksdl_dummy.h │ │ ├── ijksdl_vout_dummy.c │ │ └── ijksdl_vout_dummy.h │ ├── ffmpeg/ │ │ ├── abi_all/ │ │ │ └── image_convert.c │ │ ├── ijksdl_image_convert.h │ │ ├── ijksdl_inc_ffmpeg.h │ │ ├── ijksdl_vout_overlay_ffmpeg.c │ │ └── ijksdl_vout_overlay_ffmpeg.h │ ├── gles2/ │ │ ├── color.c │ │ ├── common.c │ │ ├── fsh/ │ │ │ ├── rgb.fsh.c │ │ │ ├── yuv420p.fsh.c │ │ │ ├── yuv420sp.fsh.c │ │ │ └── yuv444p10le.fsh.c │ │ ├── internal.h │ │ ├── renderer.c │ │ ├── renderer_rgb.c │ │ ├── renderer_yuv420p.c │ │ ├── renderer_yuv420sp.c │ │ ├── renderer_yuv420sp_vtb.m │ │ ├── renderer_yuv444p10le.c │ │ ├── shader.c │ │ └── vsh/ │ │ └── mvp.vsh.c │ ├── ijksdl.h │ ├── ijksdl_aout.c │ ├── ijksdl_aout.h │ ├── ijksdl_aout_internal.h │ ├── ijksdl_audio.c │ ├── ijksdl_audio.h │ ├── ijksdl_class.h │ ├── ijksdl_container.h │ ├── ijksdl_egl.c │ ├── ijksdl_egl.h │ ├── ijksdl_endian.h │ ├── ijksdl_error.c │ ├── ijksdl_error.h │ ├── ijksdl_extra_log.c │ ├── ijksdl_extra_log.h │ ├── ijksdl_fourcc.h │ ├── ijksdl_gles2.h │ ├── ijksdl_inc_internal.h │ ├── ijksdl_log.h │ ├── ijksdl_misc.h │ ├── ijksdl_mutex.c │ ├── ijksdl_mutex.h │ ├── ijksdl_stdinc.c │ ├── ijksdl_stdinc.h │ ├── ijksdl_thread.c │ ├── ijksdl_thread.h │ ├── ijksdl_timer.c │ ├── ijksdl_timer.h │ ├── ijksdl_video.h │ ├── ijksdl_vout.c │ ├── ijksdl_vout.h │ └── ijksdl_vout_internal.h ├── ijkprof/ │ └── android-ndk-profiler-dummy/ │ └── jni/ │ ├── Android-include.mk │ ├── Android.mk │ ├── prof.c │ └── prof.h ├── init-android-exo.sh ├── init-android-j4a.sh ├── init-android-libsoxr.sh ├── init-android-libyuv.sh ├── init-android-openssl.sh ├── init-android-prof.sh ├── init-android-soundtouch.sh ├── init-android.sh ├── init-config.sh ├── init-ios-openssl.sh ├── init-ios.sh ├── ios/ │ ├── .gitignore │ ├── IJKMediaDemo/ │ │ ├── IJKMediaDemo/ │ │ │ ├── AppIcons.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Barcode.h │ │ │ ├── Barcode.m │ │ │ ├── IJKAppDelegate.h │ │ │ ├── IJKAppDelegate.m │ │ │ ├── IJKCommon.h │ │ │ ├── IJKDemoHistory.h │ │ │ ├── IJKDemoHistory.m │ │ │ ├── IJKDemoInputURLViewController.h │ │ │ ├── IJKDemoInputURLViewController.m │ │ │ ├── IJKDemoInputURLViewController.xib │ │ │ ├── IJKDemoLocalFolderViewController.h │ │ │ ├── IJKDemoLocalFolderViewController.m │ │ │ ├── IJKDemoMainViewController.h │ │ │ ├── IJKDemoMainViewController.m │ │ │ ├── IJKDemoMainViewController.xib │ │ │ ├── IJKDemoSampleViewController.h │ │ │ ├── IJKDemoSampleViewController.m │ │ │ ├── IJKDemoSampleViewController.xib │ │ │ ├── IJKMediaControl.h │ │ │ ├── IJKMediaControl.m │ │ │ ├── IJKMediaDemo-Info.plist │ │ │ ├── IJKMediaDemo-Prefix.pch │ │ │ ├── IJKMoviePlayerViewController.h │ │ │ ├── IJKMoviePlayerViewController.m │ │ │ ├── IJKMoviePlayerViewController.xib │ │ │ ├── IJKQRCodeScanViewController.h │ │ │ ├── IJKQRCodeScanViewController.m │ │ │ ├── IJKQRCodeScanViewController.xib │ │ │ ├── Images.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── LaunchImage.launchimage/ │ │ │ │ └── Contents.json │ │ │ ├── LaunchScreen.xib │ │ │ ├── en.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ └── main.m │ │ ├── IJKMediaDemo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── XCAssets/ │ │ ├── AppIcons.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── LaunchImages.xcassets/ │ │ │ └── LaunchImage.launchimage/ │ │ │ └── Contents.json │ │ └── MoviePlayerImages.xcassets/ │ │ └── MoviePlayer/ │ │ ├── btn_player_back_highlighted.imageset/ │ │ │ └── Contents.json │ │ ├── btn_player_pause.imageset/ │ │ │ └── Contents.json │ │ ├── btn_player_play.imageset/ │ │ │ └── Contents.json │ │ ├── player_bottom_control_bg.imageset/ │ │ │ └── Contents.json │ │ └── player_top_control_bg.imageset/ │ │ └── Contents.json │ ├── IJKMediaPlayer/ │ │ ├── IJKMediaFramework/ │ │ │ ├── IJKMediaFramework.h │ │ │ └── Info.plist │ │ ├── IJKMediaFrameworkTests/ │ │ │ ├── IJKMediaFrameworkTests.m │ │ │ └── Info.plist │ │ ├── IJKMediaFrameworkWithSSL/ │ │ │ └── IJKMediaFrameworkWithSSL.h │ │ ├── IJKMediaFrameworkWithSSL.plist │ │ ├── IJKMediaPlayer/ │ │ │ ├── IJKAVMoviePlayerController.h │ │ │ ├── IJKAVMoviePlayerController.m │ │ │ ├── IJKAVPlayerLayerView.h │ │ │ ├── IJKAVPlayerLayerView.m │ │ │ ├── IJKAudioKit.h │ │ │ ├── IJKAudioKit.m │ │ │ ├── IJKDeviceModel.h │ │ │ ├── IJKDeviceModel.m │ │ │ ├── IJKFFMonitor.h │ │ │ ├── IJKFFMonitor.m │ │ │ ├── IJKFFMoviePlayerController.h │ │ │ ├── IJKFFMoviePlayerController.m │ │ │ ├── IJKFFMoviePlayerDef.h │ │ │ ├── IJKFFMoviePlayerDef.m │ │ │ ├── IJKFFOptions.h │ │ │ ├── IJKFFOptions.m │ │ │ ├── IJKKVOController.h │ │ │ ├── IJKKVOController.m │ │ │ ├── IJKMPMoviePlayerController.h │ │ │ ├── IJKMPMoviePlayerController.m │ │ │ ├── IJKMediaModule.h │ │ │ ├── IJKMediaModule.m │ │ │ ├── IJKMediaPlayback.h │ │ │ ├── IJKMediaPlayback.m │ │ │ ├── IJKMediaPlayer-Prefix.pch │ │ │ ├── IJKMediaPlayer.h │ │ │ ├── IJKMediaUtils.h │ │ │ ├── IJKMediaUtils.m │ │ │ ├── IJKNotificationManager.h │ │ │ ├── IJKNotificationManager.m │ │ │ ├── IJKSDLGLViewProtocol.h │ │ │ ├── NSString+IJKMedia.h │ │ │ ├── NSString+IJKMedia.m │ │ │ └── ijkmedia/ │ │ │ ├── ijkplayer/ │ │ │ │ └── ios/ │ │ │ │ ├── ijkplayer_ios.h │ │ │ │ ├── ijkplayer_ios.m │ │ │ │ └── pipeline/ │ │ │ │ ├── IJKVideoToolBox.h │ │ │ │ ├── IJKVideoToolBox.m │ │ │ │ ├── IJKVideoToolBoxAsync.h │ │ │ │ ├── IJKVideoToolBoxAsync.m │ │ │ │ ├── IJKVideoToolBoxSync.h │ │ │ │ ├── IJKVideoToolBoxSync.m │ │ │ │ ├── ffpipeline_ios.c │ │ │ │ ├── ffpipeline_ios.h │ │ │ │ ├── ffpipenode_ios_videotoolbox_vdec.h │ │ │ │ ├── ffpipenode_ios_videotoolbox_vdec.m │ │ │ │ └── h264_sps_parser.h │ │ │ └── ijksdl/ │ │ │ └── ios/ │ │ │ ├── IJKSDLAudioKit.h │ │ │ ├── IJKSDLAudioKit.m │ │ │ ├── IJKSDLAudioQueueController.h │ │ │ ├── IJKSDLAudioQueueController.m │ │ │ ├── IJKSDLAudioUnitController.h │ │ │ ├── IJKSDLAudioUnitController.m │ │ │ ├── IJKSDLGLView.h │ │ │ ├── IJKSDLGLView.m │ │ │ ├── IJKSDLHudViewCell.h │ │ │ ├── IJKSDLHudViewCell.m │ │ │ ├── IJKSDLHudViewController.h │ │ │ ├── IJKSDLHudViewController.m │ │ │ ├── ijksdl_aout_ios_audiounit.h │ │ │ ├── ijksdl_aout_ios_audiounit.m │ │ │ ├── ijksdl_ios.h │ │ │ ├── ijksdl_thread_ios.h │ │ │ ├── ijksdl_thread_ios.m │ │ │ ├── ijksdl_vout_ios_gles2.h │ │ │ ├── ijksdl_vout_ios_gles2.m │ │ │ ├── ijksdl_vout_overlay_videotoolbox.h │ │ │ └── ijksdl_vout_overlay_videotoolbox.m │ │ └── IJKMediaPlayer.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── IJKMediaPodDemo/ │ │ ├── .gitignore │ │ ├── IJKMediaPodDemo/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Base.lproj/ │ │ │ │ ├── LaunchScreen.xib │ │ │ │ └── Main.storyboard │ │ │ ├── Images.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── ViewController.h │ │ │ ├── ViewController.m │ │ │ └── main.m │ │ ├── IJKMediaPodDemo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── IJKMediaPodDemoTests/ │ │ │ ├── IJKMediaPodDemoTests.m │ │ │ └── Info.plist │ │ └── Podfile │ ├── compile-ffmpeg.sh │ ├── compile-openssl.sh │ └── tools/ │ ├── avconfig.h │ ├── config.h │ ├── do-compile-ffmpeg.sh │ ├── do-compile-openssl.sh │ └── ffversion.h ├── tools/ │ ├── .gitignore │ ├── copyrighter/ │ │ ├── CRContext.py │ │ ├── CRCopyright.py │ │ ├── CRFile.py │ │ ├── __init__.py │ │ └── __main__.py │ ├── pull-repo-base.sh │ ├── pull-repo-ref.sh │ ├── setup-as-commiter.sh │ └── sync-mirrors.sh └── version.sh