├── .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 |
20 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/fragment_file_list.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 |
20 |
26 |
27 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/fragment_file_list_item.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
13 |
14 |
21 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/fragment_track_list.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
17 |
18 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/table_media_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/table_media_info_row1.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
20 |
21 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/table_media_info_row2.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
23 |
24 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/table_media_info_section.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/layout/widget_toolbar.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
14 |
15 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/menu/menu_app.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/menu/menu_player.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-hdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-hdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-mdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-mdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/A4ijkplayerDemo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
11 | #66000000
12 |
13 | @color/ijk_color_blue_500
14 | #E3F2FD
15 | #BBDEFB
16 | #90CAF9
17 | #64B5F6
18 | #42A5F5
19 | #2196F3
20 | #1E88E5
21 | #1976D2
22 | #1565C0
23 | #0D47A1
24 |
25 | #77000000
26 |
27 | @color/ijk_color_blue_600
28 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 | @dimen/activity_horizontal_margin
7 | @dimen/activity_vertical_margin
8 |
9 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
12 |
13 |
19 |
20 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
17 |
19 |
20 |
22 |
--------------------------------------------------------------------------------
/A4ijkplayerDemo/src/test/java/com/alanwang4523/a4ijkplayerdemo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.alanwang4523.a4ijkplayerdemo;
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 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # A4ijkplayer
2 | ijkplayer compile with cmake
3 |
4 | 最近在学习和研究 **[ijkplayer](https://github.com/bilibili/ijkplayer),其源码是用 Android.mk 方式编译的,为了方便开发、调试,现将其编译方式替换成 CMake,可以直接在 Android Studio 中查看、跳转、调试 ijkplayer 源码。**
5 |
6 | 只要不是修改 ffmpeg 的源代码,修改其他其它代码包括 ijkplayer 的 C 代码、Java 代码,都可以在 Android Studio 中修改、运行、调试。
7 |
8 | **本项目是基于 ijkplayer 最新的 [k0.8.8 版本](https://github.com/bilibili/ijkplayer/releases/tag/k0.8.8),ffmpeg 4.0 编译(基于 ff4.0--ijk0.8.8--20210426--001 版本),并包含了 openssl(即支持 https 网络视频)、yuv、sdl、soundtouch 等模块**
9 |
10 | 其中 ffmpeg (libijkffmpeg.so) 需要先编译好,可以参考我上一篇文章编译([Android ijkplayer 编译踩坑与记录](https://blog.csdn.net/u011520181/article/details/129697501)),或直接使用我编译好的。
11 |
12 | **效果截图**
13 |
40 |
41 |
42 |
43 | ## 相关项目
44 |
45 | https://github.com/bilibili/ijkplayer
46 |
47 | https://github.com/alanwang4523/ijkplayer_Build4Android
48 |
--------------------------------------------------------------------------------
/Screenshots/Screenshot_20230323_184501_com.alanwang4523.a4ijkplayerdemo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/Screenshots/Screenshot_20230323_184501_com.alanwang4523.a4ijkplayerdemo.jpg
--------------------------------------------------------------------------------
/Screenshots/ijkplayer_aar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/Screenshots/ijkplayer_aar.png
--------------------------------------------------------------------------------
/Screenshots/ijkplayer_native_debug_prepare_async.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/Screenshots/ijkplayer_native_debug_prepare_async.png
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | plugins {
3 | id 'com.android.application' version '7.3.0' apply false
4 | id 'com.android.library' version '7.3.0' apply false
5 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Enables namespacing of each library's R class so that its R class includes only the
19 | # resources declared in the library itself and none from the library's dependencies,
20 | # thereby reducing the size of the R class for that library
21 | android.nonTransitiveRClass=true
22 | org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home
23 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alanwang4523/A4ijkplayer/b139682e94ba881b0bbd3054a0b4f84bb3df0762/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Mar 15 18:01:31 CST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | google()
5 | mavenCentral()
6 | }
7 | }
8 | dependencyResolutionManagement {
9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
10 | repositories {
11 | google()
12 | mavenCentral()
13 | }
14 | }
15 | rootProject.name = "A4ijkplayer"
16 | include ':A4ijkplayer'
17 | include ':A4ijkplayerdemo'
18 |
--------------------------------------------------------------------------------