├── .gitignore ├── AudioVideoRecordingSample ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── serenegiant │ │ ├── audiovideosample │ │ ├── CameraFragment.java │ │ ├── CameraGLView.java │ │ └── MainActivity.java │ │ ├── encoder │ │ ├── MediaAudioEncoder.java │ │ ├── MediaEncoder.java │ │ ├── MediaMuxerWrapper.java │ │ └── MediaVideoEncoder.java │ │ └── glutils │ │ ├── EGLBase.java │ │ ├── GLDrawer2D.java │ │ └── RenderHandler.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_main.xml │ └── fragment_main.xml │ ├── menu │ └── main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── FFmpegAndroid ├── .gitignore ├── assets │ ├── armeabi-v7a-neon │ │ └── ffmpeg │ ├── armeabi-v7a │ │ └── ffmpeg │ └── x86 │ │ └── ffmpeg ├── build.gradle ├── gradle.properties ├── jni │ ├── Android.mk │ ├── Application.mk │ └── armArch.c ├── libs │ ├── armeabi-v7a │ │ └── libARM_ARCH.so │ ├── armeabi │ │ └── libARM_ARCH.so │ └── x86 │ │ └── libARM_ARCH.so └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── github │ │ └── libffmpeg │ │ ├── ArmArchHelper.java │ │ ├── CommandResult.java │ │ ├── CpuArch.java │ │ ├── CpuArchHelper.java │ │ ├── ExecuteBinaryResponseHandler.java │ │ ├── FFmpeg.java │ │ ├── FFmpegCommandExecutor.java │ │ ├── FFmpegExecuteAsyncTask.java │ │ ├── FFmpegExecuteResponseHandler.java │ │ ├── FFmpegInterface.java │ │ ├── FFmpegLoadBinaryResponseHandler.java │ │ ├── FFmpegLoadLibraryAsyncTask.java │ │ ├── FFmpegSyncResponseHandler.java │ │ ├── FFmpegSyncResponseInterface.java │ │ ├── FileUtils.java │ │ ├── LoadBinaryResponseHandler.java │ │ ├── Log.java │ │ ├── Metadata.java │ │ ├── ResponseHandler.java │ │ ├── ShellCommand.java │ │ ├── Util.java │ │ └── exceptions │ │ ├── FFmpegCommandAlreadyRunningException.java │ │ └── FFmpegNotSupportedException.java │ └── res │ └── values │ └── strings.xml ├── MediaRecorderSample ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── example │ │ └── android │ │ ├── common │ │ └── media │ │ │ ├── CameraHelper.java │ │ │ └── MediaCodecWrapper.java │ │ └── mediarecorder │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ ├── ic_launcher.png │ └── tile.9.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_main.xml │ └── sample_main.xml │ ├── values-sw600dp │ ├── template-dimens.xml │ └── template-styles.xml │ ├── values-sw720dp-land │ └── dimens.xml │ ├── values-v11 │ └── template-styles.xml │ └── values │ ├── base-strings.xml │ ├── dimens.xml │ ├── strings.xml │ ├── template-dimens.xml │ └── template-styles.xml ├── androidH264StreamDemo.zip ├── androidH264StreamDemo ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── jemi │ │ └── androidh264streamdemo │ │ ├── AvcEncoder.java │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_main.xml │ └── stream_dlg_view.xml │ ├── menu │ └── main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── app ├── .gitignore ├── build.gradle ├── libs │ └── pldroid-camera-streaming-1.5.0.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── angcyo │ │ └── pldroiddemo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── angcyo │ │ │ └── pldroiddemo │ │ │ ├── AbstractFilter.java │ │ │ ├── CameraFilter.java │ │ │ ├── CameraFilterBeauty.java │ │ │ ├── CameraPreviewFrameView.java │ │ │ ├── Drawable2d.java │ │ │ ├── FBO.java │ │ │ ├── FocusIndicatorRotateLayout.java │ │ │ ├── FullFrameRect.java │ │ │ ├── GlUtil.java │ │ │ ├── IFilter.java │ │ │ ├── Main2Activity.java │ │ │ ├── MainActivity.java │ │ │ ├── Rotatable.java │ │ │ └── RotateLayout.java │ ├── jniLibs │ │ ├── arm64-v8a │ │ │ ├── libpldroid_streaming_aac_encoder.so │ │ │ ├── libpldroid_streaming_core.so │ │ │ └── libpldroid_streaming_h264_encoder.so │ │ ├── armeabi-v7a │ │ │ ├── libpldroid_streaming_aac_encoder.so │ │ │ ├── libpldroid_streaming_core.so │ │ │ └── libpldroid_streaming_h264_encoder.so │ │ ├── armeabi │ │ │ ├── libpldroid_streaming_aac_encoder.so │ │ │ ├── libpldroid_streaming_core.so │ │ │ └── libpldroid_streaming_h264_encoder.so │ │ └── x86 │ │ │ ├── libpldroid_streaming_aac_encoder.so │ │ │ ├── libpldroid_streaming_core.so │ │ │ └── libpldroid_streaming_h264_encoder.so │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_focus_failed.9.png │ │ ├── ic_focus_focused.9.png │ │ └── ic_focus_focusing.9.png │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_main2.xml │ │ └── focus_indicator.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── raw │ │ ├── cross_1.acv │ │ ├── cross_10.acv │ │ ├── cross_11.acv │ │ ├── cross_2.acv │ │ ├── cross_3.acv │ │ ├── cross_4.acv │ │ ├── cross_5.acv │ │ ├── cross_6.acv │ │ ├── cross_7.acv │ │ ├── cross_8.acv │ │ ├── cross_9.acv │ │ ├── fragment_shader_beauty.glsl │ │ ├── fragment_shader_ext_tone_curve.glsl │ │ ├── fragment_shader_mosaic.glsl │ │ ├── fragment_shader_no_filter.glsl │ │ ├── vertex_shader.glsl │ │ └── vertex_shader_two_input.glsl │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── angcyo │ └── pldroiddemo │ └── ExampleUnitTest.java ├── audiovideorecordingdemo ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── angcyo │ │ └── audiovideorecordingdemo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── angcyo │ │ │ └── audiovideorecordingdemo │ │ │ ├── BlurredActivity.java │ │ │ ├── CameraTexturePreview.java │ │ │ ├── CameraWrapper.java │ │ │ ├── CrashHandler.java │ │ │ ├── FileSwapHelper.java │ │ │ ├── MainActivity.java │ │ │ ├── encoder │ │ │ ├── MediaAudioEncoder.java │ │ │ ├── MediaEncoder.java │ │ │ ├── MediaMuxerWrapper.java │ │ │ └── MediaVideoEncoder.java │ │ │ └── rencoder │ │ │ ├── AudioRunnable.java │ │ │ ├── FileUtils.java │ │ │ ├── MediaMuxerRunnable.java │ │ │ └── VideoRunnable.java │ └── res │ │ ├── layout │ │ ├── activity_blurred.xml │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── angcyo │ └── audiovideorecordingdemo │ └── ExampleUnitTest.java ├── audiovideorecordingdemo2 ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── angcyo │ │ └── audiovideorecordingdemo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── angcyo │ │ │ └── audiovideorecordingdemo │ │ │ ├── BlurredActivity.java │ │ │ ├── CameraTexturePreview.java │ │ │ ├── CameraWrapper.java │ │ │ ├── CrashHandler.java │ │ │ ├── FileSwapHelper.java │ │ │ ├── Main2Activity.java │ │ │ ├── MainActivity.java │ │ │ ├── encoder │ │ │ ├── MediaAudioEncoder.java │ │ │ ├── MediaEncoder.java │ │ │ ├── MediaMuxerWrapper.java │ │ │ └── MediaVideoEncoder.java │ │ │ └── rencoder │ │ │ ├── AudioRunnable.java │ │ │ ├── FileUtils.java │ │ │ ├── MediaMuxerRunnable.java │ │ │ └── VideoRunnable.java │ └── res │ │ ├── layout │ │ ├── activity_blurred.xml │ │ ├── activity_main.xml │ │ └── activity_main2.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── angcyo │ └── audiovideorecordingdemo │ └── ExampleUnitTest.java ├── blur-behind ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── faradaj │ └── blurbehind │ ├── BlurBehind.java │ ├── OnBlurCompleteListener.java │ └── util │ └── Blur.java ├── blurEffect ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── npi │ │ └── blureffect │ │ ├── Blur.java │ │ ├── ImageUtils.java │ │ ├── MainActivity.java │ │ ├── ScrollableImageView.java │ │ └── TopCenterImageView.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ ├── header.9.png │ ├── ic_launcher.png │ └── image.jpg │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_main.xml │ └── list_item.xml │ ├── values-sw600dp │ └── dimens.xml │ ├── values-sw720dp-land │ └── dimens.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ └── values │ ├── arrays.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── cameraPreview ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── org │ │ └── camera │ │ ├── Blur.java │ │ ├── FastBlur.java │ │ ├── FileSwapHelper.java │ │ ├── FileUtils.java │ │ ├── ImageUtils.java │ │ ├── activity │ │ └── CameraSurfaceTextureActivity.java │ │ ├── camera │ │ └── CameraWrapper.java │ │ ├── encode │ │ ├── VideoEncoderFromBuffer.java │ │ └── VideoEncoderFromSurface.java │ │ └── preview │ │ └── CameraTexturePreview.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ └── activity_camera_preview.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ └── values │ ├── strings.xml │ └── styles.xml ├── driveblurdemo ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── angcyo │ │ └── driveblurdemo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── angcyo │ │ │ └── driveblurdemo │ │ │ ├── MainActivity.java │ │ │ └── VideoEncoderFromBuffer.java │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── angcyo │ └── driveblurdemo │ └── ExampleUnitTest.java ├── drivevideo ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── dudu │ │ └── drivevideo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ ├── com │ │ │ ├── dudu │ │ │ │ └── drivevideo │ │ │ │ │ ├── config │ │ │ │ │ ├── DriveVideoContants.java │ │ │ │ │ ├── FrontVideoConfigParam.java │ │ │ │ │ ├── RearVideoConfigParam.java │ │ │ │ │ └── VideoConfigParam.java │ │ │ │ │ ├── event │ │ │ │ │ └── FrontCameraReadyPreview.java │ │ │ │ │ └── model │ │ │ │ │ ├── PhotoInfoEntity.java │ │ │ │ │ └── VideoEntity.java │ │ │ └── hclydao │ │ │ │ └── webcam │ │ │ │ └── Ffmpeg.java │ │ └── org │ │ │ └── wysaid │ │ │ ├── algorithm │ │ │ ├── Matrix2x2.java │ │ │ ├── Matrix3x3.java │ │ │ ├── Matrix4x4.java │ │ │ ├── Vector2.java │ │ │ ├── Vector3.java │ │ │ └── Vector4.java │ │ │ ├── camera │ │ │ └── CameraInstance.java │ │ │ ├── common │ │ │ ├── Common.java │ │ │ ├── FrameBufferObject.java │ │ │ ├── ProgramObject.java │ │ │ ├── SharedContext.java │ │ │ └── TextureDrawer.java │ │ │ ├── myUtils │ │ │ ├── FileUtil.java │ │ │ └── ImageUtil.java │ │ │ ├── nativePort │ │ │ ├── CGEFaceFunctions.java │ │ │ ├── CGEFrameRecorder.java │ │ │ ├── CGEFrameRenderer.java │ │ │ ├── CGEImageHandler.java │ │ │ ├── CGENativeLibrary.java │ │ │ ├── FFmpegNativeLibrary.java │ │ │ └── NativeLibraryLoader.java │ │ │ ├── texUtils │ │ │ ├── TextureRenderer.java │ │ │ ├── TextureRendererBlur.java │ │ │ ├── TextureRendererDrawOrigin.java │ │ │ ├── TextureRendererEdge.java │ │ │ ├── TextureRendererEmboss.java │ │ │ ├── TextureRendererLerpBlur.java │ │ │ ├── TextureRendererMask.java │ │ │ └── TextureRendererWave.java │ │ │ └── view │ │ │ ├── CameraGLSurfaceView.java │ │ │ ├── CameraRecordGLSurfaceView.java │ │ │ ├── ImageGLSurfaceView.java │ │ │ ├── SimplePlayerGLSurfaceView.java │ │ │ └── VideoPlayerGLSurfaceView.java │ ├── jniLibs │ │ ├── arm64-v8a │ │ │ └── libCGE.so │ │ ├── armeabi-v7a │ │ │ └── libCGE.so │ │ ├── armeabi │ │ │ └── libCGE.so │ │ ├── x86 │ │ │ └── libCGE.so │ │ └── x86_64 │ │ │ └── libCGE.so │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── dudu │ └── drivevideo │ └── ExampleUnitTest.java ├── gpuimage-library ├── .gitignore ├── AndroidManifest.xml ├── android-artifacts.gradle ├── build.gradle ├── central-publish.gradle ├── gradle.properties ├── jni │ └── yuv-decoder.c ├── proguard-project.txt ├── project.properties └── src │ └── jp │ └── co │ └── cyberagent │ └── android │ └── gpuimage │ ├── GPUImage.java │ ├── GPUImage3x3ConvolutionFilter.java │ ├── GPUImage3x3TextureSamplingFilter.java │ ├── GPUImageAddBlendFilter.java │ ├── GPUImageAlphaBlendFilter.java │ ├── GPUImageBilateralFilter.java │ ├── GPUImageBoxBlurFilter.java │ ├── GPUImageBrightnessFilter.java │ ├── GPUImageBulgeDistortionFilter.java │ ├── GPUImageCGAColorspaceFilter.java │ ├── GPUImageChromaKeyBlendFilter.java │ ├── GPUImageColorBalanceFilter.java │ ├── GPUImageColorBlendFilter.java │ ├── GPUImageColorBurnBlendFilter.java │ ├── GPUImageColorDodgeBlendFilter.java │ ├── GPUImageColorInvertFilter.java │ ├── GPUImageColorMatrixFilter.java │ ├── GPUImageContrastFilter.java │ ├── GPUImageCrosshatchFilter.java │ ├── GPUImageDarkenBlendFilter.java │ ├── GPUImageDifferenceBlendFilter.java │ ├── GPUImageDilationFilter.java │ ├── GPUImageDirectionalSobelEdgeDetectionFilter.java │ ├── GPUImageDissolveBlendFilter.java │ ├── GPUImageDivideBlendFilter.java │ ├── GPUImageEmbossFilter.java │ ├── GPUImageExclusionBlendFilter.java │ ├── GPUImageExposureFilter.java │ ├── GPUImageFalseColorFilter.java │ ├── GPUImageFilter.java │ ├── GPUImageFilterGroup.java │ ├── GPUImageGammaFilter.java │ ├── GPUImageGaussianBlurFilter.java │ ├── GPUImageGlassSphereFilter.java │ ├── GPUImageGrayscaleFilter.java │ ├── GPUImageHalftoneFilter.java │ ├── GPUImageHardLightBlendFilter.java │ ├── GPUImageHazeFilter.java │ ├── GPUImageHighlightShadowFilter.java │ ├── GPUImageHueBlendFilter.java │ ├── GPUImageHueFilter.java │ ├── GPUImageKuwaharaFilter.java │ ├── GPUImageLaplacianFilter.java │ ├── GPUImageLevelsFilter.java │ ├── GPUImageLightenBlendFilter.java │ ├── GPUImageLinearBurnBlendFilter.java │ ├── GPUImageLookupFilter.java │ ├── GPUImageLuminosityBlendFilter.java │ ├── GPUImageMixBlendFilter.java │ ├── GPUImageMonochromeFilter.java │ ├── GPUImageMultiplyBlendFilter.java │ ├── GPUImageNativeLibrary.java │ ├── GPUImageNonMaximumSuppressionFilter.java │ ├── GPUImageNormalBlendFilter.java │ ├── GPUImageOpacityFilter.java │ ├── GPUImageOverlayBlendFilter.java │ ├── GPUImagePixelationFilter.java │ ├── GPUImagePosterizeFilter.java │ ├── GPUImageRGBDilationFilter.java │ ├── GPUImageRGBFilter.java │ ├── GPUImageRenderer.java │ ├── GPUImageSaturationBlendFilter.java │ ├── GPUImageSaturationFilter.java │ ├── GPUImageScreenBlendFilter.java │ ├── GPUImageSepiaFilter.java │ ├── GPUImageSharpenFilter.java │ ├── GPUImageSketchFilter.java │ ├── GPUImageSmoothToonFilter.java │ ├── GPUImageSobelEdgeDetection.java │ ├── GPUImageSobelThresholdFilter.java │ ├── GPUImageSoftLightBlendFilter.java │ ├── GPUImageSourceOverBlendFilter.java │ ├── GPUImageSphereRefractionFilter.java │ ├── GPUImageSubtractBlendFilter.java │ ├── GPUImageSwirlFilter.java │ ├── GPUImageThresholdEdgeDetection.java │ ├── GPUImageToneCurveFilter.java │ ├── GPUImageToonFilter.java │ ├── GPUImageTransformFilter.java │ ├── GPUImageTwoInputFilter.java │ ├── GPUImageTwoPassFilter.java │ ├── GPUImageTwoPassTextureSamplingFilter.java │ ├── GPUImageView.java │ ├── GPUImageVignetteFilter.java │ ├── GPUImageWeakPixelInclusionFilter.java │ ├── GPUImageWhiteBalanceFilter.java │ ├── OpenGlUtils.java │ ├── PixelBuffer.java │ ├── Rotation.java │ └── util │ └── TextureRotationUtil.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── h264MediaCodecStreamer ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── example │ │ └── h264codecstreamer │ │ ├── AvcEncoder.java │ │ ├── BufferQueue.java │ │ └── MainStreamerActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ └── activity_main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ └── values │ ├── strings.xml │ └── styles.xml ├── import-summary.txt ├── mediaCodecDemo ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── example │ │ └── mediaencodeanddecodedemo │ │ ├── AvcEncoder.java │ │ ├── DecodeActivity.java │ │ ├── EncodeActivity.java │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_decode.xml │ ├── activity_encode.xml │ └── activity_main.xml │ ├── menu │ └── main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── mediaCodecEncode ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── example │ │ └── mediacodecencode │ │ ├── AvcEncoder.java │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ └── activity_main.xml │ ├── menu │ └── main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── mediaCodecPublisher ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── jutong │ │ └── hardware │ │ └── live │ │ ├── AudioEncoder.java │ │ ├── AudioSpecificConfig.java │ │ ├── AudioTag.java │ │ ├── MainActivity.java │ │ └── VideoEncoder.java │ ├── jniLibs │ └── armeabi-v7a │ │ └── libmyjni.so │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ └── activity_main.xml │ ├── menu │ └── activity_main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ └── values │ ├── strings.xml │ └── styles.xml ├── settings.gradle ├── spydroid ├── build.gradle ├── libs │ ├── acra-4.4.0.jar │ ├── sc-light-jdk15on-1.47.0.2.jar │ ├── scpkix-jdk15on-1.47.0.2.jar │ └── scprov-jdk15on-1.47.0.2.jar ├── lint.xml ├── proguard-project.txt └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── www │ │ ├── credits.htm │ │ ├── fonts │ │ ├── bangers.eot │ │ ├── bangers.woff │ │ ├── sunshiney.eot │ │ └── sunshiney.woff │ │ ├── images │ │ ├── blue-button.png │ │ ├── camera.png │ │ ├── eye.png │ │ ├── facebook.png │ │ ├── install.jpg │ │ ├── lamp.png │ │ ├── phone.png │ │ ├── quote.png │ │ ├── red-button.png │ │ ├── speaker.png │ │ └── spydroid.png │ │ ├── index.htm │ │ ├── js │ │ ├── ie.js │ │ ├── jquery-1.9.1.min.js │ │ ├── less-1.2.2.min.js │ │ ├── translations.js │ │ └── ui.js │ │ ├── less │ │ ├── #vlc.less# │ │ ├── accordion.less │ │ ├── base.less │ │ ├── fonts.less │ │ ├── ie.less │ │ ├── index.htm │ │ ├── mixins.less │ │ ├── styles.css │ │ ├── styles.less │ │ └── vlc.less │ │ └── tests │ │ └── test1.htm │ ├── java │ └── net │ │ └── majorkernelpanic │ │ ├── http │ │ ├── ModAssetServer.java │ │ ├── ModInternationalization.java │ │ ├── ModSSL.java │ │ └── TinyHttpServer.java │ │ ├── spydroid │ │ ├── SpydroidApplication.java │ │ ├── Utilities.java │ │ ├── api │ │ │ ├── CustomHttpServer.java │ │ │ ├── CustomRtspServer.java │ │ │ └── RequestHandler.java │ │ └── ui │ │ │ ├── AboutFragment.java │ │ │ ├── HandsetFragment.java │ │ │ ├── OptionsActivity.java │ │ │ ├── PreviewFragment.java │ │ │ ├── SpydroidActivity.java │ │ │ └── TabletFragment.java │ │ └── streaming │ │ ├── MediaStream.java │ │ ├── Session.java │ │ ├── SessionBuilder.java │ │ ├── Stream.java │ │ ├── audio │ │ ├── AACStream.java │ │ ├── AMRNBStream.java │ │ ├── AudioQuality.java │ │ └── AudioStream.java │ │ ├── exceptions │ │ ├── CameraInUseException.java │ │ ├── ConfNotSupportedException.java │ │ ├── InvalidSurfaceException.java │ │ └── StorageUnavailableException.java │ │ ├── gl │ │ ├── SurfaceManager.java │ │ ├── SurfaceView.java │ │ └── TextureManager.java │ │ ├── hw │ │ ├── CodecManager.java │ │ ├── EncoderDebugger.java │ │ └── NV21Convertor.java │ │ ├── mp4 │ │ ├── MP4Config.java │ │ └── MP4Parser.java │ │ ├── rtcp │ │ └── SenderReport.java │ │ ├── rtp │ │ ├── AACADTSPacketizer.java │ │ ├── AACLATMPacketizer.java │ │ ├── AMRNBPacketizer.java │ │ ├── AbstractPacketizer.java │ │ ├── H263Packetizer.java │ │ ├── H264Packetizer.java │ │ ├── MediaCodecInputStream.java │ │ └── RtpSocket.java │ │ ├── rtsp │ │ ├── RtspClient.java │ │ ├── RtspServer.java │ │ └── UriParser.java │ │ └── video │ │ ├── CodecManager.java │ │ ├── H263Stream.java │ │ ├── H264Stream.java │ │ ├── VideoQuality.java │ │ └── VideoStream.java │ └── res │ ├── anim │ └── pulse.xml │ ├── drawable-hdpi │ ├── background.png │ ├── check.png │ ├── icon.png │ ├── quit.png │ └── settings.png │ ├── drawable-ldpi │ ├── icon.png │ ├── quit.png │ └── settings.png │ ├── drawable-mdpi │ ├── icon.png │ ├── quit.png │ └── settings.png │ ├── drawable │ └── preview.xml │ ├── layout-sw600dp │ ├── preview.xml │ ├── spydroid.xml │ └── tablet.xml │ ├── layout │ ├── about.xml │ ├── main.xml │ ├── preview.xml │ ├── spydroid.xml │ └── tablet.xml │ ├── menu │ └── menu.xml │ ├── raw │ ├── animals_cat.mp3 │ ├── animals_dog.mp3 │ ├── funny_fart.mp3 │ ├── funny_fart2.mp3 │ ├── funny_snoring.mp3 │ ├── scary_breath.mp3 │ ├── scary_evil_laughter.mp3 │ ├── scary_horror.mp3 │ ├── scary_insane_laughter.mp3 │ ├── scary_long_growl.mp3 │ ├── scary_thunder.mp3 │ ├── war_explosion.mp3 │ └── war_gunshot.mp3 │ ├── values │ ├── arrays.xml │ └── strings.xml │ └── xml │ └── preferences.xml ├── testIjkplayer ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ ├── com │ │ └── example │ │ │ └── testijkplayer │ │ │ ├── MainActivity.java │ │ │ ├── VideoActivity.java │ │ │ ├── VideoEditDemoActivity.java │ │ │ ├── VideoEditor.java │ │ │ └── snoCrashHandler.java │ └── tv │ │ └── danmaku │ │ └── ijk │ │ └── media │ │ ├── player │ │ ├── AbstractMediaPlayer.java │ │ ├── IMediaPlayer.java │ │ ├── ISurfaceTextureHolder.java │ │ ├── ISurfaceTextureHost.java │ │ ├── IjkLibLoader.java │ │ ├── IjkMediaMeta.java │ │ ├── IjkMediaPlayer.java │ │ ├── MediaInfo.java │ │ ├── MediaPlayerProxy.java │ │ ├── TextureMediaPlayer.java │ │ ├── exceptions │ │ │ ├── AccessedByNative.java │ │ │ ├── CalledByNative.java │ │ │ ├── DebugLog.java │ │ │ ├── IjkMediaException.java │ │ │ └── Pragma.java │ │ ├── ffmpeg │ │ │ └── FFmpegApi.java │ │ └── misc │ │ │ ├── AndroidMediaFormat.java │ │ │ ├── AndroidTrackInfo.java │ │ │ ├── IMediaDataSource.java │ │ │ ├── IMediaFormat.java │ │ │ ├── ITrackInfo.java │ │ │ ├── IjkMediaFormat.java │ │ │ └── IjkTrackInfo.java │ │ └── sample │ │ ├── activities │ │ ├── MediaPlayerService.java │ │ └── Settings.java │ │ └── widget │ │ └── media │ │ ├── AndroidMediaController.java │ │ ├── IMediaController.java │ │ ├── IRenderView.java │ │ ├── IjkVideoView.java │ │ ├── InfoHudViewHolder.java │ │ ├── MeasureHelper.java │ │ ├── MediaPlayerCompat.java │ │ ├── SurfaceRenderView.java │ │ ├── TableLayoutBinder.java │ │ └── TextureRenderView.java │ ├── jniLibs │ └── armeabi-v7a │ │ ├── libffmpegeditor.so │ │ ├── libijkplayer.so │ │ └── libijksdl.so │ └── res │ ├── drawable-hdpi │ ├── ic_launcher.png │ └── right_arrow.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_app.xml │ ├── activity_main.xml │ ├── activity_player.xml │ ├── activity_pler2.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 │ ├── video_edit_demo_layout.xml │ └── widget_toolbar.xml │ ├── menu │ ├── menu_app.xml │ └── menu_player.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── colors.xml │ ├── dimens.xml │ ├── ids.xml │ ├── strings.xml │ ├── strings_pref.xml │ └── styles.xml ├── x264encoder ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ ├── com │ │ └── example │ │ │ └── x264encoder │ │ │ └── MainActivity.java │ └── example │ │ └── sszpf │ │ └── x264 │ │ └── x264sdk.java │ ├── jniLibs │ └── armeabi │ │ └── libx264encoder.so │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ └── activity_main.xml │ ├── menu │ └── main.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml └── yuvtorbga ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── com │ └── angcyo │ └── yuvtorbga │ └── ApplicationTest.java ├── main ├── AndroidManifest.xml ├── java │ └── com │ │ └── angcyo │ │ └── yuvtorbga │ │ └── GPUImageNativeLibrary.java ├── jni │ └── yuv-decoder.c └── res │ └── values │ └── strings.xml └── test └── java └── com └── angcyo └── yuvtorbga └── ExampleUnitTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "com.serenegiant.audiovideosample" 9 | minSdkVersion 18 10 | targetSdkVersion 21 11 | versionCode 5 12 | versionName "1.4" 13 | } 14 | 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 19 | } 20 | } 21 | compileOptions { 22 | sourceCompatibility JavaVersion.VERSION_1_7 23 | targetCompatibility JavaVersion.VERSION_1_7 24 | } 25 | } 26 | 27 | dependencies { 28 | compile 'com.android.support:support-v4:23.2.0' 29 | compile project(':drivevideo') 30 | } 31 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/AudioVideoRecordingSample/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 64dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AudioVideoRecordingSample 5 | Settings 6 | 7 | 8 | -------------------------------------------------------------------------------- /AudioVideoRecordingSample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /FFmpegAndroid/assets/armeabi-v7a-neon/ffmpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/assets/armeabi-v7a-neon/ffmpeg -------------------------------------------------------------------------------- /FFmpegAndroid/assets/armeabi-v7a/ffmpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/assets/armeabi-v7a/ffmpeg -------------------------------------------------------------------------------- /FFmpegAndroid/assets/x86/ffmpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/assets/x86/ffmpeg -------------------------------------------------------------------------------- /FFmpegAndroid/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | minSdkVersion 16 9 | targetSdkVersion 23 10 | versionCode 29 11 | versionName "0.2.5.9" 12 | } 13 | 14 | sourceSets.main { 15 | assets.srcDirs = ['assets'] 16 | jni.srcDirs = [] //disable automatic ndk-build 17 | jniLibs.srcDirs = ['libs'] 18 | } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(dir: 'libs', include: ['*.jar']) 23 | } 24 | 25 | // apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle' 26 | -------------------------------------------------------------------------------- /FFmpegAndroid/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=FFmpegAndroid Library 2 | POM_ARTIFACT_ID=FFmpegAndroid 3 | POM_PACKAGING=aar 4 | -------------------------------------------------------------------------------- /FFmpegAndroid/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := ARM_ARCH 6 | 7 | LOCAL_SRC_FILES := armArch.c 8 | 9 | LOCAL_CFLAGS := -DHAVE_NEON=1 10 | LOCAL_STATIC_LIBRARIES := cpufeatures 11 | 12 | LOCAL_LDLIBS := -llog 13 | 14 | include $(BUILD_SHARED_LIBRARY) 15 | $(call import-module,cpufeatures) 16 | -------------------------------------------------------------------------------- /FFmpegAndroid/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Build for arm only 2 | APP_ABI := armeabi armeabi-v7a x86 3 | 4 | APP_PLATFORM := android-14 -------------------------------------------------------------------------------- /FFmpegAndroid/jni/armArch.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | jstring 7 | Java_com_github_libffmpeg_ArmArchHelper_cpuArchFromJNI(JNIEnv* env, jobject obj) 8 | { 9 | // Maximum we need to store here is ARM v7-neon 10 | // Which is 11 char long, so initializing a character array of length 11 11 | char arch_info[11] = ""; 12 | 13 | // checking if CPU is of ARM family or not 14 | if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM) { 15 | strcpy(arch_info, "ARM"); 16 | 17 | // checking if CPU is ARM v7 or not 18 | uint64_t cpuFeatures = android_getCpuFeatures(); 19 | if ((cpuFeatures & ANDROID_CPU_ARM_FEATURE_ARMv7) != 0) { 20 | strcat(arch_info, " v7"); 21 | 22 | // checking if CPU is ARM v7 Neon 23 | if((cpuFeatures & ANDROID_CPU_ARM_FEATURE_NEON) != 0) { 24 | strcat(arch_info, "-neon"); 25 | } 26 | } 27 | } 28 | return (*env)->NewStringUTF(env, arch_info); 29 | } 30 | -------------------------------------------------------------------------------- /FFmpegAndroid/libs/armeabi-v7a/libARM_ARCH.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/libs/armeabi-v7a/libARM_ARCH.so -------------------------------------------------------------------------------- /FFmpegAndroid/libs/armeabi/libARM_ARCH.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/libs/armeabi/libARM_ARCH.so -------------------------------------------------------------------------------- /FFmpegAndroid/libs/x86/libARM_ARCH.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/FFmpegAndroid/libs/x86/libARM_ARCH.so -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/ArmArchHelper.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | class ArmArchHelper { 4 | static { 5 | System.loadLibrary("ARM_ARCH"); 6 | } 7 | 8 | native String cpuArchFromJNI(); 9 | 10 | boolean isARM_v7_CPU(String cpuInfoString) { 11 | return cpuInfoString.contains("v7"); 12 | } 13 | 14 | boolean isNeonSupported(String cpuInfoString) { 15 | // check cpu arch for loading correct ffmpeg lib 16 | return cpuInfoString.contains("-neon"); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/CommandResult.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | class CommandResult { 4 | final String output; 5 | final boolean success; 6 | boolean isCancelled; 7 | 8 | CommandResult(boolean success, String output) { 9 | this.success = success; 10 | this.output = output; 11 | } 12 | 13 | public CommandResult markCancelled() { 14 | isCancelled = true; 15 | return this; 16 | } 17 | 18 | static CommandResult getDummyFailureResponse() { 19 | return new CommandResult(false, ""); 20 | } 21 | 22 | static CommandResult getOutputFromProcess(Process process) { 23 | String output; 24 | if (success(process.exitValue())) { 25 | output = Util.convertInputStreamToString(process.getInputStream()); 26 | } else { 27 | output = Util.convertInputStreamToString(process.getErrorStream()); 28 | } 29 | return new CommandResult(success(process.exitValue()), output); 30 | } 31 | 32 | static boolean success(Integer exitValue) { 33 | return exitValue != null && exitValue == 0; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/CpuArch.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | import android.text.TextUtils; 4 | 5 | enum CpuArch { 6 | x86("1b3daf0402c38ec0019ec436d71a1389514711bd"), 7 | ARMv7("e27cf3c432b121896fc8af2d147eff88d3074dd5"), 8 | ARMv7_NEON("9463c40e898c53dcac59b8ba39cfd590e2f1b1bf"), 9 | NONE(null); 10 | 11 | private String sha1; 12 | 13 | CpuArch(String sha1) { 14 | this.sha1 = sha1; 15 | } 16 | 17 | String getSha1(){ 18 | return sha1; 19 | } 20 | 21 | static CpuArch fromString(String sha1) { 22 | if (!TextUtils.isEmpty(sha1)) { 23 | for (CpuArch cpuArch : CpuArch.values()) { 24 | if (sha1.equalsIgnoreCase(cpuArch.sha1)) { 25 | return cpuArch; 26 | } 27 | } 28 | } 29 | return NONE; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/ExecuteBinaryResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | public class ExecuteBinaryResponseHandler implements FFmpegExecuteResponseHandler { 4 | 5 | @Override 6 | public void onSuccess(String message) { 7 | 8 | } 9 | 10 | @Override 11 | public void onProgress(String message) { 12 | 13 | } 14 | 15 | @Override 16 | public void onFailure(String message) { 17 | 18 | } 19 | 20 | @Override 21 | public void onStart() { 22 | 23 | } 24 | 25 | @Override 26 | public void onFinish(boolean success, boolean isCancelled) { 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/FFmpegExecuteResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | public interface FFmpegExecuteResponseHandler extends ResponseHandler { 4 | 5 | /** 6 | * on Success 7 | * @param message complete output of the FFmpeg command 8 | */ 9 | public void onSuccess(String message); 10 | 11 | /** 12 | * on Progress 13 | * @param message current output of FFmpeg command 14 | */ 15 | public void onProgress(String message); 16 | 17 | /** 18 | * on Failure 19 | * @param message complete output of the FFmpeg command 20 | */ 21 | public void onFailure(String message); 22 | } 23 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/FFmpegLoadBinaryResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | public interface FFmpegLoadBinaryResponseHandler extends ResponseHandler { 4 | 5 | /** 6 | * on Fail 7 | */ 8 | public void onFailure(); 9 | 10 | /** 11 | * on Success 12 | */ 13 | public void onSuccess(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/FFmpegSyncResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | /** 4 | */ 5 | public class FFmpegSyncResponseHandler implements FFmpegSyncResponseInterface { 6 | @Override 7 | public void onSuccess(String message) { 8 | 9 | } 10 | 11 | @Override 12 | public void onProgress(int percent) { 13 | 14 | } 15 | 16 | @Override 17 | public void onMetadata(Metadata metadata) { 18 | 19 | } 20 | 21 | @Override 22 | public void onFailure(String message) { 23 | 24 | } 25 | 26 | @Override 27 | public void onStart() { 28 | 29 | } 30 | 31 | @Override 32 | public void onFinish(boolean success, boolean isCancelled) { 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/FFmpegSyncResponseInterface.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | public interface FFmpegSyncResponseInterface extends ResponseHandler { 4 | 5 | /** 6 | * on Success 7 | * @param message complete output of the FFmpeg command 8 | */ 9 | public void onSuccess(String message); 10 | 11 | /** 12 | * on Progress 13 | */ 14 | public void onProgress(int percent); 15 | 16 | public void onMetadata(Metadata metadata); 17 | 18 | /** 19 | * on Failure 20 | * @param message complete output of the FFmpeg command 21 | */ 22 | public void onFailure(String message); 23 | } 24 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/LoadBinaryResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | public class LoadBinaryResponseHandler implements FFmpegLoadBinaryResponseHandler { 4 | 5 | @Override 6 | public void onFailure() { 7 | 8 | } 9 | 10 | @Override 11 | public void onSuccess() { 12 | 13 | } 14 | 15 | @Override 16 | public void onStart() { 17 | 18 | } 19 | 20 | @Override 21 | public void onFinish(boolean success, boolean isCancelled) { 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/Metadata.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | /** 4 | * @author Egor Makovsky (yahor.makouski@gmail.com). 5 | */ 6 | public class Metadata { 7 | private double fps = -1; 8 | 9 | private long duration = -1; 10 | 11 | public double getFps() { 12 | return fps; 13 | } 14 | 15 | public void setFps(double fps) { 16 | this.fps = fps; 17 | } 18 | 19 | public long getDuration() { 20 | return duration; 21 | } 22 | 23 | public void setDuration(long duration) { 24 | this.duration = duration; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/ResponseHandler.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg; 2 | 3 | abstract interface ResponseHandler { 4 | 5 | /** 6 | * on Start 7 | */ 8 | public void onStart(); 9 | 10 | /** 11 | * on Finish 12 | */ 13 | public void onFinish(boolean success, boolean isCancelled); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/exceptions/FFmpegCommandAlreadyRunningException.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg.exceptions; 2 | 3 | public class FFmpegCommandAlreadyRunningException extends Exception { 4 | 5 | public FFmpegCommandAlreadyRunningException(String message) { 6 | super(message); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/java/com/github/libffmpeg/exceptions/FFmpegNotSupportedException.java: -------------------------------------------------------------------------------- 1 | package com.github.libffmpeg.exceptions; 2 | 3 | public class FFmpegNotSupportedException extends Exception { 4 | 5 | public FFmpegNotSupportedException(String message) { 6 | super(message); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /FFmpegAndroid/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | n2.4.2 4 | -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/MediaRecorderSample/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/drawable-hdpi/tile.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/MediaRecorderSample/src/main/res/drawable-hdpi/tile.9.png -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/MediaRecorderSample/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/MediaRecorderSample/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/MediaRecorderSample/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MediaRecorderSample/src/main/res/layout/sample_main.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 17 | 18 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 64dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MediaEncodeAndDecodeDemo 5 | Hello world! 6 | Settings 7 | 8 | 9 | -------------------------------------------------------------------------------- /mediaCodecDemo/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /mediaCodecEncode/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | applicationId "com.example.mediacodecencode" 9 | minSdkVersion 8 10 | targetSdkVersion 21 11 | } 12 | 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile 'com.android.support:appcompat-v7:19.+' 23 | compile 'com.android.support:support-v4:19.+' 24 | } 25 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecEncode/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecEncode/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecEncode/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecEncode/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 64dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MediaCodecEncode 5 | Hello world! 6 | Settings 7 | 8 | 9 | -------------------------------------------------------------------------------- /mediaCodecEncode/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /mediaCodecPublisher/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | applicationId "com.jutong.hardware.live" 9 | minSdkVersion 9 10 | targetSdkVersion 16 11 | } 12 | 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile 'com.android.support:support-v4:23.+' 23 | } 24 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/java/com/jutong/hardware/live/AudioTag.java: -------------------------------------------------------------------------------- 1 | package com.jutong.hardware.live; 2 | 3 | public class AudioTag { 4 | 5 | private byte[] data; 6 | 7 | private int currentBit = 0; 8 | 9 | public AudioTag() { 10 | data = new byte[2]; 11 | } 12 | 13 | public int getCurrentBit() { 14 | return currentBit; 15 | } 16 | 17 | public byte[] getData() { 18 | return data; 19 | } 20 | 21 | public void addCurrentBit(int currentBit) { 22 | this.currentBit += currentBit; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/jniLibs/armeabi-v7a/libmyjni.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecPublisher/src/main/jniLibs/armeabi-v7a/libmyjni.so -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecPublisher/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecPublisher/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecPublisher/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/mediaCodecPublisher/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/menu/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MediaCodec编码 5 | Settings 6 | Hello world! 7 | 8 | -------------------------------------------------------------------------------- /mediaCodecPublisher/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':drivevideo', ':yuvtorbga', ':driveblurdemo', ':AudioVideoRecordingSample', ':audiovideorecordingdemo', ':MediaRecorderSample', ':blur-behind', ':audiovideorecordingdemo2' 2 | //include ':spydroid'':gpuimage-library', 3 | include ':androidH264StreamDemo' 4 | include ':h264MediaCodecStreamer' 5 | include ':mediaCodecDemo' 6 | //include ':androidstreamer' 7 | include ':x264encoder' 8 | //include ':androidFFmpegX264' 9 | //include ':FFmpegAndroid' 10 | include ':mediaCodecPublisher' 11 | //include ':LivePublisher' 12 | //include ':h264Stream' 13 | include ':testIjkplayer' 14 | include ':mediaCodecEncode' 15 | include ':cameraPreview' 16 | //include ':pull_refresh' 17 | //include ':_qlibrary' 18 | include ':blurEffect' 19 | -------------------------------------------------------------------------------- /spydroid/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "net.majorkernelpanic.spydroid" 9 | minSdkVersion 14 10 | targetSdkVersion 23 11 | 12 | multiDexEnabled true 13 | } 14 | 15 | buildTypes { 16 | release { 17 | minifyEnabled true 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' 19 | } 20 | } 21 | 22 | useLibrary 'org.apache.http.legacy' 23 | } 24 | 25 | dependencies { 26 | compile 'com.android.support:support-v4:23.+' 27 | compile 'com.google.android.gms:play-services:+' 28 | compile files('libs/acra-4.4.0.jar') 29 | compile files('libs/sc-light-jdk15on-1.47.0.2.jar') 30 | compile files('libs/scpkix-jdk15on-1.47.0.2.jar') 31 | compile files('libs/scprov-jdk15on-1.47.0.2.jar') 32 | } 33 | -------------------------------------------------------------------------------- /spydroid/libs/acra-4.4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/libs/acra-4.4.0.jar -------------------------------------------------------------------------------- /spydroid/libs/sc-light-jdk15on-1.47.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/libs/sc-light-jdk15on-1.47.0.2.jar -------------------------------------------------------------------------------- /spydroid/libs/scpkix-jdk15on-1.47.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/libs/scpkix-jdk15on-1.47.0.2.jar -------------------------------------------------------------------------------- /spydroid/libs/scprov-jdk15on-1.47.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/libs/scprov-jdk15on-1.47.0.2.jar -------------------------------------------------------------------------------- /spydroid/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/fonts/bangers.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/fonts/bangers.eot -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/fonts/bangers.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/fonts/bangers.woff -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/fonts/sunshiney.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/fonts/sunshiney.eot -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/fonts/sunshiney.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/fonts/sunshiney.woff -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/blue-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/blue-button.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/camera.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/eye.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/facebook.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/install.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/install.jpg -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/lamp.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/phone.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/quote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/quote.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/red-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/red-button.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/speaker.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/images/spydroid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/assets/www/images/spydroid.png -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/js/ie.js: -------------------------------------------------------------------------------- 1 | document.createElement('header'); 2 | document.createElement('nav'); 3 | document.createElement('section'); 4 | document.createElement('article'); 5 | document.createElement('aside'); 6 | document.createElement('footer'); 7 | document.createElement('hgroup'); 8 | 9 | $(document).ready(function () { 10 | $('.section-content,#status-container').addClass('ie8-background'); 11 | $('.category-separator').hide(); 12 | }); -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/less/fonts.less: -------------------------------------------------------------------------------- 1 | 2 | @font-face { 3 | font-family: 'Sunshiney'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: url(../fonts/sunshiney.eot); 7 | src: local('Sunshiney'), url(../fonts/sunshiney.eot) format('embedded-opentype'), url(../fonts/sunshiney.woff) format('woff'); 8 | } 9 | 10 | @font-face { 11 | font-family: 'Bangers'; 12 | font-style: normal; 13 | font-weight: 400; 14 | src: url(../fonts/bangers.eot); 15 | src: local('Bangers'), local('Bangers-Regular'), url(../fonts/bangers.eot) format('embedded-opentype'), url(../fonts/bangers.woff) format('woff'); 16 | } 17 | -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/less/ie.less: -------------------------------------------------------------------------------- 1 | header,nav,section,article,aside,footer,hgroup 2 | { 3 | display: block; 4 | } 5 | 6 | a img { 7 | border: none; 8 | } 9 | 10 | .ie8-background { 11 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#20FFFFFF',endColorstr='#20FFFFFF'); 12 | background: transparent; 13 | zoom: 1; 14 | } -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/less/index.htm: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/less/styles.less: -------------------------------------------------------------------------------- 1 | @import "fonts"; 2 | @import "mixins"; 3 | @import "base"; 4 | @import "vlc"; 5 | @import "accordion"; 6 | @import "ie"; -------------------------------------------------------------------------------- /spydroid/src/main/assets/www/tests/test1.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /spydroid/src/main/java/net/majorkernelpanic/spydroid/api/CustomRtspServer.java: -------------------------------------------------------------------------------- 1 | package net.majorkernelpanic.spydroid.api; 2 | 3 | import net.majorkernelpanic.streaming.Session; 4 | import net.majorkernelpanic.streaming.rtsp.RtspServer; 5 | 6 | public class CustomRtspServer extends RtspServer { 7 | public CustomRtspServer() { 8 | super(); 9 | // RTSP server disabled by default 10 | mEnabled = false; 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /spydroid/src/main/res/anim/pulse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-hdpi/background.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-hdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-hdpi/check.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-hdpi/quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-hdpi/quit.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-hdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-hdpi/settings.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-ldpi/quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-ldpi/quit.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-ldpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-ldpi/settings.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-mdpi/quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-mdpi/quit.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable-mdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/drawable-mdpi/settings.png -------------------------------------------------------------------------------- /spydroid/src/main/res/drawable/preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 11 | 12 | 17 | 18 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /spydroid/src/main/res/layout-sw600dp/preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 28 | 29 | -------------------------------------------------------------------------------- /spydroid/src/main/res/layout-sw600dp/spydroid.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 21 | 22 | -------------------------------------------------------------------------------- /spydroid/src/main/res/layout-sw600dp/tablet.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 15 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spydroid/src/main/res/layout/preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 25 | 26 | -------------------------------------------------------------------------------- /spydroid/src/main/res/layout/tablet.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 15 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spydroid/src/main/res/menu/menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/animals_cat.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/animals_cat.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/animals_dog.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/animals_dog.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/funny_fart.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/funny_fart.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/funny_fart2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/funny_fart2.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/funny_snoring.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/funny_snoring.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_breath.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_breath.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_evil_laughter.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_evil_laughter.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_horror.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_horror.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_insane_laughter.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_insane_laughter.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_long_growl.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_long_growl.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/scary_thunder.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/scary_thunder.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/war_explosion.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/war_explosion.mp3 -------------------------------------------------------------------------------- /spydroid/src/main/res/raw/war_gunshot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/spydroid/src/main/res/raw/war_gunshot.mp3 -------------------------------------------------------------------------------- /testIjkplayer/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 21 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | applicationId "com.example.videoeditordemo" 9 | minSdkVersion 18 10 | targetSdkVersion 23 11 | } 12 | 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile 'com.android.support:support-v4:21.+' 23 | } 24 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/com/example/testijkplayer/VideoEditor.java: -------------------------------------------------------------------------------- 1 | package com.example.testijkplayer; 2 | 3 | import tv.danmaku.ijk.media.player.IjkMediaPlayer; 4 | 5 | public class VideoEditor extends IjkMediaPlayer{ 6 | 7 | public VideoEditor() { 8 | // TODO Auto-generated constructor stub 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player; 18 | 19 | import android.graphics.SurfaceTexture; 20 | 21 | public interface ISurfaceTextureHolder { 22 | void setSurfaceTexture(SurfaceTexture surfaceTexture); 23 | 24 | SurfaceTexture getSurfaceTexture(); 25 | 26 | void setSurfaceTextureHost(ISurfaceTextureHost surfaceTextureHost); 27 | } 28 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/ISurfaceTextureHost.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player; 18 | 19 | import android.graphics.SurfaceTexture; 20 | 21 | public interface ISurfaceTextureHost { 22 | void releaseSurfaceTexture(SurfaceTexture surfaceTexture); 23 | } 24 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkLibLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player; 18 | 19 | public interface IjkLibLoader { 20 | void loadLibrary(String libName) throws UnsatisfiedLinkError, 21 | SecurityException; 22 | } 23 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/MediaInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player; 18 | 19 | public class MediaInfo { 20 | public String mMediaPlayerName; 21 | 22 | public String mVideoDecoder; 23 | public String mVideoDecoderImpl; 24 | 25 | public String mAudioDecoder; 26 | public String mAudioDecoderImpl; 27 | 28 | public IjkMediaMeta mMeta; 29 | } 30 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/exceptions/IjkMediaException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2014 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player.exceptions; 18 | 19 | public class IjkMediaException extends Exception { 20 | private static final long serialVersionUID = 7234796519009099506L; 21 | } 22 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/exceptions/Pragma.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package tv.danmaku.ijk.media.player.exceptions; 17 | 18 | /*- 19 | * configurated by app project 20 | */ 21 | public class Pragma { 22 | public static final boolean ENABLE_VERBOSE = true; 23 | } 24 | -------------------------------------------------------------------------------- /testIjkplayer/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 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaDataSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | import java.io.IOException; 20 | 21 | @SuppressWarnings("RedundantThrows") 22 | public interface IMediaDataSource { 23 | int readAt(long position, byte[] buffer, int offset, int size) throws IOException; 24 | 25 | long getSize() throws IOException; 26 | 27 | void close() throws IOException; 28 | } 29 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IMediaFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | public interface IMediaFormat { 20 | // Common keys 21 | String KEY_MIME = "mime"; 22 | 23 | // Video Keys 24 | String KEY_WIDTH = "width"; 25 | String KEY_HEIGHT = "height"; 26 | 27 | String getString(String name); 28 | 29 | int getInteger(String name); 30 | } 31 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | public interface ITrackInfo { 20 | int MEDIA_TRACK_TYPE_AUDIO = 2; 21 | int MEDIA_TRACK_TYPE_METADATA = 5; 22 | int MEDIA_TRACK_TYPE_SUBTITLE = 4; 23 | int MEDIA_TRACK_TYPE_TIMEDTEXT = 3; 24 | int MEDIA_TRACK_TYPE_UNKNOWN = 0; 25 | int MEDIA_TRACK_TYPE_VIDEO = 1; 26 | 27 | IMediaFormat getFormat(); 28 | 29 | int getTrackType(); 30 | 31 | String getInfoInline(); 32 | } 33 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/jniLibs/armeabi-v7a/libffmpegeditor.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/jniLibs/armeabi-v7a/libffmpegeditor.so -------------------------------------------------------------------------------- /testIjkplayer/src/main/jniLibs/armeabi-v7a/libijkplayer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/jniLibs/armeabi-v7a/libijkplayer.so -------------------------------------------------------------------------------- /testIjkplayer/src/main/jniLibs/armeabi-v7a/libijksdl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/jniLibs/armeabi-v7a/libijksdl.so -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/drawable-hdpi/right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/res/drawable-hdpi/right_arrow.png -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angcyo/PLDroidDemo/01f7b42943cecfd763c40ef030adbb1cc555e1fb/testIjkplayer/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/activity_app.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/fragment_file_list_item.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/fragment_track_list.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 17 | 18 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/table_media_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/table_media_info_row1.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/table_media_info_row2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/table_media_info_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /testIjkplayer/src/main/res/layout/video_edit_demo_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 |