├── .gitignore ├── 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 ├── compile-ijk.sh ├── contrib │ ├── .gitignore │ ├── compile-ffmpeg.sh │ ├── compile-openssl.sh │ ├── setup-as-commiter.sh │ ├── sync-mirrors.sh │ └── tools │ │ ├── do-compile-ffmpeg.sh │ │ └── do-compile-openssl.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-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 │ │ │ │ └── player │ │ │ │ ├── DashRendererBuilder.java │ │ │ │ ├── DemoPlayer.java │ │ │ │ ├── ExtractorRendererBuilder.java │ │ │ │ ├── HlsRendererBuilder.java │ │ │ │ └── SmoothStreamingRendererBuilder.java │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ └── java │ │ └── tv │ │ └── danmaku │ │ └── ijk │ │ └── media │ │ └── exo │ │ └── ExampleUnitTest.java │ ├── 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 │ │ │ ├── BaseMediaPlayer.java │ │ │ ├── IMediaPlayer.java │ │ │ ├── ISurfaceTextureHolder.java │ │ │ ├── ISurfaceTextureHost.java │ │ │ ├── IjkLibLoader.java │ │ │ ├── IjkMediaCodecInfo.java │ │ │ ├── IjkMediaMeta.java │ │ │ ├── IjkMediaPlayer.java │ │ │ ├── MediaInfo.java │ │ │ ├── MediaPlayerProxy.java │ │ │ ├── SimpleMediaPlayer.java │ │ │ ├── TextureMediaPlayer.java │ │ │ ├── annotations │ │ │ ├── AccessedByNative.java │ │ │ └── CalledByNative.java │ │ │ ├── exceptions │ │ │ └── IjkMediaException.java │ │ │ ├── ffmpeg │ │ │ └── FFmpegApi.java │ │ │ ├── misc │ │ │ ├── AndroidMediaFormat.java │ │ │ ├── AndroidTrackInfo.java │ │ │ ├── IMediaDataSource.java │ │ │ ├── IMediaFormat.java │ │ │ ├── ITrackInfo.java │ │ │ ├── IjkMediaFormat.java │ │ │ └── IjkTrackInfo.java │ │ │ └── pragma │ │ │ ├── DebugLog.java │ │ │ └── Pragma.java │ │ ├── project.properties │ │ └── res │ │ └── values │ │ └── strings.xml │ ├── ijkplayer-sample │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── tv │ │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ └── sample │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── .classpath │ │ ├── .project │ │ ├── .settings │ │ └── org.eclipse.jdt.core.prefs │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── tv │ │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ └── sample │ │ │ ├── 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 │ │ │ ├── services │ │ │ └── MediaPlayerService.java │ │ │ └── widget │ │ │ ├── media │ │ │ ├── AndroidMediaController.java │ │ │ ├── IMediaController.java │ │ │ ├── IRenderView.java │ │ │ ├── IjkVideoView.java │ │ │ ├── InfoHudViewHolder.java │ │ │ ├── MeasureHelper.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_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_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_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_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_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 │ │ ├── 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 │ │ └── xml │ │ └── settings.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 │ ├── settings.gradle │ └── tools │ ├── gradle-bintray-upload.gradle │ └── gradle-mvn-push.gradle ├── config ├── module-default.sh ├── module-lite-hevc.sh ├── module-lite.sh └── module.sh ├── extra └── init-extra.sh ├── ijkmedia ├── Android.mk ├── ijkplayer │ ├── Android.mk │ ├── android │ │ ├── ffmpeg_api_jni.c │ │ ├── ffmpeg_api_jni.h │ │ ├── ijkplayer_android.c │ │ ├── ijkplayer_android.h │ │ ├── ijkplayer_android_def.h │ │ ├── ijkplayer_jni.c │ │ └── pipeline │ │ │ ├── ffpipeline_android.c │ │ │ ├── ffpipeline_android.h │ │ │ ├── ffpipenode_android_mediacodec_vdec.c │ │ │ ├── ffpipenode_android_mediacodec_vdec.h │ │ │ ├── h264_nal.h │ │ │ └── hevc_nal.h │ ├── 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 │ │ ├── async.c │ │ ├── ijkavformat.h │ │ ├── ijkinject.c │ │ ├── ijklivehook.c │ │ ├── ijklongurl.c │ │ ├── ijkmediadatasource.c │ │ ├── ijksegment.c │ │ ├── ijkurlhook.c │ │ ├── url.h │ │ └── utils.c │ ├── ijkavutil │ │ └── opt.h │ ├── ijkmeta.c │ ├── ijkmeta.h │ ├── ijkplayer.c │ ├── ijkplayer.h │ ├── ijkplayer_internal.h │ ├── pipeline │ │ ├── ffpipeline_ffplay.c │ │ ├── ffpipeline_ffplay.h │ │ ├── ffpipenode_ffplay_vdec.c │ │ └── ffpipenode_ffplay_vdec.h │ └── version.h └── ijksdl │ ├── Android.mk │ ├── android │ ├── android_audiotrack.c │ ├── android_audiotrack.h │ ├── android_nativewindow.c │ ├── android_nativewindow.h │ ├── ijksdl_android.h │ ├── ijksdl_android_jni.c │ ├── ijksdl_android_jni.h │ ├── ijksdl_aout_android_audiotrack.c │ ├── ijksdl_aout_android_audiotrack.h │ ├── ijksdl_aout_android_opensles.c │ ├── ijksdl_aout_android_opensles.h │ ├── ijksdl_codec_android_mediacodec.c │ ├── ijksdl_codec_android_mediacodec.h │ ├── ijksdl_codec_android_mediacodec_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 │ └── jjk │ │ ├── Makefile │ │ ├── build.sh │ │ ├── c │ │ ├── android │ │ │ ├── media │ │ │ │ ├── AudioTrack.c │ │ │ │ ├── AudioTrack.h │ │ │ │ ├── MediaCodec.c │ │ │ │ ├── MediaCodec.h │ │ │ │ ├── MediaFormat.c │ │ │ │ └── MediaFormat.h │ │ │ └── os │ │ │ │ ├── Build.c │ │ │ │ ├── Build.h │ │ │ │ ├── Bundle.c │ │ │ │ └── Bundle.h │ │ ├── java │ │ │ ├── nio │ │ │ │ ├── Buffer.c │ │ │ │ ├── Buffer.h │ │ │ │ ├── ByteBuffer.c │ │ │ │ ├── ByteBuffer.h │ │ │ │ ├── ByteBuffer.util.c │ │ │ │ └── ByteBuffer.util.h │ │ │ └── util │ │ │ │ ├── ArrayList.c │ │ │ │ └── ArrayList.h │ │ └── tv │ │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ └── player │ │ │ ├── IjkMediaPlayer.c │ │ │ ├── IjkMediaPlayer.h │ │ │ └── misc │ │ │ ├── IMediaDataSource.c │ │ │ └── IMediaDataSource.h │ │ ├── internal │ │ ├── jjk_allclasses.c │ │ ├── jjk_internal.c │ │ └── jjk_internal.h │ │ ├── java │ │ ├── android │ │ │ ├── media │ │ │ │ ├── AudioTrack.java │ │ │ │ ├── MediaCodec.java │ │ │ │ ├── MediaCrypto.java │ │ │ │ └── MediaFormat.java │ │ │ └── os │ │ │ │ ├── Build.java │ │ │ │ └── Bundle.java │ │ ├── java │ │ │ ├── nio │ │ │ │ ├── Buffer.java │ │ │ │ └── ByteBuffer.java │ │ │ └── util │ │ │ │ └── ArrayList.java │ │ └── tv │ │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ └── player │ │ │ ├── IjkMediaPlayer.java │ │ │ └── misc │ │ │ └── IMediaDataSource.java │ │ ├── parser.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── parser │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── ast │ │ ├── ast.hpp │ │ ├── ast__context.cpp │ │ ├── ast__context.hpp │ │ ├── ast__def.hpp │ │ ├── ast__forward.hpp │ │ ├── ast__namespace.cpp │ │ ├── ast__namespace.hpp │ │ ├── ast_annotation.hpp │ │ ├── ast_argument.hpp │ │ ├── ast_basic_type.hpp │ │ ├── ast_class.cpp │ │ ├── ast_class.hpp │ │ ├── ast_compilation_unit.cpp │ │ ├── ast_compilation_unit.hpp │ │ ├── ast_constructor.cpp │ │ ├── ast_constructor.hpp │ │ ├── ast_field.cpp │ │ ├── ast_field.hpp │ │ ├── ast_identifier.cpp │ │ ├── ast_identifier.hpp │ │ ├── ast_import.hpp │ │ ├── ast_member.cpp │ │ ├── ast_member.hpp │ │ ├── ast_method.cpp │ │ ├── ast_method.hpp │ │ ├── ast_modifier.hpp │ │ ├── ast_node.cpp │ │ ├── ast_node.hpp │ │ ├── ast_property_accessor.cpp │ │ ├── ast_property_accessor.hpp │ │ ├── ast_reference_type.cpp │ │ ├── ast_reference_type.hpp │ │ └── ast_type.hpp │ │ ├── bfc │ │ ├── bfc.h │ │ ├── bfc__def.h │ │ ├── bfc_object.h │ │ └── bfc_string.h │ │ ├── jjk.cpp │ │ ├── jni.bison.tab.cpp │ │ ├── jni.bison.tab.hpp │ │ ├── jni.bison.y │ │ ├── jni.flex.l │ │ ├── jni.flex.yy.cpp │ │ └── parser.hpp │ ├── 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 │ ├── 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_endian.h │ ├── ijksdl_error.c │ ├── ijksdl_error.h │ ├── ijksdl_fourcc.h │ ├── ijksdl_inc_internal.h │ ├── ijksdl_log.h │ ├── ijksdl_misc.h │ ├── ijksdl_mutex.c │ ├── ijksdl_mutex.h │ ├── ijksdl_stdinc.c │ ├── ijksdl_stdinc.h │ ├── ijksdl_thread.c │ ├── ijksdl_thread.h │ ├── ijksdl_timer.c │ ├── ijksdl_timer.h │ ├── ijksdl_video.h │ ├── ijksdl_vout.c │ ├── ijksdl_vout.h │ └── ijksdl_vout_internal.h ├── ijkprof └── android-ndk-profiler-dummy │ └── jni │ ├── Android-include.mk │ ├── Android.mk │ ├── prof.c │ └── prof.h ├── init-android-exo.sh ├── init-android-libyuv.sh ├── init-android-openssl.sh ├── init-android-prof.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 │ ├── IJKMediaPlayer.xcodeproj │ │ └── project.pbxproj │ └── IJKMediaPlayer │ │ ├── IJKAVMoviePlayerController.h │ │ ├── IJKAVMoviePlayerController.m │ │ ├── IJKAVPlayerLayerView.h │ │ ├── IJKAVPlayerLayerView.m │ │ ├── IJKAudioKit.h │ │ ├── IJKAudioKit.m │ │ ├── IJKDeviceModel.h │ │ ├── IJKDeviceModel.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 │ │ └── ijkmedia │ │ ├── ijkplayer │ │ └── ios │ │ │ ├── ijkplayer_ios.h │ │ │ ├── ijkplayer_ios.m │ │ │ └── pipeline │ │ │ ├── IJKVideoToolBox.h │ │ │ ├── IJKVideoToolBox.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 │ │ ├── IJKSDLGLRender.h │ │ ├── IJKSDLGLRenderI420.h │ │ ├── IJKSDLGLRenderI420.m │ │ ├── IJKSDLGLRenderNV12.h │ │ ├── IJKSDLGLRenderNV12.m │ │ ├── IJKSDLGLRenderRV24.h │ │ ├── IJKSDLGLRenderRV24.m │ │ ├── IJKSDLGLShader.h │ │ ├── IJKSDLGLShader.m │ │ ├── IJKSDLGLView.h │ │ ├── IJKSDLGLView.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 ├── 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 | ijkprof/android-ndk-profiler/ 12 | 13 | # built application files 14 | *.apk 15 | *.ap_ 16 | 17 | # files for the dex VM 18 | *.dex 19 | 20 | # Java class files 21 | *.class 22 | 23 | # generated files 24 | bin/ 25 | gen/ 26 | libs/ 27 | obj/ 28 | 29 | # Local configuration file (sdk path, etc) 30 | local.properties 31 | 32 | # Android Studio 33 | .idea 34 | .gradle 35 | build/ 36 | 37 | # Xcode 38 | xcuserdata 39 | xcshareddata 40 | *.xccheckout 41 | 42 | -------------------------------------------------------------------------------- /COPYING.LGPLv2.1.txt: -------------------------------------------------------------------------------- 1 | COPYING.LGPLv2.1 -------------------------------------------------------------------------------- /MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /android/android-ndk-prof: -------------------------------------------------------------------------------- 1 | ../../../../../../ijkprof/android-ndk-profiler-dummy/jni -------------------------------------------------------------------------------- /android/contrib/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | ffmpeg-* 3 | openssl-* 4 | -------------------------------------------------------------------------------- /android/contrib/setup-as-commiter.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 remote set-url --push origin git@github.com:bbcallen/FFmpeg.git 21 | 22 | git remote add ffmpeg git://source.ffmpeg.org/ffmpeg.git 23 | git remote add libav git://git.libav.org/libav.git 24 | git remote add chromium https://chromium.googlesource.com/chromium/third_party/ffmpeg 25 | git remote add gitcafe git@gitcafe.com:bbcallen/FFmpeg.git 26 | git remote add oschina git@git.oschina.net:bbcallen/ffmpeg.git 27 | git remote add csdn git@code.csdn.net:bbcallen/FFmpeg.git 28 | git fetch --all 29 | 30 | git branch --track ffmpeg ffmpeg/master 31 | git branch --track libav libav/master 32 | git branch --track chromium chromium/master 33 | -------------------------------------------------------------------------------- /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-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:1.3.0' 9 | 10 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' 11 | classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.3.1' 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 = 23 25 | buildToolsVersion = "23.0.1" 26 | 27 | targetSdkVersion = 23 28 | 29 | versionCode = 403012 30 | versionName = "0.4.3.12" 31 | } 32 | 33 | wrapper { 34 | gradleVersion = '2.6' 35 | } 36 | -------------------------------------------------------------------------------- /android/ijkplayer/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/ijkplayer/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 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.6-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 | ext { 31 | optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 32 | } 33 | 34 | ext.optionalPlugins.each{ value -> 35 | def plugin_file = new File(rootProject.projectDir, value); 36 | if (plugin_file.exists()) { 37 | apply from: plugin_file 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /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 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 | package tv.danmaku.ijk.media.player_arm64; 18 | 19 | public class Pragma { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /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 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | APP_OPTIM := release 20 | APP_PLATFORM := android-21 21 | APP_ABI := arm64-v8a 22 | NDK_TOOLCHAIN_VERSION=4.9 23 | APP_PIE := false 24 | 25 | APP_CFLAGS := -O3 -Wall -pipe \ 26 | -ffast-math \ 27 | -fstrict-aliasing -Werror=strict-aliasing \ 28 | -Wno-psabi -Wa,--noexecstack \ 29 | -DANDROID -DNDEBUG 30 | -------------------------------------------------------------------------------- /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 | ext { 31 | optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 32 | } 33 | 34 | ext.optionalPlugins.each{ value -> 35 | def plugin_file = new File(rootProject.projectDir, value); 36 | if (plugin_file.exists()) { 37 | apply from: plugin_file 38 | } 39 | } -------------------------------------------------------------------------------- /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 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 | package tv.danmaku.ijk.media.player_armv5; 18 | 19 | public class Pragma { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /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 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | APP_OPTIM := release 20 | APP_PLATFORM := android-9 21 | APP_ABI := armeabi 22 | NDK_TOOLCHAIN_VERSION=4.8 23 | APP_PIE := false 24 | 25 | APP_CFLAGS := -O3 -Wall -pipe \ 26 | -ffast-math \ 27 | -fstrict-aliasing -Werror=strict-aliasing \ 28 | -Wno-psabi -Wa,--noexecstack \ 29 | -DANDROID -DNDEBUG 30 | -------------------------------------------------------------------------------- /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 | ext { 31 | optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 32 | } 33 | 34 | ext.optionalPlugins.each{ value -> 35 | def plugin_file = new File(rootProject.projectDir, value); 36 | if (plugin_file.exists()) { 37 | apply from: plugin_file 38 | } 39 | } -------------------------------------------------------------------------------- /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 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 | package tv.danmaku.ijk.media.player_armv7a; 18 | 19 | public class Pragma { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # copyright (c) 2013 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | APP_OPTIM := release 20 | APP_PLATFORM := android-9 21 | APP_ABI := armeabi-v7a 22 | NDK_TOOLCHAIN_VERSION=4.8 23 | APP_PIE := false 24 | 25 | APP_CFLAGS := -O3 -Wall -pipe \ 26 | -ffast-math \ 27 | -fstrict-aliasing -Werror=strict-aliasing \ 28 | -Wno-psabi -Wa,--noexecstack \ 29 | -DANDROID -DNDEBUG 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | LOCAL_MODULE := libavcodec 4 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavcodec.a 5 | include $(PREBUILT_STATIC_LIBRARY) 6 | 7 | include $(CLEAR_VARS) 8 | LOCAL_MODULE := libavformat 9 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavformat.a 10 | include $(PREBUILT_STATIC_LIBRARY) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE := libavutil 14 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavutil.a 15 | include $(PREBUILT_STATIC_LIBRARY) 16 | 17 | include $(CLEAR_VARS) 18 | LOCAL_MODULE := libswresample 19 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswresample.a 20 | include $(PREBUILT_STATIC_LIBRARY) 21 | 22 | include $(CLEAR_VARS) 23 | LOCAL_MODULE := libswscale 24 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswscale.a 25 | include $(PREBUILT_STATIC_LIBRARY) 26 | -------------------------------------------------------------------------------- /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-exo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-exo/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 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | 25 | compile 'com.google.android.exoplayer:exoplayer:r1.5.1' 26 | 27 | compile project(':ijkplayer-java') 28 | // compile 'tv.danmaku.ijk.media:ijkplayer-java:0.4.3.12' 29 | } 30 | 31 | ext { 32 | optionalPlugins = null; 33 | // optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 34 | } 35 | 36 | ext.optionalPlugins.each{ value -> 37 | def plugin_file = new File(rootProject.projectDir, value); 38 | if (plugin_file.exists()) { 39 | apply from: plugin_file 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /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-exo/src/test/java/tv/danmaku/ijk/media/exo/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.exo; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /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 | 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 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | } 25 | 26 | ext { 27 | optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 28 | } 29 | 30 | ext.optionalPlugins.each{ value -> 31 | def plugin_file = new File(rootProject.projectDir, value); 32 | if (plugin_file.exists()) { 33 | apply from: plugin_file 34 | } 35 | } -------------------------------------------------------------------------------- /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 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 | package tv.danmaku.ijk.media.player; 18 | 19 | import android.graphics.SurfaceTexture; 20 | 21 | public interface ISurfaceTextureHolder { 22 | void setSurfaceTexture(SurfaceTexture surfaceTexture); 23 | 24 | SurfaceTexture getSurfaceTexture(); 25 | 26 | void setSurfaceTextureHost(ISurfaceTextureHost surfaceTextureHost); 27 | } 28 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHost.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.player; 18 | 19 | import android.graphics.SurfaceTexture; 20 | 21 | public interface ISurfaceTextureHost { 22 | void releaseSurfaceTexture(SurfaceTexture surfaceTexture); 23 | } 24 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkLibLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 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 | package tv.danmaku.ijk.media.player; 18 | 19 | public interface IjkLibLoader { 20 | public void loadLibrary(String libName) throws UnsatisfiedLinkError, 21 | SecurityException; 22 | } 23 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/MediaInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 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 | package tv.danmaku.ijk.media.player; 18 | 19 | public class MediaInfo { 20 | public String mMediaPlayerName; 21 | 22 | public String mVideoDecoder; 23 | public String mVideoDecoderImpl; 24 | 25 | public String mAudioDecoder; 26 | public String mAudioDecoderImpl; 27 | 28 | public IjkMediaMeta mMeta; 29 | } 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/annotations/AccessedByNative.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 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 | package tv.danmaku.ijk.media.player.annotations; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * is used by the JNI generator to create the necessary JNI 26 | * bindings and expose this method to native code. 27 | */ 28 | @Target(ElementType.FIELD) 29 | @Retention(RetentionPolicy.CLASS) 30 | public @interface AccessedByNative { 31 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/annotations/CalledByNative.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 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 | package tv.danmaku.ijk.media.player.annotations; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * is used by the JNI generator to create the necessary JNI 26 | * bindings and expose this method to native code. 27 | */ 28 | @Target(ElementType.METHOD) 29 | @Retention(RetentionPolicy.CLASS) 30 | public @interface CalledByNative { 31 | /* 32 | * If present, tells which inner class the method belongs to. 33 | */ 34 | public String value() default ""; 35 | } -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/exceptions/IjkMediaException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 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 | package tv.danmaku.ijk.media.player.exceptions; 18 | 19 | public class IjkMediaException extends Exception { 20 | private static final long serialVersionUID = 7234796519009099506L; 21 | } 22 | -------------------------------------------------------------------------------- /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/IMediaDataSource.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | import java.io.IOException; 20 | 21 | public interface IMediaDataSource { 22 | int readAt(long position, byte[] buffer, int offset, int size) throws IOException; 23 | 24 | long getSize() throws IOException; 25 | 26 | void close() throws IOException; 27 | } 28 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaFormat.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | public interface IMediaFormat { 20 | // Common keys 21 | String KEY_MIME = "mime"; 22 | 23 | // Video Keys 24 | String KEY_WIDTH = "width"; 25 | String KEY_HEIGHT = "height"; 26 | 27 | String getString(String name); 28 | 29 | int getInteger(String name); 30 | } 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | public interface ITrackInfo { 20 | int MEDIA_TRACK_TYPE_AUDIO = 2; 21 | int MEDIA_TRACK_TYPE_METADATA = 5; 22 | int MEDIA_TRACK_TYPE_SUBTITLE = 4; 23 | int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; 24 | int MEDIA_TRACK_TYPE_UNKNOWN = 0; 25 | int MEDIA_TRACK_TYPE_VIDEO = 1; 26 | 27 | IMediaFormat getFormat(); 28 | 29 | int getTrackType(); 30 | } 31 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/pragma/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 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 | package tv.danmaku.ijk.media.player.pragma; 17 | 18 | /*- 19 | * configurated by app project 20 | */ 21 | public class Pragma { 22 | public static final boolean ENABLE_VERBOSE = true; 23 | } 24 | -------------------------------------------------------------------------------- /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-sample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/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-sample/src/androidTest/java/tv/danmaku/ijk/media/sample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.sample; 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-sample/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/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-sample/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-sample/src/main/java/tv/danmaku/ijk/media/sample/fragments/SettingsFragment.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.sample.fragments; 18 | 19 | import android.os.Bundle; 20 | import android.support.v7.preference.PreferenceFragmentCompat; 21 | 22 | import tv.danmaku.ijk.media.sample.R; 23 | 24 | public class SettingsFragment extends PreferenceFragmentCompat { 25 | public static SettingsFragment newInstance() { 26 | SettingsFragment f = new SettingsFragment(); 27 | return f; 28 | } 29 | 30 | @Override 31 | public void onCreatePreferences(Bundle bundle, String s) { 32 | addPreferencesFromResource(R.xml.settings); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/java/tv/danmaku/ijk/media/sample/widget/media/IMediaController.java: -------------------------------------------------------------------------------- 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 | package tv.danmaku.ijk.media.sample.widget.media; 18 | 19 | import android.view.View; 20 | import android.widget.MediaController; 21 | 22 | public interface IMediaController { 23 | void hide(); 24 | 25 | boolean isShowing(); 26 | 27 | void setAnchorView(View view); 28 | 29 | void setEnabled(boolean enabled); 30 | 31 | void setMediaPlayer(MediaController.MediaPlayerControl player); 32 | 33 | void show(int timeout); 34 | 35 | void show(); 36 | 37 | //---------- 38 | // Extends 39 | //---------- 40 | void showOnce(View view); 41 | } 42 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/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-sample/src/main/res/drawable-hdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-hdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-mdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_action_dark_aspect_ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_action_dark_aspect_ratio.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_action_dark_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_action_dark_filter.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_description.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_folder.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/drawable-xxxhdpi/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/activity_app.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/fragment_file_list.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | 19 | 29 | 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/fragment_file_list_item.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/table_media_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/table_media_info_row1.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/table_media_info_row2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/table_media_info_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/layout/widget_toolbar.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/menu/menu_app.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/menu/menu_player.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | 22 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/android/ijkplayer/ijkplayer-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/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-sample/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-sample/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-sample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /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 | ext { 31 | optionalPlugins = ['tools/gradle-mvn-push.gradle', 'tools/gradle-bintray-upload.gradle']; 32 | } 33 | 34 | ext.optionalPlugins.each{ value -> 35 | def plugin_file = new File(rootProject.projectDir, value); 36 | if (plugin_file.exists()) { 37 | apply from: plugin_file 38 | } 39 | } -------------------------------------------------------------------------------- /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 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 | package tv.danmaku.ijk.media.player_x86; 18 | 19 | public class Pragma { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /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 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | APP_OPTIM := release 20 | APP_PLATFORM := android-9 21 | APP_ABI := x86 22 | NDK_TOOLCHAIN_VERSION=4.8 23 | APP_PIE := false 24 | 25 | APP_CFLAGS := -O3 -Wall -pipe \ 26 | -ffast-math \ 27 | -fstrict-aliasing -Werror=strict-aliasing \ 28 | -Wno-psabi -Wa,--noexecstack \ 29 | -DANDROID -DNDEBUG 30 | -------------------------------------------------------------------------------- /android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | LOCAL_MODULE := libavcodec 4 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavcodec.a 5 | include $(PREBUILT_STATIC_LIBRARY) 6 | 7 | include $(CLEAR_VARS) 8 | LOCAL_MODULE := libavformat 9 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavformat.a 10 | include $(PREBUILT_STATIC_LIBRARY) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE := libavutil 14 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavutil.a 15 | include $(PREBUILT_STATIC_LIBRARY) 16 | 17 | include $(CLEAR_VARS) 18 | LOCAL_MODULE := libswresample 19 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswresample.a 20 | include $(PREBUILT_STATIC_LIBRARY) 21 | 22 | include $(CLEAR_VARS) 23 | LOCAL_MODULE := libswscale 24 | LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswscale.a 25 | include $(PREBUILT_STATIC_LIBRARY) 26 | -------------------------------------------------------------------------------- /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/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':ijkplayer-armv5' 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-sample' 10 | 11 | -------------------------------------------------------------------------------- /config/module.sh: -------------------------------------------------------------------------------- 1 | module-lite.sh -------------------------------------------------------------------------------- /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 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | MEDIA_PATH := $(call my-dir) 20 | #include $(MEDIA_PATH)/ijkutil/Android.mk 21 | include $(MEDIA_PATH)/ijksdl/Android.mk 22 | include $(MEDIA_PATH)/ijkyuv/Android.mk 23 | include $(MEDIA_PATH)/ijkplayer/Android.mk 24 | #include $(call all-subdir-makefiles) 25 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/android/ffmpeg_api_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffmpeg_api_jni.h 3 | * 4 | * Copyright (c) 2014 Zhang Rui 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 IJKPLAYER_ANDROID__FFMPEG_API_JNI_H 24 | 25 | #include 26 | 27 | int FFmpegApi_global_init(JNIEnv *env); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/config.h: -------------------------------------------------------------------------------- 1 | /* 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 | 21 | #ifndef FFPLAY__CONFIG_H 22 | #define FFPLAY__CONFIG_H 23 | 24 | #include "libffmpeg/config.h" 25 | 26 | // FIXME: merge filter related code and enable it 27 | #ifdef CONFIG_AVFILTER 28 | // #undef CONFIG_AVFILTER 29 | #endif 30 | // #define CONFIG_AVFILTER 0 31 | 32 | #ifdef FFP_MERGE 33 | #undef FFP_MERGE 34 | #endif 35 | 36 | #ifdef FFP_SUB 37 | #undef FFP_SUB 38 | #endif 39 | 40 | #ifndef FFMPEG_LOG_TAG 41 | #define FFMPEG_LOG_TAG "IJKFFMPEG" 42 | #endif 43 | 44 | #endif//FFPLAY__CONFIG_H 45 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ff_fferror.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ff_fferror.h 3 | * 4 | * Copyright (c) 2003 Fabrice Bellard 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 FFPLAY__FF_FFERROR_H 25 | #define FFPLAY__FF_FFERROR_H 26 | 27 | #define EIJK_FAILED -1 28 | #define EIJK_OUT_OF_MEMORY -2 29 | #define EIJK_INVALID_STATE -3 30 | #define EIJK_NULL_IS_PTR -4 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/ijkavformat/url.h: -------------------------------------------------------------------------------- 1 | /* 2 | * url.h 3 | * 4 | * Copyright (c) 2003 Fabrice Bellard 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 FFPLAY__IJKAVFORMAT_URL_H 25 | #define FFPLAY__IJKAVFORMAT_URL_H 26 | 27 | #include "libavformat/url.h" 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/pipeline/ffpipeline_ffplay.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipeline_ffplay.h 3 | * 4 | * Copyright (c) 2014 Zhang Rui 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_FFPLAY_H 24 | #define FFPLAY__FF_FFPIPELINE_FFPLAY_H 25 | 26 | #include "../ff_ffpipeline.h" 27 | 28 | // There is no default aout for ffplay. 29 | // IJKFF_Pipeline *ffpipeline_create_from_ffplay(FFPlayer *ffp); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ijkmedia/ijkplayer/pipeline/ffpipenode_ffplay_vdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipenode_ffplay_vdec.h 3 | * 4 | * Copyright (c) 2014 Zhang Rui 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_FFPIPENODE_FFPLAY_VDEC_H 24 | #define FFPLAY__FF_FFPIPENODE_FFPLAY_VDEC_H 25 | 26 | #include "../ff_ffpipenode.h" 27 | 28 | struct FFPlayer; 29 | 30 | IJKFF_Pipenode *ffpipenode_create_video_decoder_from_ffplay(struct FFPlayer *ffp); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/Makefile: -------------------------------------------------------------------------------- 1 | JJK = ./parser/jjk 2 | 3 | ALL_SRC = \ 4 | c/android/media/AudioTrack.c \ 5 | c/android/media/MediaCodec.c \ 6 | c/android/media/MediaFormat.c \ 7 | c/android/os/Build.c \ 8 | c/android/os/Bundle.c \ 9 | c/java/nio/Buffer.c \ 10 | c/java/nio/ByteBuffer.c \ 11 | c/java/util/ArrayList.c \ 12 | c/tv/danmaku/ijk/media/player/IjkMediaPlayer.c \ 13 | c/tv/danmaku/ijk/media/player/misc/IMediaDataSource.c \ 14 | 15 | ALL_HEAD := $(ALL_SRC:.c=.h) 16 | 17 | all: $(ALL_SRC) 18 | 19 | c/%.c: java/%.java 20 | mkdir -p $(shell dirname $@) 21 | $(JJK) $< $(patsubst %.c,%.h,$@) $@ 22 | 23 | .PHONY: all clean clean-all rebuild 24 | clean: 25 | rm -f $(ALL_SRC) 26 | rm -f $(ALL_HEAD) 27 | 28 | clean-all: clean 29 | cd parser && make -f ./Makefile clean && cd - 30 | 31 | rebuild: clean all 32 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/build.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | cd parser 4 | make 5 | cd - 6 | 7 | make rebuild 8 | #parser/jjk java/android/media/MediaCodec.java 9 | #parser/jjk java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java 10 | 11 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/c/java/nio/Buffer.h: -------------------------------------------------------------------------------- 1 | /* 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 | 21 | #ifndef JJK__java_nio_Buffer__H 22 | #define JJK__java_nio_Buffer__H 23 | 24 | #include "ijksdl/android/jjk/internal/jjk_internal.h" 25 | 26 | int JJK_loadClass__JJKC_java_nio_Buffer(JNIEnv *env); 27 | 28 | #endif//JJK__java_nio_Buffer__H 29 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/java/android/media/AudioTrack.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @SimpleCClassName 4 | public class AudioTrack { 5 | public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode); 6 | 7 | public static int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat); 8 | public static float getMaxVolume(); 9 | public static float getMinVolume(); 10 | public static int getNativeOutputSampleRate (int streamType); 11 | 12 | public void play(); 13 | public void pause(); 14 | public void stop(); 15 | public void flush(); 16 | public void release(); 17 | 18 | public int write(byte[] audioData, int offsetInBytes, int sizeInBytes); 19 | 20 | public int setStereoVolume(float leftGain, float rightGain); 21 | public int getAudioSessionId(); 22 | } 23 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/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/ijksdl/android/jjk/java/android/media/MediaCrypto.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @Hide 4 | @MinApi(16) 5 | public class MediaCrypto { 6 | } 7 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/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/ijksdl/android/jjk/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/ijksdl/android/jjk/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 | } 17 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/java/java/nio/Buffer.java: -------------------------------------------------------------------------------- 1 | package java.nio; 2 | 3 | public class Buffer { 4 | } 5 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/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/ijksdl/android/jjk/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/ijksdl/android/jjk/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 | 10 | private static void postEventFromNative(Object weakThiz, int what, int arg1, int arg2, Object obj); 11 | private static String onSelectCodec(Object weakThiz, String mimeType, int profile, int level); 12 | private static boolean onNativeInvoke(Object weakThiz, int what, Bundle args); 13 | } 14 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/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/ijksdl/android/jjk/parser.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/parser/.gitignore: -------------------------------------------------------------------------------- 1 | jjk 2 | jni.bison.tab.cpp 3 | jni.bison.tab.hpp 4 | jni.flex.yy.cpp 5 | 6 | *.d 7 | *.o 8 | *.output 9 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/parser/Makefile: -------------------------------------------------------------------------------- 1 | CC = g++ 2 | CPPFLAGS = -std=c++11 -I./ -Wno-deprecated-register 3 | YACC = /opt/bin/bison 4 | YACC_FLAGS = --debug --verbose -d 5 | YYLEX = flex 6 | YYLEX_FLAGS = 7 | 8 | all: jjk 9 | 10 | YACC_DEPS = \ 11 | jni.bison.y \ 12 | jni.flex.l \ 13 | 14 | CXX_OBJS = \ 15 | ast/ast_class.o \ 16 | ast/ast_compilation_unit.o \ 17 | ast/ast_constructor.o \ 18 | ast/ast_field.o \ 19 | ast/ast_identifier.o \ 20 | ast/ast_member.o \ 21 | ast/ast_method.o \ 22 | ast/ast_node.o \ 23 | ast/ast_property_accessor.o \ 24 | ast/ast_reference_type.o \ 25 | ast/ast__context.o \ 26 | ast/ast__namespace.o \ 27 | jni.flex.yy.o \ 28 | jni.bison.tab.o \ 29 | jjk.o \ 30 | 31 | DEPS := $(CXX_OBJS:.o=.d) 32 | -include $(DEPS) 33 | 34 | $(CXX_OBJS): Makefile jni.bison.tab.cpp jni.flex.yy.cpp 35 | 36 | %.o: %.cpp 37 | $(CC) $(CPPFLAGS) -MM -MT $@ -MF $(patsubst %.o,%.d,$@) $< 38 | $(CC) $(CPPFLAGS) -c -o $@ $< 39 | 40 | jjk: $(CXX_OBJS) 41 | $(CC) -o jjk $(CXX_OBJS) 42 | 43 | jni.bison.tab.cpp: $(YACC_DEPS) 44 | $(YACC) $(YACC_FLAGS) -o $@ jni.bison.y 45 | 46 | jni.flex.yy.cpp: $(YACC_DEPS) 47 | $(YYLEX) $(YYLEX_FLAGS) -o $@ jni.flex.l 48 | 49 | .PHONY: all clean 50 | clean: 51 | rm -f jni.bison.tab.cpp 52 | rm -f jni.bison.tab.hpp 53 | rm -f jni.flex.yy.cpp 54 | rm -f $(CXX_OBJS) 55 | rm -f $(DEPS) 56 | rm -f jjk 57 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/parser/bfc/bfc.h: -------------------------------------------------------------------------------- 1 | /* 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 | 21 | #ifndef BFC__H 22 | #define BFC__H 23 | 24 | #include "bfc__def.h" 25 | 26 | #include "bfc_object.h" 27 | #include "bfc_string.h" 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/parser/jjk.cpp: -------------------------------------------------------------------------------- 1 | #include "parser.hpp" 2 | #include "jni.bison.tab.hpp" 3 | #include "ast/ast.hpp" 4 | #include "bfc/bfc.h" 5 | 6 | extern int flex_main(int argc, char **argv); 7 | extern int bison_main(int argc, char **argv); 8 | 9 | extern int yyparse(); 10 | 11 | int main(int argc, char **argv) 12 | { 13 | printf("%s\n", argv[0]); 14 | 15 | if ( argc < 2 ) { 16 | printf( 17 | " usage:\n" 18 | " jjk \n"); 19 | return -1; 20 | } 21 | 22 | yyin = fopen(argv[1], "r"); 23 | if (!yyin) { 24 | printf("failed to open input file %s\n", argv[1]); 25 | return -1; 26 | } 27 | 28 | ast::Context::instance()->set_h_file_path(argc >= 3 ? argv[2] : ""); 29 | ast::Context::instance()->set_c_file_path(argc >= 4 ? argv[3] : ""); 30 | 31 | const char *file_name = strrchr(argv[1], '/'); 32 | std::string dir_name = std::string(argv[1], file_name - argv[1]); 33 | // printf("add java path: %s\n", dir_name->c_str()); 34 | ast::Context::instance()->set_java_class_dir(dir_name.c_str()); 35 | 36 | int ret = yyparse(); 37 | fclose(yyin); 38 | return ret; 39 | } 40 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/android/jjk/parser/parser.hpp: -------------------------------------------------------------------------------- 1 | #ifndef JJK_PARSER_HPP 2 | #define JJK_PARSER_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include "bfc/bfc.h" 13 | 14 | #define FLEX_LOGF(...) 15 | // #define BISON_LOGF(...) 16 | #define BISON_LOGF printf 17 | 18 | extern int yylex(); 19 | extern FILE *yyin; 20 | extern FILE *yyout; 21 | extern int yylineno; 22 | static void yyerror(const char *s) { printf("ERROR: at line %d\n\t%s\n", yylineno, s);} 23 | 24 | NAMESPACE_STD_BEGIN 25 | 26 | template 27 | inline std::basic_ostream& 28 | operator<<( 29 | std::basic_ostream &os, 30 | const std::auto_ptr > &str) 31 | { 32 | return os << str->c_str(); 33 | } 34 | 35 | class ast_fill 36 | { 37 | public: 38 | ast_fill(int width): m_width(width) {;} 39 | int m_width; 40 | }; 41 | 42 | template 43 | inline std::basic_ostream& 44 | operator<<( 45 | std::basic_ostream &os, 46 | const ast_fill &rhs) 47 | { 48 | for (int i = 0; i < rhs.m_width; ++i) 49 | os << ' '; 50 | return os; 51 | } 52 | 53 | NAMESPACE_STD_END 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/dummy/ijksdl_dummy.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_dummy.h 3 | ***************************************************************************** 4 | * 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 IJKSDL_DUMMY__IJKSDL_DUMMY_H 25 | #define IJKSDL_DUMMY__IJKSDL_DUMMY_H 26 | 27 | #include "../ijksdl.h" 28 | 29 | // #include "ijksdl_aout_dummy.h" 30 | 31 | #include "ijksdl_vout_dummy.h" 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/dummy/ijksdl_vout_dummy.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_vout_dummy.h 3 | ***************************************************************************** 4 | * 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 IJKSDL_DUMMY__IJKSDL_VOUT_DUMMY_H 25 | #define IJKSDL_DUMMY__IJKSDL_VOUT_DUMMY_H 26 | 27 | #include "../ijksdl_stdinc.h" 28 | #include "../ijksdl_vout.h" 29 | 30 | SDL_Vout *SDL_VoutDummy_Create(); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ffmpeg/ijksdl_image_convert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_ffinc.h 3 | * ffmpeg headers 4 | * 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 IJKSDL__FFMPEG__IJKSDL_IMAGE_CONVERT_H 25 | #define IJKSDL__FFMPEG__IJKSDL_IMAGE_CONVERT_H 26 | 27 | #include 28 | #include "ijksdl_inc_ffmpeg.h" 29 | 30 | int ijk_image_convert(int width, int height, 31 | enum AVPixelFormat dst_format, uint8_t **dst_data, int *dst_linesize, 32 | enum AVPixelFormat src_format, const uint8_t **src_data, const int *src_linesize); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ffmpeg/ijksdl_inc_ffmpeg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_ffinc.h 3 | * ffmpeg headers 4 | * 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 IJKSDL__FFMPEG__IJKSDL_FFINC_H 25 | #define IJKSDL__FFMPEG__IJKSDL_FFINC_H 26 | 27 | #include "libavutil/imgutils.h" 28 | #include "libavutil/pixfmt.h" 29 | #include "libavutil/frame.h" 30 | #include "libavutil/common.h" 31 | #include "libavcodec/avcodec.h" 32 | #include "libswscale/swscale.h" 33 | 34 | #include "../ijksdl_inc_internal.h" 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_class.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_class.h 3 | ***************************************************************************** 4 | * 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 IJKSDL__IJKSDL_CLASS_H 25 | #define IJKSDL__IJKSDL_CLASS_H 26 | 27 | typedef struct SDL_Class { 28 | const char *name; 29 | } SDL_Class; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_error.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_error.c 3 | ***************************************************************************** 4 | * 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_error.h" 25 | #include "ijksdl_stdinc.h" 26 | 27 | const char *SDL_GetError(void) 28 | { 29 | return NULL; 30 | } 31 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_error.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_error.h 3 | ***************************************************************************** 4 | * 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 IJKSDL__IJKSDL_ERROR_H 25 | #define IJKSDL__IJKSDL_ERROR_H 26 | 27 | const char *SDL_GetError(void); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_inc_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_inc_internal.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 IJKPLAYER__IJKSDL_INC_INTERNAL_H 24 | #define IJKPLAYER__IJKSDL_INC_INTERNAL_H 25 | 26 | #include 27 | 28 | #include "ijksdl_log.h" 29 | #include "ijksdl_misc.h" 30 | #include "ijksdl_stdinc.h" 31 | 32 | #define SDLTRACE ALOGD 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_stdinc.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_stdinc.c 3 | ***************************************************************************** 4 | * 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_stdinc.h" 25 | 26 | char *SDL_getenv(const char *name) 27 | { 28 | return NULL; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /ijkmedia/ijksdl/ijksdl_video.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_video.h 3 | ***************************************************************************** 4 | * 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 IJKSDL__IJKSDL_VIDEO_H 25 | #define IJKSDL__IJKSDL_VIDEO_H 26 | 27 | #include "ijksdl_stdinc.h" 28 | #include "ijksdl_fourcc.h" 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ijkprof/android-ndk-profiler-dummy/jni/Android-include.mk: -------------------------------------------------------------------------------- 1 | # copyright (c) 2013 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | # do nothing here -------------------------------------------------------------------------------- /ijkprof/android-ndk-profiler-dummy/jni/Android.mk: -------------------------------------------------------------------------------- 1 | # copyright (c) 2015 Zhang Rui 2 | # 3 | # This file is part of ijkPlayer. 4 | # 5 | # ijkPlayer is free software; you can redistribute it and/or 6 | # modify it under the terms of the GNU Lesser General Public 7 | # License as published by the Free Software Foundation; either 8 | # version 2.1 of the License, or (at your option) any later version. 9 | # 10 | # ijkPlayer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with ijkPlayer; if not, write to the Free Software 17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | LOCAL_PATH := $(call my-dir) 20 | 21 | include $(CLEAR_VARS) 22 | #LOCAL_CFLAGS += -std=c99 23 | #LOCAL_EXPORT_LDLIBS += -llog 24 | 25 | #LOCAL_SRC_FILES += android/loghelp.c 26 | #LOCAL_SRC_FILES += android/jnihelp.c 27 | #LOCAL_MODULE := libijkutil 28 | 29 | LOCAL_MODULE := android-ndk-profiler 30 | LOCAL_SRC_FILES := prof.c 31 | 32 | include $(BUILD_STATIC_LIBRARY) 33 | -------------------------------------------------------------------------------- /ijkprof/android-ndk-profiler-dummy/jni/prof.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * prof.c 3 | ***************************************************************************** 4 | * 5 | * copyright (c) 2015 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 ANDROID_NDK_PROF__PROF_H 25 | #define ANDROID_NDK_PROF__PROF_H 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | void monstartup(const char *libname); 32 | void moncleanup(void); 33 | 34 | #ifdef __cplusplus 35 | } 36 | #endif 37 | 38 | #endif//ANDROID_NDK_PROF__PROF_H 39 | -------------------------------------------------------------------------------- /init-android-libyuv.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 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 | 19 | IJK_LIBYUV_UPSTREAM=https://github.com/Bilibili/libyuv.git 20 | IJK_LIBYUV_FORK=https://github.com/Bilibili/libyuv.git 21 | IJK_LIBYUV_COMMIT=ijk-r0.2.1-dev 22 | IJK_LIBYUV_LOCAL_REPO=extra/libyuv 23 | 24 | set -e 25 | TOOLS=tools 26 | 27 | echo "== pull libyuv base ==" 28 | sh $TOOLS/pull-repo-base.sh $IJK_LIBYUV_UPSTREAM $IJK_LIBYUV_LOCAL_REPO 29 | 30 | echo "== pull libyuv fork ==" 31 | sh $TOOLS/pull-repo-ref.sh $IJK_LIBYUV_FORK ijkmedia/ijkyuv ${IJK_LIBYUV_LOCAL_REPO} 32 | cd ijkmedia/ijkyuv 33 | git checkout ${IJK_LIBYUV_COMMIT} 34 | cd - 35 | -------------------------------------------------------------------------------- /init-android-prof.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 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 | IJK_LIB_NAME=android-ndk-profiler 19 | IJK_LIB_UPSTREAM=https://github.com/Bilibili/android-ndk-profiler.git 20 | IJK_LIB_FORK=https://github.com/Bilibili/android-ndk-profiler.git 21 | IJK_LIB_COMMIT=ijk-r0.3.0-dev 22 | IJK_LIB_LOCAL_REPO=extra/android-ndk-profiler 23 | 24 | set -e 25 | TOOLS=tools 26 | 27 | echo "== pull $IJK_LIB_NAME base ==" 28 | sh $TOOLS/pull-repo-base.sh $IJK_LIB_UPSTREAM $IJK_LIB_LOCAL_REPO 29 | 30 | echo "== pull $IJK_LIB_NAME fork ==" 31 | sh $TOOLS/pull-repo-ref.sh $IJK_LIB_FORK ijkprof/$IJK_LIB_NAME ${IJK_LIB_LOCAL_REPO} 32 | cd ijkprof/$IJK_LIB_NAME 33 | git checkout ${IJK_LIB_COMMIT} 34 | cd - 35 | -------------------------------------------------------------------------------- /init-config.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 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 | if [ ! -f 'config/module.sh' ]; then 19 | cp config/module-lite.sh config/module.sh 20 | 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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/IJKMediaDemo/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/IJKMediaDemo/Default.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/IJKMediaDemo/Default@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-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 | #import 18 | 19 | @interface IJKAppDelegate : UIResponder 20 | 21 | @property (strong, nonatomic) UIWindow *window; 22 | @property (strong, nonatomic) UIViewController *viewController; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/IJKCommon.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-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 | #import 18 | 19 | #define IOS_OLDER_THAN_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] < 6.0 ) 20 | #define IOS_NEWER_OR_EQUAL_TO_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 6.0 ) 21 | #define IOS_NEWER_OR_EQUAL_TO_7 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 7.0 ) 22 | -------------------------------------------------------------------------------- /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 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 | #import 18 | 19 | @interface IJKDemoSampleViewController : UIViewController 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /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 | #import 15 | #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/IJKQRCodeScanViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/IJKMediaDemo/Images.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/ios/IJKMediaDemo/XCAssets/AppIcons.xcassets/AppIcon.appiconset/icset_iphone_iosu_29pt@3x.png -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "filename" : "iphone_ios7_640_960.png", 7 | "extent" : "full-screen", 8 | "minimum-system-version" : "7.0", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "extent" : "full-screen", 13 | "idiom" : "iphone", 14 | "subtype" : "retina4", 15 | "filename" : "iphone_ios7_640_1136.png", 16 | "minimum-system-version" : "7.0", 17 | "orientation" : "portrait", 18 | "scale" : "2x" 19 | }, 20 | { 21 | "orientation" : "portrait", 22 | "idiom" : "iphone", 23 | "filename" : "iphone_ios5_320_480.png", 24 | "extent" : "full-screen", 25 | "scale" : "1x" 26 | }, 27 | { 28 | "orientation" : "portrait", 29 | "idiom" : "iphone", 30 | "filename" : "iphone_ios5_640_960.png", 31 | "extent" : "full-screen", 32 | "scale" : "2x" 33 | }, 34 | { 35 | "orientation" : "portrait", 36 | "idiom" : "iphone", 37 | "filename" : "iphone_ios5_640_1136.png", 38 | "extent" : "full-screen", 39 | "subtype" : "retina4", 40 | "scale" : "2x" 41 | } 42 | ], 43 | "info" : { 44 | "version" : 1, 45 | "author" : "xcode" 46 | } 47 | } -------------------------------------------------------------------------------- /ios/IJKMediaDemo/XCAssets/LaunchImages.xcassets/LaunchImage.launchimage/iphone_ios5_320_480.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/pili-engineering/pili-ijkplayer/02353b97978826773038d6caf4239c2f204becbb/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/IJKMediaPlayer/IJKAudioKit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKAudioKit.h 3 | * 4 | * Copyright (c) 2013-2014 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | #import 27 | 28 | @interface IJKAudioKit : NSObject 29 | 30 | + (IJKAudioKit *)sharedInstance; 31 | - (void)setupAudioSession; 32 | - (BOOL)setActive:(BOOL)active; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKKVOController.h: -------------------------------------------------------------------------------- 1 | // 2 | // IJKKVOController.h 3 | // IJKMediaPlayer 4 | // 5 | // Created by Zhang Rui on 14-9-29. 6 | // Copyright (c) 2014年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IJKKVOController : NSObject 12 | 13 | - (id)initWithTarget:(NSObject *)target; 14 | 15 | - (void)safelyAddObserver:(NSObject *)observer 16 | forKeyPath:(NSString *)keyPath 17 | options:(NSKeyValueObservingOptions)options 18 | context:(void *)context; 19 | - (void)safelyRemoveObserver:(NSObject *)observer 20 | forKeyPath:(NSString *)keyPath; 21 | 22 | - (void)safelyRemoveAllObservers; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKMPMoviePlayerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKMPMoviePlayerController.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #import "IJKMediaPlayback.h" 24 | 25 | @interface IJKMPMoviePlayerController : MPMoviePlayerController 26 | 27 | - (id)initWithContentURL:(NSURL *)aUrl; 28 | - (id)initWithContentURLString:(NSString *)aUrl; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKMediaModule.h: -------------------------------------------------------------------------------- 1 | // 2 | // IJKMediaModule.h 3 | // IJKMediaPlayer 4 | // 5 | // Created by ZhangRui on 14-3-14. 6 | // Copyright (c) 2014年 bilibili. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IJKMediaModule : NSObject 12 | 13 | + (IJKMediaModule *)sharedModule; 14 | 15 | @property(atomic, getter=isAppIdleTimerDisabled) BOOL appIdleTimerDisabled; 16 | @property(atomic, getter=isMediaModuleIdleTimerDisabled) BOOL mediaModuleIdleTimerDisabled; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /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 | 10 | #import 11 | #import 12 | #import 13 | 14 | #import 15 | #import 16 | #import 17 | #import 18 | #import 19 | #endif 20 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/IJKMediaPlayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKMediaPlayer.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #import "IJKMediaPlayback.h" 24 | #import "IJKMPMoviePlayerController.h" 25 | 26 | #import "IJKFFOptions.h" 27 | #import "IJKFFMoviePlayerController.h" 28 | 29 | #import "IJKAVMoviePlayerController.h" 30 | 31 | #import "IJKMediaModule.h" 32 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijkplayer/ios/ijkplayer_ios.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijkplayer_ios.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #include "ijkplayer/ijkplayer.h" 24 | #import "IJKSDLGLView.h" 25 | 26 | // ref_count is 1 after open 27 | IjkMediaPlayer *ijkmp_ios_create(int (*msg_loop)(void*)); 28 | 29 | void ijkmp_ios_set_glview(IjkMediaPlayer *mp, IJKSDLGLView *glView); 30 | bool ijkmp_ios_is_videotoolbox_open(IjkMediaPlayer *mp); 31 | -------------------------------------------------------------------------------- /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/ijkplayer/ios/pipeline/ffpipenode_ios_videotoolbox_vdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipenode_ios_videotoolbox_vdec.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_FFPIPENODE_IOS_VIDEOTOOLBOX_DEC_H 24 | #define FFPLAY__FF_FFPIPENODE_IOS_VIDEOTOOLBOX_DEC_H 25 | 26 | #include "ijkplayer/ff_ffpipenode.h" 27 | 28 | struct FFPlayer; 29 | 30 | IJKFF_Pipenode *ffpipenode_create_video_decoder_from_ios_videotoolbox(struct FFPlayer *ffp); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLAudioKit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLAudioKit.h 3 | * 4 | * Copyright (c) 2013-2014 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | #include "ijksdl/ijksdl_aout.h" 27 | 28 | extern void IJKSDLGetAudioComponentDescriptionFromSpec(const SDL_AudioSpec *spec, AudioComponentDescription *desc); 29 | extern void IJKSDLGetAudioStreamBasicDescriptionFromSpec(const SDL_AudioSpec *spec, AudioStreamBasicDescription *desc); 30 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRender.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLGLRender.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | #include 27 | #include 28 | 29 | #include "ijksdl/ijksdl_vout.h" 30 | 31 | @protocol IJKSDLGLRender 32 | - (BOOL) isValid; 33 | - (NSString *) fragmentShader; 34 | - (void) resolveUniforms: (GLuint) program; 35 | - (void) render: (SDL_VoutOverlay *) overlay; 36 | - (BOOL) prepareDisplay; 37 | @end 38 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderI420.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLGLRenderI420.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | #import "IJKSDLGLRender.h" 27 | 28 | @interface IJKSDLGLRenderI420 : NSObject 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderNV12.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLGLRenderNV12.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 | #import 24 | #import "IJKSDLGLRender.h" 25 | 26 | @interface IJKSDLGLRenderNV12 : NSObject 27 | 28 | -(id)initWithTextureCache:(CVOpenGLESTextureCacheRef) textureCache; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderRV24.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLGLRenderRV24.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | #import "IJKSDLGLRender.h" 27 | 28 | @interface IJKSDLGLRenderRV24 : NSObject 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLShader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * IJKSDLGLShader.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * based on https://github.com/kolyvan/kxmovie 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 | #import 26 | 27 | #define IJK_STRINGIZE(x) #x 28 | #define IJK_STRINGIZE2(x) IJK_STRINGIZE(x) 29 | #define IJK_SHADER_STRING(text) @ IJK_STRINGIZE2(text) 30 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_aout_ios_audiounit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_aout_ios_audiounit.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #include "ijksdl/ijksdl_aout.h" 24 | 25 | SDL_Aout *SDL_AoutIos_CreateForAudioUnit(); 26 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_thread_ios.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_thread_ios.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #import 24 | -------------------------------------------------------------------------------- /ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/ijksdl_vout_ios_gles2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_vout_ios_gles2.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 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 | #include "ijksdl/ijksdl_stdinc.h" 24 | #include "ijksdl/ijksdl_vout.h" 25 | 26 | @class IJKSDLGLView; 27 | 28 | SDL_Vout *SDL_VoutIos_CreateForGLES2(); 29 | void SDL_VoutIos_SetGLView(SDL_Vout *vout, IJKSDLGLView *view); 30 | -------------------------------------------------------------------------------- /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/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 | --------------------------------------------------------------------------------