├── .gitignore ├── A4ijkplayer ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── alanwang4523 │ │ └── a4ijkplayer │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── cpp │ │ ├── CMakeLists.txt │ │ ├── ijkmedia │ │ │ ├── Android.mk │ │ │ ├── ijkj4a │ │ │ │ ├── .gitignore │ │ │ │ ├── Android.mk │ │ │ │ ├── Makefile │ │ │ │ ├── j4a │ │ │ │ │ ├── class │ │ │ │ │ │ ├── android │ │ │ │ │ │ │ ├── media │ │ │ │ │ │ │ │ ├── AudioTrack.c │ │ │ │ │ │ │ │ ├── AudioTrack.h │ │ │ │ │ │ │ │ ├── AudioTrack.include.j4a │ │ │ │ │ │ │ │ ├── AudioTrack.loader.j4a │ │ │ │ │ │ │ │ ├── MediaCodec.c │ │ │ │ │ │ │ │ ├── MediaCodec.h │ │ │ │ │ │ │ │ ├── MediaCodec.include.j4a │ │ │ │ │ │ │ │ ├── MediaCodec.loader.j4a │ │ │ │ │ │ │ │ ├── MediaFormat.c │ │ │ │ │ │ │ │ ├── MediaFormat.h │ │ │ │ │ │ │ │ ├── MediaFormat.include.j4a │ │ │ │ │ │ │ │ ├── MediaFormat.loader.j4a │ │ │ │ │ │ │ │ ├── PlaybackParams.c │ │ │ │ │ │ │ │ ├── PlaybackParams.h │ │ │ │ │ │ │ │ ├── PlaybackParams.include.j4a │ │ │ │ │ │ │ │ └── PlaybackParams.loader.j4a │ │ │ │ │ │ │ └── os │ │ │ │ │ │ │ │ ├── Build.c │ │ │ │ │ │ │ │ ├── Build.h │ │ │ │ │ │ │ │ ├── Build.include.j4a │ │ │ │ │ │ │ │ ├── Build.loader.j4a │ │ │ │ │ │ │ │ ├── Bundle.c │ │ │ │ │ │ │ │ ├── Bundle.h │ │ │ │ │ │ │ │ ├── Bundle.include.j4a │ │ │ │ │ │ │ │ └── Bundle.loader.j4a │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ ├── nio │ │ │ │ │ │ │ │ ├── Buffer.c │ │ │ │ │ │ │ │ ├── Buffer.h │ │ │ │ │ │ │ │ ├── Buffer.include.j4a │ │ │ │ │ │ │ │ ├── Buffer.loader.j4a │ │ │ │ │ │ │ │ ├── ByteBuffer.c │ │ │ │ │ │ │ │ ├── ByteBuffer.h │ │ │ │ │ │ │ │ ├── ByteBuffer.include.j4a │ │ │ │ │ │ │ │ └── ByteBuffer.loader.j4a │ │ │ │ │ │ │ └── util │ │ │ │ │ │ │ │ ├── ArrayList.c │ │ │ │ │ │ │ │ ├── ArrayList.h │ │ │ │ │ │ │ │ ├── ArrayList.include.j4a │ │ │ │ │ │ │ │ └── ArrayList.loader.j4a │ │ │ │ │ │ └── tv │ │ │ │ │ │ │ └── danmaku │ │ │ │ │ │ │ └── ijk │ │ │ │ │ │ │ └── media │ │ │ │ │ │ │ └── player │ │ │ │ │ │ │ ├── IjkMediaPlayer.c │ │ │ │ │ │ │ ├── IjkMediaPlayer.h │ │ │ │ │ │ │ ├── IjkMediaPlayer.include.j4a │ │ │ │ │ │ │ ├── IjkMediaPlayer.loader.j4a │ │ │ │ │ │ │ └── misc │ │ │ │ │ │ │ ├── IAndroidIO.c │ │ │ │ │ │ │ ├── IAndroidIO.h │ │ │ │ │ │ │ ├── IAndroidIO.include.j4a │ │ │ │ │ │ │ ├── IAndroidIO.loader.j4a │ │ │ │ │ │ │ ├── IMediaDataSource.c │ │ │ │ │ │ │ ├── IMediaDataSource.h │ │ │ │ │ │ │ ├── IMediaDataSource.include.j4a │ │ │ │ │ │ │ └── IMediaDataSource.loader.j4a │ │ │ │ │ ├── j4a_allclasses.c │ │ │ │ │ ├── j4a_allclasses.h │ │ │ │ │ ├── j4a_allclasses.include.h │ │ │ │ │ ├── j4a_allclasses.loader.h │ │ │ │ │ ├── j4a_base.c │ │ │ │ │ └── j4a_base.h │ │ │ │ ├── j4au │ │ │ │ │ └── class │ │ │ │ │ │ ├── android │ │ │ │ │ │ └── media │ │ │ │ │ │ │ ├── AudioTrack.util.c │ │ │ │ │ │ │ └── AudioTrack.util.h │ │ │ │ │ │ └── java │ │ │ │ │ │ └── nio │ │ │ │ │ │ ├── ByteBuffer.util.c │ │ │ │ │ │ └── ByteBuffer.util.h │ │ │ │ └── java │ │ │ │ │ ├── android │ │ │ │ │ ├── media │ │ │ │ │ │ ├── AudioTrack.java │ │ │ │ │ │ ├── MediaCodec.java │ │ │ │ │ │ ├── MediaCrypto.java │ │ │ │ │ │ ├── MediaFormat.java │ │ │ │ │ │ └── PlaybackParams.java │ │ │ │ │ └── os │ │ │ │ │ │ ├── Build.java │ │ │ │ │ │ └── Bundle.java │ │ │ │ │ ├── java │ │ │ │ │ ├── nio │ │ │ │ │ │ ├── Buffer.java │ │ │ │ │ │ └── ByteBuffer.java │ │ │ │ │ └── util │ │ │ │ │ │ └── ArrayList.java │ │ │ │ │ └── tv │ │ │ │ │ └── danmaku │ │ │ │ │ └── ijk │ │ │ │ │ └── media │ │ │ │ │ └── player │ │ │ │ │ ├── IjkMediaPlayer.java │ │ │ │ │ └── misc │ │ │ │ │ ├── IAndroidIO.java │ │ │ │ │ └── IMediaDataSource.java │ │ │ ├── ijkplayer │ │ │ │ ├── .gitignore │ │ │ │ ├── Android.mk │ │ │ │ ├── android │ │ │ │ │ ├── ffmpeg_api_jni.c │ │ │ │ │ ├── ffmpeg_api_jni.h │ │ │ │ │ ├── ijkplayer_android.c │ │ │ │ │ ├── ijkplayer_android.h │ │ │ │ │ ├── ijkplayer_android_def.h │ │ │ │ │ ├── ijkplayer_jni.c │ │ │ │ │ └── pipeline │ │ │ │ │ │ ├── ffpipeline_android.c │ │ │ │ │ │ ├── ffpipeline_android.h │ │ │ │ │ │ ├── ffpipenode_android_mediacodec_vdec.c │ │ │ │ │ │ ├── ffpipenode_android_mediacodec_vdec.h │ │ │ │ │ │ ├── h264_nal.h │ │ │ │ │ │ ├── hevc_nal.h │ │ │ │ │ │ └── mpeg4_esds.h │ │ │ │ ├── config.h │ │ │ │ ├── ff_cmdutils.c │ │ │ │ ├── ff_cmdutils.h │ │ │ │ ├── ff_fferror.h │ │ │ │ ├── ff_ffinc.h │ │ │ │ ├── ff_ffmsg.h │ │ │ │ ├── ff_ffmsg_queue.h │ │ │ │ ├── ff_ffpipeline.c │ │ │ │ ├── ff_ffpipeline.h │ │ │ │ ├── ff_ffpipenode.c │ │ │ │ ├── ff_ffpipenode.h │ │ │ │ ├── ff_ffplay.c │ │ │ │ ├── ff_ffplay.h │ │ │ │ ├── ff_ffplay_debug.h │ │ │ │ ├── ff_ffplay_def.h │ │ │ │ ├── ff_ffplay_options.h │ │ │ │ ├── ijkavformat │ │ │ │ │ ├── allformats.c │ │ │ │ │ ├── ijkasync.c │ │ │ │ │ ├── ijkavformat.h │ │ │ │ │ ├── ijkio.c │ │ │ │ │ ├── ijkioandroidio.c │ │ │ │ │ ├── ijkioapplication.c │ │ │ │ │ ├── ijkioapplication.h │ │ │ │ │ ├── ijkiocache.c │ │ │ │ │ ├── ijkioffio.c │ │ │ │ │ ├── ijkiomanager.c │ │ │ │ │ ├── ijkiomanager.h │ │ │ │ │ ├── ijkioprotocol.c │ │ │ │ │ ├── ijkioprotocol.h │ │ │ │ │ ├── ijkiourl.h │ │ │ │ │ ├── ijkiourlhook.c │ │ │ │ │ ├── ijklivehook.c │ │ │ │ │ ├── ijklongurl.c │ │ │ │ │ ├── ijkmediadatasource.c │ │ │ │ │ ├── ijksegment.c │ │ │ │ │ └── ijkurlhook.c │ │ │ │ ├── ijkavutil │ │ │ │ │ ├── ijkdict.c │ │ │ │ │ ├── ijkdict.h │ │ │ │ │ ├── ijkfifo.c │ │ │ │ │ ├── ijkfifo.h │ │ │ │ │ ├── ijkstl.cpp │ │ │ │ │ ├── ijkstl.h │ │ │ │ │ ├── ijkthreadpool.c │ │ │ │ │ ├── ijkthreadpool.h │ │ │ │ │ ├── ijktree.c │ │ │ │ │ ├── ijktree.h │ │ │ │ │ ├── ijkutils.c │ │ │ │ │ ├── ijkutils.h │ │ │ │ │ └── opt.h │ │ │ │ ├── ijkmeta.c │ │ │ │ ├── ijkmeta.h │ │ │ │ ├── ijkplayer.c │ │ │ │ ├── ijkplayer.h │ │ │ │ ├── ijkplayer_internal.h │ │ │ │ ├── ijkversion.h │ │ │ │ ├── pipeline │ │ │ │ │ ├── ffpipeline_ffplay.c │ │ │ │ │ ├── ffpipeline_ffplay.h │ │ │ │ │ ├── ffpipenode_ffplay_vdec.c │ │ │ │ │ └── ffpipenode_ffplay_vdec.h │ │ │ │ └── version.sh │ │ │ ├── ijksdl │ │ │ │ ├── Android.mk │ │ │ │ ├── android │ │ │ │ │ ├── android_audiotrack.c │ │ │ │ │ ├── android_audiotrack.h │ │ │ │ │ ├── android_nativewindow.c │ │ │ │ │ ├── android_nativewindow.h │ │ │ │ │ ├── ijksdl_android.h │ │ │ │ │ ├── ijksdl_android_jni.c │ │ │ │ │ ├── ijksdl_android_jni.h │ │ │ │ │ ├── ijksdl_aout_android_audiotrack.c │ │ │ │ │ ├── ijksdl_aout_android_audiotrack.h │ │ │ │ │ ├── ijksdl_aout_android_opensles.c │ │ │ │ │ ├── ijksdl_aout_android_opensles.h │ │ │ │ │ ├── ijksdl_codec_android_mediacodec.c │ │ │ │ │ ├── ijksdl_codec_android_mediacodec.h │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_dummy.c │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_dummy.h │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_internal.c │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_internal.h │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_java.c │ │ │ │ │ ├── ijksdl_codec_android_mediacodec_java.h │ │ │ │ │ ├── ijksdl_codec_android_mediadef.c │ │ │ │ │ ├── ijksdl_codec_android_mediadef.h │ │ │ │ │ ├── ijksdl_codec_android_mediaformat.c │ │ │ │ │ ├── ijksdl_codec_android_mediaformat.h │ │ │ │ │ ├── ijksdl_codec_android_mediaformat_internal.h │ │ │ │ │ ├── ijksdl_codec_android_mediaformat_java.c │ │ │ │ │ ├── ijksdl_codec_android_mediaformat_java.h │ │ │ │ │ ├── ijksdl_inc_internal_android.h │ │ │ │ │ ├── ijksdl_vout_android_nativewindow.c │ │ │ │ │ ├── ijksdl_vout_android_nativewindow.h │ │ │ │ │ ├── ijksdl_vout_android_surface.c │ │ │ │ │ ├── ijksdl_vout_android_surface.h │ │ │ │ │ ├── ijksdl_vout_overlay_android_mediacodec.c │ │ │ │ │ └── ijksdl_vout_overlay_android_mediacodec.h │ │ │ │ ├── dummy │ │ │ │ │ ├── ijksdl_dummy.h │ │ │ │ │ ├── ijksdl_vout_dummy.c │ │ │ │ │ └── ijksdl_vout_dummy.h │ │ │ │ ├── ffmpeg │ │ │ │ │ ├── abi_all │ │ │ │ │ │ └── image_convert.c │ │ │ │ │ ├── ijksdl_image_convert.h │ │ │ │ │ ├── ijksdl_inc_ffmpeg.h │ │ │ │ │ ├── ijksdl_vout_overlay_ffmpeg.c │ │ │ │ │ └── ijksdl_vout_overlay_ffmpeg.h │ │ │ │ ├── gles2 │ │ │ │ │ ├── color.c │ │ │ │ │ ├── common.c │ │ │ │ │ ├── fsh │ │ │ │ │ │ ├── rgb.fsh.c │ │ │ │ │ │ ├── yuv420p.fsh.c │ │ │ │ │ │ ├── yuv420sp.fsh.c │ │ │ │ │ │ └── yuv444p10le.fsh.c │ │ │ │ │ ├── internal.h │ │ │ │ │ ├── renderer.c │ │ │ │ │ ├── renderer_rgb.c │ │ │ │ │ ├── renderer_yuv420p.c │ │ │ │ │ ├── renderer_yuv420sp.c │ │ │ │ │ ├── renderer_yuv420sp_vtb.m │ │ │ │ │ ├── renderer_yuv444p10le.c │ │ │ │ │ ├── shader.c │ │ │ │ │ └── vsh │ │ │ │ │ │ └── mvp.vsh.c │ │ │ │ ├── ijksdl.h │ │ │ │ ├── ijksdl_aout.c │ │ │ │ ├── ijksdl_aout.h │ │ │ │ ├── ijksdl_aout_internal.h │ │ │ │ ├── ijksdl_audio.c │ │ │ │ ├── ijksdl_audio.h │ │ │ │ ├── ijksdl_class.h │ │ │ │ ├── ijksdl_container.h │ │ │ │ ├── ijksdl_egl.c │ │ │ │ ├── ijksdl_egl.h │ │ │ │ ├── ijksdl_endian.h │ │ │ │ ├── ijksdl_error.c │ │ │ │ ├── ijksdl_error.h │ │ │ │ ├── ijksdl_extra_log.c │ │ │ │ ├── ijksdl_extra_log.h │ │ │ │ ├── ijksdl_fourcc.h │ │ │ │ ├── ijksdl_gles2.h │ │ │ │ ├── ijksdl_inc_internal.h │ │ │ │ ├── ijksdl_log.h │ │ │ │ ├── ijksdl_misc.h │ │ │ │ ├── ijksdl_mutex.c │ │ │ │ ├── ijksdl_mutex.h │ │ │ │ ├── ijksdl_stdinc.c │ │ │ │ ├── ijksdl_stdinc.h │ │ │ │ ├── ijksdl_thread.c │ │ │ │ ├── ijksdl_thread.h │ │ │ │ ├── ijksdl_timer.c │ │ │ │ ├── ijksdl_timer.h │ │ │ │ ├── ijksdl_video.h │ │ │ │ ├── ijksdl_vout.c │ │ │ │ ├── ijksdl_vout.h │ │ │ │ └── ijksdl_vout_internal.h │ │ │ ├── ijksoundtouch │ │ │ │ ├── Android.mk │ │ │ │ ├── LICENSE │ │ │ │ ├── configure-file-README.txt │ │ │ │ ├── ijksoundtouch_log.h │ │ │ │ ├── ijksoundtouch_wrap.cpp │ │ │ │ ├── ijksoundtouch_wrap.h │ │ │ │ ├── include │ │ │ │ │ ├── BPMDetect.h │ │ │ │ │ ├── FIFOSampleBuffer.h │ │ │ │ │ ├── FIFOSamplePipe.h │ │ │ │ │ ├── Makefile.am │ │ │ │ │ ├── STTypes.h │ │ │ │ │ ├── SoundTouch.h │ │ │ │ │ └── soundtouch_config.h.in │ │ │ │ └── source │ │ │ │ │ ├── Android-lib │ │ │ │ │ └── jni │ │ │ │ │ │ ├── Android.mk │ │ │ │ │ │ ├── Application.mk │ │ │ │ │ │ └── soundtouch-jni.cpp │ │ │ │ │ ├── SoundStretch │ │ │ │ │ ├── Makefile.am │ │ │ │ │ ├── RunParameters.cpp │ │ │ │ │ ├── RunParameters.h │ │ │ │ │ ├── WavFile.cpp │ │ │ │ │ ├── WavFile.h │ │ │ │ │ ├── main.cpp │ │ │ │ │ ├── soundstretch.dsp │ │ │ │ │ ├── soundstretch.dsw │ │ │ │ │ ├── soundstretch.sln │ │ │ │ │ └── soundstretch.vcproj │ │ │ │ │ └── SoundTouch │ │ │ │ │ ├── AAFilter.cpp │ │ │ │ │ ├── AAFilter.h │ │ │ │ │ ├── BPMDetect.cpp │ │ │ │ │ ├── FIFOSampleBuffer.cpp │ │ │ │ │ ├── FIRFilter.cpp │ │ │ │ │ ├── FIRFilter.h │ │ │ │ │ ├── InterpolateCubic.cpp │ │ │ │ │ ├── InterpolateCubic.h │ │ │ │ │ ├── InterpolateLinear.cpp │ │ │ │ │ ├── InterpolateLinear.h │ │ │ │ │ ├── InterpolateShannon.cpp │ │ │ │ │ ├── InterpolateShannon.h │ │ │ │ │ ├── Makefile.am │ │ │ │ │ ├── PeakFinder.cpp │ │ │ │ │ ├── PeakFinder.h │ │ │ │ │ ├── RateTransposer.cpp │ │ │ │ │ ├── RateTransposer.h │ │ │ │ │ ├── SoundTouch.cpp │ │ │ │ │ ├── SoundTouch.dsp │ │ │ │ │ ├── SoundTouch.dsw │ │ │ │ │ ├── SoundTouch.sln │ │ │ │ │ ├── SoundTouch.vcproj │ │ │ │ │ ├── TDStretch.cpp │ │ │ │ │ ├── TDStretch.h │ │ │ │ │ ├── cpu_detect.h │ │ │ │ │ ├── cpu_detect_x86.cpp │ │ │ │ │ ├── mmx_optimized.cpp │ │ │ │ │ └── sse_optimized.cpp │ │ │ └── ijkyuv │ │ │ │ ├── .gitignore │ │ │ │ ├── AUTHORS │ │ │ │ ├── Android.mk │ │ │ │ ├── BUILD.gn │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── DEPS │ │ │ │ ├── LICENSE │ │ │ │ ├── LICENSE_THIRD_PARTY │ │ │ │ ├── OWNERS │ │ │ │ ├── PATENTS │ │ │ │ ├── PRESUBMIT.py │ │ │ │ ├── README.chromium │ │ │ │ ├── all.gyp │ │ │ │ ├── chromium │ │ │ │ ├── .gclient │ │ │ │ └── README │ │ │ │ ├── codereview.settings │ │ │ │ ├── download_vs_toolchain.py │ │ │ │ ├── gyp_libyuv │ │ │ │ ├── gyp_libyuv.py │ │ │ │ ├── include │ │ │ │ ├── libyuv.h │ │ │ │ └── libyuv │ │ │ │ │ ├── basic_types.h │ │ │ │ │ ├── compare.h │ │ │ │ │ ├── convert.h │ │ │ │ │ ├── convert_argb.h │ │ │ │ │ ├── convert_from.h │ │ │ │ │ ├── convert_from_argb.h │ │ │ │ │ ├── cpu_id.h │ │ │ │ │ ├── format_conversion.h │ │ │ │ │ ├── mjpeg_decoder.h │ │ │ │ │ ├── planar_functions.h │ │ │ │ │ ├── rotate.h │ │ │ │ │ ├── rotate_argb.h │ │ │ │ │ ├── row.h │ │ │ │ │ ├── scale.h │ │ │ │ │ ├── scale_argb.h │ │ │ │ │ ├── scale_row.h │ │ │ │ │ ├── version.h │ │ │ │ │ └── video_common.h │ │ │ │ ├── libyuv.gyp │ │ │ │ ├── libyuv.gypi │ │ │ │ ├── libyuv_nacl.gyp │ │ │ │ ├── libyuv_test.gyp │ │ │ │ ├── linux.mk │ │ │ │ ├── public.mk │ │ │ │ ├── setup_links.py │ │ │ │ ├── source │ │ │ │ ├── compare.cc │ │ │ │ ├── compare_common.cc │ │ │ │ ├── compare_neon.cc │ │ │ │ ├── compare_neon64.cc │ │ │ │ ├── compare_posix.cc │ │ │ │ ├── compare_win.cc │ │ │ │ ├── convert.cc │ │ │ │ ├── convert_argb.cc │ │ │ │ ├── convert_from.cc │ │ │ │ ├── convert_from_argb.cc │ │ │ │ ├── convert_jpeg.cc │ │ │ │ ├── convert_to_argb.cc │ │ │ │ ├── convert_to_i420.cc │ │ │ │ ├── cpu_id.cc │ │ │ │ ├── format_conversion.cc │ │ │ │ ├── mjpeg_decoder.cc │ │ │ │ ├── mjpeg_validate.cc │ │ │ │ ├── planar_functions.cc │ │ │ │ ├── rotate.cc │ │ │ │ ├── rotate_argb.cc │ │ │ │ ├── rotate_mips.cc │ │ │ │ ├── rotate_neon.cc │ │ │ │ ├── rotate_neon64.cc │ │ │ │ ├── row_any.cc │ │ │ │ ├── row_common.cc │ │ │ │ ├── row_mips.cc │ │ │ │ ├── row_neon.cc │ │ │ │ ├── row_neon64.cc │ │ │ │ ├── row_posix.cc │ │ │ │ ├── row_win.cc │ │ │ │ ├── row_x86.asm │ │ │ │ ├── scale.cc │ │ │ │ ├── scale_argb.cc │ │ │ │ ├── scale_common.cc │ │ │ │ ├── scale_mips.cc │ │ │ │ ├── scale_neon.cc │ │ │ │ ├── scale_neon64.cc │ │ │ │ ├── scale_posix.cc │ │ │ │ ├── scale_win.cc │ │ │ │ ├── video_common.cc │ │ │ │ └── x86inc.asm │ │ │ │ ├── sync_chromium.py │ │ │ │ ├── tools │ │ │ │ ├── lsan │ │ │ │ │ └── suppressions.txt │ │ │ │ ├── sanitizer_options.gyp │ │ │ │ └── valgrind-libyuv │ │ │ │ │ ├── libyuv_tests.bat │ │ │ │ │ ├── libyuv_tests.py │ │ │ │ │ ├── libyuv_tests.sh │ │ │ │ │ ├── memcheck │ │ │ │ │ ├── OWNERS │ │ │ │ │ ├── PRESUBMIT.py │ │ │ │ │ ├── suppressions.txt │ │ │ │ │ ├── suppressions_mac.txt │ │ │ │ │ └── suppressions_win32.txt │ │ │ │ │ └── tsan │ │ │ │ │ ├── OWNERS │ │ │ │ │ ├── PRESUBMIT.py │ │ │ │ │ ├── suppressions.txt │ │ │ │ │ ├── suppressions_mac.txt │ │ │ │ │ └── suppressions_win32.txt │ │ │ │ ├── unit_test │ │ │ │ ├── basictypes_test.cc │ │ │ │ ├── compare_test.cc │ │ │ │ ├── convert_test.cc │ │ │ │ ├── cpu_test.cc │ │ │ │ ├── math_test.cc │ │ │ │ ├── planar_test.cc │ │ │ │ ├── rotate_argb_test.cc │ │ │ │ ├── rotate_test.cc │ │ │ │ ├── scale_argb_test.cc │ │ │ │ ├── scale_test.cc │ │ │ │ ├── testdata │ │ │ │ │ ├── arm_v7.txt │ │ │ │ │ ├── juno.txt │ │ │ │ │ └── tegra3.txt │ │ │ │ ├── unit_test.cc │ │ │ │ ├── unit_test.h │ │ │ │ ├── version_test.cc │ │ │ │ └── video_common_test.cc │ │ │ │ ├── util │ │ │ │ ├── compare.cc │ │ │ │ ├── convert.cc │ │ │ │ ├── cpuid.c │ │ │ │ ├── psnr.cc │ │ │ │ ├── psnr.h │ │ │ │ ├── psnr_main.cc │ │ │ │ ├── ssim.cc │ │ │ │ └── ssim.h │ │ │ │ └── winarm.mk │ │ ├── ijkprof │ │ │ ├── Android-include.mk │ │ │ ├── Android.mk │ │ │ ├── prof.c │ │ │ └── prof.h │ │ └── otherlibs │ │ │ └── ffmpeg │ │ │ ├── include │ │ │ ├── arm64-v8a │ │ │ │ └── libffmpeg │ │ │ │ │ └── config.h │ │ │ ├── armeabi-v7a │ │ │ │ └── libffmpeg │ │ │ │ │ └── config.h │ │ │ ├── libavcodec │ │ │ │ ├── ac3_parser.h │ │ │ │ ├── adts_parser.h │ │ │ │ ├── avcodec.h │ │ │ │ ├── avdct.h │ │ │ │ ├── avfft.h │ │ │ │ ├── d3d11va.h │ │ │ │ ├── dirac.h │ │ │ │ ├── dv_profile.h │ │ │ │ ├── dxva2.h │ │ │ │ ├── jni.h │ │ │ │ ├── mediacodec.h │ │ │ │ ├── qsv.h │ │ │ │ ├── vaapi.h │ │ │ │ ├── vdpau.h │ │ │ │ ├── version.h │ │ │ │ ├── videotoolbox.h │ │ │ │ ├── vorbis_parser.h │ │ │ │ └── xvmc.h │ │ │ ├── libavfilter │ │ │ │ ├── avfilter.h │ │ │ │ ├── buffersink.h │ │ │ │ ├── buffersrc.h │ │ │ │ └── version.h │ │ │ ├── libavformat │ │ │ │ ├── avc.h │ │ │ │ ├── avformat.h │ │ │ │ ├── avio.h │ │ │ │ ├── avio_internal.h │ │ │ │ ├── flv.h │ │ │ │ ├── id3v2.h │ │ │ │ ├── internal.h │ │ │ │ ├── metadata.h │ │ │ │ ├── os_support.h │ │ │ │ ├── url.h │ │ │ │ └── version.h │ │ │ ├── libavutil │ │ │ │ ├── adler32.h │ │ │ │ ├── aes.h │ │ │ │ ├── aes_ctr.h │ │ │ │ ├── application.h │ │ │ │ ├── attributes.h │ │ │ │ ├── audio_fifo.h │ │ │ │ ├── avassert.h │ │ │ │ ├── avconfig.h │ │ │ │ ├── avstring.h │ │ │ │ ├── avutil.h │ │ │ │ ├── base64.h │ │ │ │ ├── blowfish.h │ │ │ │ ├── bprint.h │ │ │ │ ├── bswap.h │ │ │ │ ├── buffer.h │ │ │ │ ├── camellia.h │ │ │ │ ├── cast5.h │ │ │ │ ├── channel_layout.h │ │ │ │ ├── common.h │ │ │ │ ├── cpu.h │ │ │ │ ├── crc.h │ │ │ │ ├── des.h │ │ │ │ ├── dict.h │ │ │ │ ├── display.h │ │ │ │ ├── dns_cache.h │ │ │ │ ├── downmix_info.h │ │ │ │ ├── encryption_info.h │ │ │ │ ├── error.h │ │ │ │ ├── eval.h │ │ │ │ ├── ffversion.h │ │ │ │ ├── fifo.h │ │ │ │ ├── file.h │ │ │ │ ├── frame.h │ │ │ │ ├── hash.h │ │ │ │ ├── hmac.h │ │ │ │ ├── hwcontext.h │ │ │ │ ├── hwcontext_cuda.h │ │ │ │ ├── hwcontext_d3d11va.h │ │ │ │ ├── hwcontext_drm.h │ │ │ │ ├── hwcontext_dxva2.h │ │ │ │ ├── hwcontext_mediacodec.h │ │ │ │ ├── hwcontext_qsv.h │ │ │ │ ├── hwcontext_vaapi.h │ │ │ │ ├── hwcontext_vdpau.h │ │ │ │ ├── hwcontext_videotoolbox.h │ │ │ │ ├── imgutils.h │ │ │ │ ├── intfloat.h │ │ │ │ ├── intreadwrite.h │ │ │ │ ├── lfg.h │ │ │ │ ├── log.h │ │ │ │ ├── lzo.h │ │ │ │ ├── macros.h │ │ │ │ ├── mastering_display_metadata.h │ │ │ │ ├── mathematics.h │ │ │ │ ├── md5.h │ │ │ │ ├── mem.h │ │ │ │ ├── motion_vector.h │ │ │ │ ├── murmur3.h │ │ │ │ ├── opt.h │ │ │ │ ├── parseutils.h │ │ │ │ ├── pixdesc.h │ │ │ │ ├── pixelutils.h │ │ │ │ ├── pixfmt.h │ │ │ │ ├── random_seed.h │ │ │ │ ├── rational.h │ │ │ │ ├── rc4.h │ │ │ │ ├── replaygain.h │ │ │ │ ├── ripemd.h │ │ │ │ ├── samplefmt.h │ │ │ │ ├── sha.h │ │ │ │ ├── sha512.h │ │ │ │ ├── spherical.h │ │ │ │ ├── stereo3d.h │ │ │ │ ├── tea.h │ │ │ │ ├── thread.h │ │ │ │ ├── threadmessage.h │ │ │ │ ├── time.h │ │ │ │ ├── timecode.h │ │ │ │ ├── timestamp.h │ │ │ │ ├── tree.h │ │ │ │ ├── twofish.h │ │ │ │ ├── version.h │ │ │ │ └── xtea.h │ │ │ ├── libswresample │ │ │ │ ├── swresample.h │ │ │ │ └── version.h │ │ │ └── libswscale │ │ │ │ ├── swscale.h │ │ │ │ └── version.h │ │ │ └── libs │ │ │ ├── arm64-v8a │ │ │ └── libijkffmpeg.so │ │ │ └── armeabi-v7a │ │ │ └── libijkffmpeg.so │ └── java │ │ ├── net │ │ └── surina │ │ │ └── soundtouch │ │ │ └── SoundTouch.java │ │ └── tv │ │ └── danmaku │ │ └── ijk │ │ └── media │ │ └── player │ │ ├── AbstractMediaPlayer.java │ │ ├── AndroidMediaPlayer.java │ │ ├── IMediaPlayer.java │ │ ├── ISurfaceTextureHolder.java │ │ ├── ISurfaceTextureHost.java │ │ ├── IjkLibLoader.java │ │ ├── IjkMediaCodecInfo.java │ │ ├── IjkMediaMeta.java │ │ ├── IjkMediaPlayer.java │ │ ├── IjkTimedText.java │ │ ├── MediaInfo.java │ │ ├── MediaPlayerProxy.java │ │ ├── TextureMediaPlayer.java │ │ ├── annotations │ │ ├── AccessedByNative.java │ │ └── CalledByNative.java │ │ ├── exceptions │ │ └── IjkMediaException.java │ │ ├── ffmpeg │ │ └── FFmpegApi.java │ │ ├── misc │ │ ├── AndroidMediaFormat.java │ │ ├── AndroidTrackInfo.java │ │ ├── IAndroidIO.java │ │ ├── IMediaDataSource.java │ │ ├── IMediaFormat.java │ │ ├── ITrackInfo.java │ │ ├── IjkMediaFormat.java │ │ └── IjkTrackInfo.java │ │ └── pragma │ │ ├── DebugLog.java │ │ └── Pragma.java │ └── test │ └── java │ └── com │ └── alanwang4523 │ └── a4ijkplayer │ └── ExampleUnitTest.java ├── A4ijkplayerDemo ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── alanwang4523 │ │ └── a4ijkplayerdemo │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── alanwang4523 │ │ │ └── a4ijkplayerdemo │ │ │ ├── activities │ │ │ ├── FileExplorerActivity.java │ │ │ ├── RecentMediaActivity.java │ │ │ ├── SampleMediaActivity.java │ │ │ ├── SettingsActivity.java │ │ │ ├── TestIjkPlayerActivity.java │ │ │ └── VideoActivity.java │ │ │ ├── application │ │ │ ├── AppActivity.java │ │ │ └── Settings.java │ │ │ ├── content │ │ │ ├── PathCursor.java │ │ │ ├── PathCursorLoader.java │ │ │ └── RecentMediaStorage.java │ │ │ ├── eventbus │ │ │ └── FileExplorerEvents.java │ │ │ ├── fragments │ │ │ ├── FileListFragment.java │ │ │ ├── RecentMediaListFragment.java │ │ │ ├── SampleMediaListFragment.java │ │ │ ├── SettingsFragment.java │ │ │ └── TracksFragment.java │ │ │ ├── services │ │ │ └── MediaPlayerService.java │ │ │ └── widget │ │ │ ├── AndroidMediaController.java │ │ │ ├── FileMediaDataSource.java │ │ │ ├── IMediaController.java │ │ │ ├── IRenderView.java │ │ │ ├── IjkListPreference.java │ │ │ ├── IjkVideoView.java │ │ │ ├── InfoHudViewHolder.java │ │ │ ├── MeasureHelper.java │ │ │ ├── MediaPlayerCompat.java │ │ │ ├── SurfaceRenderView.java │ │ │ ├── TableLayoutBinder.java │ │ │ └── TextureRenderView.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ ├── ic_theme_description.png │ │ ├── ic_theme_folder.png │ │ └── ic_theme_play_arrow.png │ │ ├── layout │ │ ├── activity_app.xml │ │ ├── activity_player.xml │ │ ├── activity_test_ijkplayer.xml │ │ ├── fragment_file_list.xml │ │ ├── fragment_file_list_item.xml │ │ ├── fragment_track_list.xml │ │ ├── table_media_info.xml │ │ ├── table_media_info_row1.xml │ │ ├── table_media_info_row2.xml │ │ ├── table_media_info_section.xml │ │ └── widget_toolbar.xml │ │ ├── menu │ │ ├── menu_app.xml │ │ └── menu_player.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── values-night │ │ └── themes.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ ├── strings_pref.xml │ │ ├── styles.xml │ │ └── themes.xml │ │ └── xml │ │ └── settings.xml │ └── test │ └── java │ └── com │ └── alanwang4523 │ └── a4ijkplayerdemo │ └── ExampleUnitTest.java ├── README.md ├── Screenshots ├── Screenshot_20230323_184501_com.alanwang4523.a4ijkplayerdemo.jpg ├── ijkplayer_aar.png └── ijkplayer_native_debug_prepare_async.png ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .idea 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties 17 | -------------------------------------------------------------------------------- /A4ijkplayer/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | /.idea/caches 7 | /.idea/libraries 8 | /.idea/modules.xml 9 | /.idea/workspace.xml 10 | /.idea/navEditor.xml 11 | /.idea/assetWizardSettings.xml 12 | .DS_Store 13 | /captures 14 | .externalNativeBuild 15 | .cxx -------------------------------------------------------------------------------- /A4ijkplayer/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | } 4 | 5 | android { 6 | namespace 'com.alanwang4523.a4ijkplayer' 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | minSdk 21 11 | targetSdk 31 12 | 13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 14 | consumerProguardFiles "consumer-rules.pro" 15 | 16 | externalNativeBuild { 17 | cmake { 18 | abiFilters 'armeabi-v7a', 'arm64-v8a' 19 | arguments '-DANDROID_ARM_NEON=TRUE', '-DANDROID_STL=c++_shared' 20 | } 21 | } 22 | } 23 | 24 | buildTypes { 25 | release { 26 | minifyEnabled false 27 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 28 | } 29 | } 30 | externalNativeBuild { 31 | cmake { 32 | path "src/main/cpp/CMakeLists.txt" 33 | version "3.6.0" 34 | } 35 | } 36 | ndkVersion '21.4.7075529' 37 | 38 | compileOptions { 39 | sourceCompatibility JavaVersion.VERSION_1_8 40 | targetCompatibility JavaVersion.VERSION_1_8 41 | } 42 | } 43 | 44 | clean.doFirst { 45 | delete "${projectDir}/.cxx" 46 | } 47 | 48 | dependencies { 49 | 50 | implementation 'androidx.appcompat:appcompat:1.2.0' 51 | implementation 'com.google.android.material:material:1.2.0' 52 | testImplementation 'junit:junit:4.13.2' 53 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 54 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 55 | } -------------------------------------------------------------------------------- /A4ijkplayer/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayer/consumer-rules.pro -------------------------------------------------------------------------------- /A4ijkplayer/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /A4ijkplayer/src/androidTest/java/com/alanwang4523/a4ijkplayer/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.alanwang4523.a4ijkplayer; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.alanwang4523.a4ijkplayer.test", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /A4ijkplayer/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Bilibili 2 | # copyright (c) 2013 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # ijkPlayer is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | LOCAL_PATH := $(call my-dir) 21 | include $(call all-subdir-makefiles) 22 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/Makefile: -------------------------------------------------------------------------------- 1 | J4A = ../../extra/bin/j4a 2 | ROOT_CLASS_INCLUDES = j4a/j4a_allclasses.include.h 3 | ROOT_CLASS_LOADERS = j4a/j4a_allclasses.loader.h 4 | 5 | all: ijkj4a 6 | 7 | # test java -> c 8 | JAVA_SRCS = \ 9 | java/java/nio/Buffer.java \ 10 | java/java/nio/ByteBuffer.java \ 11 | java/java/util/ArrayList.java \ 12 | java/android/media/AudioTrack.java \ 13 | java/android/media/MediaCodec.java \ 14 | java/android/media/MediaFormat.java \ 15 | java/android/media/PlaybackParams.java \ 16 | java/android/os/Build.java \ 17 | java/android/os/Bundle.java \ 18 | java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java \ 19 | java/tv/danmaku/ijk/media/player/misc/IAndroidIO.java \ 20 | java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java \ 21 | 22 | C_SRCS := $(JAVA_SRCS:java/%.java=j4a/class/%.c) 23 | H_SRCS := $(C_SRCS:%.c=%.h) 24 | 25 | $(C_SRCS): j4a/class/%.c: $(J4A) 26 | 27 | $(C_SRCS): j4a/class/%.c: java/%.java 28 | ifneq ("$<", "j4a/class/.c") 29 | @mkdir -p $(shell dirname $@) 30 | $(J4A) -c $< -o $@ 31 | @cat j4a/class/$*.include.j4a >> $(ROOT_CLASS_INCLUDES) 32 | @echo >> $(ROOT_CLASS_INCLUDES) 33 | @cat j4a/class/$*.loader.j4a >> $(ROOT_CLASS_LOADERS) 34 | @echo >> $(ROOT_CLASS_LOADERS) 35 | endif 36 | 37 | ijkj4a: prebuild $(C_SRCS) 38 | 39 | prebuild: 40 | @rm -f $(ROOT_CLASS_INCLUDES) 41 | @rm -f $(ROOT_CLASS_LOADERS) 42 | 43 | # ----- 44 | .PHONY: all clean ijkj4a prebuild 45 | 46 | clean: 47 | @rm -f $(C_SRCS) 48 | @rm -f $(H_SRCS) 49 | @rm -f $(ROOT_CLASS_INCLUDES) 50 | @rm -f $(ROOT_CLASS_LOADERS) 51 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/AudioTrack.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/AudioTrack.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/AudioTrack.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_AudioTrack); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/MediaCodec.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/MediaCodec.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/MediaCodec.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_MediaCodec); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/MediaFormat.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/MediaFormat.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/MediaFormat.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_MediaFormat); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/PlaybackParams.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/media/PlaybackParams.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/media/PlaybackParams.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_media_PlaybackParams); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/os/Build.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * https://github.com/Bilibili/jni4android 19 | * This file is automatically generated by jni4android, do not modify. 20 | */ 21 | 22 | #ifndef J4A__android_os_Build__H 23 | #define J4A__android_os_Build__H 24 | 25 | #include "j4a/j4a_base.h" 26 | 27 | jint J4AC_android_os_Build__VERSION__SDK_INT__get(JNIEnv *env); 28 | jint J4AC_android_os_Build__VERSION__SDK_INT__get__catchAll(JNIEnv *env); 29 | void J4AC_android_os_Build__VERSION__SDK_INT__set(JNIEnv *env, jint value); 30 | void J4AC_android_os_Build__VERSION__SDK_INT__set__catchAll(JNIEnv *env, jint value); 31 | int J4A_loadClass__J4AC_android_os_Build(JNIEnv *env); 32 | 33 | #endif//J4A__android_os_Build__H 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/os/Build.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/os/Build.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/os/Build.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_os_Build); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/os/Bundle.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/android/os/Bundle.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/android/os/Bundle.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(android_os_Bundle); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * https://github.com/Bilibili/jni4android 19 | * This file is automatically generated by jni4android, do not modify. 20 | */ 21 | 22 | #include "Buffer.h" 23 | 24 | typedef struct J4AC_java_nio_Buffer { 25 | jclass id; 26 | } J4AC_java_nio_Buffer; 27 | static J4AC_java_nio_Buffer class_J4AC_java_nio_Buffer; 28 | 29 | int J4A_loadClass__J4AC_java_nio_Buffer(JNIEnv *env) 30 | { 31 | int ret = -1; 32 | const char *J4A_UNUSED(name) = NULL; 33 | const char *J4A_UNUSED(sign) = NULL; 34 | jclass J4A_UNUSED(class_id) = NULL; 35 | int J4A_UNUSED(api_level) = 0; 36 | 37 | if (class_J4AC_java_nio_Buffer.id != NULL) 38 | return 0; 39 | 40 | sign = "java/nio/Buffer"; 41 | class_J4AC_java_nio_Buffer.id = J4A_FindClass__asGlobalRef__catchAll(env, sign); 42 | if (class_J4AC_java_nio_Buffer.id == NULL) 43 | goto fail; 44 | 45 | J4A_ALOGD("J4ALoader: OK: '%s' loaded\n", "java.nio.Buffer"); 46 | ret = 0; 47 | fail: 48 | return ret; 49 | } 50 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * https://github.com/Bilibili/jni4android 19 | * This file is automatically generated by jni4android, do not modify. 20 | */ 21 | 22 | #ifndef J4A__java_nio_Buffer__H 23 | #define J4A__java_nio_Buffer__H 24 | 25 | #include "j4a/j4a_base.h" 26 | 27 | int J4A_loadClass__J4AC_java_nio_Buffer(JNIEnv *env); 28 | 29 | #endif//J4A__java_nio_Buffer__H 30 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/Buffer.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_Buffer); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/ByteBuffer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/ByteBuffer.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/nio/ByteBuffer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_ByteBuffer); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/util/ArrayList.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/util/ArrayList.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/java/util/ArrayList.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_util_ArrayList); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_IjkMediaPlayer); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IAndroidIO); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.include.j4a: -------------------------------------------------------------------------------- 1 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.h" -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.loader.j4a: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IMediaDataSource); -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/j4a_allclasses.c: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2016 Zhang Rui 3 | * 4 | * This file is part of jni4android. 5 | * 6 | * jni4android is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * jni4android is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with jni4android; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #include "j4a_allclasses.h" 22 | 23 | int J4A_LoadAll__catchAll(JNIEnv *env) 24 | { 25 | int ret = 0; 26 | 27 | // load android.os.Build at very beginning 28 | J4A_LOAD_CLASS(android_os_Build); 29 | 30 | #include "j4a/j4a_allclasses.loader.h" 31 | 32 | fail: 33 | return ret; 34 | } 35 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/j4a_allclasses.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2016 Zhang Rui 3 | * 4 | * This file is part of jni4android. 5 | * 6 | * jni4android is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * jni4android is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with jni4android; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef IJKJ4A__J4A__J4A_ALLCLASSES__H 22 | #define IJKJ4A__J4A__J4A_ALLCLASSES__H 23 | 24 | #include "j4a_base.h" 25 | #include "j4a_allclasses.include.h" 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/j4a_allclasses.include.h: -------------------------------------------------------------------------------- 1 | #include "j4a/class/java/nio/Buffer.h" 2 | #include "j4a/class/java/nio/ByteBuffer.h" 3 | #include "j4a/class/java/util/ArrayList.h" 4 | #include "j4a/class/android/media/AudioTrack.h" 5 | #include "j4a/class/android/media/MediaCodec.h" 6 | #include "j4a/class/android/media/MediaFormat.h" 7 | #include "j4a/class/android/media/PlaybackParams.h" 8 | #include "j4a/class/android/os/Build.h" 9 | #include "j4a/class/android/os/Bundle.h" 10 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.h" 11 | #include "j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.h" 12 | #include "j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.h" 13 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4a/j4a_allclasses.loader.h: -------------------------------------------------------------------------------- 1 | J4A_LOAD_CLASS(java_nio_Buffer); 2 | J4A_LOAD_CLASS(java_nio_ByteBuffer); 3 | J4A_LOAD_CLASS(java_util_ArrayList); 4 | J4A_LOAD_CLASS(android_media_AudioTrack); 5 | J4A_LOAD_CLASS(android_media_MediaCodec); 6 | J4A_LOAD_CLASS(android_media_MediaFormat); 7 | J4A_LOAD_CLASS(android_media_PlaybackParams); 8 | J4A_LOAD_CLASS(android_os_Build); 9 | J4A_LOAD_CLASS(android_os_Bundle); 10 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IMediaDataSource); 11 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_misc_IAndroidIO); 12 | J4A_LOAD_CLASS(tv_danmaku_ijk_media_player_IjkMediaPlayer); 13 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4au/class/android/media/AudioTrack.util.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 J4AU__android_media_AudioTrack__UTIL__H 22 | #define J4AU__android_media_AudioTrack__UTIL__H 23 | 24 | #include "j4a/j4a_base.h" 25 | #include "j4a/class/android/media/AudioTrack.h" 26 | 27 | void J4AC_android_media_AudioTrack__setSpeed(JNIEnv *env, jobject thiz, jfloat speed); 28 | void J4AC_android_media_AudioTrack__setSpeed__catchAll(JNIEnv *env, jobject thiz, jfloat speed); 29 | 30 | #ifdef J4A_HAVE_SIMPLE__J4AC_android_media_AudioTrack 31 | #define J4AC_AudioTrack__setSpeed J4AC_android_media_AudioTrack__setSpeed 32 | #define J4AC_AudioTrack__setSpeed__catchAll J4AC_android_media_AudioTrack__setSpeed__catchAll 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/j4au/class/java/nio/ByteBuffer.util.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 J4A__java_nio_ByteBuffer__UTIL__H 22 | #define J4A__java_nio_ByteBuffer__UTIL__H 23 | 24 | #include "j4a/j4a_base.h" 25 | #include "j4a/class/java/nio/ByteBuffer.h" 26 | 27 | void *J4AC_java_nio_ByteBuffer__getDirectBufferAddress(JNIEnv *env, jobject thiz); 28 | void *J4AC_java_nio_ByteBuffer__getDirectBufferAddress__catchAll(JNIEnv *env, jobject thiz); 29 | int J4AC_java_nio_ByteBuffer__assignData__catchAll(JNIEnv *env, jobject thiz, void* data, size_t size); 30 | 31 | #ifdef J4A_HAVE_SIMPLE__J4AC_java_nio_ByteBuffer 32 | #define J4AC_ByteBuffer__getDirectBufferAddress J4AC_java_nio_ByteBuffer__getDirectBufferAddress 33 | #define J4AC_ByteBuffer__getDirectBufferAddress__catchAll J4AC_java_nio_ByteBuffer__getDirectBufferAddress__catchAll 34 | #define J4AC_ByteBuffer__assignData__catchAll J4AC_java_nio_ByteBuffer__assignData__catchAll 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/media/AudioTrack.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @SimpleCClassName 4 | @IncludeUtil 5 | public class AudioTrack { 6 | public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode); 7 | 8 | public static int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat); 9 | public static float getMaxVolume(); 10 | public static float getMinVolume(); 11 | public static int getNativeOutputSampleRate(int streamType); 12 | 13 | public void play(); 14 | public void pause(); 15 | public void stop(); 16 | public void flush(); 17 | public void release(); 18 | 19 | public int write(byte[] audioData, int offsetInBytes, int sizeInBytes); 20 | 21 | public int setStereoVolume(float leftGain, float rightGain); 22 | public int getAudioSessionId(); 23 | 24 | @MinApi(23) 25 | public PlaybackParams getPlaybackParams(); 26 | @MinApi(23) 27 | void setPlaybackParams(PlaybackParams params); 28 | 29 | 30 | int getStreamType(); 31 | int getSampleRate(); 32 | int getPlaybackRate(); 33 | int setPlaybackRate(int sampleRateInHz); 34 | } 35 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/media/MediaCodec.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | import java.nio.ByteBuffer; 4 | import android.view.Surface; 5 | 6 | @SimpleCClassName 7 | @MinApi(16) 8 | public class MediaCodec { 9 | public static class BufferInfo { 10 | public int flags; 11 | public int offset; 12 | public long presentationTimeUs; 13 | public int size; 14 | 15 | public BufferInfo(); 16 | } 17 | 18 | public static MediaCodec createByCodecName(String name); 19 | 20 | public void configure(MediaFormat format, Surface surface, MediaCrypto crypto, int flags); 21 | 22 | public final MediaFormat getOutputFormat(); 23 | 24 | public ByteBuffer[] getInputBuffers(); 25 | 26 | public final int dequeueInputBuffer(long timeoutUs); 27 | public final void queueInputBuffer(int index, int offset, int size, long presentationTimeUs, int flags); 28 | 29 | public final int dequeueOutputBuffer(MediaCodec.BufferInfo info, long timeoutUs); 30 | public final void releaseOutputBuffer(int index, boolean render); 31 | 32 | public final void start(); 33 | public final void stop(); 34 | public final void flush(); 35 | public final void release(); 36 | } 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/media/MediaCrypto.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @Hide 4 | @MinApi(16) 5 | public class MediaCrypto { 6 | } 7 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/media/MediaFormat.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | @SimpleCClassName 6 | @MinApi(16) 7 | public class MediaFormat { 8 | public MediaFormat(); 9 | 10 | public final static MediaFormat createVideoFormat(String mime, int width, int height); 11 | 12 | public final int getInteger(String name); 13 | public final void setInteger(String name, int value); 14 | public final void setByteBuffer(String name, ByteBuffer bytes); 15 | } 16 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/media/PlaybackParams.java: -------------------------------------------------------------------------------- 1 | package android.media; 2 | 3 | @SimpleCClassName 4 | @MinApi(23) 5 | public class PlaybackParams { 6 | public PlaybackParams setSpeed(float speed); 7 | } 8 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/os/Build.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | public class Build { 4 | public static class VERSION { 5 | public static final int SDK_INT; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/android/os/Bundle.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | import java.util.ArrayList; 4 | 5 | @SimpleCClassName 6 | public class Bundle { 7 | public Bundle(); 8 | 9 | public int getInt(String key, int defaultValue); 10 | public void putInt(String key, int value); 11 | 12 | public String getString(String key); 13 | public void putString(String key, String value); 14 | 15 | public void putParcelableArrayList(String key, ArrayList value); 16 | public long getLong(String key); 17 | public void putLong(String key, long value); 18 | } 19 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/java/nio/Buffer.java: -------------------------------------------------------------------------------- 1 | package java.nio; 2 | 3 | public class Buffer { 4 | } 5 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/java/nio/ByteBuffer.java: -------------------------------------------------------------------------------- 1 | package java.nio; 2 | 3 | import android.os.Build; 4 | 5 | @SimpleCClassName 6 | @IncludeUtil 7 | public class ByteBuffer { 8 | public static ByteBuffer allocate(int capacity); 9 | public static ByteBuffer allocateDirect(int capacity); 10 | public final Buffer limit(int newLimit); 11 | } 12 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/java/util/ArrayList.java: -------------------------------------------------------------------------------- 1 | package java.util; 2 | 3 | @SimpleCClassName 4 | public class ArrayList { 5 | public ArrayList(); 6 | boolean add(Object object); 7 | } 8 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player; 2 | 3 | import android.os.Bundle; 4 | 5 | @SimpleCClassName 6 | public class IjkMediaPlayer { 7 | private long mNativeMediaPlayer; 8 | private long mNativeMediaDataSource; 9 | private long mNativeAndroidIO; 10 | 11 | private static void postEventFromNative(Object weakThiz, int what, int arg1, int arg2, Object obj); 12 | private static String onSelectCodec(Object weakThiz, String mimeType, int profile, int level); 13 | private static boolean onNativeInvoke(Object weakThiz, int what, Bundle args); 14 | } 15 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/misc/IAndroidIO.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.misc; 2 | 3 | @SimpleCClassName 4 | public interface IAndroidIO { 5 | int open(String url); 6 | int read(byte[] buffer, int size); 7 | long seek(long offset, int whence); 8 | int close(); 9 | } 10 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkj4a/java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.misc; 2 | 3 | @SimpleCClassName 4 | public interface IMediaDataSource { 5 | int readAt(long position, byte[] buffer, int offset, int size); 6 | long getSize(); 7 | void close(); 8 | } 9 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/.gitignore: -------------------------------------------------------------------------------- 1 | ijkversion.h 2 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/android/ffmpeg_api_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffmpeg_api_jni.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef IJKPLAYER_ANDROID__FFMPEG_API_JNI_H 25 | 26 | #include 27 | 28 | int FFmpegApi_global_init(JNIEnv *env); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipenode_android_mediacodec_vdec.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPENODE_ANDROID_MEDIACODEC_VDEC_H 25 | #define FFPLAY__FF_FFPIPENODE_ANDROID_MEDIACODEC_VDEC_H 26 | 27 | #include "../../ff_ffpipenode.h" 28 | #include "../../ff_ffpipeline.h" 29 | #include "ijksdl/ijksdl_vout.h" 30 | 31 | typedef struct FFPlayer FFPlayer; 32 | 33 | IJKFF_Pipenode *ffpipenode_create_video_decoder_from_android_mediacodec(FFPlayer *ffp, IJKFF_Pipeline *pipeline, SDL_Vout *vout); 34 | IJKFF_Pipenode *ffpipenode_init_decoder_from_android_mediacodec(FFPlayer *ffp, IJKFF_Pipeline *pipeline, SDL_Vout *vout); 35 | int ffpipenode_config_from_android_mediacodec(FFPlayer *ffp, IJKFF_Pipeline *pipeline, SDL_Vout *vout, IJKFF_Pipenode *node); 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Bilibili 3 | * Copyright (c) 2015 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef FFPLAY__CONFIG_H 23 | #define FFPLAY__CONFIG_H 24 | 25 | #include "libffmpeg/config.h" 26 | 27 | // FIXME: merge filter related code and enable it 28 | // remove these lines to enable avfilter 29 | #ifdef CONFIG_AVFILTER 30 | #undef CONFIG_AVFILTER 31 | #endif 32 | #define CONFIG_AVFILTER 0 33 | 34 | #ifdef FFP_MERGE 35 | #undef FFP_MERGE 36 | #endif 37 | 38 | #ifdef FFP_SUB 39 | #undef FFP_SUB 40 | #endif 41 | 42 | #ifndef FFMPEG_LOG_TAG 43 | #define FFMPEG_LOG_TAG "IJKFFMPEG" 44 | #endif 45 | 46 | #endif//FFPLAY__CONFIG_H 47 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ff_fferror.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ff_fferror.h 3 | * 4 | * Copyright (c) 2003 Bilibili 5 | * Copyright (c) 2003 Fabrice Bellard 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef FFPLAY__FF_FFERROR_H 26 | #define FFPLAY__FF_FFERROR_H 27 | 28 | #define EIJK_FAILED -1 29 | #define EIJK_OUT_OF_MEMORY -2 30 | #define EIJK_INVALID_STATE -3 31 | #define EIJK_NULL_IS_PTR -4 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ff_ffpipenode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ff_ffpipenode.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPENODE_H 25 | #define FFPLAY__FF_FFPIPENODE_H 26 | 27 | #include "ijksdl/ijksdl_mutex.h" 28 | 29 | typedef struct IJKFF_Pipenode_Opaque IJKFF_Pipenode_Opaque; 30 | typedef struct IJKFF_Pipenode IJKFF_Pipenode; 31 | struct IJKFF_Pipenode { 32 | SDL_mutex *mutex; 33 | void *opaque; 34 | 35 | void (*func_destroy) (IJKFF_Pipenode *node); 36 | int (*func_run_sync)(IJKFF_Pipenode *node); 37 | int (*func_flush) (IJKFF_Pipenode *node); // optional 38 | }; 39 | 40 | IJKFF_Pipenode *ffpipenode_alloc(size_t opaque_size); 41 | void ffpipenode_free(IJKFF_Pipenode *node); 42 | void ffpipenode_free_p(IJKFF_Pipenode **node); 43 | 44 | int ffpipenode_run_sync(IJKFF_Pipenode *node); 45 | int ffpipenode_flush(IJKFF_Pipenode *node); 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ff_ffplay_debug.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ff_ffplaye_debug.h 3 | * 4 | * Copyright (c) 2015 Bilibili 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 FFPLAY__FF_FFPLAY_DEBUG_H 25 | #define FFPLAY__FF_FFPLAY_DEBUG_H 26 | 27 | #define FFP_XPS_PERIOD (3) 28 | 29 | #define FFP_SHOW_VPS_DPS (0) 30 | #define FFP_SHOW_VFPS_FFPLAY (FFP_SHOW_VPS_DPS) 31 | #define FFP_SHOW_VDPS_AVCODEC (FFP_SHOW_VPS_DPS) 32 | #define FFP_SHOW_VDPS_VIDEOTOOLBOX (FFP_SHOW_VPS_DPS) 33 | #define FFP_SHOW_VDPS_MEDIACODEC (FFP_SHOW_VPS_DPS) 34 | 35 | // #define FFP_SHOW_AUDIO_DELAY 36 | // #define FFP_SHOW_DEMUX_CACHE 37 | // #define FFP_SHOW_BUF_POS 38 | // #define FFP_SHOW_PKT_RECYCLE 39 | 40 | // #define FFP_NOTIFY_BUF_TIME 41 | // #define FFP_NOTIFY_BUF_BYTES 42 | 43 | // #define FFP_SHOW_VTB_IN_DECODING 44 | // #define FFP_VTB_DISABLE_OUTPUT 45 | 46 | // #define FFP_SHOW_AMC_DROPS 47 | // #define FFP_AMC_DISABLE_OUTPUT 48 | 49 | // #define FFP_AVFILTER_PLAYBACK_RATE 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkavformat/ijkavformat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijkavformat.h 3 | * 4 | * Copyright (c) 2003 Bilibili 5 | * Copyright (c) 2003 Fabrice Bellard 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef AVFORMAT_IJKAVFORMAT_H 26 | #define AVFORMAT_IJKAVFORMAT_H 27 | 28 | #define AV_PKT_FLAG_DISCONTINUITY 0x0100 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * Copyright (c) 2016 Raymond Zheng 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | #include "ijkiourl.h" 22 | 23 | int ijkio_alloc_url(IjkURLContext **inner, const char *url); 24 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkavutil/ijkstl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * Copyright (c) 2016 Raymond Zheng 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | #ifndef IJKAVUTIL_IJKSTL_H 22 | #define IJKAVUTIL_IJKSTL_H 23 | 24 | #include 25 | 26 | void* ijk_map_create(); 27 | void ijk_map_put(void *data, int64_t key, void *value); 28 | void* ijk_map_get(void *data, int64_t key); 29 | int ijk_map_remove(void *data, int64_t key); 30 | int ijk_map_size(void *data); 31 | int ijk_map_max_size(void *data); 32 | void* ijk_map_index_get(void *data, int index); 33 | void ijk_map_traversal_handle(void *data, void *parm, int (*enu)(void *parm, int64_t key, void *elem)); 34 | int64_t ijk_map_get_min_key(void *data); 35 | void ijk_map_clear(void *data); 36 | void ijk_map_destroy(void *data); 37 | 38 | #endif /* IJKAVUTIL_IJKSTL_H */ 39 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkavutil/ijkutils.c: -------------------------------------------------------------------------------- 1 | 2 | #include "ijkutils.h" 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | void ijk_av_freep(void *arg) 11 | { 12 | void *val; 13 | 14 | memcpy(&val, arg, sizeof(val)); 15 | memcpy(arg, &(void *){ NULL }, sizeof(val)); 16 | free(val); 17 | } 18 | 19 | int ijk_av_strstart(const char *str, const char *pfx, const char **ptr) 20 | { 21 | while (*pfx && *pfx == *str) { 22 | pfx++; 23 | str++; 24 | } 25 | if (!*pfx && ptr) 26 | *ptr = str; 27 | return !*pfx; 28 | } 29 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkplayer_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijkplayer_internal.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef IJKPLAYER_ANDROID__IJKPLAYER_INTERNAL_H 25 | #define IJKPLAYER_ANDROID__IJKPLAYER_INTERNAL_H 26 | 27 | #include 28 | #include "ijksdl/ijksdl.h" 29 | #include "ff_fferror.h" 30 | #include "ff_ffplay.h" 31 | #include "ijkplayer.h" 32 | 33 | struct IjkMediaPlayer { 34 | volatile int ref_count; 35 | pthread_mutex_t mutex; 36 | FFPlayer *ffplayer; 37 | 38 | int (*msg_loop)(void*); 39 | SDL_Thread *msg_thread; 40 | SDL_Thread _msg_thread; 41 | 42 | int mp_state; 43 | char *data_source; 44 | void *weak_thiz; 45 | 46 | int restart; 47 | int restart_from_beginning; 48 | int seek_req; 49 | long seek_msec; 50 | }; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/ijkversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef IJKVERSION_H 3 | #define IJKVERSION_H 4 | #define IJKPLAYER_VERSION "k0.8.8" 5 | #endif /* IJKVERSION_H */ 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/pipeline/ffpipeline_ffplay.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipeline_ffplay.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPELINE_FFPLAY_H 25 | #define FFPLAY__FF_FFPIPELINE_FFPLAY_H 26 | 27 | #include "../ff_ffpipeline.h" 28 | 29 | // There is no default aout for ffplay. 30 | // IJKFF_Pipeline *ffpipeline_create_from_ffplay(FFPlayer *ffp); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkplayer/pipeline/ffpipenode_ffplay_vdec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffpipenode_ffplay_vdec.h 3 | * 4 | * Copyright (c) 2014 Bilibili 5 | * Copyright (c) 2014 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef FFPLAY__FF_FFPIPENODE_FFPLAY_VDEC_H 25 | #define FFPLAY__FF_FFPIPENODE_FFPLAY_VDEC_H 26 | 27 | #include "../ff_ffpipenode.h" 28 | 29 | struct FFPlayer; 30 | 31 | IJKFF_Pipenode *ffpipenode_create_video_decoder_from_ffplay(struct FFPlayer *ffp); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/android_nativewindow.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * android_nativewindow.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__ANDROID_NATIVEWINDOW_H 26 | #define IJKSDL_ANDROID__ANDROID_NATIVEWINDOW_H 27 | 28 | typedef struct ANativeWindow ANativeWindow; 29 | typedef struct SDL_VoutOverlay SDL_VoutOverlay; 30 | 31 | int SDL_Android_NativeWindow_display_l(ANativeWindow* native_window, SDL_VoutOverlay *overlay); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_android.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_android.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__IJKSDL_ANDROID_H 26 | #define IJKSDL_ANDROID__IJKSDL_ANDROID_H 27 | 28 | #include "../ijksdl.h" 29 | 30 | #include "ijksdl_aout_android_audiotrack.h" 31 | #include "ijksdl_aout_android_opensles.h" 32 | 33 | #include "ijksdl_vout_android_nativewindow.h" 34 | #include "ijksdl_vout_android_surface.h" 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_aout_android_audiotrack.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_aout_android_audiotrack.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__IJKSDL_AOUT_ANDROID_AUDIOTRACK_H 26 | #define IJKSDL_ANDROID__IJKSDL_AOUT_ANDROID_AUDIOTRACK_H 27 | 28 | #include "../ijksdl_aout.h" 29 | 30 | SDL_Aout *SDL_AoutAndroid_CreateForAudioTrack(); 31 | bool SDL_AoutAndroid_IsObjectOfAudioTrack(SDL_Aout *aout); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_aout_android_opensles.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_aout_android_opensles.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__IJKSDL_AOUT_ANDROID_OPENSLES_H 26 | #define IJKSDL_ANDROID__IJKSDL_AOUT_ANDROID_OPENSLES_H 27 | 28 | #include "../ijksdl_aout.h" 29 | 30 | SDL_Aout *SDL_AoutAndroid_CreateForOpenSLES(); 31 | bool SDL_AoutAndroid_IsObjectOfOpenSLES(SDL_Aout *aout); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_dummy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Bilibili 3 | * copyright (c) 2014 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_DUMMY_H 23 | #define IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_DUMMY_H 24 | 25 | #include "ijksdl_codec_android_mediacodec.h" 26 | 27 | SDL_AMediaCodec *SDL_AMediaCodecDummy_create(); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_java.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_codec_android_mediacodec_java.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2014 Bilibili 6 | * copyright (c) 2014 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_JAVA_H 26 | #define IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIACODEC_JAVA_H 27 | 28 | #include "ijksdl_codec_android_mediacodec.h" 29 | 30 | typedef struct ASDK_MediaCodec ASDK_MediaCodec; 31 | 32 | SDL_AMediaCodec *SDL_AMediaCodecJava_createByCodecName(JNIEnv *env, const char *codec_name); 33 | jobject SDL_AMediaCodecJava_getObject(JNIEnv *env, const SDL_AMediaCodec *thiz); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_codec_android_mediaformat_java.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_codec_android_mediaformat_java.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2014 Bilibili 6 | * copyright (c) 2014 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIAFORMAT_JAVA_H 26 | #define IJKSDL_ANDROID__ANDROID_CODEC_ANDROID_MEDIAFORMAT_JAVA_H 27 | 28 | #include "ijksdl_codec_android_mediaformat.h" 29 | 30 | SDL_AMediaFormat *SDL_AMediaFormatJava_init(JNIEnv *env, jobject android_format); 31 | SDL_AMediaFormat *SDL_AMediaFormatJava_createVideoFormat(JNIEnv *env, const char *mime, int width, int height); 32 | jobject SDL_AMediaFormatJava_getObject(JNIEnv *env, const SDL_AMediaFormat *thiz); 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/android/ijksdl_vout_android_surface.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_vout_android_surface.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_ANDROID__IJKSDL_VOUT_ANDROID_SURFACE_H 26 | #define IJKSDL_ANDROID__IJKSDL_VOUT_ANDROID_SURFACE_H 27 | 28 | #include 29 | #include "../ijksdl_stdinc.h" 30 | #include "../ijksdl_vout.h" 31 | 32 | SDL_Vout *SDL_VoutAndroid_CreateForAndroidSurface(); 33 | void SDL_VoutAndroid_SetAndroidSurface(JNIEnv*env, SDL_Vout *vout, jobject android_surface); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/dummy/ijksdl_dummy.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_dummy.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_DUMMY__IJKSDL_DUMMY_H 26 | #define IJKSDL_DUMMY__IJKSDL_DUMMY_H 27 | 28 | #include "../ijksdl.h" 29 | 30 | // #include "ijksdl_aout_dummy.h" 31 | 32 | #include "ijksdl_vout_dummy.h" 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/dummy/ijksdl_vout_dummy.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_vout_dummy.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL_DUMMY__IJKSDL_VOUT_DUMMY_H 26 | #define IJKSDL_DUMMY__IJKSDL_VOUT_DUMMY_H 27 | 28 | #include "../ijksdl_stdinc.h" 29 | #include "../ijksdl_vout.h" 30 | 31 | SDL_Vout *SDL_VoutDummy_Create(); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ffmpeg/ijksdl_image_convert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_ffinc.h 3 | * ffmpeg headers 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__FFMPEG__IJKSDL_IMAGE_CONVERT_H 26 | #define IJKSDL__FFMPEG__IJKSDL_IMAGE_CONVERT_H 27 | 28 | #include 29 | #include "ijksdl_inc_ffmpeg.h" 30 | 31 | int ijk_image_convert(int width, int height, 32 | enum AVPixelFormat dst_format, uint8_t **dst_data, int *dst_linesize, 33 | enum AVPixelFormat src_format, const uint8_t **src_data, const int *src_linesize); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ffmpeg/ijksdl_inc_ffmpeg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_ffinc.h 3 | * ffmpeg headers 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * Copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__FFMPEG__IJKSDL_FFINC_H 26 | #define IJKSDL__FFMPEG__IJKSDL_FFINC_H 27 | 28 | #include "libavutil/imgutils.h" 29 | #include "libavutil/pixfmt.h" 30 | #include "libavutil/frame.h" 31 | #include "libavutil/common.h" 32 | #include "libavcodec/avcodec.h" 33 | #include "libswscale/swscale.h" 34 | 35 | #include "../ijksdl_inc_internal.h" 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ffmpeg/ijksdl_vout_overlay_ffmpeg.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_vout_overlay_ffmpeg.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__FFMPEG__IJKSDL_VOUT_OVERLAY_FFMPEG_H 26 | #define IJKSDL__FFMPEG__IJKSDL_VOUT_OVERLAY_FFMPEG_H 27 | 28 | #include "../ijksdl_stdinc.h" 29 | #include "../ijksdl_vout.h" 30 | #include "ijksdl_inc_ffmpeg.h" 31 | 32 | // TODO: 9 alignment to speed up memcpy when display 33 | SDL_VoutOverlay *SDL_VoutFFmpeg_CreateOverlay(int width, int height, int frame_format, SDL_Vout *vout); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/gles2/color.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * copyright (c) 2016 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #include "internal.h" 23 | 24 | // BT.709, which is the standard for HDTV. 25 | static const GLfloat g_bt709[] = { 26 | 1.164, 1.164, 1.164, 27 | 0.0, -0.213, 2.112, 28 | 1.793, -0.533, 0.0, 29 | }; 30 | const GLfloat *IJK_GLES2_getColorMatrix_bt709() 31 | { 32 | return g_bt709; 33 | } 34 | 35 | static const GLfloat g_bt601[] = { 36 | 1.164, 1.164, 1.164, 37 | 0.0, -0.392, 2.017, 38 | 1.596, -0.813, 0.0, 39 | }; 40 | const GLfloat *IJK_GLES2_getColorMatrix_bt601() 41 | { 42 | return g_bt601; 43 | } 44 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/gles2/fsh/rgb.fsh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * copyright (c) 2016 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #include "ijksdl/gles2/internal.h" 23 | 24 | static const char g_shader[] = IJK_GLES_STRING( 25 | precision highp float; 26 | varying highp vec2 vv2_Texcoord; 27 | uniform lowp sampler2D us2_SamplerX; 28 | 29 | void main() 30 | { 31 | gl_FragColor = vec4(texture2D(us2_SamplerX, vv2_Texcoord).rgb, 1); 32 | } 33 | ); 34 | 35 | const char *IJK_GLES2_getFragmentShader_rgb() 36 | { 37 | return g_shader; 38 | } 39 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/gles2/fsh/yuv420sp.fsh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * copyright (c) 2016 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #include "ijksdl/gles2/internal.h" 23 | 24 | static const char g_shader[] = IJK_GLES_STRING( 25 | precision highp float; 26 | varying highp vec2 vv2_Texcoord; 27 | uniform mat3 um3_ColorConversion; 28 | uniform lowp sampler2D us2_SamplerX; 29 | uniform lowp sampler2D us2_SamplerY; 30 | 31 | void main() 32 | { 33 | mediump vec3 yuv; 34 | lowp vec3 rgb; 35 | 36 | yuv.x = (texture2D(us2_SamplerX, vv2_Texcoord).r - (16.0 / 255.0)); 37 | yuv.yz = (texture2D(us2_SamplerY, vv2_Texcoord).rg - vec2(0.5, 0.5)); 38 | rgb = um3_ColorConversion * yuv; 39 | gl_FragColor = vec4(rgb, 1); 40 | } 41 | ); 42 | 43 | const char *IJK_GLES2_getFragmentShader_yuv420sp() 44 | { 45 | return g_shader; 46 | } 47 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/gles2/vsh/mvp.vsh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Bilibili 3 | * copyright (c) 2016 Zhang Rui 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #include "ijksdl/gles2/internal.h" 23 | 24 | static const char g_shader[] = IJK_GLES_STRING( 25 | precision highp float; 26 | varying highp vec2 vv2_Texcoord; 27 | attribute highp vec4 av4_Position; 28 | attribute highp vec2 av2_Texcoord; 29 | uniform mat4 um4_ModelViewProjection; 30 | 31 | void main() 32 | { 33 | gl_Position = um4_ModelViewProjection * av4_Position; 34 | vv2_Texcoord = av2_Texcoord.xy; 35 | } 36 | ); 37 | 38 | const char *IJK_GLES2_getVertexShader_default() 39 | { 40 | return g_shader; 41 | } 42 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_H 26 | #define IJKSDL__IJKSDL_H 27 | 28 | #include "ijksdl_audio.h" 29 | #include "ijksdl_aout.h" 30 | #include "ijksdl_class.h" 31 | #include "ijksdl_error.h" 32 | #include "ijksdl_log.h" 33 | #include "ijksdl_misc.h" 34 | #include "ijksdl_mutex.h" 35 | #include "ijksdl_thread.h" 36 | #include "ijksdl_timer.h" 37 | #include "ijksdl_video.h" 38 | #include "ijksdl_vout.h" 39 | 40 | #include "ffmpeg/ijksdl_vout_overlay_ffmpeg.h" 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_audio.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_audio.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "ijksdl_audio.h" 26 | 27 | void SDL_CalculateAudioSpec(SDL_AudioSpec * spec) 28 | { 29 | switch (spec->format) { 30 | case AUDIO_U8: 31 | spec->silence = 0x80; 32 | break; 33 | default: 34 | spec->silence = 0x00; 35 | break; 36 | } 37 | spec->size = SDL_AUDIO_BITSIZE(spec->format) / 8; 38 | spec->size *= spec->channels; 39 | spec->size *= spec->samples; 40 | } 41 | 42 | void SDL_MixAudio(Uint8* dst, 43 | const Uint8* src, 44 | Uint32 len, 45 | int volume) 46 | { 47 | // do nothing; 48 | } 49 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_class.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_class.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_CLASS_H 26 | #define IJKSDL__IJKSDL_CLASS_H 27 | 28 | typedef struct SDL_Class { 29 | const char *name; 30 | } SDL_Class; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_error.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_error.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "ijksdl_error.h" 26 | #include "ijksdl_stdinc.h" 27 | 28 | const char *SDL_GetError(void) 29 | { 30 | return NULL; 31 | } 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_error.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_error.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_ERROR_H 26 | #define IJKSDL__IJKSDL_ERROR_H 27 | 28 | const char *SDL_GetError(void); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_extra_log.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_extra_log.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2017 Bilibili 6 | * copyright (c) 2017 Raymond Zheng 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_EXTRA_LOG_H 26 | #define IJKSDL__IJKSDL_EXTRA_LOG_H 27 | 28 | #ifdef __ANDROID__ 29 | #include 30 | 31 | void ffp_log_extra_print(int level, const char *tag, const char *fmt, ...); 32 | void ffp_log_extra_vprint(int level, const char *tag, const char *fmt, va_list ap); 33 | #endif 34 | 35 | #endif // IJKSDL__IJKSDL_EXTRA_LOG_H 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_inc_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ijksdl_inc_internal.h 3 | * 4 | * Copyright (c) 2013 Bilibili 5 | * Copyright (c) 2013 Zhang Rui 6 | * 7 | * This file is part of ijkPlayer. 8 | * 9 | * ijkPlayer is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2.1 of the License, or (at your option) any later version. 13 | * 14 | * ijkPlayer is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with ijkPlayer; if not, write to the Free Software 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 | */ 23 | 24 | #ifndef IJKPLAYER__IJKSDL_INC_INTERNAL_H 25 | #define IJKPLAYER__IJKSDL_INC_INTERNAL_H 26 | 27 | #include 28 | 29 | #include "ijksdl_log.h" 30 | #include "ijksdl_misc.h" 31 | #include "ijksdl_stdinc.h" 32 | 33 | #define SDLTRACE ALOGD 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_stdinc.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_stdinc.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "ijksdl_stdinc.h" 26 | 27 | char *SDL_getenv(const char *name) 28 | { 29 | return NULL; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_stdinc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_stdinc.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_STDINC_H 26 | #define IJKSDL__IJKSDL_STDINC_H 27 | 28 | #include 29 | #include 30 | #include 31 | 32 | typedef int8_t Sint8; 33 | typedef uint8_t Uint8; 34 | typedef int16_t Sint16; 35 | typedef uint16_t Uint16; 36 | typedef int32_t Sint32; 37 | typedef uint32_t Uint32; 38 | typedef int64_t Sint64; 39 | typedef uint64_t Uint64; 40 | 41 | char *SDL_getenv(const char *name); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksdl/ijksdl_video.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * ijksdl_video.h 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2013 Bilibili 6 | * copyright (c) 2013 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef IJKSDL__IJKSDL_VIDEO_H 26 | #define IJKSDL__IJKSDL_VIDEO_H 27 | 28 | #include "ijksdl_stdinc.h" 29 | #include "ijksdl_fourcc.h" 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/configure-file-README.txt: -------------------------------------------------------------------------------- 1 | Starting from SoundTouch 1.6.0, the "configure" file is removed from the source code package due to autoconf/automake version conflicts. 2 | 3 | Instead, generate the "configure" file using local tools by invoking "./bootstrap" script, then configure & compile as usual. 4 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/ijksoundtouch_wrap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Bilibili 3 | * copyright (c) 2017 Raymond Zheng 4 | * 5 | * This file is part of ijkPlayer. 6 | * 7 | * ijkPlayer is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * ijkPlayer is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with ijkPlayer; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef IJKSOUNDTOUCHWRAP_H 23 | #define IJKSOUNDTOUCHWRAP_H 24 | 25 | #include 26 | 27 | void* ijk_soundtouch_create(); 28 | int ijk_soundtouch_translate(void *handle, short* data, float speed, float pitch, int len, int bytes_per_sample, int n_channel, int n_sampleRate); 29 | void ijk_soundtouch_destroy(void *handle); 30 | 31 | #endif /* IJKSOUNDTOUCHWRAP_H */ -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/include/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to create Makefile.in 2 | ## 3 | ## $Id: Makefile.am 11 2008-02-10 16:26:55Z oparviai $ 4 | ## 5 | ## Copyright (C) 2003 - David W. Durham 6 | ## 7 | ## This file is part of SoundTouch, an audio processing library for pitch/time adjustments 8 | ## 9 | ## SoundTouch is free software; you can redistribute it and/or modify it under the 10 | ## terms of the GNU General Public License as published by the Free Software 11 | ## Foundation; either version 2 of the License, or (at your option) any later 12 | ## version. 13 | ## 14 | ## SoundTouch is distributed in the hope that it will be useful, but WITHOUT ANY 15 | ## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 16 | ## A PARTICULAR PURPOSE. See the GNU General Public License for more details. 17 | ## 18 | ## You should have received a copy of the GNU General Public License along with 19 | ## this program; if not, write to the Free Software Foundation, Inc., 59 Temple 20 | ## Place - Suite 330, Boston, MA 02111-1307, USA 21 | 22 | ## I used config/am_include.mk for common definitions 23 | include $(top_srcdir)/config/am_include.mk 24 | 25 | pkginclude_HEADERS=FIFOSampleBuffer.h FIFOSamplePipe.h SoundTouch.h STTypes.h BPMDetect.h soundtouch_config.h 26 | 27 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/include/soundtouch_config.h.in: -------------------------------------------------------------------------------- 1 | /* Use Float as Sample type */ 2 | #undef SOUNDTOUCH_FLOAT_SAMPLES 3 | 4 | /* Use Integer as Sample type */ 5 | #undef SOUNDTOUCH_INTEGER_SAMPLES 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/source/Android-lib/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # $Id: Application.mk 212 2015-05-15 10:22:36Z oparviai $ 2 | # 3 | # Build library bilaries for all supported architectures 4 | # 5 | 6 | APP_ABI := all #armeabi-v7a armeabi 7 | APP_OPTIM := release 8 | APP_STL := stlport_static 9 | APP_CPPFLAGS := -fexceptions # -D SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS 10 | 11 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/source/SoundStretch/soundstretch.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "SoundTouch"=..\SoundTouch\SoundTouch.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Project: "soundstretch"=.\soundstretch.dsp - Package Owner=<4> 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<4> 25 | {{{ 26 | Begin Project Dependency 27 | Project_Dep_Name SoundTouch 28 | End Project Dependency 29 | }}} 30 | 31 | ############################################################################### 32 | 33 | Global: 34 | 35 | Package=<5> 36 | {{{ 37 | }}} 38 | 39 | Package=<3> 40 | {{{ 41 | }}} 42 | 43 | ############################################################################### 44 | 45 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/source/SoundTouch/SoundTouch.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | # 4 | # $Id: SoundTouch.dsw 11 2008-02-10 16:26:55Z oparviai $ 5 | 6 | ############################################################################### 7 | 8 | Project: "SoundTouch"=.\SoundTouch.dsp - Package Owner=<4> 9 | 10 | Package=<5> 11 | {{{ 12 | }}} 13 | 14 | Package=<4> 15 | {{{ 16 | }}} 17 | 18 | ############################################################################### 19 | 20 | Global: 21 | 22 | Package=<5> 23 | {{{ 24 | }}} 25 | 26 | Package=<3> 27 | {{{ 28 | }}} 29 | 30 | ############################################################################### 31 | 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijksoundtouch/source/SoundTouch/SoundTouch.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 10.00 2 | # Visual Studio 2008 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "SoundTouch.vcproj", "{68A5DD20-7057-448B-8FE0-B6AC8D205509}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Debug|x64 = Debug|x64 9 | Release|Win32 = Release|Win32 10 | Release|x64 = Release|x64 11 | ReleaseX64|Win32 = ReleaseX64|Win32 12 | ReleaseX64|x64 = ReleaseX64|x64 13 | EndGlobalSection 14 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 15 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|Win32.ActiveCfg = Debug|Win32 16 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|x64.ActiveCfg = Debug|x64 17 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|Win32.ActiveCfg = Release|Win32 18 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|x64.ActiveCfg = Release|x64 19 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.ReleaseX64|Win32.ActiveCfg = ReleaseX64|Win32 20 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.ReleaseX64|Win32.Build.0 = ReleaseX64|Win32 21 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.ReleaseX64|x64.ActiveCfg = ReleaseX64|x64 22 | {68A5DD20-7057-448B-8FE0-B6AC8D205509}.ReleaseX64|x64.Build.0 = ReleaseX64|x64 23 | EndGlobalSection 24 | GlobalSection(SolutionProperties) = preSolution 25 | HideSolutionNode = FALSE 26 | EndGlobalSection 27 | EndGlobal 28 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/.gitignore: -------------------------------------------------------------------------------- 1 | .gn 2 | build 3 | buildtools 4 | chromium/.gclient_entries 5 | chromium/.last_sync_chromium 6 | chromium/src/ 7 | google_apis 8 | links 9 | net 10 | out/ 11 | testing 12 | third_party/ 13 | tools/android 14 | tools/clang 15 | tools/find_depot_tools.py 16 | tools/gn 17 | tools/gyp 18 | tools/memory 19 | tools/python 20 | tools/valgrind 21 | tools/win 22 | 23 | # Files generated by CMake build 24 | CMakeFiles/ 25 | CMakeCache.txt 26 | Makefile 27 | convert 28 | libgtest.a 29 | libyuv.a 30 | libyuv_unittest 31 | cmake_install.cmake 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/AUTHORS: -------------------------------------------------------------------------------- 1 | # Names should be added to this file like so: 2 | # Name or Organization 3 | 4 | Google Inc. 5 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/DEPS: -------------------------------------------------------------------------------- 1 | vars = { 2 | "libyuv_trunk" : "https://libyuv.googlecode.com/svn/trunk", 3 | 4 | # Override root_dir in your .gclient's custom_vars to specify a custom root 5 | # folder name. 6 | "root_dir": "trunk", 7 | "extra_gyp_flag": "-Dextra_gyp_flag=0", 8 | 9 | # Roll the Chromium Git hash to pick up newer versions of all the 10 | # dependencies and tools linked to in setup_links.py. 11 | "chromium_revision": "d8c90415d681a7c3727e3ef70873bc4f44dd3ab0", 12 | } 13 | 14 | hooks = [ 15 | { 16 | # Clone chromium and its deps. 17 | "name": "sync chromium", 18 | "pattern": ".", 19 | "action": ["python", "-u", Var("root_dir") + "/sync_chromium.py", 20 | "--target-revision", Var("chromium_revision")], 21 | }, 22 | { 23 | # Create links to shared dependencies in Chromium. 24 | "name": "setup_links", 25 | "pattern": ".", 26 | "action": ["python", Var("root_dir") + "/setup_links.py"], 27 | }, 28 | { 29 | # A change to a .gyp, .gypi, or to GYP itself should run the generator. 30 | "pattern": ".", 31 | "action": ["python", Var("root_dir") + "/gyp_libyuv"], 32 | }, 33 | ] 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | * Neither the name of Google nor the names of its contributors may 16 | be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/LICENSE_THIRD_PARTY: -------------------------------------------------------------------------------- 1 | This source tree contains third party source code which is governed by third 2 | party licenses. This file contains references to files which are under other 3 | licenses than the one provided in the LICENSE file in the root of the source 4 | tree. 5 | 6 | Files governed by third party licenses: 7 | source/x86inc.asm 8 | 9 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/OWNERS: -------------------------------------------------------------------------------- 1 | fbarchard@chromium.org 2 | mflodman@chromium.org 3 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/PATENTS: -------------------------------------------------------------------------------- 1 | Additional IP Rights Grant (Patents) 2 | 3 | "This implementation" means the copyrightable works distributed by 4 | Google as part of the LibYuv code package. 5 | 6 | Google hereby grants to you a perpetual, worldwide, non-exclusive, 7 | no-charge, irrevocable (except as stated in this section) patent 8 | license to make, have made, use, offer to sell, sell, import, 9 | transfer, and otherwise run, modify and propagate the contents of this 10 | implementation of the LibYuv code package, where such license applies 11 | only to those patent claims, both currently owned by Google and 12 | acquired in the future, licensable by Google that are necessarily 13 | infringed by this implementation of the LibYuv code package. This 14 | grant does not include claims that would be infringed only as a 15 | consequence of further modification of this implementation. If you or 16 | your agent or exclusive licensee institute or order or agree to the 17 | institution of patent litigation against any entity (including a 18 | cross-claim or counterclaim in a lawsuit) alleging that this 19 | implementation of the LibYuv code package or any code incorporated 20 | within this implementation of the LibYuv code package constitutes 21 | direct or contributory patent infringement, or inducement of patent 22 | infringement, then any patent rights granted to you under this License 23 | for this implementation of the LibYuv code package shall terminate as 24 | of the date such litigation is filed. -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/PRESUBMIT.py: -------------------------------------------------------------------------------- 1 | # Copyright 2014 The LibYuv Project Authors. All rights reserved. 2 | # 3 | # Use of this source code is governed by a BSD-style license 4 | # that can be found in the LICENSE file in the root of the source 5 | # tree. An additional intellectual property rights grant can be found 6 | # in the file PATENTS. All contributing project authors may 7 | # be found in the AUTHORS file in the root of the source tree. 8 | 9 | import re 10 | import sys 11 | 12 | 13 | def GetDefaultTryConfigs(bots=None): 14 | """Returns a list of ('bot', set(['tests']), optionally filtered by [bots]. 15 | 16 | For WebRTC purposes, we always return an empty list of tests, since we want 17 | to run all tests by default on all our trybots. 18 | """ 19 | return { 'tryserver.libyuv': dict((bot, []) for bot in bots)} 20 | 21 | 22 | # pylint: disable=W0613 23 | def GetPreferredTryMasters(project, change): 24 | files = change.LocalPaths() 25 | bots = [ 26 | 'win', 27 | 'win_rel', 28 | 'win_x64_rel', 29 | 'mac', 30 | 'mac_rel', 31 | 'mac_x64_rel', 32 | 'ios', 33 | 'ios_rel', 34 | 'ios_arm64', 35 | 'ios_arm64_rel', 36 | 'mac_asan', 37 | 'mac_xcode61', 38 | 'mac_rel_xcode61', 39 | 'mac_x64_rel_xcode61', 40 | 'ios_xcode61', 41 | 'ios_rel_xcode61', 42 | 'ios_arm64_xcode61', 43 | 'ios_arm64_rel_xcode61', 44 | 'mac_asan_xcode61', 45 | 'linux', 46 | 'linux_rel', 47 | 'linux_memcheck', 48 | 'linux_tsan2', 49 | 'linux_asan', 50 | 'android', 51 | 'android_rel', 52 | ] 53 | if not files or all(re.search(r'[\\/]OWNERS$', f) for f in files): 54 | return {} 55 | return GetDefaultTryConfigs(bots) 56 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/README.chromium: -------------------------------------------------------------------------------- 1 | Name: libyuv 2 | URL: http://code.google.com/p/libyuv/ 3 | Version: 1207 4 | License: BSD 5 | License File: LICENSE 6 | 7 | Description: 8 | libyuv is an open source project that includes YUV conversion and scaling functionality. 9 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/all.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2013 The LibYuv Project Authors. All rights reserved. 2 | # 3 | # Use of this source code is governed by a BSD-style license 4 | # that can be found in the LICENSE file in the root of the source 5 | # tree. An additional intellectual property rights grant can be found 6 | # in the file PATENTS. All contributing project authors may 7 | # be found in the AUTHORS file in the root of the source tree. 8 | 9 | # all.gyp and All target are for benefit of android gyp build. 10 | { 11 | 'targets': [ 12 | { 13 | 'target_name': 'All', 14 | 'type': 'none', 15 | 'dependencies': [ 16 | 'libyuv.gyp:*', 17 | 'libyuv_test.gyp:*', 18 | ], 19 | }, 20 | ], 21 | } 22 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/chromium/.gclient: -------------------------------------------------------------------------------- 1 | solutions = [{ 2 | 'name': 'src', 3 | 'url': 'https://chromium.googlesource.com/chromium/src.git', 4 | 'deps_file': '.DEPS.git', 5 | 'managed': False, 6 | 'custom_deps': { 7 | # Skip syncing some large dependencies Libyuv will never need. 8 | 'src/chrome/tools/test/reference_build/chrome_linux': None, 9 | 'src/chrome/tools/test/reference_build/chrome_mac': None, 10 | 'src/chrome/tools/test/reference_build/chrome_win': None, 11 | 'src/native_client': None, 12 | 'src/third_party/ffmpeg': None, 13 | 'src/third_party/WebKit': None, 14 | 'src/v8': None, 15 | }, 16 | 'safesync_url': '' 17 | }] 18 | 19 | cache_dir = None 20 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/chromium/README: -------------------------------------------------------------------------------- 1 | This .gclient file is used to do download a copy of Chromium. 2 | Libyuv uses the Chromium build toolchain and a number of shared 3 | dependencies by creating symlinks to folders in this checkout, 4 | using the ../setup_links.py script. 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/codereview.settings: -------------------------------------------------------------------------------- 1 | # This file is used by gcl to get repository specific information. 2 | # The LibYuv code review is via WebRtc's code review 3 | CODE_REVIEW_SERVER: webrtc-codereview.appspot.com 4 | #CC_LIST: 5 | VIEW_VC: https://code.google.com/p/libyuv/source/detail?r= 6 | #STATUS: 7 | TRY_ON_UPLOAD: False 8 | TRYSERVER_ROOT: src 9 | TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try/try-libyuv 10 | #GITCL_PREUPLOAD: 11 | #GITCL_PREDCOMMIT: 12 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/download_vs_toolchain.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Copyright 2014 The LibYuv Project Authors. All rights reserved. 4 | # 5 | # Use of this source code is governed by a BSD-style license 6 | # that can be found in the LICENSE file in the root of the source 7 | # tree. An additional intellectual property rights grant can be found 8 | # in the file PATENTS. All contributing project authors may 9 | # be found in the AUTHORS file in the root of the source tree. 10 | 11 | # This script is used to run the vs_toolchain.py script to download the 12 | # Visual Studio toolchain. It's just a temporary measure while waiting for the 13 | # Chrome team to move find_depot_tools into src/build to get rid of these 14 | # workarounds (similar one in gyp_libyuv). 15 | 16 | import os 17 | import sys 18 | 19 | 20 | checkout_root = os.path.dirname(os.path.realpath(__file__)) 21 | sys.path.insert(0, os.path.join(checkout_root, 'build')) 22 | sys.path.insert(0, os.path.join(checkout_root, 'tools', 'find_depot_tools')) 23 | 24 | 25 | import vs_toolchain 26 | 27 | 28 | if __name__ == '__main__': 29 | sys.exit(vs_toolchain.main()) 30 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/gyp_libyuv.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Copyright 2014 The LibYuv Project Authors. All rights reserved. 4 | # 5 | # Use of this source code is governed by a BSD-style license 6 | # that can be found in the LICENSE file in the root of the source 7 | # tree. An additional intellectual property rights grant can be found 8 | # in the file PATENTS. All contributing project authors may 9 | # be found in the AUTHORS file in the root of the source tree. 10 | 11 | 12 | # This script is a modified copy of the src/build/gyp_chromium.py file. 13 | # It is needed for parallel processing. 14 | 15 | # This file is (possibly, depending on python version) imported by 16 | # gyp_libyuv when GYP_PARALLEL=1 and it creates sub-processes 17 | # through the multiprocessing library. 18 | 19 | # Importing in Python 2.6 (fixed in 2.7) on Windows doesn't search for 20 | # imports that don't end in .py (and aren't directories with an 21 | # __init__.py). This wrapper makes "import gyp_libyuv" work with 22 | # those old versions and makes it possible to execute gyp_libyuv.py 23 | # directly on Windows where the extension is useful. 24 | 25 | import os 26 | 27 | path = os.path.abspath(os.path.split(__file__)[0]) 28 | execfile(os.path.join(path, 'gyp_libyuv')) 29 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/include/libyuv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2011 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef INCLUDE_LIBYUV_H_ // NOLINT 12 | #define INCLUDE_LIBYUV_H_ 13 | 14 | #include "libyuv/basic_types.h" 15 | #include "libyuv/compare.h" 16 | #include "libyuv/convert.h" 17 | #include "libyuv/convert_argb.h" 18 | #include "libyuv/convert_from.h" 19 | #include "libyuv/convert_from_argb.h" 20 | #include "libyuv/cpu_id.h" 21 | #include "libyuv/format_conversion.h" 22 | #include "libyuv/mjpeg_decoder.h" 23 | #include "libyuv/planar_functions.h" 24 | #include "libyuv/rotate.h" 25 | #include "libyuv/rotate_argb.h" 26 | #include "libyuv/row.h" 27 | #include "libyuv/scale.h" 28 | #include "libyuv/scale_argb.h" 29 | #include "libyuv/scale_row.h" 30 | #include "libyuv/version.h" 31 | #include "libyuv/video_common.h" 32 | 33 | #endif // INCLUDE_LIBYUV_H_ NOLINT 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/include/libyuv/rotate_argb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef INCLUDE_LIBYUV_ROTATE_ARGB_H_ // NOLINT 12 | #define INCLUDE_LIBYUV_ROTATE_ARGB_H_ 13 | 14 | #include "libyuv/basic_types.h" 15 | #include "libyuv/rotate.h" // For RotationMode. 16 | 17 | #ifdef __cplusplus 18 | namespace libyuv { 19 | extern "C" { 20 | #endif 21 | 22 | // Rotate ARGB frame 23 | LIBYUV_API 24 | int ARGBRotate(const uint8* src_argb, int src_stride_argb, 25 | uint8* dst_argb, int dst_stride_argb, 26 | int src_width, int src_height, enum RotationMode mode); 27 | 28 | #ifdef __cplusplus 29 | } // extern "C" 30 | } // namespace libyuv 31 | #endif 32 | 33 | #endif // INCLUDE_LIBYUV_ROTATE_ARGB_H_ NOLINT 34 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/include/libyuv/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT 12 | #define INCLUDE_LIBYUV_VERSION_H_ 13 | 14 | #define LIBYUV_VERSION 1207 15 | 16 | #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT 17 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/libyuv_nacl.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2014 The LibYuv Project Authors. All rights reserved. 2 | # 3 | # Use of this source code is governed by a BSD-style license 4 | # that can be found in the LICENSE file in the root of the source 5 | # tree. An additional intellectual property rights grant can be found 6 | # in the file PATENTS. All contributing project authors may 7 | # be found in the AUTHORS file in the root of the source tree. 8 | 9 | { 10 | 'includes': [ 11 | 'libyuv.gypi', 12 | '../../native_client/build/untrusted.gypi', 13 | ], 14 | 'targets': [ 15 | { 16 | 'target_name': 'libyuv_nacl', 17 | 'type': 'none', 18 | 'variables': { 19 | 'nlib_target': 'libyuv_nacl.a', 20 | 'build_glibc': 0, 21 | 'build_newlib': 0, 22 | 'build_pnacl_newlib': 1, 23 | }, 24 | 'dependencies': [ 25 | '../../native_client/tools.gyp:prep_toolchain', 26 | ], 27 | 'include_dirs': [ 28 | 'include', 29 | ], 30 | 'direct_dependent_settings': { 31 | 'include_dirs': [ 32 | 'include', 33 | ], 34 | }, 35 | 'sources': [ 36 | '<@(libyuv_sources)', 37 | ], 38 | }, # target libyuv_nacl 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/linux.mk: -------------------------------------------------------------------------------- 1 | # This is a generic makefile for libyuv for gcc. 2 | # make -f linux.mk CXX=clang++ 3 | 4 | CXX?=g++ 5 | CXXFLAGS?=-O2 -fomit-frame-pointer 6 | CXXFLAGS+=-Iinclude/ 7 | 8 | LOCAL_OBJ_FILES := \ 9 | source/compare.o \ 10 | source/compare_common.o \ 11 | source/compare_posix.o \ 12 | source/convert.o \ 13 | source/convert_argb.o \ 14 | source/convert_from.o \ 15 | source/convert_from_argb.o \ 16 | source/convert_to_argb.o \ 17 | source/convert_to_i420.o \ 18 | source/cpu_id.o \ 19 | source/format_conversion.o \ 20 | source/planar_functions.o \ 21 | source/rotate.o \ 22 | source/rotate_argb.o \ 23 | source/rotate_mips.o \ 24 | source/row_any.o \ 25 | source/row_common.o \ 26 | source/row_mips.o \ 27 | source/row_posix.o \ 28 | source/scale.o \ 29 | source/scale_argb.o \ 30 | source/scale_common.o \ 31 | source/scale_mips.o \ 32 | source/scale_posix.o \ 33 | source/video_common.o 34 | 35 | .cc.o: 36 | $(CXX) -c $(CXXFLAGS) $*.cc -o $*.o 37 | 38 | all: libyuv.a convert 39 | 40 | libyuv.a: $(LOCAL_OBJ_FILES) 41 | $(AR) $(ARFLAGS) $@ $(LOCAL_OBJ_FILES) 42 | 43 | # A test utility that uses libyuv conversion. 44 | convert: util/convert.cc libyuv.a 45 | $(CXX) $(CXXFLAGS) -Iutil/ -o $@ util/convert.cc libyuv.a 46 | 47 | clean: 48 | /bin/rm -f source/*.o *.ii *.s libyuv.a convert 49 | 50 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/public.mk: -------------------------------------------------------------------------------- 1 | # This file contains all the common make variables which are useful for 2 | # anyone depending on this library. 3 | # Note that dependencies on NDK are not directly listed since NDK auto adds 4 | # them. 5 | 6 | LIBYUV_INCLUDES := $(LIBYUV_PATH)/include 7 | 8 | LIBYUV_C_FLAGS := 9 | 10 | LIBYUV_CPP_FLAGS := 11 | 12 | LIBYUV_LDLIBS := 13 | LIBYUV_DEP_MODULES := 14 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/source/compare_common.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #include "libyuv/basic_types.h" 12 | 13 | #ifdef __cplusplus 14 | namespace libyuv { 15 | extern "C" { 16 | #endif 17 | 18 | uint32 SumSquareError_C(const uint8* src_a, const uint8* src_b, int count) { 19 | uint32 sse = 0u; 20 | int i; 21 | for (i = 0; i < count; ++i) { 22 | int diff = src_a[i] - src_b[i]; 23 | sse += (uint32)(diff * diff); 24 | } 25 | return sse; 26 | } 27 | 28 | // hash seed of 5381 recommended. 29 | // Internal C version of HashDjb2 with int sized count for efficiency. 30 | uint32 HashDjb2_C(const uint8* src, int count, uint32 seed) { 31 | uint32 hash = seed; 32 | int i; 33 | for (i = 0; i < count; ++i) { 34 | hash += (hash << 5) + src[i]; 35 | } 36 | return hash; 37 | } 38 | 39 | #ifdef __cplusplus 40 | } // extern "C" 41 | } // namespace libyuv 42 | #endif 43 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/source/mjpeg_validate.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #include "libyuv/mjpeg_decoder.h" 12 | 13 | #ifdef __cplusplus 14 | namespace libyuv { 15 | extern "C" { 16 | #endif 17 | 18 | // Helper function to validate the jpeg appears intact. 19 | // TODO(fbarchard): Optimize case where SOI is found but EOI is not. 20 | LIBYUV_BOOL ValidateJpeg(const uint8* sample, size_t sample_size) { 21 | size_t i; 22 | if (sample_size < 64) { 23 | // ERROR: Invalid jpeg size: sample_size 24 | return LIBYUV_FALSE; 25 | } 26 | if (sample[0] != 0xff || sample[1] != 0xd8) { // Start Of Image 27 | // ERROR: Invalid jpeg initial start code 28 | return LIBYUV_FALSE; 29 | } 30 | for (i = sample_size - 2; i > 1;) { 31 | if (sample[i] != 0xd9) { 32 | if (sample[i] == 0xff && sample[i + 1] == 0xd9) { // End Of Image 33 | return LIBYUV_TRUE; // Success: Valid jpeg. 34 | } 35 | --i; 36 | } 37 | --i; 38 | } 39 | // ERROR: Invalid jpeg end code not found. Size sample_size 40 | return LIBYUV_FALSE; 41 | } 42 | 43 | #ifdef __cplusplus 44 | } // extern "C" 45 | } // namespace libyuv 46 | #endif 47 | 48 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/lsan/suppressions.txt: -------------------------------------------------------------------------------- 1 | # This is a suppressions file that must exist in order for the Leak Sanitizer 2 | # tool that runs on the ASan bot to be able to run with the default 3 | # configuration. More info about LSan on 4 | # http://www.chromium.org/developers/testing/leaksanitizer 5 | 6 | #### Third-party leaks #### 7 | 8 | #### Actual bugs in Libyuv code #### 9 | 10 | 11 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/sanitizer_options.gyp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/sanitizer_options.gyp -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/memcheck/OWNERS: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/memcheck/suppressions.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/memcheck/suppressions_mac.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/memcheck/suppressions_win32.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/tsan/OWNERS: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/tsan/PRESUBMIT.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # Copyright (c) 2012 The LibYuv Project Authors. All rights reserved. 3 | # 4 | # Use of this source code is governed by a BSD-style license 5 | # that can be found in the LICENSE file in the root of the source 6 | # tree. An additional intellectual property rights grant can be found 7 | # in the file PATENTS. All contributing project authors may 8 | # be found in the AUTHORS file in the root of the source tree. 9 | 10 | import os 11 | import re 12 | import sys 13 | 14 | """ 15 | Copied from Chrome's src/tools/valgrind/tsan/PRESUBMIT.py 16 | 17 | See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 18 | for more details on the presubmit API built into gcl. 19 | """ 20 | 21 | def CheckChange(input_api, output_api): 22 | """Checks the TSan suppressions files for bad suppressions.""" 23 | 24 | # Add the path to the Chrome valgrind dir to the import path: 25 | tools_vg_path = os.path.join(input_api.PresubmitLocalPath(), '..', '..', 26 | 'valgrind') 27 | sys.path.append(tools_vg_path) 28 | import suppressions 29 | 30 | return suppressions.PresubmitCheck(input_api, output_api) 31 | 32 | def CheckChangeOnUpload(input_api, output_api): 33 | return CheckChange(input_api, output_api) 34 | 35 | def CheckChangeOnCommit(input_api, output_api): 36 | return CheckChange(input_api, output_api) 37 | 38 | def GetPreferredTrySlaves(): 39 | # We don't have any tsan slaves yet, so there's no use for this method. 40 | # When we have, the slave name(s) should be put into this list. 41 | return [] 42 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/tsan/suppressions.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/tsan/suppressions_mac.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/tools/valgrind-libyuv/tsan/suppressions_win32.txt: -------------------------------------------------------------------------------- 1 | # This file is used in addition to the one already maintained in Chrome. 2 | # It acts as a place holder for future additions for this project. 3 | # It must exist for the Python wrapper script to work properly. 4 | 5 | 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/basictypes_test.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #include "../unit_test/unit_test.h" 12 | #include "libyuv/basic_types.h" 13 | 14 | namespace libyuv { 15 | 16 | TEST_F(libyuvTest, Endian) { 17 | uint16 v16 = 0x1234u; 18 | uint8 first_byte = *reinterpret_cast(&v16); 19 | #if defined(LIBYUV_LITTLE_ENDIAN) 20 | EXPECT_EQ(0x34u, first_byte); 21 | #else 22 | EXPECT_EQ(0x12u, first_byte); 23 | #endif 24 | } 25 | 26 | TEST_F(libyuvTest, SizeOfTypes) { 27 | int8 i8 = -1; 28 | uint8 u8 = 1u; 29 | int16 i16 = -1; 30 | uint16 u16 = 1u; 31 | int32 i32 = -1; 32 | uint32 u32 = 1u; 33 | int64 i64 = -1; 34 | uint64 u64 = 1u; 35 | EXPECT_EQ(1u, sizeof(i8)); 36 | EXPECT_EQ(1u, sizeof(u8)); 37 | EXPECT_EQ(2u, sizeof(i16)); 38 | EXPECT_EQ(2u, sizeof(u16)); 39 | EXPECT_EQ(4u, sizeof(i32)); 40 | EXPECT_EQ(4u, sizeof(u32)); 41 | EXPECT_EQ(8u, sizeof(i64)); 42 | EXPECT_EQ(8u, sizeof(u64)); 43 | EXPECT_GT(0, i8); 44 | EXPECT_LT(0u, u8); 45 | EXPECT_GT(0, i16); 46 | EXPECT_LT(0u, u16); 47 | EXPECT_GT(0, i32); 48 | EXPECT_LT(0u, u32); 49 | EXPECT_GT(0, i64); 50 | EXPECT_LT(0u, u64); 51 | } 52 | 53 | TEST_F(libyuvTest, SizeOfConstants) { 54 | EXPECT_EQ(8u, sizeof(INT64_C(0))); 55 | EXPECT_EQ(8u, sizeof(UINT64_C(0))); 56 | EXPECT_EQ(8u, sizeof(INT64_C(0x1234567887654321))); 57 | EXPECT_EQ(8u, sizeof(UINT64_C(0x8765432112345678))); 58 | } 59 | 60 | } // namespace libyuv 61 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/testdata/arm_v7.txt: -------------------------------------------------------------------------------- 1 | Processor : ARMv7 Processor rev 5 (v7l) 2 | BogoMIPS : 795.44 3 | Features : swp half thumb fastmult vfp edsp iwmmxt thumbee vfpv3 vfpv3d16 4 | CPU implementer : 0x56 5 | CPU architecture: 7 6 | CPU variant : 0x0 7 | CPU part : 0x581 8 | CPU revision : 5 9 | 10 | Hardware : OLPC XO-1.75 11 | Revision : 0000 12 | Serial : 0000000000000000 13 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/testdata/juno.txt: -------------------------------------------------------------------------------- 1 | Processor : AArch64 Processor rev 0 (aarch64) 2 | processor : 0 3 | processor : 1 4 | processor : 2 5 | processor : 3 6 | processor : 4 7 | processor : 5 8 | Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 9 | CPU implementer : 0x41 10 | CPU architecture: AArch64 11 | CPU variant : 0x0 12 | CPU part : 0xd07 13 | CPU revision : 0 14 | 15 | Hardware : Juno 16 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/testdata/tegra3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/testdata/tegra3.txt -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/unit_test/version_test.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #include 12 | #include 13 | 14 | #include "libyuv/basic_types.h" 15 | #include "libyuv/version.h" 16 | #include "../unit_test/unit_test.h" 17 | 18 | namespace libyuv { 19 | 20 | // Tests SVN version against include/libyuv/version.h 21 | // SVN version is bumped by documentation changes as well as code. 22 | // Although the versions should match, once checked in, a tolerance is allowed. 23 | TEST_F(libyuvTest, TestVersion) { 24 | EXPECT_GE(LIBYUV_VERSION, 169); // 169 is first version to support version. 25 | printf("LIBYUV_VERSION %d\n", LIBYUV_VERSION); 26 | #ifdef LIBYUV_SVNREVISION 27 | const char *ver = strchr(LIBYUV_SVNREVISION, ':'); 28 | if (ver) { 29 | ++ver; 30 | } else { 31 | ver = LIBYUV_SVNREVISION; 32 | } 33 | int svn_revision = atoi(ver); // NOLINT 34 | printf("LIBYUV_SVNREVISION %d\n", svn_revision); 35 | EXPECT_NEAR(LIBYUV_VERSION, svn_revision, 20); // Allow version to be close. 36 | if (LIBYUV_VERSION != svn_revision) { 37 | printf("WARNING - Versions do not match.\n"); 38 | } 39 | #else 40 | printf("WARNING - SVN Version unavailable. Test not run.\n"); 41 | #endif 42 | } 43 | 44 | } // namespace libyuv 45 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/util/psnr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // Get PSNR for video sequence. Assuming RAW 4:2:0 Y:Cb:Cr format 12 | 13 | #ifndef UTIL_PSNR_H_ // NOLINT 14 | #define UTIL_PSNR_H_ 15 | 16 | #include // For log10() 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | #if !defined(INT_TYPES_DEFINED) && !defined(UINT8_TYPE_DEFINED) 23 | typedef unsigned char uint8; 24 | #define UINT8_TYPE_DEFINED 25 | #endif 26 | 27 | static const double kMaxPSNR = 128.0; 28 | 29 | // libyuv provides this function when linking library for jpeg support. 30 | // TODO(fbarchard): make psnr lib compatible subset of libyuv. 31 | #if !defined(HAVE_JPEG) 32 | // Computer Sum of Squared Error (SSE). 33 | // Pass this to ComputePSNR for final result. 34 | double ComputeSumSquareError(const uint8* org, const uint8* rec, int size); 35 | #endif 36 | 37 | // PSNR formula: psnr = 10 * log10 (Peak Signal^2 * size / sse) 38 | // Returns 128.0 (kMaxPSNR) if sse is 0 (perfect match). 39 | double ComputePSNR(double sse, double size); 40 | 41 | #ifdef __cplusplus 42 | } // extern "C" 43 | #endif 44 | 45 | #endif // UTIL_PSNR_H_ // NOLINT 46 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/util/ssim.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // Get SSIM for video sequence. Assuming RAW 4:2:0 Y:Cb:Cr format 12 | 13 | #ifndef UTIL_SSIM_H_ // NOLINT 14 | #define UTIL_SSIM_H_ 15 | 16 | #include // For log10() 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | #if !defined(INT_TYPES_DEFINED) && !defined(UINT8_TYPE_DEFINED) 23 | typedef unsigned char uint8; 24 | #define UINT8_TYPE_DEFINED 25 | #endif 26 | 27 | double CalcSSIM(const uint8* org, const uint8* rec, 28 | const int image_width, const int image_height); 29 | 30 | double CalcLSSIM(double ssim); 31 | 32 | #ifdef __cplusplus 33 | } // extern "C" 34 | #endif 35 | 36 | #endif // UTIL_SSIM_H_ // NOLINT 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkmedia/ijkyuv/winarm.mk: -------------------------------------------------------------------------------- 1 | # This is a generic makefile for libyuv for Windows Arm. 2 | # nmake /f winarm.mk 3 | # make -f winarm.mk 4 | # nmake /f winarm.mk clean 5 | # consider /arch:ARMv7VE 6 | CC=cl 7 | CCFLAGS=/Ox /nologo /Iinclude /DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP 8 | AR=lib 9 | ARFLAGS=/MACHINE:ARM /NOLOGO /SUBSYSTEM:NATIVE 10 | RM=cmd /c del 11 | 12 | LOCAL_OBJ_FILES = \ 13 | source/compare.o\ 14 | source/compare_common.o\ 15 | source/convert.o\ 16 | source/convert_argb.o\ 17 | source/convert_from.o\ 18 | source/convert_from_argb.o\ 19 | source/convert_to_argb.o\ 20 | source/convert_to_i420.o\ 21 | source/cpu_id.o\ 22 | source/format_conversion.o\ 23 | source/planar_functions.o\ 24 | source/rotate.o\ 25 | source/rotate_argb.o\ 26 | source/row_any.o\ 27 | source/row_common.o\ 28 | source/scale.o\ 29 | source/scale_argb.o\ 30 | source/scale_common.o\ 31 | source/video_common.o 32 | 33 | .cc.o: 34 | $(CC) /c $(CCFLAGS) $*.cc /Fo$@ 35 | 36 | all: libyuv_arm.lib winarm.mk 37 | 38 | libyuv_arm.lib: $(LOCAL_OBJ_FILES) winarm.mk 39 | $(AR) $(ARFLAGS) /OUT:$@ $(LOCAL_OBJ_FILES) 40 | 41 | clean: 42 | $(RM) "source\*.o" libyuv_arm.lib 43 | 44 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkprof/Android-include.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Bilibili 2 | # copyright (c) 2013 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # ijkPlayer is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | # do nothing here -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkprof/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2015 Bilibili 2 | # copyright (c) 2015 Zhang Rui 3 | # 4 | # This file is part of ijkPlayer. 5 | # 6 | # ijkPlayer is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # ijkPlayer is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with ijkPlayer; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | LOCAL_PATH := $(call my-dir) 21 | 22 | include $(CLEAR_VARS) 23 | 24 | LOCAL_MODULE := android-ndk-profiler 25 | LOCAL_SRC_FILES := prof.c 26 | 27 | include $(BUILD_STATIC_LIBRARY) 28 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkprof/prof.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * prof.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2015 Bilibili 6 | * copyright (c) 2015 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #include "prof.h" 26 | #include 27 | 28 | extern void monstartup(const char *libname) 29 | { 30 | __android_log_print(ANDROID_LOG_DEBUG, "aprof-fake", "fake-monstartup %s\n", libname); 31 | } 32 | 33 | extern void moncleanup(void) 34 | { 35 | __android_log_print(ANDROID_LOG_DEBUG, "aprof-fake", "fake-momcleanup\n"); 36 | } 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/ijkprof/prof.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * prof.c 3 | ***************************************************************************** 4 | * 5 | * Copyright (c) 2015 Bilibili 6 | * copyright (c) 2015 Zhang Rui 7 | * 8 | * This file is part of ijkPlayer. 9 | * 10 | * ijkPlayer is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 2.1 of the License, or (at your option) any later version. 14 | * 15 | * ijkPlayer is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with ijkPlayer; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | #ifndef ANDROID_NDK_PROF__PROF_H 26 | #define ANDROID_NDK_PROF__PROF_H 27 | 28 | #ifdef __cplusplus 29 | extern "C" { 30 | #endif 31 | 32 | void monstartup(const char *libname); 33 | void moncleanup(void); 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | 39 | #endif//ANDROID_NDK_PROF__PROF_H 40 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavcodec/ac3_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AC-3 parser prototypes 3 | * Copyright (c) 2003 Fabrice Bellard 4 | * Copyright (c) 2003 Michael Niedermayer 5 | * 6 | * This file is part of FFmpeg. 7 | * 8 | * FFmpeg 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 | * FFmpeg 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 FFmpeg; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #ifndef AVCODEC_AC3_PARSER_H 24 | #define AVCODEC_AC3_PARSER_H 25 | 26 | #include 27 | #include 28 | 29 | /** 30 | * Extract the bitstream ID and the frame size from AC-3 data. 31 | */ 32 | int av_ac3_parse_header(const uint8_t *buf, size_t size, 33 | uint8_t *bitstream_id, uint16_t *frame_size); 34 | 35 | 36 | #endif /* AVCODEC_AC3_PARSER_H */ 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavcodec/adts_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVCODEC_ADTS_PARSER_H 20 | #define AVCODEC_ADTS_PARSER_H 21 | 22 | #include 23 | #include 24 | 25 | #define AV_AAC_ADTS_HEADER_SIZE 7 26 | 27 | /** 28 | * Extract the number of samples and frames from AAC data. 29 | * @param[in] buf pointer to AAC data buffer 30 | * @param[out] samples Pointer to where number of samples is written 31 | * @param[out] frames Pointer to where number of frames is written 32 | * @return Returns 0 on success, error code on failure. 33 | */ 34 | int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, 35 | uint8_t *frames); 36 | 37 | #endif /* AVCODEC_ADTS_PARSER_H */ 38 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavformat/avc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AVC helper functions for muxers 3 | * Copyright (c) 2008 Aurelien Jacobs 4 | * 5 | * This file is part of FFmpeg. 6 | * 7 | * FFmpeg is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * FFmpeg is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with FFmpeg; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef AVFORMAT_AVC_H 23 | #define AVFORMAT_AVC_H 24 | 25 | #include 26 | #include "avio.h" 27 | 28 | int ff_avc_parse_nal_units(AVIOContext *s, const uint8_t *buf, int size); 29 | int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size); 30 | int ff_isom_write_avcc(AVIOContext *pb, const uint8_t *data, int len); 31 | const uint8_t *ff_avc_find_startcode(const uint8_t *p, const uint8_t *end); 32 | int ff_avc_write_annexb_extradata(const uint8_t *in, uint8_t **buf, int *size); 33 | const uint8_t *ff_avc_mp4_find_startcode(const uint8_t *start, 34 | const uint8_t *end, 35 | int nal_length_size); 36 | 37 | #endif /* AVFORMAT_AVC_H */ 38 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavformat/metadata.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2009 Michael Niedermayer 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg 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 | * FFmpeg 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 FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVFORMAT_METADATA_H 22 | #define AVFORMAT_METADATA_H 23 | 24 | /** 25 | * @file 26 | * internal metadata API header 27 | * see avformat.h or the public API! 28 | */ 29 | 30 | 31 | #include "avformat.h" 32 | #include "libavutil/dict.h" 33 | 34 | typedef struct AVMetadataConv { 35 | const char *native; 36 | const char *generic; 37 | } AVMetadataConv; 38 | 39 | void ff_metadata_conv(AVDictionary **pm, const AVMetadataConv *d_conv, 40 | const AVMetadataConv *s_conv); 41 | void ff_metadata_conv_ctx(AVFormatContext *ctx, const AVMetadataConv *d_conv, 42 | const AVMetadataConv *s_conv); 43 | 44 | #endif /* AVFORMAT_METADATA_H */ 45 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffmpeg configure */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #endif /* AVUTIL_AVCONFIG_H */ 7 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/dns_cache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2017 Raymond Zheng 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg 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 | * FFmpeg 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 FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_DNS_CACHE_H 22 | #define AVUTIL_DNS_CACHE_H 23 | 24 | #include "libavutil/log.h" 25 | 26 | typedef struct DnsCacheEntry { 27 | volatile int ref_count; 28 | volatile int delete_flag; 29 | int64_t expired_time; 30 | struct addrinfo *res; // construct by private function, not support ai_next and ai_canonname, can only be released using free_private_addrinfo 31 | } DnsCacheEntry; 32 | 33 | DnsCacheEntry *get_dns_cache_reference(const char *uri); 34 | int release_dns_cache_reference(const char *uri, DnsCacheEntry **p_entry); 35 | int remove_dns_cache_entry(const char *uri); 36 | int add_dns_cache_entry(const char *uri, struct addrinfo *cur_ai, int64_t timeout); 37 | 38 | #endif /* AVUTIL_DNS_CACHE_H */ 39 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef AVUTIL_FFVERSION_H 3 | #define AVUTIL_FFVERSION_H 4 | #define FFMPEG_VERSION "ff4.0--ijk0.8.8--20210426--001" 5 | #endif /* AVUTIL_FFVERSION_H */ 6 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/hwcontext_cuda.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | 20 | #ifndef AVUTIL_HWCONTEXT_CUDA_H 21 | #define AVUTIL_HWCONTEXT_CUDA_H 22 | 23 | #ifndef CUDA_VERSION 24 | #include 25 | #endif 26 | 27 | #include "pixfmt.h" 28 | 29 | /** 30 | * @file 31 | * An API-specific header for AV_HWDEVICE_TYPE_CUDA. 32 | * 33 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 34 | * AVBufferRefs whose data pointer is a CUdeviceptr. 35 | */ 36 | 37 | typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; 38 | 39 | /** 40 | * This struct is allocated as AVHWDeviceContext.hwctx 41 | */ 42 | typedef struct AVCUDADeviceContext { 43 | CUcontext cuda_ctx; 44 | AVCUDADeviceContextInternal *internal; 45 | } AVCUDADeviceContext; 46 | 47 | /** 48 | * AVHWFramesContext.hwctx is currently not used 49 | */ 50 | 51 | #endif /* AVUTIL_HWCONTEXT_CUDA_H */ 52 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/hwcontext_mediacodec.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H 20 | #define AVUTIL_HWCONTEXT_MEDIACODEC_H 21 | 22 | /** 23 | * MediaCodec details. 24 | * 25 | * Allocated as AVHWDeviceContext.hwctx 26 | */ 27 | typedef struct AVMediaCodecDeviceContext { 28 | /** 29 | * android/view/Surface handle, to be filled by the user. 30 | * 31 | * This is the default surface used by decoders on this device. 32 | */ 33 | void *surface; 34 | } AVMediaCodecDeviceContext; 35 | 36 | #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */ 37 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/hwcontext_qsv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_QSV_H 20 | #define AVUTIL_HWCONTEXT_QSV_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_QSV. 27 | * 28 | * This API does not support dynamic frame pools. AVHWFramesContext.pool must 29 | * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVQSVDeviceContext { 36 | mfxSession session; 37 | } AVQSVDeviceContext; 38 | 39 | /** 40 | * This struct is allocated as AVHWFramesContext.hwctx 41 | */ 42 | typedef struct AVQSVFramesContext { 43 | mfxFrameSurface1 *surfaces; 44 | int nb_surfaces; 45 | 46 | /** 47 | * A combination of MFX_MEMTYPE_* describing the frame pool. 48 | */ 49 | int frame_type; 50 | } AVQSVFramesContext; 51 | 52 | #endif /* AVUTIL_HWCONTEXT_QSV_H */ 53 | 54 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/hwcontext_vdpau.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_HWCONTEXT_VDPAU_H 20 | #define AVUTIL_HWCONTEXT_VDPAU_H 21 | 22 | #include 23 | 24 | /** 25 | * @file 26 | * An API-specific header for AV_HWDEVICE_TYPE_VDPAU. 27 | * 28 | * This API supports dynamic frame pools. AVHWFramesContext.pool must return 29 | * AVBufferRefs whose data pointer is a VdpVideoSurface. 30 | */ 31 | 32 | /** 33 | * This struct is allocated as AVHWDeviceContext.hwctx 34 | */ 35 | typedef struct AVVDPAUDeviceContext { 36 | VdpDevice device; 37 | VdpGetProcAddress *get_proc_address; 38 | } AVVDPAUDeviceContext; 39 | 40 | /** 41 | * AVHWFramesContext.hwctx is currently not used 42 | */ 43 | 44 | #endif /* AVUTIL_HWCONTEXT_VDPAU_H */ 45 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | /** 20 | * @file 21 | * @ingroup lavu 22 | * Utility Preprocessor macros 23 | */ 24 | 25 | #ifndef AVUTIL_MACROS_H 26 | #define AVUTIL_MACROS_H 27 | 28 | /** 29 | * @addtogroup preproc_misc Preprocessor String Macros 30 | * 31 | * String manipulation macros 32 | * 33 | * @{ 34 | */ 35 | 36 | #define AV_STRINGIFY(s) AV_TOSTRING(s) 37 | #define AV_TOSTRING(s) #s 38 | 39 | #define AV_GLUE(a, b) a ## b 40 | #define AV_JOIN(a, b) AV_GLUE(a, b) 41 | 42 | /** 43 | * @} 44 | */ 45 | 46 | #define AV_PRAGMA(s) _Pragma(#s) 47 | 48 | #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) 49 | 50 | #endif /* AVUTIL_MACROS_H */ 51 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/random_seed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009 Baptiste Coudurier 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg 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 | * FFmpeg 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 FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RANDOM_SEED_H 22 | #define AVUTIL_RANDOM_SEED_H 23 | 24 | #include 25 | /** 26 | * @addtogroup lavu_crypto 27 | * @{ 28 | */ 29 | 30 | /** 31 | * Get a seed to use in conjunction with random functions. 32 | * This function tries to provide a good seed at a best effort bases. 33 | * Its possible to call this function multiple times if more bits are needed. 34 | * It can be quite slow, which is why it should only be used as seed for a faster 35 | * PRNG. The quality of the seed depends on the platform. 36 | */ 37 | uint32_t av_get_random_seed(void); 38 | 39 | /** 40 | * @} 41 | */ 42 | 43 | #endif /* AVUTIL_RANDOM_SEED_H */ 44 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/include/libavutil/replaygain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_REPLAYGAIN_H 20 | #define AVUTIL_REPLAYGAIN_H 21 | 22 | #include 23 | 24 | /** 25 | * ReplayGain information (see 26 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). 27 | * The size of this struct is a part of the public ABI. 28 | */ 29 | typedef struct AVReplayGain { 30 | /** 31 | * Track replay gain in microbels (divide by 100000 to get the value in dB). 32 | * Should be set to INT32_MIN when unknown. 33 | */ 34 | int32_t track_gain; 35 | /** 36 | * Peak track amplitude, with 100000 representing full scale (but values 37 | * may overflow). 0 when unknown. 38 | */ 39 | uint32_t track_peak; 40 | /** 41 | * Same as track_gain, but for the whole album. 42 | */ 43 | int32_t album_gain; 44 | /** 45 | * Same as track_peak, but for the whole album, 46 | */ 47 | uint32_t album_peak; 48 | } AVReplayGain; 49 | 50 | #endif /* AVUTIL_REPLAYGAIN_H */ 51 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/libs/arm64-v8a/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/libs/arm64-v8a/libijkffmpeg.so -------------------------------------------------------------------------------- /A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/libs/armeabi-v7a/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayer/src/main/cpp/otherlibs/ffmpeg/libs/armeabi-v7a/libijkffmpeg.so -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | import android.graphics.SurfaceTexture; 21 | 22 | public interface ISurfaceTextureHolder { 23 | void setSurfaceTexture(SurfaceTexture surfaceTexture); 24 | 25 | SurfaceTexture getSurfaceTexture(); 26 | 27 | void setSurfaceTextureHost(ISurfaceTextureHost surfaceTextureHost); 28 | } 29 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHost.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | import android.graphics.SurfaceTexture; 21 | 22 | public interface ISurfaceTextureHost { 23 | void releaseSurfaceTexture(SurfaceTexture surfaceTexture); 24 | } 25 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkLibLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | public interface IjkLibLoader { 21 | void loadLibrary(String libName) throws UnsatisfiedLinkError, 22 | SecurityException; 23 | } 24 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkTimedText.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Zheng Yuan 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.Rect; 20 | import java.lang.String; 21 | 22 | public final class IjkTimedText { 23 | 24 | private Rect mTextBounds = null; 25 | private String mTextChars = null; 26 | 27 | public IjkTimedText(Rect bounds, String text) { 28 | mTextBounds = bounds; 29 | mTextChars = text; 30 | } 31 | 32 | public Rect getBounds() { 33 | return mTextBounds; 34 | } 35 | 36 | public String getText() { 37 | return mTextChars; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/MediaInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player; 19 | 20 | public class MediaInfo { 21 | public String mMediaPlayerName; 22 | 23 | public String mVideoDecoder; 24 | public String mVideoDecoderImpl; 25 | 26 | public String mAudioDecoder; 27 | public String mAudioDecoderImpl; 28 | 29 | public IjkMediaMeta mMeta; 30 | } 31 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/annotations/AccessedByNative.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.annotations; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | /** 26 | * is used by the JNI generator to create the necessary JNI 27 | * bindings and expose this method to native code. 28 | */ 29 | @Target(ElementType.FIELD) 30 | @Retention(RetentionPolicy.CLASS) 31 | public @interface AccessedByNative { 32 | } -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/annotations/CalledByNative.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.annotations; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | /** 26 | * is used by the JNI generator to create the necessary JNI 27 | * bindings and expose this method to native code. 28 | */ 29 | @Target(ElementType.METHOD) 30 | @Retention(RetentionPolicy.CLASS) 31 | public @interface CalledByNative { 32 | /* 33 | * If present, tells which inner class the method belongs to. 34 | */ 35 | String value() default ""; 36 | } -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/exceptions/IjkMediaException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Bilibili 3 | * Copyright (C) 2013-2014 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.exceptions; 19 | 20 | public class IjkMediaException extends Exception { 21 | private static final long serialVersionUID = 7234796519009099506L; 22 | } 23 | -------------------------------------------------------------------------------- /A4ijkplayer/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 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IAndroidIO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Bilibili 3 | * Copyright (C) 2016 Raymond Zheng 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | import java.io.IOException; 21 | 22 | @SuppressWarnings("RedundantThrows") 23 | public interface IAndroidIO { 24 | int open(String url) throws IOException; 25 | int read(byte[] buffer, int size) throws IOException; 26 | long seek(long offset, int whence) throws IOException; 27 | int close() throws IOException; 28 | } 29 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | import java.io.IOException; 21 | 22 | @SuppressWarnings("RedundantThrows") 23 | public interface IMediaDataSource { 24 | int readAt(long position, byte[] buffer, int offset, int size) throws IOException; 25 | 26 | long getSize() throws IOException; 27 | 28 | void close() throws IOException; 29 | } 30 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | public interface IMediaFormat { 21 | // Common keys 22 | String KEY_MIME = "mime"; 23 | 24 | // Video Keys 25 | String KEY_WIDTH = "width"; 26 | String KEY_HEIGHT = "height"; 27 | 28 | String getString(String name); 29 | 30 | int getInteger(String name); 31 | } 32 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package tv.danmaku.ijk.media.player.misc; 19 | 20 | public interface ITrackInfo { 21 | int MEDIA_TRACK_TYPE_AUDIO = 2; 22 | int MEDIA_TRACK_TYPE_METADATA = 5; 23 | int MEDIA_TRACK_TYPE_SUBTITLE = 4; 24 | int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; 25 | int MEDIA_TRACK_TYPE_UNKNOWN = 0; 26 | int MEDIA_TRACK_TYPE_VIDEO = 1; 27 | 28 | IMediaFormat getFormat(); 29 | 30 | String getLanguage(); 31 | 32 | int getTrackType(); 33 | 34 | String getInfoInline(); 35 | } 36 | -------------------------------------------------------------------------------- /A4ijkplayer/src/main/java/tv/danmaku/ijk/media/player/pragma/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Bilibili 3 | * Copyright (C) 2013 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package tv.danmaku.ijk.media.player.pragma; 18 | 19 | /*- 20 | * configurated by app project 21 | */ 22 | public class Pragma { 23 | public static final boolean ENABLE_VERBOSE = true; 24 | } 25 | -------------------------------------------------------------------------------- /A4ijkplayer/src/test/java/com/alanwang4523/a4ijkplayer/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.alanwang4523.a4ijkplayer; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /A4ijkplayerDemo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .gradle 4 | /local.properties 5 | /.idea 6 | /.idea/caches 7 | /.idea/libraries 8 | /.idea/modules.xml 9 | /.idea/workspace.xml 10 | /.idea/navEditor.xml 11 | /.idea/assetWizardSettings.xml 12 | .DS_Store 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | -------------------------------------------------------------------------------- /A4ijkplayerDemo/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | } 4 | 5 | android { 6 | namespace 'com.alanwang4523.a4ijkplayerdemo' 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | applicationId "com.alanwang4523.a4ijkplayerdemo" 11 | minSdk 21 12 | targetSdk 31 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | 18 | externalNativeBuild { 19 | cmake { 20 | abiFilters 'armeabi-v7a', 'arm64-v8a' 21 | } 22 | } 23 | } 24 | 25 | buildTypes { 26 | release { 27 | minifyEnabled false 28 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 29 | } 30 | } 31 | compileOptions { 32 | sourceCompatibility JavaVersion.VERSION_1_8 33 | targetCompatibility JavaVersion.VERSION_1_8 34 | } 35 | } 36 | 37 | dependencies { 38 | implementation project(':A4ijkplayer') 39 | implementation 'androidx.appcompat:appcompat:1.2.0' 40 | implementation 'androidx.preference:preference:1.2.0' 41 | implementation 'com.google.android.material:material:1.2.0' 42 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4' 43 | 44 | implementation 'com.squareup:otto:1.3.8' 45 | 46 | testImplementation 'junit:junit:4.13.2' 47 | androidTestImplementation 'androidx.test.ext:junit:1.1.5' 48 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' 49 | } -------------------------------------------------------------------------------- /A4ijkplayerDemo/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/androidTest/java/com/alanwang4523/a4ijkplayerdemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.alanwang4523.a4ijkplayerdemo; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.alanwang4523.a4ijkplayerdemo", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/java/com/alanwang4523/a4ijkplayerdemo/eventbus/FileExplorerEvents.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alanwang4523.a4ijkplayerdemo.eventbus; 19 | 20 | import com.squareup.otto.Bus; 21 | 22 | import java.io.File; 23 | 24 | public class FileExplorerEvents { 25 | private static final Bus BUS = new Bus(); 26 | 27 | public static Bus getBus() { 28 | return BUS; 29 | } 30 | 31 | private FileExplorerEvents() { 32 | // No instances. 33 | } 34 | 35 | public static class OnClickFile { 36 | public File mFile; 37 | 38 | public OnClickFile(String path) { 39 | this(new File(path)); 40 | } 41 | 42 | public OnClickFile(File file) { 43 | mFile = file; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/java/com/alanwang4523/a4ijkplayerdemo/widget/IMediaController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Bilibili 3 | * Copyright (C) 2015 Zhang Rui 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alanwang4523.a4ijkplayerdemo.widget; 19 | 20 | import android.view.View; 21 | import android.widget.MediaController; 22 | 23 | public interface IMediaController { 24 | void hide(); 25 | 26 | boolean isShowing(); 27 | 28 | void setAnchorView(View view); 29 | 30 | void setEnabled(boolean enabled); 31 | 32 | void setMediaPlayer(MediaController.MediaPlayerControl player); 33 | 34 | void show(int timeout); 35 | 36 | void show(); 37 | 38 | //---------- 39 | // Extends 40 | //---------- 41 | void showOnce(View view); 42 | } 43 | -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/drawable/ic_theme_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/drawable/ic_theme_description.png -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/drawable/ic_theme_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/drawable/ic_theme_folder.png -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/drawable/ic_theme_play_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/drawable/ic_theme_play_arrow.png -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/layout/activity_app.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /A4ijkplayerDemo/src/main/res/layout/activity_test_ijkplayer.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 |