├── .gitignore ├── .travis.yml ├── COPYING.GPLv2 ├── COPYING.GPLv3 ├── COPYING.LGPLv2.1 ├── COPYING.LGPLv2.1.txt ├── COPYING.LGPLv3 ├── MODULE_LICENSE_APACHE2 ├── NEWS.md ├── NOTICE ├── README.md ├── android ├── .gitignore ├── android-ndk-prof ├── 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.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.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 │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── ffmpeg │ │ │ └── ijkmedia │ │ │ ├── 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 │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── ffmpeg │ │ │ └── ijkmedia │ │ │ ├── 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 │ │ │ └── ijkmedia │ │ │ ├── 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 │ │ │ ├── drawable-hdpi │ │ │ ├── ic_action_dark_aspect_ratio.png │ │ │ ├── ic_action_dark_filter.png │ │ │ ├── ic_action_dark_settings.png │ │ │ ├── ic_theme_description.png │ │ │ ├── ic_theme_folder.png │ │ │ └── ic_theme_play_arrow.png │ │ │ ├── drawable-mdpi │ │ │ ├── ic_action_dark_aspect_ratio.png │ │ │ ├── ic_action_dark_filter.png │ │ │ ├── ic_action_dark_settings.png │ │ │ ├── ic_theme_description.png │ │ │ ├── ic_theme_folder.png │ │ │ └── ic_theme_play_arrow.png │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_action_dark_aspect_ratio.png │ │ │ ├── ic_action_dark_filter.png │ │ │ ├── ic_action_dark_settings.png │ │ │ ├── ic_theme_description.png │ │ │ ├── ic_theme_folder.png │ │ │ └── ic_theme_play_arrow.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── ic_action_dark_aspect_ratio.png │ │ │ ├── ic_action_dark_filter.png │ │ │ ├── ic_action_dark_settings.png │ │ │ ├── ic_theme_description.png │ │ │ ├── ic_theme_folder.png │ │ │ └── ic_theme_play_arrow.png │ │ │ ├── drawable-xxxhdpi │ │ │ ├── ic_action_dark_aspect_ratio.png │ │ │ ├── ic_action_dark_filter.png │ │ │ ├── ic_action_dark_settings.png │ │ │ ├── ic_theme_description.png │ │ │ ├── ic_theme_folder.png │ │ │ └── ic_theme_play_arrow.png │ │ │ ├── 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 │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-v11 │ │ │ └── styles.xml │ │ │ ├── values-v14 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ ├── strings_pref.xml │ │ │ ├── styles.xml │ │ │ └── themes.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 │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── ffmpeg │ │ │ │ ├── Android.mk │ │ │ │ └── include │ │ │ └── ijkmedia │ │ │ ├── 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 │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── ffmpeg │ │ │ │ ├── Android.mk │ │ │ │ └── include │ │ │ └── ijkmedia │ │ │ └── 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-arm64-link-prebuilt-staic-libraries-of-ffmepg.patch │ ├── 0004-armv5-link-prebuilt-staic-libraries-of-ffmepg.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 └── module.sh ├── doc └── preflight_checklist.md ├── extra └── init-extra.sh ├── ijkmedia ├── Android.mk ├── Makefile.am ├── Makefile.in ├── config.guess ├── config.h.in ├── config.status ├── config.sub ├── configure ├── configure.in ├── depcomp ├── 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 │ ├── Android.mk │ ├── Makefile.am │ ├── Makefile.in │ ├── 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 │ │ ├── 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 │ │ ├── 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 │ ├── ijkversion.h │ ├── pipeline │ │ ├── ffpipeline_ffplay.c │ │ ├── ffpipeline_ffplay.h │ │ ├── ffpipenode_ffplay_vdec.c │ │ └── ffpipenode_ffplay_vdec.h │ ├── version.sh │ └── windows │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── ijkplayer_win.c │ │ ├── ijkplayer_win.h │ │ ├── ijkplayer_win_test.c │ │ └── pipeline │ │ ├── ffpipeline_windows.c │ │ └── ffpipeline_windows.h ├── ijksdl │ ├── Android.mk │ ├── Makefile.am │ ├── Makefile.in │ ├── 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 │ │ ├── SDL_gles2funcs.h │ │ ├── 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 │ ├── thirdparty │ │ └── SDL2 │ │ │ ├── begin_code.h │ │ │ └── close_code.h │ └── windows │ │ ├── ijksdl_aout_win_openal.c │ │ ├── ijksdl_aout_win_openal.h │ │ ├── ijksdl_utils_win.c │ │ ├── ijksdl_utils_win.h │ │ ├── ijksdl_vout_win_nativewindows.c │ │ ├── ijksdl_vout_win_nativewindows.h │ │ ├── ijksdl_vout_win_surface.c │ │ └── ijksdl_vout_win_surface.h ├── install-sh ├── ltmain.sh └── missing ├── 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.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── IJKMediaDemo │ │ ├── AppIcons.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Barcode.h │ │ ├── Barcode.m │ │ ├── Default-568h@2x.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ ├── 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 │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ ├── LaunchScreen.xib │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── XCAssets │ │ ├── AppIcons.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icapp_ipad_ios5_72pt.png │ │ │ ├── icapp_ipad_ios5_72pt@2x.png │ │ │ ├── icapp_ipad_ios7_76pt.png │ │ │ ├── icapp_ipad_ios7_76pt@2x.png │ │ │ ├── icapp_iphone_ios5_57pt.png │ │ │ ├── icapp_iphone_ios5_57pt@2x.png │ │ │ ├── icapp_iphone_ios7_60pt@2x.png │ │ │ ├── icapp_iphone_ios7_60pt@3x.png │ │ │ ├── icset_ipad_ios5_50pt.png │ │ │ ├── icset_ipad_ios5_50pt@2x.png │ │ │ ├── icset_ipad_ios7_40pt.png │ │ │ ├── icset_ipad_ios7_40pt@2x.png │ │ │ ├── icset_ipad_iosu_29pt.png │ │ │ ├── icset_ipad_iosu_29pt@2x.png │ │ │ ├── icset_iphone_ios7_40pt@2x.png │ │ │ ├── icset_iphone_ios7_40pt@3x.png │ │ │ ├── icset_iphone_iosu_29pt.png │ │ │ ├── icset_iphone_iosu_29pt@2x.png │ │ │ └── icset_iphone_iosu_29pt@3x.png │ │ ├── LaunchImages.xcassets │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── iphone_ios5_320_480.png │ │ │ ├── iphone_ios5_640_1136.png │ │ │ ├── iphone_ios5_640_960.png │ │ │ ├── iphone_ios7_640_1136.png │ │ │ └── iphone_ios7_640_960.png │ │ └── MoviePlayerImages.xcassets │ │ └── MoviePlayer │ │ ├── btn_player_back_highlighted.imageset │ │ ├── Contents.json │ │ ├── btn_player_back_highlighted.png │ │ └── btn_player_back_highlighted@2x.png │ │ ├── btn_player_pause.imageset │ │ ├── Contents.json │ │ ├── btn_player_pause.png │ │ └── btn_player_pause@2x.png │ │ ├── btn_player_play.imageset │ │ ├── Contents.json │ │ ├── btn_player_play.png │ │ └── btn_player_play@2x.png │ │ ├── player_bottom_control_bg.imageset │ │ ├── Contents.json │ │ ├── player_bottom_control_bg.png │ │ └── player_bottom_control_bg@2x.png │ │ └── player_top_control_bg.imageset │ │ ├── Contents.json │ │ ├── player_top_control_bg.png │ │ └── player_top_control_bg@2x.png ├── IJKMediaPlayer │ ├── IJKMediaFramework │ │ ├── IJKMediaFramework.h │ │ └── Info.plist │ ├── IJKMediaFrameworkTests │ │ ├── IJKMediaFrameworkTests.m │ │ └── Info.plist │ ├── IJKMediaFrameworkWithSSL.plist │ ├── IJKMediaFrameworkWithSSL │ │ └── IJKMediaFrameworkWithSSL.h │ ├── IJKMediaPlayer.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── IJKMediaFrameworkWithSSL.xcscheme │ └── 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 ├── IJKMediaPodDemo │ ├── .gitignore │ ├── IJKMediaPodDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── 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 │ ├── 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 /.gitignore: -------------------------------------------------------------------------------- 1 | # ----- 2 | build/ 3 | ffmpeg-temp/ 4 | android/ffmpeg-* 5 | android/openssl-* 6 | ios/ffmpeg-* 7 | ios/openssl-* 8 | extra 9 | .DS_Store 10 | ijkmedia/ijkyuv/ 11 | ijkmedia/ijksoundtouch 12 | ijkprof/android-ndk-profiler/ 13 | 14 | # built application files 15 | *.apk 16 | *.ap_ 17 | 18 | # files for the dex VM 19 | *.dex 20 | 21 | # Java class files 22 | *.class 23 | 24 | # generated files 25 | bin/ 26 | gen/ 27 | libs/ 28 | obj/ 29 | ijkmedia/ijkplayer/ijkversion.h 30 | 31 | # Local configuration file (sdk path, etc) 32 | local.properties 33 | 34 | # Android Studio 35 | .idea 36 | .gradle 37 | build/ 38 | 39 | # Xcode 40 | xcuserdata 41 | xcshareddata 42 | *.xccheckout 43 | 44 | #mingw windows 45 | .deps/ 46 | .libs/ 47 | autom4te.cache/ 48 | *.o 49 | *.lo 50 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | android: 3 | components: 4 | - platform-tools 5 | - tools 6 | - build-tools-23.0.3 7 | - android-23 8 | - extra-android-support 9 | - extra-android-m2repository 10 | 11 | script: 12 | - cd android/ijkplayer 13 | - ./gradlew assemble 14 | -------------------------------------------------------------------------------- /COPYING.LGPLv2.1.txt: -------------------------------------------------------------------------------- 1 | COPYING.LGPLv2.1 -------------------------------------------------------------------------------- /MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /android/android-ndk-prof: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkprof/android-ndk-profiler-dummy/jni -------------------------------------------------------------------------------- /android/contrib/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | ffmpeg-* 3 | libsoxr-* 4 | openssl-* 5 | -------------------------------------------------------------------------------- /android/contrib/sync-mirrors.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2014 Zhang Rui 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | cd ffmpeg-armv7a 19 | 20 | git checkout ffmpeg 21 | git pull 22 | git checkout - 23 | 24 | git checkout libav 25 | git pull 26 | git checkout - 27 | 28 | git checkout master 29 | git pull 30 | git merge ffmpeg 31 | git checkout - 32 | 33 | git push origin --all --follow-tags 34 | git push gitcafe --all --follow-tags 35 | git push oschina --all --follow-tags 36 | git push csdn --all --follow-tags 37 | 38 | cd - 39 | -------------------------------------------------------------------------------- /android/ijk-addr2line.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | addr2line -e ijkplayer/ijkplayer-armv7a/src/main/obj/local/armeabi-v7a/lib$1.so 4 | -------------------------------------------------------------------------------- /android/ijk-ndk-stack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | adb logcat | ndk-stack -sym ijkplayer/ijkplayer-armv7a/src/main/obj/local/armeabi-v7a 4 | -------------------------------------------------------------------------------- /android/ijkplayer/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | android-ndk-prof 9 | -------------------------------------------------------------------------------- /android/ijkplayer/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.1.3' 9 | 10 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' 11 | classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7' 12 | // NOTE: Do not place your application dependencies here; they belong 13 | // in the individual module build.gradle files 14 | } 15 | } 16 | 17 | allprojects { 18 | repositories { 19 | jcenter() 20 | } 21 | } 22 | 23 | ext { 24 | compileSdkVersion = 25 25 | buildToolsVersion = "25.0.3" 26 | 27 | targetSdkVersion = 25 28 | 29 | versionCode = 800800 30 | versionName = "0.8.8" 31 | } 32 | 33 | wrapper { 34 | gradleVersion = '2.14.1' 35 | } 36 | -------------------------------------------------------------------------------- /android/ijkplayer/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/ijkplayer/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Aug 24 16:26:25 CST 2016 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-2.14.1-all.zip 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion 21 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | sourceSets.main { 21 | jniLibs.srcDirs 'src/main/libs' 22 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | } 29 | 30 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-arm64 2 | POM_ARTIFACT_ID=ijkplayer-arm64 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/androidTest/java/tv/danmaku/ijk/media/player_arm64/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player_arm64; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-arm64 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/java/tv/danmaku/ijk/media/player_arm64/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player_arm64; 19 | 20 | public class Pragma { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/Android.mk -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013-2014 Bilibili 2 | # copyright (c) 2013-2014 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | APP_OPTIM := release 21 | APP_PLATFORM := android-21 22 | APP_ABI := arm64-v8a 23 | NDK_TOOLCHAIN_VERSION=4.9 24 | APP_PIE := false 25 | 26 | APP_STL := stlport_static 27 | 28 | APP_CFLAGS := -O3 -Wall -pipe \ 29 | -ffast-math \ 30 | -fstrict-aliasing -Werror=strict-aliasing \ 31 | -Wno-psabi -Wa,--noexecstack \ 32 | -DANDROID -DNDEBUG 33 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/jni/ffmpeg: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/ffmpeg -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/jni/ijkmedia: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkmedia -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library=true 16 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-arm64/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion 9 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | sourceSets.main { 21 | jniLibs.srcDirs 'src/main/libs' 22 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | } 29 | 30 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-armv5 2 | POM_ARTIFACT_ID=ijkplayer-armv5 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/androidTest/java/tv/danmaku/ijk/media/player_armv5/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player_armv5; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-armv5 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/java/tv/danmaku/ijk/media/player_armv5/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player_armv5; 19 | 20 | public class Pragma { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/Android.mk -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013-2014 Bilibili 2 | # copyright (c) 2013-2014 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | APP_OPTIM := release 21 | APP_PLATFORM := android-9 22 | APP_ABI := armeabi 23 | NDK_TOOLCHAIN_VERSION=4.9 24 | APP_PIE := false 25 | 26 | APP_STL := stlport_static 27 | 28 | APP_CFLAGS := -O3 -Wall -pipe \ 29 | -ffast-math \ 30 | -fstrict-aliasing -Werror=strict-aliasing \ 31 | -Wno-psabi -Wa,--noexecstack \ 32 | -DANDROID -DNDEBUG 33 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/jni/ffmpeg: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/ffmpeg -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/jni/ijkmedia: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkmedia -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library=true 16 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv5/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion 9 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | sourceSets.main { 21 | jniLibs.srcDirs 'src/main/libs' 22 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | } 29 | 30 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-armv7a 2 | POM_ARTIFACT_ID=ijkplayer-armv7a 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/androidTest/java/tv/danmaku/ijk/media/player_armv7a/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player_armv7a; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-armv7a 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/java/tv/danmaku/ijk/media/player_armv7a/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player_armv7a; 19 | 20 | public class Pragma { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Bilibili 2 | # copyright (c) 2013 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | APP_OPTIM := release 21 | APP_PLATFORM := android-9 22 | APP_ABI := armeabi-v7a 23 | NDK_TOOLCHAIN_VERSION=4.9 24 | APP_PIE := false 25 | 26 | APP_STL := stlport_static 27 | 28 | APP_CFLAGS := -O3 -Wall -pipe \ 29 | -ffast-math \ 30 | -fstrict-aliasing -Werror=strict-aliasing \ 31 | -Wno-psabi -Wa,--noexecstack \ 32 | -DANDROID -DNDEBUG 33 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE := ijkffmpeg 5 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg.so 6 | include $(PREBUILT_SHARED_LIBRARY) -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkmedia -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library=true 16 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/androidTest/java/tv/danmaku/ijk/media/example/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.example; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-sample 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library.reference.1=../../../player-arm64/src/main 16 | android.library.reference.2=../../../player-armv5/src/main 17 | android.library.reference.3=../../../player-armv7a/src/main 18 | android.library.reference.4=../../../player-x86/src/main 19 | android.library.reference.5=../../../player-java/src/main 20 | android.library.reference.6=../../../../contrib/appcompat 21 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_action_dark_settings.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-hdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_action_dark_settings.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-mdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_action_dark_settings.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_action_dark_settings.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_action_dark_settings.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/drawable-xxxhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/activity_app.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/fragment_file_list.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 19 | 20 | 26 | 27 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/fragment_file_list_item.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/fragment_track_list.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 17 | 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/table_media_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/table_media_info_row1.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/table_media_info_row2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/table_media_info_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/layout/widget_toolbar.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/menu/menu_app.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/menu/menu_player.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | 22 | 26 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/android/ijkplayer/ijkplayer-example/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #66000000 4 | 5 | @color/ijk_color_blue_500 6 | #E3F2FD 7 | #BBDEFB 8 | #90CAF9 9 | #64B5F6 10 | #42A5F5 11 | #2196F3 12 | #1E88E5 13 | #1976D2 14 | #1565C0 15 | #0D47A1 16 | 17 | #77000000 18 | 19 | 20 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | @dimen/activity_horizontal_margin 7 | @dimen/activity_vertical_margin 8 | 9 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-example/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-exo 2 | POM_ARTIFACT_ID=ijkplayer-exo 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/src/androidTest/java/tv/danmaku/ijk/media/exo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.exo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ijkplayer-exo 3 | 4 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | lintOptions { 11 | abortOnError false 12 | } 13 | defaultConfig { 14 | minSdkVersion 9 15 | targetSdkVersion rootProject.ext.targetSdkVersion 16 | } 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | compile fileTree(dir: 'libs', include: ['*.jar']) 27 | } 28 | 29 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-java 2 | POM_ARTIFACT_ID=ijkplayer-java 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/androidTest/java/tv/danmaku/ijk/media/player/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-java 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | import android.graphics.SurfaceTexture; 21 | 22 | public interface ISurfaceTextureHolder { 23 | void setSurfaceTexture(SurfaceTexture surfaceTexture); 24 | 25 | SurfaceTexture getSurfaceTexture(); 26 | 27 | void setSurfaceTextureHost(ISurfaceTextureHost surfaceTextureHost); 28 | } 29 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHost.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | import android.graphics.SurfaceTexture; 21 | 22 | public interface ISurfaceTextureHost { 23 | void releaseSurfaceTexture(SurfaceTexture surfaceTexture); 24 | } 25 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkLibLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | public interface IjkLibLoader { 21 | void loadLibrary(String libName) throws UnsatisfiedLinkError, 22 | SecurityException; 23 | } 24 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/MediaInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | public class MediaInfo { 21 | public String mMediaPlayerName; 22 | 23 | public String mVideoDecoder; 24 | public String mVideoDecoderImpl; 25 | 26 | public String mAudioDecoder; 27 | public String mAudioDecoderImpl; 28 | 29 | public IjkMediaMeta mMeta; 30 | } 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/annotations/AccessedByNative.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.annotations; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | /** 26 | * is used by the JNI generator to create the necessary JNI 27 | * bindings and expose this method to native code. 28 | */ 29 | @Target(ElementType.FIELD) 30 | @Retention(RetentionPolicy.CLASS) 31 | public @interface AccessedByNative { 32 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/exceptions/IjkMediaException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.exceptions; 19 | 20 | public class IjkMediaException extends Exception { 21 | private static final long serialVersionUID = 7234796519009099506L; 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/ffmpeg/FFmpegApi.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.ffmpeg; 2 | 3 | public class FFmpegApi { 4 | public static native String av_base64_encode(byte in[]); 5 | } 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/IAndroidIO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Bilibili 3 | * Copyright (C) 2016 Raymond Zheng 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | import java.io.IOException; 21 | 22 | @SuppressWarnings("RedundantThrows") 23 | public interface IAndroidIO { 24 | int open(String url) throws IOException; 25 | int read(byte[] buffer, int size) throws IOException; 26 | long seek(long offset, int whence) throws IOException; 27 | int close() throws IOException; 28 | } 29 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | import java.io.IOException; 21 | 22 | @SuppressWarnings("RedundantThrows") 23 | public interface IMediaDataSource { 24 | int readAt(long position, byte[] buffer, int offset, int size) throws IOException; 25 | 26 | long getSize() throws IOException; 27 | 28 | void close() throws IOException; 29 | } 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | public interface IMediaFormat { 21 | // Common keys 22 | String KEY_MIME = "mime"; 23 | 24 | // Video Keys 25 | String KEY_WIDTH = "width"; 26 | String KEY_HEIGHT = "height"; 27 | 28 | String getString(String name); 29 | 30 | int getInteger(String name); 31 | } 32 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | public interface ITrackInfo { 21 | int MEDIA_TRACK_TYPE_AUDIO = 2; 22 | int MEDIA_TRACK_TYPE_METADATA = 5; 23 | int MEDIA_TRACK_TYPE_SUBTITLE = 4; 24 | int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; 25 | int MEDIA_TRACK_TYPE_UNKNOWN = 0; 26 | int MEDIA_TRACK_TYPE_VIDEO = 1; 27 | 28 | IMediaFormat getFormat(); 29 | 30 | String getLanguage(); 31 | 32 | int getTrackType(); 33 | 34 | String getInfoInline(); 35 | } 36 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/pragma/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Bilibili 3 | * Copyright (C) 2013 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package tv.danmaku.ijk.media.player.pragma; 18 | 19 | /*- 20 | * configurated by app project 21 | */ 22 | public class Pragma { 23 | public static final boolean ENABLE_VERBOSE = true; 24 | } 25 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library=true 16 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion 9 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | sourceSets.main { 21 | jniLibs.srcDirs 'src/main/libs' 22 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | } 29 | 30 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-x86 2 | POM_ARTIFACT_ID=ijkplayer-x86 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/androidTest/java/tv/danmaku/ijk/media/ijkplayer/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.ijkplayer; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ijkplayer-x86 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/java/tv/danmaku/ijk/media/player_x86/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player_x86; 19 | 20 | public class Pragma { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/Android.mk -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013-2014 Bilibili 2 | # copyright (c) 2013-2014 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | APP_OPTIM := release 21 | APP_PLATFORM := android-9 22 | APP_ABI := x86 23 | NDK_TOOLCHAIN_VERSION=4.9 24 | APP_PIE := false 25 | 26 | APP_STL := stlport_static 27 | 28 | APP_CFLAGS := -O3 -Wall -pipe \ 29 | -ffast-math \ 30 | -fstrict-aliasing -Werror=strict-aliasing \ 31 | -Wno-psabi -Wa,--noexecstack \ 32 | -DANDROID -DNDEBUG 33 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE := ijkffmpeg 5 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg.so 6 | include $(PREBUILT_SHARED_LIBRARY) -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/include: -------------------------------------------------------------------------------- 1 | ../../../../../../contrib/build/ffmpeg-x86/output/include/ -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/ijkmedia: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkmedia -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-22 15 | android.library=true 16 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | // http://tools.android.com/tech-docs/new-build-system/tips 5 | //noinspection GroovyAssignabilityCheck 6 | compileSdkVersion rootProject.ext.compileSdkVersion 7 | //noinspection GroovyAssignabilityCheck 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion 21 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | sourceSets.main { 21 | jniLibs.srcDirs 'src/main/libs' 22 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | } 29 | 30 | apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle"); 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=ijkplayer-x86_64 2 | POM_ARTIFACT_ID=ijkplayer-x86_64 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android/ADK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/androidTest/java/com/example/ijkplayer_x86_64/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.ijkplayer_x86_64; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | ../../../../ijkplayer-armv7a/src/main/jni/Android.mk -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/jni/ffmpeg/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE := ijkffmpeg 5 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg.so 6 | include $(PREBUILT_SHARED_LIBRARY) -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/jni/ffmpeg/include: -------------------------------------------------------------------------------- 1 | ../../../../../../contrib/build/ffmpeg-x86_64/output/include/ -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/jni/ijkmedia: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkmedia -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86_64/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ijkplayer-x86_64 3 | 4 | -------------------------------------------------------------------------------- /android/ijkplayer/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':ijkplayer-armv5', ':ijkplayer-x86_64' 2 | include ':ijkplayer-armv7a' 3 | include ':ijkplayer-arm64' 4 | include ':ijkplayer-x86' 5 | 6 | include ':ijkplayer-java' 7 | include ':ijkplayer-exo' 8 | 9 | include ':ijkplayer-example' 10 | 11 | -------------------------------------------------------------------------------- /android/ijkplayer/tools/gradle-on-demand.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | gradle.startParameter.taskNames.each { task -> 18 | def taskName = task.split(":").last() 19 | switch (taskName) { 20 | case "uploadArchives": 21 | apply from: new File(rootProject.projectDir, 'tools/gradle-mvn-push.gradle') 22 | break; 23 | case "bintrayUpload": 24 | apply from: new File(rootProject.projectDir, 'tools/gradle-bintray-upload.gradle') 25 | break; 26 | default: 27 | // do nothing 28 | break; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /android/patches/0001-gitignore-ignore-.externalNativeBuild.patch: -------------------------------------------------------------------------------- 1 | From dc4847b1e8ff5d35576f840db59aec0a3d3fc72b Mon Sep 17 00:00:00 2001 2 | From: ctiao 3 | Date: Mon, 29 Aug 2016 14:48:08 +0800 4 | Subject: [PATCH 1/2] gitignore: ignore ".externalNativeBuild" 5 | 6 | --- 7 | android/ijkplayer/.gitignore | 1 + 8 | 1 file changed, 1 insertion(+) 9 | 10 | diff --git a/android/ijkplayer/.gitignore b/android/ijkplayer/.gitignore 11 | index eac8754..2a3badc 100644 12 | --- a/android/ijkplayer/.gitignore 13 | +++ b/android/ijkplayer/.gitignore 14 | @@ -6,3 +6,4 @@ 15 | /build 16 | /captures 17 | android-ndk-prof 18 | +.externalNativeBuild 19 | \ No newline at end of file 20 | -- 21 | 2.7.4 (Apple Git-66) 22 | 23 | -------------------------------------------------------------------------------- /android/patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch: -------------------------------------------------------------------------------- 1 | From 5d70fa0496f9ebfbcfa3786d85c74c690d66781e Mon Sep 17 00:00:00 2001 2 | From: ctiao 3 | Date: Mon, 29 Aug 2016 14:50:34 +0800 4 | Subject: [PATCH 2/2] gradle: upgrade build-tool to 2.2.0-rc1 5 | 6 | --- 7 | android/ijkplayer/build.gradle | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/android/ijkplayer/build.gradle b/android/ijkplayer/build.gradle 11 | index 0de03ec..6132c1d 100644 12 | --- a/android/ijkplayer/build.gradle 13 | +++ b/android/ijkplayer/build.gradle 14 | @@ -5,7 +5,7 @@ buildscript { 15 | jcenter() 16 | } 17 | dependencies { 18 | - classpath 'com.android.tools.build:gradle:2.1.3' 19 | + classpath 'com.android.tools.build:gradle:2.2.0-rc1' 20 | 21 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' 22 | classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7' 23 | -- 24 | 2.7.4 (Apple Git-66) 25 | 26 | -------------------------------------------------------------------------------- /android/patches/0004-arm64-link-prebuilt-staic-libraries-of-ffmepg.patch: -------------------------------------------------------------------------------- 1 | 0004-armv7a-link-prebuilt-staic-libraries-of-ffmepg.patch -------------------------------------------------------------------------------- /android/patches/0004-armv5-link-prebuilt-staic-libraries-of-ffmepg.patch: -------------------------------------------------------------------------------- 1 | 0004-armv7a-link-prebuilt-staic-libraries-of-ffmepg.patch -------------------------------------------------------------------------------- /compile-android-j4a.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2016 Bilibili 4 | # Copyright (C) 2016 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | set -e 20 | 21 | cd extra/jni4android-fork 22 | ./configure --incdir=../../ijkmedia/ijkj4a --bindir=../bin 23 | make install 24 | cd - 25 | 26 | cd ijkmedia/ijkj4a 27 | make 28 | cd - 29 | -------------------------------------------------------------------------------- /config/module.sh: -------------------------------------------------------------------------------- 1 | module-lite.sh -------------------------------------------------------------------------------- /doc/preflight_checklist.md: -------------------------------------------------------------------------------- 1 | ChangeLog 2 | ----------------------- 3 | * Update NEWS.md 4 | * Update README.md 5 | * Commit and push 6 | 7 | FFmpeg 8 | ----------------------- 9 | * Build and test iOS and Android demo locally 10 | * Modify ffmpeg version in init-ios.sh and init-android.sh 11 | * Modify ffmpeg version in `IJKFFMoviePlayerController` (by running `sh init-ios.sh`) 12 | * Commit and push 13 | 14 | OpenSSL 15 | ---------------------- 16 | * Check openssl latest stable version 17 | 18 | ijkplayer 19 | ----------------------- 20 | * Update version.sh 21 | * Create a tag (subtitle) 22 | * Commit and push (TAG ONLY) 23 | 24 | Travis-ci 25 | ----------------------- 26 | * Modify ijk version in `.travis.yaml` in iOS and Android ci repo. 27 | * Ensure compile task has been started on travis-ci. 28 | * Ensure Andoird release has been released in bintray. 29 | 30 | Take off 31 | ----------------------- 32 | * Push master to github 33 | -------------------------------------------------------------------------------- /extra/init-extra.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2015 Zhang Rui 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | ln -s /opt/ijkplayer/ffmpeg 19 | ln -s /opt/ijkplayer/gas-preprocessor 20 | ln -s /opt/ijkplayer/libyuv 21 | ln -s /opt/ijkplayer/openssl 22 | ln -s /opt/ijkplayer/android-ndk-profiler 23 | ln -s /opt/ijkplayer/ExoPlayer 24 | 25 | -------------------------------------------------------------------------------- /ijkmedia/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Bilibili 2 | # copyright (c) 2013 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | LOCAL_PATH := $(call my-dir) 21 | include $(call all-subdir-makefiles) 22 | -------------------------------------------------------------------------------- /ijkmedia/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=ijksdl ijkplayer ijkplayer/windows 2 | 3 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/AudioTrack.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/AudioTrack.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/AudioTrack.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_AudioTrack); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/MediaCodec.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/MediaCodec.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/MediaCodec.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_MediaCodec); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/MediaFormat.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/MediaFormat.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/MediaFormat.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_MediaFormat); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/PlaybackParams.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/PlaybackParams.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/media/PlaybackParams.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_PlaybackParams); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/os/Build.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/os/Build.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/os/Build.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_os_Build); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/os/Bundle.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/os/Bundle.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/android/os/Bundle.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_os_Bundle); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * https://github.com/Bilibili/jni4android 19 | * This file is automatically generated by jni4android, do not modify. 20 | */ 21 | 22 | #ifndef J4A__java_nio_Buffer__H 23 | #define J4A__java_nio_Buffer__H 24 | 25 | #include "j4a/j4a_base.h" 26 | 27 | int J4A_loadClass__J4AC_java_nio_Buffer(JNIEnv *env); 28 | 29 | #endif//J4A__java_nio_Buffer__H 30 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/Buffer.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_Buffer); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/nio/ByteBuffer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/ByteBuffer.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/nio/ByteBuffer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_ByteBuffer); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/util/ArrayList.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/util/ArrayList.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/java/util/ArrayList.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_util_ArrayList); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_IjkMediaPlayer); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IAndroidIO); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.h" -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IMediaDataSource); -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/j4a_allclasses.c: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2016 Zhang Rui 3 | * 4 | * This file is part of jni4android. 5 | * 6 | * jni4android 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 | * jni4android 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 jni4android; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #include "j4a_allclasses.h" 22 | 23 | int J4A_LoadAll__catchAll(JNIEnv *env) 24 | { 25 | int ret = 0; 26 | 27 | // load android.os.Build at very beginning 28 | J4A_LOAD_CLASS(android_os_Build); 29 | 30 | #include "j4a/j4a_allclasses.loader.h" 31 | 32 | fail: 33 | return ret; 34 | } 35 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/j4a_allclasses.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2016 Zhang Rui 3 | * 4 | * This file is part of jni4android. 5 | * 6 | * jni4android 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 | * jni4android 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 jni4android; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef IJKJ4A__J4A__J4A_ALLCLASSES__H 22 | #define IJKJ4A__J4A__J4A_ALLCLASSES__H 23 | 24 | #include "j4a_base.h" 25 | #include "j4a_allclasses.include.h" 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/j4a_allclasses.include.h: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/Buffer.h" 2 | #include "j4a/class/java/nio/ByteBuffer.h" 3 | #include "j4a/class/java/util/ArrayList.h" 4 | #include "j4a/class/android/media/AudioTrack.h" 5 | #include "j4a/class/android/media/MediaCodec.h" 6 | #include "j4a/class/android/media/MediaFormat.h" 7 | #include "j4a/class/android/media/PlaybackParams.h" 8 | #include "j4a/class/android/os/Build.h" 9 | #include "j4a/class/android/os/Bundle.h" 10 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.h" 11 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.h" 12 | #include "j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.h" 13 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/j4a/j4a_allclasses.loader.h: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_Buffer); 2 | J4A_LOAD_CLASS(java_nio_ByteBuffer); 3 | J4A_LOAD_CLASS(java_util_ArrayList); 4 | J4A_LOAD_CLASS(android_media_AudioTrack); 5 | J4A_LOAD_CLASS(android_media_MediaCodec); 6 | J4A_LOAD_CLASS(android_media_MediaFormat); 7 | J4A_LOAD_CLASS(android_media_PlaybackParams); 8 | J4A_LOAD_CLASS(android_os_Build); 9 | J4A_LOAD_CLASS(android_os_Bundle); 10 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IMediaDataSource); 11 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IAndroidIO); 12 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_IjkMediaPlayer); 13 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/media/AudioTrack.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @SimpleCClassName 4 | @IncludeUtil 5 | public class AudioTrack { 6 | public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode); 7 | 8 | public static int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat); 9 | public static float getMaxVolume(); 10 | public static float getMinVolume(); 11 | public static int getNativeOutputSampleRate(int streamType); 12 | 13 | public void play(); 14 | public void pause(); 15 | public void stop(); 16 | public void flush(); 17 | public void release(); 18 | 19 | public int write(byte[] audioData, int offsetInBytes, int sizeInBytes); 20 | 21 | public int setStereoVolume(float leftGain, float rightGain); 22 | public int getAudioSessionId(); 23 | 24 | @MinApi(23) 25 | public PlaybackParams getPlaybackParams(); 26 | @MinApi(23) 27 | void setPlaybackParams(PlaybackParams params); 28 | 29 | 30 | int getStreamType(); 31 | int getSampleRate(); 32 | int getPlaybackRate(); 33 | int setPlaybackRate(int sampleRateInHz); 34 | } 35 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/media/MediaCodec.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | import java.nio.ByteBuffer; 4 | import android.view.Surface; 5 | 6 | @SimpleCClassName 7 | @MinApi(16) 8 | public class MediaCodec { 9 | public static class BufferInfo { 10 | public int flags; 11 | public int offset; 12 | public long presentationTimeUs; 13 | public int size; 14 | 15 | public BufferInfo(); 16 | } 17 | 18 | public static MediaCodec createByCodecName(String name); 19 | 20 | public void configure(MediaFormat format, Surface surface, MediaCrypto crypto, int flags); 21 | 22 | public final MediaFormat getOutputFormat(); 23 | 24 | public ByteBuffer[] getInputBuffers(); 25 | 26 | public final int dequeueInputBuffer(long timeoutUs); 27 | public final void queueInputBuffer(int index, int offset, int size, long presentationTimeUs, int flags); 28 | 29 | public final int dequeueOutputBuffer(MediaCodec.BufferInfo info, long timeoutUs); 30 | public final void releaseOutputBuffer(int index, boolean render); 31 | 32 | public final void start(); 33 | public final void stop(); 34 | public final void flush(); 35 | public final void release(); 36 | } 37 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/media/MediaCrypto.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @Hide 4 | @MinApi(16) 5 | public class MediaCrypto { 6 | } 7 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/media/MediaFormat.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | @SimpleCClassName 6 | @MinApi(16) 7 | public class MediaFormat { 8 | public MediaFormat(); 9 | 10 | public final static MediaFormat createVideoFormat(String mime, int width, int height); 11 | 12 | public final int getInteger(String name); 13 | public final void setInteger(String name, int value); 14 | public final void setByteBuffer(String name, ByteBuffer bytes); 15 | } 16 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/media/PlaybackParams.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @SimpleCClassName 4 | @MinApi(23) 5 | public class PlaybackParams { 6 | public PlaybackParams setSpeed(float speed); 7 | } 8 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/os/Build.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | public class Build { 4 | public static class VERSION { 5 | public static final int SDK_INT; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/android/os/Bundle.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | import java.util.ArrayList; 4 | 5 | @SimpleCClassName 6 | public class Bundle { 7 | public Bundle(); 8 | 9 | public int getInt(String key, int defaultValue); 10 | public void putInt(String key, int value); 11 | 12 | public String getString(String key); 13 | public void putString(String key, String value); 14 | 15 | public void putParcelableArrayList(String key, ArrayList value); 16 | public long getLong(String key); 17 | public void putLong(String key, long value); 18 | } 19 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/java/nio/Buffer.java: -------------------------------------------------------------------------------- 1 | package java.nio; 2 | 3 | public class Buffer { 4 | } 5 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/java/nio/ByteBuffer.java: -------------------------------------------------------------------------------- 1 | package java.nio; 2 | 3 | import android.os.Build; 4 | 5 | @SimpleCClassName 6 | @IncludeUtil 7 | public class ByteBuffer { 8 | public static ByteBuffer allocate(int capacity); 9 | public static ByteBuffer allocateDirect(int capacity); 10 | public final Buffer limit(int newLimit); 11 | } 12 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/java/util/ArrayList.java: -------------------------------------------------------------------------------- 1 | package java.util; 2 | 3 | @SimpleCClassName 4 | public class ArrayList { 5 | public ArrayList(); 6 | boolean add(Object object); 7 | } 8 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player; 2 | 3 | import android.os.Bundle; 4 | 5 | @SimpleCClassName 6 | public class IjkMediaPlayer { 7 | private long mNativeMediaPlayer; 8 | private long mNativeMediaDataSource; 9 | private long mNativeAndroidIO; 10 | 11 | private static void postEventFromNative(Object weakThiz, int what, int arg1, int arg2, Object obj); 12 | private static String onSelectCodec(Object weakThiz, String mimeType, int profile, int level); 13 | private static boolean onNativeInvoke(Object weakThiz, int what, Bundle args); 14 | } 15 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/misc/IAndroidIO.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.misc; 2 | 3 | @SimpleCClassName 4 | public interface IAndroidIO { 5 | int open(String url); 6 | int read(byte[] buffer, int size); 7 | long seek(long offset, int whence); 8 | int close(); 9 | } 10 | -------------------------------------------------------------------------------- /ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.misc; 2 | 3 | @SimpleCClassName 4 | public interface IMediaDataSource { 5 | int readAt(long position, byte[] buffer, int offset, int size); 6 | long getSize(); 7 | void close(); 8 | } 9 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES=libijkplayer.la 2 | libijkplayer_la_SOURCES=ff_cmdutils.c ff_ffpipeline.c ff_ffpipenode.c ff_ffplay.c ijkmeta.c ijkplayer.c ijkavformat/allformats.c ijkavformat/ijkasync.c ijkavformat/ijkio.c ijkavformat/ijkioapplication.c ijkavformat/ijkiocache.c ijkavformat/ijkioffio.c ijkavformat/ijkiomanager.c ijkavformat/ijkioprotocol.c ijkavformat/ijkiourlhook.c ijkavformat/ijklivehook.c ijkavformat/ijklongurl.c ijkavformat/ijkmediadatasource.c ijkavformat/ijksegment.c ijkavformat/ijkurlhook.c ijkavutil/ijkdict.c ijkavutil/ijkstl.cpp ijkavutil/ijkfifo.c ijkavutil/ijkthreadpool.c ijkavutil/ijktree.c ijkavutil/ijkutils.c pipeline/ffpipeline_ffplay.c pipeline/ffpipenode_ffplay_vdec.c windows/pipeline/ffpipeline_windows.c windows/ijkplayer_win.c 3 | libijkplayer_la_LDFLAGS = -no-undefined -version-info 0:0:0 4 | libijkplayer_la_CFLAGS = -g -O0 5 | AM_CPPFLAGS=-I../../../ijkplayer-ffmpeg/ -I../../../ijkplayer-ffmpeg/build 6 | libijkplayer_la_LIBADD=-L/local/lib -lavformat -lpthread -lavdevice -lavcodec -lavutil -lswscale -lswresample -lijksdl 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/android/ffmpeg_api_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffmpeg_api_jni.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef IJKPLAYER_ANDROID__FFMPEG_API_JNI_H 25 | 26 | #include 27 | 28 | int FFmpegApi_global_init(JNIEnv *env); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ff_fferror.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ff_fferror.h 3 | * 4 | * Copyright (c) 2003 Bilibili 5 | * Copyright (c) 2003 Fabrice Bellard 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef FFPLAY__FF_FFERROR_H 26 | #define FFPLAY__FF_FFERROR_H 27 | 28 | #define EIJK_FAILED -1 29 | #define EIJK_OUT_OF_MEMORY -2 30 | #define EIJK_INVALID_STATE -3 31 | #define EIJK_NULL_IS_PTR -4 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ijkavformat/ijkavformat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijkavformat.h 3 | * 4 | * Copyright (c) 2003 Bilibili 5 | * Copyright (c) 2003 Fabrice Bellard 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef AVFORMAT_IJKAVFORMAT_H 26 | #define AVFORMAT_IJKAVFORMAT_H 27 | 28 | #define AV_PKT_FLAG_DISCONTINUITY 0x0100 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * Copyright (c) 2016 Raymond Zheng 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer 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 | * ijkPlayer 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 ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | #include "ijkiourl.h" 22 | 23 | int ijkio_alloc_url(IjkURLContext **inner, const char *url); 24 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ijkavutil/ijkutils.c: -------------------------------------------------------------------------------- 1 | 2 | #include "ijkutils.h" 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | void ijk_av_freep(void *arg) 11 | { 12 | void *val; 13 | 14 | memcpy(&val, arg, sizeof(val)); 15 | memcpy(arg, &(void *){ NULL }, sizeof(val)); 16 | free(val); 17 | } 18 | 19 | int ijk_av_strstart(const char *str, const char *pfx, const char **ptr) 20 | { 21 | while (*pfx && *pfx == *str) { 22 | pfx++; 23 | str++; 24 | } 25 | if (!*pfx && ptr) 26 | *ptr = str; 27 | return !*pfx; 28 | } 29 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ijkversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef IJKVERSION_H 3 | #define IJKVERSION_H 4 | #define IJKPLAYER_VERSION "c9d4e949" 5 | #endif /* IJKVERSION_H */ 6 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/pipeline/ffpipeline_ffplay.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipeline_ffplay.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPELINE_FFPLAY_H 25 | #define FFPLAY__FF_FFPIPELINE_FFPLAY_H 26 | 27 | #include "../ff_ffpipeline.h" 28 | 29 | // There is no default aout for ffplay. 30 | // IJKFF_Pipeline *ffpipeline_create_from_ffplay(FFPlayer *ffp); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/pipeline/ffpipenode_ffplay_vdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipenode_ffplay_vdec.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPENODE_FFPLAY_VDEC_H 25 | #define FFPLAY__FF_FFPIPENODE_FFPLAY_VDEC_H 26 | 27 | #include "../ff_ffpipenode.h" 28 | 29 | struct FFPlayer; 30 | 31 | IJKFF_Pipenode *ffpipenode_create_video_decoder_from_ffplay(struct FFPlayer *ffp); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/windows/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_PROGRAMS=winplayer 2 | winplayer_SOURCES=ijkplayer_win_test.c 3 | 4 | winplayer_LDFLAGS=-D_GNU_SOURCE -no-undefined -version-info 0:0:0 5 | AM_CPPFLAGS=-I../../ijksdl/include -I../../../../ijkplayer-ffmpeg/ -I../../../../ijkplayer-ffmpeg/build 6 | winplayer_LDADD=-L/local/lib -lijkplayer -lijksdl 7 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/windows/ijkplayer_win.c: -------------------------------------------------------------------------------- 1 | #include "ijkplayer_win.h" 2 | #include 3 | #include "../ff_fferror.h" 4 | #include "../ff_ffplay.h" 5 | #include "../ijkplayer_internal.h" 6 | #include "../pipeline/ffpipeline_ffplay.h" 7 | 8 | IjkMediaPlayer *ijkmp_windows_create(int(*msg_loop)(void*)) 9 | { 10 | IjkMediaPlayer *mp = ijkmp_create(msg_loop); 11 | if (!mp) 12 | goto fail; 13 | 14 | mp->ffplayer->vout = SDL_VoutWindows_CreateForWindowsSurface(); 15 | if (!mp->ffplayer->vout) 16 | goto fail; 17 | 18 | mp->ffplayer->pipeline = ffpipeline_create_from_windows(mp->ffplayer); 19 | if (!mp->ffplayer->pipeline) 20 | goto fail; 21 | 22 | return mp; 23 | 24 | fail: 25 | ijkmp_dec_ref_p(&mp); 26 | return NULL; 27 | } -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/windows/ijkplayer_win.h: -------------------------------------------------------------------------------- 1 | #ifndef IJKPLAYER_WINDOWS__IJKPLAYER_WINDOWS_H 2 | #define IJKPLAYER_WINDOWS__IJKPLAYER_WINDOWS_H 3 | 4 | #include "../ijkplayer.h" 5 | #include "../ijkplayer_internal.h" 6 | 7 | IjkMediaPlayer *ijkmp_windows_create(int(*msg_loop)(void*)); 8 | 9 | #endif -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/windows/pipeline/ffpipeline_windows.h: -------------------------------------------------------------------------------- 1 | #include "../../ijkplayer.h" 2 | #include "../../ff_ffplay_def.h" 3 | #include "../../ff_ffpipeline.h" -------------------------------------------------------------------------------- /ijkmedia/ijksdl/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES=libijksdl.la 2 | libijksdl_la_SOURCES=ijksdl_aout.c ijksdl_audio.c ijksdl_egl.c ijksdl_error.c ijksdl_mutex.c ijksdl_stdinc.c ijksdl_thread.c ijksdl_timer.c ijksdl_vout.c windows/ijksdl_aout_win_openal.c windows/ijksdl_utils_win.c windows/ijksdl_vout_win_nativewindows.c windows/ijksdl_vout_win_surface.c gles2/fsh/rgb.fsh.c gles2/fsh/yuv420p.fsh.c gles2/fsh/yuv420sp.fsh.c gles2/fsh/yuv444p10le.fsh.c gles2/vsh/mvp.vsh.c gles2/color.c gles2/common.c gles2/renderer.c gles2/renderer_rgb.c gles2/renderer_yuv420p.c gles2/renderer_yuv420sp.c gles2/renderer_yuv444p10le.c gles2/shader.c ffmpeg/abi_all/image_convert.c ffmpeg/ijksdl_vout_overlay_ffmpeg.c 3 | libijksdl_la_LDFLAGS = -no-undefined -version-info 0:0:0 4 | libijksdl_la_CFLAGS = -g -O0 5 | AM_CPPFLAGS=-I../../../ijkplayer-ffmpeg/ -I../../../ijkplayer-ffmpeg/build -I./include 6 | libijksdl_la_LIBADD=-L/local/lib -lEGL -lGLESv2 -lpthread -lswscale -lavutil -L/local/bin -lOpenAL32 -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_dummy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Bilibili 3 | * copyright (c) 2014 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer 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 | * ijkPlayer 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 ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_DUMMY_H 23 | #define IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_DUMMY_H 24 | 25 | #include "ijksdl_codec_android_mediacodec.h" 26 | 27 | SDL_AMediaCodec *SDL_AMediaCodecDummy_create(); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_class.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_class.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_CLASS_H 26 | #define IJKSDL__IJKSDL_CLASS_H 27 | 28 | typedef struct SDL_Class { 29 | const char *name; 30 | } SDL_Class; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_error.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_error.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "ijksdl_error.h" 26 | #include "ijksdl_stdinc.h" 27 | 28 | const char *SDL_GetError(void) 29 | { 30 | return NULL; 31 | } 32 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_inc_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_inc_internal.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef IJKPLAYER__IJKSDL_INC_INTERNAL_H 25 | #define IJKPLAYER__IJKSDL_INC_INTERNAL_H 26 | 27 | #include 28 | 29 | #include "ijksdl_log.h" 30 | #include "ijksdl_misc.h" 31 | #include "ijksdl_stdinc.h" 32 | 33 | #define SDLTRACE ALOGD 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_stdinc.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_stdinc.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "ijksdl_stdinc.h" 26 | 27 | char *SDL_getenv(const char *name) 28 | { 29 | return NULL; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_video.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_video.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_VIDEO_H 26 | #define IJKSDL__IJKSDL_VIDEO_H 27 | 28 | #include "ijksdl_stdinc.h" 29 | #include "ijksdl_fourcc.h" 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/windows/ijksdl_aout_win_openal.h: -------------------------------------------------------------------------------- 1 | #ifndef IJKSDL_WINDOWS__IJKSDL_AOUT_WINDOWS_OPENAL_H 2 | #define IJKSDL_WINDOWS__IJKSDL_AOUT_WINDOWS_OPENAL_H 3 | 4 | #ifndef _begin_code_h 5 | #include "../thirdparty/SDL2/begin_code.h" 6 | #endif 7 | 8 | #include "ijksdl_aout.h" 9 | 10 | extern DECLSPEC SDL_Aout * SDLCALL SDL_AoutWindows_CreateForOpenAL(); 11 | extern DECLSPEC bool SDLCALL SDL_AoutWindows_IsObjectOfOpenAL(SDL_Aout *aout); 12 | 13 | #endif -------------------------------------------------------------------------------- /ijkmedia/ijksdl/windows/ijksdl_utils_win.h: -------------------------------------------------------------------------------- 1 | #ifndef IJKSDL_UTILS_WIN_H 2 | #define IJKSDL_UTILS_WIN_H 3 | 4 | void *SDL_LoadObject(const char *sofile); 5 | void *SDL_LoadFunction(void *handle, const char *name); 6 | 7 | #define LOAD_FUNC(NAME) \ 8 | egl->egl_data->NAME = SDL_LoadFunction(egl->egl_data->dll_handle, #NAME); \ 9 | if (!egl->egl_data->NAME) \ 10 | { \ 11 | return ALOGE("Could not retrieve EGL function " #NAME); \ 12 | } 13 | 14 | #endif -------------------------------------------------------------------------------- /ijkmedia/ijksdl/windows/ijksdl_vout_win_nativewindows.h: -------------------------------------------------------------------------------- 1 | #ifndef IJKSDL_WINDOWS__IJKSDL_VOUT_WINDOWS_NATIVEWINDOW_H 2 | #define IJKSDL_WINDOWS__IJKSDL_VOUT_WINDOWS_NATIVEWINDOW_H 3 | #ifndef _begin_code_h 4 | #include "../thirdparty/SDL2/begin_code.h" 5 | #endif 6 | #include "../ijksdl_stdinc.h" 7 | #include "../ijksdl_vout.h" 8 | 9 | typedef struct ANativeWindow ANativeWindow; 10 | 11 | 12 | extern DECLSPEC SDL_Vout * SDLCALL SDL_VoutWindows_CreateForANativeWindow(); 13 | extern DECLSPEC void SDLCALL SDL_VoutWindows_SetNativeWindow(SDL_Vout *vout, ANativeWindow *native_window); 14 | 15 | #endif -------------------------------------------------------------------------------- /ijkmedia/ijksdl/windows/ijksdl_vout_win_surface.c: -------------------------------------------------------------------------------- 1 | #include "ijksdl_vout_win_surface.h" 2 | 3 | 4 | #include "../ijksdl_inc_internal.h" 5 | 6 | #include "ijksdl_vout_win_nativewindows.h" 7 | 8 | SDL_Vout *SDL_VoutWindows_CreateForWindowsSurface() 9 | { 10 | return SDL_VoutWindows_CreateForANativeWindow(); 11 | } 12 | 13 | void SDL_VoutWindows_SetWindowsSurface(SDL_Vout *vout, HWND hwnd) 14 | { 15 | SDL_VoutWindows_SetNativeWindow(vout, hwnd); 16 | } -------------------------------------------------------------------------------- /ijkmedia/ijksdl/windows/ijksdl_vout_win_surface.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef IJKSDL_WINDOWS__IJKSDL_VOUT_WINDOWS_SURFACE_H 3 | #define IJKSDL_WINDOWS__IJKSDL_VOUT_WINDOWS_SURFACE_H 4 | 5 | 6 | #include "../ijksdl_stdinc.h" 7 | #include "../ijksdl_vout.h" 8 | 9 | extern DECLSPEC SDL_Vout * SDLCALL SDL_VoutWindows_CreateForWindowsSurface(); 10 | extern DECLSPEC void SDLCALL SDL_VoutWindows_SetWindowsSurface(SDL_Vout *vout, HWND hwnd); 11 | 12 | #endif -------------------------------------------------------------------------------- /ijkprof/android-ndk-profiler-dummy/jni/Android-include.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Bilibili 2 | # copyright (c) 2013 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | # do nothing here -------------------------------------------------------------------------------- /ijkprof/android-ndk-profiler-dummy/jni/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2015 Bilibili 2 | # copyright (c) 2015 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer 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 | # ijkPlayer 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 ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | LOCAL_PATH := $(call my-dir) 21 | 22 | include $(CLEAR_VARS) 23 | 24 | LOCAL_MODULE := android-ndk-profiler 25 | LOCAL_SRC_FILES := prof.c 26 | 27 | include $(BUILD_STATIC_LIBRARY) 28 | -------------------------------------------------------------------------------- /init-android-j4a.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2016 Bilibili 4 | # Copyright (C) 2016 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | IJK_J4A_UPSTREAM=https://github.com/Bilibili/jni4android.git 20 | IJK_J4A_FORK=https://github.com/Bilibili/jni4android.git 21 | IJK_J4A_COMMIT=v0.0.2 22 | IJK_J4A_LOCAL_REPO=extra/jni4android 23 | 24 | set -e 25 | TOOLS=tools 26 | 27 | echo "== pull j4a base ==" 28 | sh $TOOLS/pull-repo-base.sh $IJK_J4A_UPSTREAM $IJK_J4A_LOCAL_REPO 29 | 30 | echo "== pull j4a fork ==" 31 | sh $TOOLS/pull-repo-ref.sh $IJK_J4A_FORK extra/jni4android-fork ${IJK_J4A_LOCAL_REPO} 32 | cd extra/jni4android-fork 33 | git checkout ${IJK_J4A_COMMIT} 34 | cd - 35 | -------------------------------------------------------------------------------- /init-android-libyuv.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2015 Bilibili 4 | # Copyright (C) 2013-2015 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | 20 | IJK_LIBYUV_UPSTREAM=https://github.com/Bilibili/libyuv.git 21 | IJK_LIBYUV_FORK=https://github.com/Bilibili/libyuv.git 22 | IJK_LIBYUV_COMMIT=ijk-r0.2.1-dev 23 | IJK_LIBYUV_LOCAL_REPO=extra/libyuv 24 | 25 | set -e 26 | TOOLS=tools 27 | 28 | echo "== pull libyuv base ==" 29 | sh $TOOLS/pull-repo-base.sh $IJK_LIBYUV_UPSTREAM $IJK_LIBYUV_LOCAL_REPO 30 | 31 | echo "== pull libyuv fork ==" 32 | sh $TOOLS/pull-repo-ref.sh $IJK_LIBYUV_FORK ijkmedia/ijkyuv ${IJK_LIBYUV_LOCAL_REPO} 33 | cd ijkmedia/ijkyuv 34 | git checkout ${IJK_LIBYUV_COMMIT} 35 | cd - 36 | -------------------------------------------------------------------------------- /init-config.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2015 Bilibili 4 | # Copyright (C) 2013-2015 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | if [ ! -f 'config/module.sh' ]; then 20 | cp config/module-lite.sh config/module.sh 21 | fi -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata 2 | xcshareddata 3 | *.xccheckout 4 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/AppIcons.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "57x57", 21 | "scale" : "1x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "57x57", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "3x" 37 | } 38 | ], 39 | "info" : { 40 | "version" : 1, 41 | "author" : "xcode" 42 | } 43 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Barcode.h: -------------------------------------------------------------------------------- 1 | // 2 | // Barcode.h 3 | // featurebuild 4 | // 5 | // Created by Jake Widmer on 10/5/13. 6 | // Copyright (c) 2013 Jake Widmer. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface Barcode : NSObject 13 | 14 | + (Barcode * )processMetadataObject:(AVMetadataMachineReadableCodeObject*) code; 15 | - (NSString *) getBarcodeType; 16 | - (NSString *) getBarcodeData; 17 | - (void) printBarcodeData; 18 | @end 19 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Default.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Default@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2015 Bilibili 3 | * Copyright (C) 2013-2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | #import 19 | 20 | @interface IJKAppDelegate : UIResponder 21 | 22 | @property (strong, nonatomic) UIWindow *window; 23 | @property (strong, nonatomic) UIViewController *viewController; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKCommon.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2015 Bilibili 3 | * Copyright (C) 2013-2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | #import 19 | 20 | #define IOS_OLDER_THAN_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] < 6.0 ) 21 | #define IOS_NEWER_OR_EQUAL_TO_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 6.0 ) 22 | #define IOS_NEWER_OR_EQUAL_TO_7 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 7.0 ) 23 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKDemoHistory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Gdier 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface IJKDemoHistoryItem : NSObject 20 | 21 | @property(nonatomic,strong) NSString *title; 22 | @property(nonatomic,strong) NSURL *url; 23 | 24 | @end 25 | 26 | @interface IJKDemoHistory : NSObject 27 | 28 | + (instancetype)instance; 29 | 30 | @property(nonatomic,strong,readonly) NSArray *list; 31 | 32 | - (void)removeAtIndex:(NSUInteger)index; 33 | - (void)add:(IJKDemoHistoryItem *)item; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKDemoInputURLViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Gdier 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface IJKDemoInputURLViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKDemoLocalFolderViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Gdier 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface IJKDemoLocalFolderViewController : UITableViewController 20 | 21 | - (instancetype)initWithFolderPath:(NSString *)folderPath; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKDemoMainViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Gdier 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface IJKDemoMainViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKDemoSampleViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2015 Bilibili 3 | * Copyright (C) 2013-2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | #import 19 | 20 | @interface IJKDemoSampleViewController : UIViewController 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKMediaDemo-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'test' target in the 'test' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iOS SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKQRCodeScanViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Gdier 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | @interface IJKQRCodeScanViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "57x57", 21 | "scale" : "1x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "57x57", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "3x" 37 | } 38 | ], 39 | "info" : { 40 | "version" : 1, 41 | "author" : "xcode" 42 | } 43 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "filename" : "Default@2x.png", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "filename" : "Default-568h@2x.png", 14 | "minimum-system-version" : "7.0", 15 | "subtype" : "retina4", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "orientation" : "portrait", 20 | "idiom" : "iphone", 21 | "filename" : "Default.png", 22 | "scale" : "1x" 23 | }, 24 | { 25 | "orientation" : "portrait", 26 | "idiom" : "iphone", 27 | "filename" : "Default@2x.png", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "orientation" : "portrait", 32 | "idiom" : "iphone", 33 | "filename" : "Default-568h@2x.png", 34 | "subtype" : "retina4", 35 | "scale" : "2x" 36 | } 37 | ], 38 | "info" : { 39 | "version" : 1, 40 | "author" : "xcode" 41 | } 42 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // IJKMediaDemo 4 | // 5 | // Created by ZhangRui on 13-9-19. 6 | // Copyright (c) 2013年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "IJKAppDelegate.h" 12 | 13 | int main(int argc, char *argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([IJKAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios5_72pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios5_72pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios5_72pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios5_72pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios7_76pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios7_76pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios7_76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_ipad_ios7_76pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios5_57pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios5_57pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios5_57pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios5_57pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios7_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios7_60pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios7_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icapp_iphone_ios7_60pt@3x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios5_50pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios5_50pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios5_50pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios5_50pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios7_40pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios7_40pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios7_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_ios7_40pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_iosu_29pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_iosu_29pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_iosu_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_ipad_iosu_29pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_ios7_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_ios7_40pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_ios7_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_ios7_40pt@3x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt@3x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_320_480.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_320_480.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_640_1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_640_1136.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_640_960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_640_960.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios7_640_1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios7_640_1136.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios7_640_960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios7_640_960.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_back_highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_player_back_highlighted.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_player_back_highlighted@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_back_highlighted.imageset/btn_player_back_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_back_highlighted.imageset/btn_player_back_highlighted.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_back_highlighted.imageset/btn_player_back_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_back_highlighted.imageset/btn_player_back_highlighted@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_pause.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_player_pause.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_player_pause@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_pause.imageset/btn_player_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_pause.imageset/btn_player_pause.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_pause.imageset/btn_player_pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_pause.imageset/btn_player_pause@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_player_play.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_player_play@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_play.imageset/btn_player_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_play.imageset/btn_player_play.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_play.imageset/btn_player_play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/btn_player_play.imageset/btn_player_play@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_bottom_control_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "player_bottom_control_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "player_bottom_control_bg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_bottom_control_bg.imageset/player_bottom_control_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_bottom_control_bg.imageset/player_bottom_control_bg.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_bottom_control_bg.imageset/player_bottom_control_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_bottom_control_bg.imageset/player_bottom_control_bg@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_top_control_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "player_top_control_bg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "player_top_control_bg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_top_control_bg.imageset/player_top_control_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_top_control_bg.imageset/player_top_control_bg.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_top_control_bg.imageset/player_top_control_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/ijkplayer-windows/cb6bbde6eafab959817e355d746d79147303944e/ios/IJKMediaDemo/XCAssets/MoviePlayerImages.xcassets/MoviePlayer/player_top_control_bg.imageset/player_top_control_bg@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaFramework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaFrameworkTests/IJKMediaFrameworkTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // IJKMediaFrameworkTests.m 3 | // IJKMediaFrameworkTests 4 | // 5 | // Created by Zhang Rui on 15/7/31. 6 | // Copyright (c) 2015年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface IJKMediaFrameworkTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation IJKMediaFrameworkTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaFrameworkTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaFrameworkWithSSL.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKMediaPlayer-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'IJKMediaPlayer' target in the 'IJKMediaPlayer' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | #import 13 | #import 14 | #import 15 | #import 16 | #import 17 | #endif 18 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKMediaPlayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKMediaPlayer.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #import "IJKMediaPlayback.h" 25 | #import "IJKMPMoviePlayerController.h" 26 | 27 | #import "IJKFFOptions.h" 28 | #import "IJKFFMoviePlayerController.h" 29 | 30 | #import "IJKAVMoviePlayerController.h" 31 | 32 | #import "IJKMediaModule.h" 33 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/NSString+IJKMedia.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NSString+IJKMedia.h 3 | * 4 | * Copyright (c) 2016 Bilibili 5 | * Copyright (c) 2016 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #import 25 | 26 | @interface NSString (IJKMedia) 27 | 28 | + (NSString *) ijk_stringBeEmptyIfNil:(NSString *)src; 29 | 30 | - (BOOL) ijk_isIpv4; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/pipeline/ffpipeline_ios.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipeline_ios.h 3 | * 4 | * Copyright (c) 2014 Zhou Quan 5 | * 6 | * This file is part of ijkPlayer. 7 | * 8 | * ijkPlayer 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 | * ijkPlayer 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 ijkPlayer; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef FFPLAY__FF_FFPIPELINE_IOS_H 24 | #define FFPLAY__FF_FFPIPELINE_IOS_H 25 | 26 | #include "ijkplayer/ff_ffpipeline.h" 27 | 28 | struct FFPlayer; 29 | 30 | IJKFF_Pipeline *ffpipeline_create_from_ios(struct FFPlayer *ffp); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLHudViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // IJKSDLHudViewCell.h 3 | // IJKMediaPlayer 4 | // 5 | // Created by Zhang Rui on 15/12/14. 6 | // Copyright © 2015年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IJKSDLHudViewCell : UITableViewCell 12 | 13 | - (id)init; 14 | 15 | - (void)setHudValue:(NSString *)value forKey:(NSString *)key; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLHudViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // IJKSDLHudViewController.h 3 | // IJKMediaPlayer 4 | // 5 | // Created by Zhang Rui on 15/12/14. 6 | // Copyright © 2015年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IJKSDLHudViewController : UITableViewController 12 | 13 | - (id)init; 14 | 15 | - (void)setHudValue:(NSString *)value forKey:(NSString *)key; 16 | 17 | - (void)setRect:(CGRect) rect; 18 | @end 19 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_aout_ios_audiounit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_aout_ios_audiounit.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #include "ijksdl/ijksdl_aout.h" 25 | 26 | SDL_Aout *SDL_AoutIos_CreateForAudioUnit(); 27 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_thread_ios.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #import 25 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_vout_ios_gles2.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #include "ijksdl/ijksdl_stdinc.h" 25 | #include "ijksdl/ijksdl_vout.h" 26 | 27 | @class IJKSDLGLView; 28 | 29 | SDL_Vout *SDL_VoutIos_CreateForGLES2(); 30 | void SDL_VoutIos_SetGLView(SDL_Vout *vout, IJKSDLGLView *view); 31 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/.gitignore: -------------------------------------------------------------------------------- 1 | IJKMediaPodDemo.xcworkspace 2 | Pods 3 | Podfile.lock 4 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // IJKMediaPodDemo 4 | // 5 | // Created by Zhang Rui on 15/7/23. 6 | // Copyright (c) 2015年 Zhang Rui. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // IJKMediaPodDemo 4 | // 5 | // Created by Zhang Rui on 15/7/23. 6 | // Copyright (c) 2015年 Zhang Rui. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // IJKMediaPodDemo 4 | // 5 | // Created by Zhang Rui on 15/7/23. 6 | // Copyright (c) 2015年 Zhang Rui. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | // Do any additional setup after loading the view, typically from a nib. 21 | 22 | id playback = [[IJKFFMoviePlayerController alloc] initWithContentURL:nil withOptions:nil]; 23 | 24 | [playback shutdown]; 25 | } 26 | 27 | - (void)didReceiveMemoryWarning { 28 | [super didReceiveMemoryWarning]; 29 | // Dispose of any resources that can be recreated. 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // IJKMediaPodDemo 4 | // 5 | // Created by Zhang Rui on 15/7/23. 6 | // Copyright (c) 2015年 Zhang Rui. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemoTests/IJKMediaPodDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // IJKMediaPodDemoTests.m 3 | // IJKMediaPodDemoTests 4 | // 5 | // Created by Zhang Rui on 15/7/23. 6 | // Copyright (c) 2015年 Zhang Rui. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface IJKMediaPodDemoTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation IJKMediaPodDemoTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/IJKMediaPodDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | tv.danmaku.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/IJKMediaPodDemo/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | # source 3 | 4 | platform :ios, '8.0' 5 | 6 | pod 'ijkplayer', '~> 0.3.2-rc.2' 7 | -------------------------------------------------------------------------------- /tools/copyrighter/__init__.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2017 Bilibili 4 | # Copyright (C) 2013-2017 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | -------------------------------------------------------------------------------- /tools/copyrighter/__main__.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2017 Bilibili 4 | # Copyright (C) 2013-2017 Zhang Rui 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | import sys 20 | import os 21 | import fnmatch 22 | from sets import Set 23 | 24 | if not __package__: 25 | path = os.path.join(os.path.dirname(__file__), os.pardir) 26 | sys.path.insert(0, path) 27 | 28 | from copyrighter.CRContext import CRContext 29 | from copyrighter.CRFile import CRFile 30 | 31 | context = CRContext(); 32 | 33 | target_list = Set([ 34 | 'ijkmedia', 35 | 'extra/init-extra.sh' 36 | ]) 37 | 38 | for target in Set(['']): 39 | # for target in target_list: 40 | CRFile.update_path(context, target) 41 | -------------------------------------------------------------------------------- /tools/pull-repo-base.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | REMOTE_REPO=$1 4 | LOCAL_WORKSPACE=$2 5 | 6 | 7 | if [ -z $REMOTE_REPO -o -z $LOCAL_WORKSPACE ]; then 8 | echo "invalid call pull-repo.sh '$REMOTE_REPO' '$LOCAL_WORKSPACE'" 9 | elif [ ! -d $LOCAL_WORKSPACE ]; then 10 | git clone $REMOTE_REPO $LOCAL_WORKSPACE 11 | else 12 | cd $LOCAL_WORKSPACE 13 | git fetch --all --tags 14 | cd - 15 | fi 16 | -------------------------------------------------------------------------------- /tools/pull-repo-ref.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | REMOTE_REPO=$1 4 | LOCAL_WORKSPACE=$2 5 | REF_REPO=$3 6 | 7 | if [ -z $1 -o -z $2 -o -z $3 ]; then 8 | echo "invalid call pull-repo.sh '$1' '$2' '$3'" 9 | elif [ ! -d $LOCAL_WORKSPACE ]; then 10 | git clone --reference $REF_REPO $REMOTE_REPO $LOCAL_WORKSPACE 11 | cd $LOCAL_WORKSPACE 12 | git repack -a 13 | else 14 | cd $LOCAL_WORKSPACE 15 | git fetch --all --tags 16 | cd - 17 | fi 18 | -------------------------------------------------------------------------------- /tools/setup-as-commiter.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | git remote add gitcafe git@gitcafe.com:bbcallen/ijkplayer.git 4 | git remote add oschina git@git.oschina.net:bbcallen/ijkplayer.git 5 | git remote add csdn git@code.csdn.net:bbcallen/ijkplayer.git 6 | git fetch --all 7 | 8 | -------------------------------------------------------------------------------- /tools/sync-mirrors.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | git push origin --all --follow-tags 4 | git push gitcafe --all --follow-tags 5 | git push oschina --all --follow-tags 6 | git push csdn --all --follow-tags 7 | 8 | --------------------------------------------------------------------------------