├── .classpath ├── .cproject ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── AndroidVideo.iml ├── assets └── e4fun │ ├── caches │ ├── 006038C2D1DAEBFA26FC59102F4EF220.png │ ├── E0C521D353952559DAC35FE172B389AD.png │ └── F6FDE122FA24E6A4DF5A10F9A41DF4AC.png │ ├── effects │ ├── 457A69B2AC53F0FE7E19965B74169232 │ │ ├── baozha.mp3 │ │ ├── baozha.plist │ │ ├── baozha.pvr.ccz │ │ └── effect.plist │ ├── E16CF7CE249C579A1336731026708CF3 │ │ ├── bingdong.mp3 │ │ ├── bingdong.plist │ │ ├── bingdong.pvr.ccz │ │ └── effect.plist │ └── F37A49E9451271022B69684C672F1676 │ │ ├── effect.plist │ │ ├── start1.plist │ │ ├── start2.plist │ │ ├── start3.plist │ │ └── start4.plist │ ├── filters │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png │ ├── https │ └── http_content.txt │ └── icons │ ├── icon_effect_delete.png │ ├── icon_effect_rotate.png │ └── icon_effect_scale.png ├── bin ├── AndroidManifest.xml └── classes │ ├── android-support-v4.jar │ ├── android │ └── xml │ │ └── plist │ │ ├── BaseXMLParser.class │ │ ├── PListXMLBase64.class │ │ ├── PListXMLConstants.class │ │ ├── PListXMLHandler$PListParserListener.class │ │ ├── PListXMLHandler$ParseMode.class │ │ ├── PListXMLHandler.class │ │ ├── PListXMLParser.class │ │ ├── PListXMLStringer.class │ │ └── domain │ │ ├── Array.class │ │ ├── Data.class │ │ ├── Date.class │ │ ├── Dict.class │ │ ├── False.class │ │ ├── IPListSimpleObject.class │ │ ├── Integer.class │ │ ├── PList.class │ │ ├── PListObject.class │ │ ├── PListObjectType.class │ │ ├── Real.class │ │ ├── String.class │ │ └── True.class │ ├── com │ └── android │ │ ├── nxhttp │ │ ├── NXHttpFormRequest$NXHttpFormField.class │ │ ├── NXHttpFormRequest.class │ │ ├── NXHttpQueue.class │ │ ├── NXHttpQueueListener.class │ │ ├── NXHttpRequest.class │ │ └── NXHttpRequestListener.class │ │ ├── nxsdk │ │ └── NXWorker.class │ │ ├── nxui │ │ ├── NXPageRoot.class │ │ ├── NXPageStack.class │ │ ├── NXPageView$1.class │ │ └── NXPageView.class │ │ └── video │ │ ├── AppMainActivity.class │ │ ├── BuildConfig.class │ │ ├── R$attr.class │ │ ├── R$dimen.class │ │ ├── R$drawable.class │ │ ├── R$id.class │ │ ├── R$menu.class │ │ ├── R$string.class │ │ ├── R$style.class │ │ ├── R.class │ │ ├── camera │ │ ├── EFCameraView$EFCameraViewListener.class │ │ └── EFCameraView.class │ │ ├── https │ │ ├── EFDownloadManager$EFDownloadListener.class │ │ ├── EFDownloadManager$EFDownloadMission.class │ │ ├── EFDownloadManager.class │ │ ├── EFEffectsManager$EFEffectDownMission.class │ │ ├── EFEffectsManager$EFEffectsListener.class │ │ ├── EFEffectsManager.class │ │ ├── EFRequestsManager$EFRequest.class │ │ ├── EFRequestsManager$EFRequestsListener.class │ │ └── EFRequestsManager.class │ │ ├── page │ │ ├── EFEditorPageView.class │ │ ├── EFEffectPageView$EFEffectPageListener.class │ │ ├── EFEffectPageView.class │ │ ├── EFRecordPageView.class │ │ ├── effects │ │ │ ├── EFEffectDataStructs$EFEffectDataItem.class │ │ │ └── EFEffectDataStructs.class │ │ └── widget │ │ │ ├── EFEffectFilmView.class │ │ │ ├── EFEffectItemView.class │ │ │ ├── EFEffectListView.class │ │ │ ├── EFEffectOnlineView$EffectItemListener.class │ │ │ └── EFEffectOnlineView.class │ │ ├── tools │ │ ├── E4FunTool$1CpuFilter.class │ │ ├── E4FunTool.class │ │ ├── EFBitmapManager.class │ │ ├── EFJsonBuilder.class │ │ ├── EFJsonParser.class │ │ └── EFPlistParser.class │ │ ├── views │ │ ├── EFBlinkView.class │ │ ├── EFImageButton$EFButtonStatus.class │ │ ├── EFImageButton.class │ │ ├── EFImageView.class │ │ ├── EFListView$EFListDataSource.class │ │ ├── EFListView.class │ │ ├── EFPageView$1.class │ │ ├── EFPageView.class │ │ ├── EFPopTextView.class │ │ ├── EFProgressView.class │ │ ├── EFSliderView.class │ │ ├── EFSurfaceView.class │ │ └── EFTextButton.class │ │ └── worker │ │ ├── EFEditorWorker$EFEditorWorkerProgress.class │ │ ├── EFEditorWorker$EFExtractWorkerProgress.class │ │ ├── EFEditorWorker$EFPlayerWorkerProgress.class │ │ ├── EFEditorWorker$EFRenderWorkerProgress.class │ │ ├── EFEditorWorker.class │ │ ├── EFRecordWorker$EFBuildrWorkerProgress.class │ │ ├── EFRecordWorker$EFRecordWorkerProgress.class │ │ └── EFRecordWorker.class │ └── commons-httpclient-3.1.jar ├── build.gradle ├── doc └── 特效组合结构JSON.txt ├── gen └── com │ └── android │ └── video │ ├── BuildConfig.java │ └── R.java ├── ic_launcher-web.png ├── jars ├── android-support-v4.jar └── commons-httpclient-3.1.jar ├── jni ├── ALGTHM │ ├── ALGTHM.mk │ ├── EFALGSaliency.cpp │ ├── EFALGSaliency.h │ ├── EFALGTracker.cpp │ └── EFALGTracker.h ├── Android.mk ├── Application.mk ├── COCOS2DX │ ├── CCCamera.cpp │ ├── CCCamera.h │ ├── CCConfiguration.cpp │ ├── CCConfiguration.h │ ├── CCDirector.cpp │ ├── CCDirector.h │ ├── CCScheduler.cpp │ ├── CCScheduler.h │ ├── COCOS2DX.mk │ ├── actions │ │ ├── CCAction.cpp │ │ ├── CCAction.h │ │ ├── CCActionCamera.cpp │ │ ├── CCActionCamera.h │ │ ├── CCActionCatmullRom.cpp │ │ ├── CCActionCatmullRom.h │ │ ├── CCActionEase.cpp │ │ ├── CCActionEase.h │ │ ├── CCActionGrid.cpp │ │ ├── CCActionGrid.h │ │ ├── CCActionGrid3D.cpp │ │ ├── CCActionGrid3D.h │ │ ├── CCActionInstant.cpp │ │ ├── CCActionInstant.h │ │ ├── CCActionInterval.cpp │ │ ├── CCActionInterval.h │ │ ├── CCActionManager.cpp │ │ ├── CCActionManager.h │ │ ├── CCActionPageTurn3D.cpp │ │ ├── CCActionPageTurn3D.h │ │ ├── CCActionProgressTimer.cpp │ │ ├── CCActionProgressTimer.h │ │ ├── CCActionTiledGrid.cpp │ │ ├── CCActionTiledGrid.h │ │ ├── CCActionTween.cpp │ │ └── CCActionTween.h │ ├── base_nodes │ │ ├── CCAtlasNode.cpp │ │ ├── CCAtlasNode.h │ │ ├── CCGLBufferedNode.cpp │ │ ├── CCGLBufferedNode.h │ │ ├── CCNode.cpp │ │ └── CCNode.h │ ├── cocoa │ │ ├── CCAffineTransform.cpp │ │ ├── CCAffineTransform.h │ │ ├── CCArray.cpp │ │ ├── CCArray.h │ │ ├── CCAutoreleasePool.cpp │ │ ├── CCAutoreleasePool.h │ │ ├── CCBool.h │ │ ├── CCDataVisitor.cpp │ │ ├── CCDataVisitor.h │ │ ├── CCDictionary.cpp │ │ ├── CCDictionary.h │ │ ├── CCDouble.h │ │ ├── CCFloat.h │ │ ├── CCGeometry.cpp │ │ ├── CCGeometry.h │ │ ├── CCInteger.h │ │ ├── CCNS.cpp │ │ ├── CCNS.h │ │ ├── CCNumber.h │ │ ├── CCObject.cpp │ │ ├── CCObject.h │ │ ├── CCSet.cpp │ │ ├── CCSet.h │ │ ├── CCString.cpp │ │ ├── CCString.h │ │ ├── CCZone.cpp │ │ └── CCZone.h │ ├── cocos2d.cpp │ ├── draw_nodes │ │ ├── CCDrawNode.cpp │ │ ├── CCDrawNode.h │ │ ├── CCDrawingPrimitives.cpp │ │ └── CCDrawingPrimitives.h │ ├── effects │ │ ├── CCGrabber.cpp │ │ ├── CCGrabber.h │ │ ├── CCGrid.cpp │ │ └── CCGrid.h │ ├── include │ │ ├── CCEventType.h │ │ ├── CCProtocols.h │ │ ├── ccConfig.h │ │ ├── ccMacros.h │ │ ├── ccTypeInfo.h │ │ ├── ccTypes.h │ │ └── cocos2d.h │ ├── kazmath │ │ ├── include │ │ │ └── kazmath │ │ │ │ ├── GL │ │ │ │ ├── mat4stack.h │ │ │ │ └── matrix.h │ │ │ │ ├── aabb.h │ │ │ │ ├── kazmath.h │ │ │ │ ├── mat3.h │ │ │ │ ├── mat4.h │ │ │ │ ├── neon_matrix_impl.h │ │ │ │ ├── plane.h │ │ │ │ ├── quaternion.h │ │ │ │ ├── ray2.h │ │ │ │ ├── utility.h │ │ │ │ ├── vec2.h │ │ │ │ ├── vec3.h │ │ │ │ └── vec4.h │ │ └── src │ │ │ ├── CMakeLists.txt │ │ │ ├── ChangeLog │ │ │ ├── GL │ │ │ ├── mat4stack.c │ │ │ └── matrix.c │ │ │ ├── aabb.c │ │ │ ├── mat3.c │ │ │ ├── mat4.c │ │ │ ├── neon_matrix_impl.c │ │ │ ├── plane.c │ │ │ ├── quaternion.c │ │ │ ├── ray2.c │ │ │ ├── utility.c │ │ │ ├── vec2.c │ │ │ ├── vec3.c │ │ │ └── vec4.c │ ├── keypad_dispatcher │ │ ├── CCKeypadDelegate.cpp │ │ ├── CCKeypadDelegate.h │ │ ├── CCKeypadDispatcher.cpp │ │ └── CCKeypadDispatcher.h │ ├── label_nodes │ │ ├── CCLabelAtlas.cpp │ │ ├── CCLabelAtlas.h │ │ ├── CCLabelBMFont.cpp │ │ ├── CCLabelBMFont.h │ │ ├── CCLabelTTF.cpp │ │ └── CCLabelTTF.h │ ├── menu_nodes │ │ ├── CCMenu.cpp │ │ ├── CCMenu.h │ │ ├── CCMenuItem.cpp │ │ └── CCMenuItem.h │ ├── misc_nodes │ │ ├── CCClippingNode.cpp │ │ ├── CCClippingNode.h │ │ ├── CCMotionStreak.cpp │ │ ├── CCMotionStreak.h │ │ ├── CCProgressTimer.cpp │ │ ├── CCProgressTimer.h │ │ ├── CCRenderTexture.cpp │ │ └── CCRenderTexture.h │ ├── particle_nodes │ │ ├── CCParticleBatchNode.cpp │ │ ├── CCParticleBatchNode.h │ │ ├── CCParticleExamples.cpp │ │ ├── CCParticleExamples.h │ │ ├── CCParticleSystem.cpp │ │ ├── CCParticleSystem.h │ │ ├── CCParticleSystemQuad.cpp │ │ ├── CCParticleSystemQuad.h │ │ └── firePngData.h │ ├── platform │ │ ├── CCAccelerometerDelegate.h │ │ ├── CCApplicationProtocol.h │ │ ├── CCCommon.h │ │ ├── CCDevice.h │ │ ├── CCEGLViewProtocol.cpp │ │ ├── CCEGLViewProtocol.h │ │ ├── CCFileUtils.cpp │ │ ├── CCFileUtils.h │ │ ├── CCImage.h │ │ ├── CCImageCommon.hpp │ │ ├── CCPlatformConfig.h │ │ ├── CCPlatformMacros.h │ │ ├── CCSAXParser.cpp │ │ ├── CCSAXParser.h │ │ ├── CCThread.cpp │ │ ├── CCThread.h │ │ ├── android │ │ │ ├── CCAccelerometer.cpp │ │ │ ├── CCAccelerometer.h │ │ │ ├── CCApplication.cpp │ │ │ ├── CCApplication.h │ │ │ ├── CCCommon.cpp │ │ │ ├── CCDevice.cpp │ │ │ ├── CCEGLView.cpp │ │ │ ├── CCEGLView.h │ │ │ ├── CCFileUtilsAndroid.cpp │ │ │ ├── CCFileUtilsAndroid.h │ │ │ ├── CCGL.h │ │ │ ├── CCImage.cpp │ │ │ ├── CCPlatformDefine.h │ │ │ └── CCStdC.h │ │ ├── platform.cpp │ │ └── platform.h │ ├── scene_node │ │ ├── CCLayer.cpp │ │ ├── CCLayer.h │ │ ├── CCScene.cpp │ │ └── CCScene.h │ ├── script_support │ │ ├── CCScriptSupport.cpp │ │ └── CCScriptSupport.h │ ├── shaders │ │ ├── CCGLProgram.cpp │ │ ├── CCGLProgram.h │ │ ├── CCShaderCache.cpp │ │ ├── CCShaderCache.h │ │ ├── ccGLStateCache.cpp │ │ ├── ccGLStateCache.h │ │ ├── ccShaderEx_SwitchMask_frag.h │ │ ├── ccShader_PositionColorLengthTexture_frag.h │ │ ├── ccShader_PositionColorLengthTexture_vert.h │ │ ├── ccShader_PositionColor_frag.h │ │ ├── ccShader_PositionColor_vert.h │ │ ├── ccShader_PositionTextureA8Color_frag.h │ │ ├── ccShader_PositionTextureA8Color_vert.h │ │ ├── ccShader_PositionTextureColorAlphaTest_frag.h │ │ ├── ccShader_PositionTextureColorNV12_frag.h │ │ ├── ccShader_PositionTextureColorNV12_vert.h │ │ ├── ccShader_PositionTextureColorNV21_frag.h │ │ ├── ccShader_PositionTextureColorNV21_vert.h │ │ ├── ccShader_PositionTextureColor_frag.h │ │ ├── ccShader_PositionTextureColor_vert.h │ │ ├── ccShader_PositionTexture_frag.h │ │ ├── ccShader_PositionTexture_uColor_frag.h │ │ ├── ccShader_PositionTexture_uColor_vert.h │ │ ├── ccShader_PositionTexture_vert.h │ │ ├── ccShader_Position_uColor_frag.h │ │ ├── ccShader_Position_uColor_vert.h │ │ ├── ccShaders.cpp │ │ └── ccShaders.h │ ├── sprite_nodes │ │ ├── CCAnimation.cpp │ │ ├── CCAnimation.h │ │ ├── CCAnimationCache.cpp │ │ ├── CCAnimationCache.h │ │ ├── CCSprite.cpp │ │ ├── CCSprite.h │ │ ├── CCSpriteBatchNode.cpp │ │ ├── CCSpriteBatchNode.h │ │ ├── CCSpriteFrame.cpp │ │ ├── CCSpriteFrame.h │ │ ├── CCSpriteFrameCache.cpp │ │ └── CCSpriteFrameCache.h │ ├── support │ │ ├── CCNotificationCenter.cpp │ │ ├── CCNotificationCenter.h │ │ ├── CCPointExtension.cpp │ │ ├── CCPointExtension.h │ │ ├── CCProfiling.cpp │ │ ├── CCProfiling.h │ │ ├── CCVertex.cpp │ │ ├── CCVertex.h │ │ ├── TransformUtils.cpp │ │ ├── TransformUtils.h │ │ ├── base64.cpp │ │ ├── base64.h │ │ ├── ccUTF8.cpp │ │ ├── ccUTF8.h │ │ ├── ccUtils.cpp │ │ ├── ccUtils.h │ │ ├── component │ │ │ ├── CCComponent.cpp │ │ │ ├── CCComponent.h │ │ │ ├── CCComponentContainer.cpp │ │ │ └── CCComponentContainer.h │ │ ├── data_support │ │ │ ├── ccCArray.cpp │ │ │ ├── ccCArray.h │ │ │ ├── uthash.h │ │ │ └── utlist.h │ │ ├── image_support │ │ │ ├── TGAlib.cpp │ │ │ └── TGAlib.h │ │ ├── tinyxml2 │ │ │ ├── tinyxml2.cpp │ │ │ └── tinyxml2.h │ │ └── zip_support │ │ │ ├── ZipUtils.cpp │ │ │ ├── ZipUtils.h │ │ │ ├── ioapi.cpp │ │ │ ├── ioapi.h │ │ │ ├── unzip.cpp │ │ │ └── unzip.h │ ├── text_input_node │ │ ├── CCIMEDelegate.h │ │ ├── CCIMEDispatcher.cpp │ │ ├── CCIMEDispatcher.h │ │ ├── CCTextFieldTTF.cpp │ │ └── CCTextFieldTTF.h │ ├── textures │ │ ├── CCTexture2D.cpp │ │ ├── CCTexture2D.h │ │ ├── CCTextureAtlas.cpp │ │ ├── CCTextureAtlas.h │ │ ├── CCTextureCache.cpp │ │ ├── CCTextureCache.h │ │ ├── CCTextureETC.cpp │ │ ├── CCTextureETC.h │ │ ├── CCTexturePVR.cpp │ │ └── CCTexturePVR.h │ ├── tilemap_parallax_nodes │ │ ├── CCParallaxNode.cpp │ │ ├── CCParallaxNode.h │ │ ├── CCTMXLayer.cpp │ │ ├── CCTMXLayer.h │ │ ├── CCTMXObjectGroup.cpp │ │ ├── CCTMXObjectGroup.h │ │ ├── CCTMXTiledMap.cpp │ │ ├── CCTMXTiledMap.h │ │ ├── CCTMXXMLParser.cpp │ │ ├── CCTMXXMLParser.h │ │ ├── CCTileMapAtlas.cpp │ │ └── CCTileMapAtlas.h │ └── touch_dispatcher │ │ ├── CCTouch.cpp │ │ ├── CCTouch.h │ │ ├── CCTouchDelegateProtocol.h │ │ ├── CCTouchDispatcher.cpp │ │ ├── CCTouchDispatcher.h │ │ ├── CCTouchHandler.cpp │ │ └── CCTouchHandler.h ├── LEAKER │ ├── LEAKER.mk │ ├── leaker.cpp │ └── leaker.h ├── LIBJSON │ ├── LIBJSON.mk │ ├── include │ │ └── json │ │ │ ├── assertions.h │ │ │ ├── autolink.h │ │ │ ├── config.h │ │ │ ├── features.h │ │ │ ├── forwards.h │ │ │ ├── json.h │ │ │ ├── json_tool.h │ │ │ ├── reader.h │ │ │ ├── value.h │ │ │ ├── version.h │ │ │ └── writer.h │ └── src │ │ ├── json_reader.cpp │ │ ├── json_value.cpp │ │ ├── json_valueiterator.hpp │ │ └── json_writer.cpp ├── LIBRARY │ ├── curl │ │ ├── include │ │ │ └── curl │ │ │ │ ├── curl.h │ │ │ │ ├── curlbuild.h │ │ │ │ ├── curlrules.h │ │ │ │ ├── curlver.h │ │ │ │ ├── easy.h │ │ │ │ ├── mprintf.h │ │ │ │ ├── multi.h │ │ │ │ ├── stdcheaders.h │ │ │ │ ├── typecheck-gcc.h │ │ │ │ └── types.h │ │ └── lib │ │ │ ├── armeabi-v7a │ │ │ └── libcurl.a │ │ │ ├── armeabi │ │ │ └── libcurl.a │ │ │ └── x86 │ │ │ └── libcurl.a │ ├── fdkaac │ │ ├── include │ │ │ └── fdk-aac │ │ │ │ ├── FDK_audio.h │ │ │ │ ├── aacdecoder_lib.h │ │ │ │ ├── aacenc_lib.h │ │ │ │ ├── genericStds.h │ │ │ │ └── machine_type.h │ │ └── lib │ │ │ └── arm │ │ │ └── libfdk-aac.a │ ├── ffmpeg │ │ ├── include │ │ │ ├── libavcodec │ │ │ │ ├── avcodec.h │ │ │ │ ├── avfft.h │ │ │ │ ├── d3d11va.h │ │ │ │ ├── dv_profile.h │ │ │ │ ├── dxva2.h │ │ │ │ ├── old_codec_ids.h │ │ │ │ ├── qsv.h │ │ │ │ ├── vaapi.h │ │ │ │ ├── vda.h │ │ │ │ ├── vdpau.h │ │ │ │ ├── version.h │ │ │ │ ├── vorbis_parser.h │ │ │ │ └── xvmc.h │ │ │ ├── libavdevice │ │ │ │ ├── avdevice.h │ │ │ │ └── version.h │ │ │ ├── libavfilter │ │ │ │ ├── asrc_abuffer.h │ │ │ │ ├── avcodec.h │ │ │ │ ├── avfilter.h │ │ │ │ ├── avfiltergraph.h │ │ │ │ ├── buffersink.h │ │ │ │ ├── buffersrc.h │ │ │ │ └── version.h │ │ │ ├── libavformat │ │ │ │ ├── avformat.h │ │ │ │ ├── avio.h │ │ │ │ └── version.h │ │ │ ├── libavresample │ │ │ │ ├── avresample.h │ │ │ │ └── version.h │ │ │ ├── libavutil │ │ │ │ ├── adler32.h │ │ │ │ ├── aes.h │ │ │ │ ├── attributes.h │ │ │ │ ├── audio_fifo.h │ │ │ │ ├── audioconvert.h │ │ │ │ ├── avassert.h │ │ │ │ ├── avconfig.h │ │ │ │ ├── avstring.h │ │ │ │ ├── avutil.h │ │ │ │ ├── base64.h │ │ │ │ ├── blowfish.h │ │ │ │ ├── bprint.h │ │ │ │ ├── bswap.h │ │ │ │ ├── buffer.h │ │ │ │ ├── camellia.h │ │ │ │ ├── cast5.h │ │ │ │ ├── channel_layout.h │ │ │ │ ├── common.h │ │ │ │ ├── cpu.h │ │ │ │ ├── crc.h │ │ │ │ ├── dict.h │ │ │ │ ├── display.h │ │ │ │ ├── downmix_info.h │ │ │ │ ├── error.h │ │ │ │ ├── eval.h │ │ │ │ ├── ffversion.h │ │ │ │ ├── fifo.h │ │ │ │ ├── file.h │ │ │ │ ├── frame.h │ │ │ │ ├── hash.h │ │ │ │ ├── hmac.h │ │ │ │ ├── imgutils.h │ │ │ │ ├── intfloat.h │ │ │ │ ├── intreadwrite.h │ │ │ │ ├── lfg.h │ │ │ │ ├── log.h │ │ │ │ ├── lzo.h │ │ │ │ ├── macros.h │ │ │ │ ├── mathematics.h │ │ │ │ ├── md5.h │ │ │ │ ├── mem.h │ │ │ │ ├── motion_vector.h │ │ │ │ ├── murmur3.h │ │ │ │ ├── old_pix_fmts.h │ │ │ │ ├── opt.h │ │ │ │ ├── parseutils.h │ │ │ │ ├── pixdesc.h │ │ │ │ ├── pixelutils.h │ │ │ │ ├── pixfmt.h │ │ │ │ ├── random_seed.h │ │ │ │ ├── rational.h │ │ │ │ ├── replaygain.h │ │ │ │ ├── ripemd.h │ │ │ │ ├── samplefmt.h │ │ │ │ ├── sha.h │ │ │ │ ├── sha512.h │ │ │ │ ├── stereo3d.h │ │ │ │ ├── threadmessage.h │ │ │ │ ├── time.h │ │ │ │ ├── timecode.h │ │ │ │ ├── timestamp.h │ │ │ │ ├── twofish.h │ │ │ │ ├── version.h │ │ │ │ └── xtea.h │ │ │ ├── libpostproc │ │ │ │ ├── postprocess.h │ │ │ │ └── version.h │ │ │ ├── libswresample │ │ │ │ ├── swresample.h │ │ │ │ └── version.h │ │ │ └── libswscale │ │ │ │ ├── swscale.h │ │ │ │ └── version.h │ │ └── lib │ │ │ └── arm │ │ │ ├── libavcodec.a │ │ │ ├── libavdevice.a │ │ │ ├── libavfilter.a │ │ │ ├── libavformat.a │ │ │ ├── libavresample.a │ │ │ ├── libavutil.a │ │ │ ├── libpostproc.a │ │ │ ├── libswresample.a │ │ │ └── libswscale.a │ ├── jpeg │ │ ├── include │ │ │ ├── jconfig.h │ │ │ ├── jerror.h │ │ │ ├── jmorecfg.h │ │ │ └── jpeglib.h │ │ └── lib │ │ │ ├── arm │ │ │ └── libjpeg.a │ │ │ ├── armeabi │ │ │ └── libjpeg.a │ │ │ └── x86 │ │ │ └── libjpeg.a │ ├── png │ │ ├── include │ │ │ ├── png.h │ │ │ ├── pngconf.h │ │ │ └── pngusr.h │ │ └── lib │ │ │ ├── arm │ │ │ └── libpng.a │ │ │ ├── armeabi │ │ │ └── libpng.a │ │ │ └── x86 │ │ │ └── libpng.a │ ├── tiff │ │ ├── include │ │ │ ├── tiff.h │ │ │ ├── tiffconf.h │ │ │ ├── tiffio.h │ │ │ └── tiffvers.h │ │ └── lib │ │ │ ├── arm │ │ │ └── libtiff.a │ │ │ ├── armeabi │ │ │ └── libtiff.a │ │ │ └── x86 │ │ │ └── libtiff.a │ └── x264 │ │ ├── include │ │ ├── x264.h │ │ └── x264_config.h │ │ └── lib │ │ └── arm │ │ └── libx264.a ├── NXSDK │ ├── NXCC │ │ ├── NXCCContext.cpp │ │ ├── NXCCContext.h │ │ ├── NXCCDirector.cpp │ │ ├── NXCCDirector.h │ │ ├── NXCCNode.cpp │ │ ├── NXCCNode.h │ │ ├── NXCCShareNode.cpp │ │ ├── NXCCShareNode.h │ │ ├── NXCCSprite.cpp │ │ ├── NXCCSprite.h │ │ ├── NXCCSpriteNV12.cpp │ │ └── NXCCSpriteNV12.h │ ├── NXFF │ │ ├── NXFFADef.h │ │ ├── NXFFAWriter.cpp │ │ ├── NXFFAWriter.h │ │ ├── NXFFSReader.cpp │ │ ├── NXFFSReader.h │ │ ├── NXFFSWriter.cpp │ │ └── NXFFSWriter.h │ ├── NXGL │ │ ├── NXGL.cpp │ │ ├── NXGL.h │ │ ├── NXGLCanvas.cpp │ │ ├── NXGLCanvas.h │ │ ├── NXGLContext.cpp │ │ ├── NXGLContext.h │ │ ├── NXGLDrawer.cpp │ │ ├── NXGLDrawer.h │ │ ├── NXGLMatrix.h │ │ ├── NXGLSurface.cpp │ │ ├── NXGLSurface.h │ │ ├── NXGLTrimer.cpp │ │ └── NXGLTrimer.h │ ├── NXKT │ │ ├── NXBuffer.cpp │ │ ├── NXBuffer.h │ │ ├── NXDef.h │ │ ├── NXEvent.cpp │ │ ├── NXEvent.h │ │ ├── NXFile.cpp │ │ ├── NXFile.h │ │ ├── NXFmt.h │ │ ├── NXKit.cpp │ │ ├── NXKit.h │ │ ├── NXLock.cpp │ │ ├── NXLock.h │ │ ├── NXPtr.hpp │ │ ├── NXThread.cpp │ │ ├── NXThread.h │ │ ├── NXThrottle.cpp │ │ ├── NXThrottle.h │ │ ├── NXTimer.cpp │ │ └── NXTimer.h │ ├── NXPL │ │ ├── NXWBPlayer.cpp │ │ └── NXWBPlayer.h │ ├── NXSDK.cpp │ ├── NXSDK.h │ ├── NXSDK.mk │ ├── NXSL │ │ ├── NXSLRecorder.cpp │ │ ├── NXSLRecorder.h │ │ ├── NXSLSpeaker.cpp │ │ └── NXSLSpeaker.h │ ├── NXTM │ │ ├── NXTMADef.h │ │ ├── NXTMAReader.cpp │ │ ├── NXTMAReader.h │ │ ├── NXTMAWriter.cpp │ │ ├── NXTMAWriter.h │ │ ├── NXTMSReader.cpp │ │ ├── NXTMSReader.h │ │ ├── NXTMSShoter.cpp │ │ ├── NXTMSShoter.h │ │ ├── NXTMSWriter.cpp │ │ └── NXTMSWriter.h │ ├── NXWB │ │ ├── NXWorkbeach.cpp │ │ └── NXWorkbeach.h │ └── NXXL │ │ ├── NXXLCapturer.cpp │ │ └── NXXLCapturer.h └── WORKER │ ├── EFBuilderMission.cpp │ ├── EFBuilderMission.h │ ├── EFEditorWorker.cpp │ ├── EFEditorWorker.h │ ├── EFEffectsLayer.cpp │ ├── EFEffectsLayer.h │ ├── EFEffectsModel.cpp │ ├── EFEffectsModel.h │ ├── EFExtractMission.cpp │ ├── EFExtractMission.h │ ├── EFRecordWorker.cpp │ ├── EFRecordWorker.h │ ├── EFRenderMission.cpp │ ├── EFRenderMission.h │ ├── NXWorker.cpp │ ├── NXWorker.h │ └── WORKER.mk ├── libs └── armeabi-v7a │ └── libWORKER.so ├── project.properties ├── res ├── drawable-hdpi │ └── ic_launcher.png ├── drawable-mdpi │ └── ic_launcher.png ├── drawable-xhdpi │ └── ic_launcher.png ├── drawable-xxhdpi │ └── ic_launcher.png ├── drawable │ ├── btn_addeff_normal.png │ ├── btn_addeff_select.png │ ├── btn_backer_normal.png │ ├── btn_backer_select.png │ ├── btn_confrm_normal.png │ ├── btn_confrm_select.png │ ├── btn_delete_normal.png │ ├── btn_delete_select.png │ ├── btn_filter_normal.png │ ├── btn_filter_select.png │ ├── btn_import_normal.png │ ├── btn_import_select.png │ ├── btn_player_paused.png │ ├── btn_player_playing.png │ ├── btn_record_normal.png │ ├── btn_record_select.png │ ├── btn_render_normal.png │ ├── btn_render_select.png │ ├── btn_reverse_normal.png │ ├── btn_reverse_select.png │ ├── btn_voice_close.png │ ├── btn_voice_open.png │ ├── icon_draw_surface.png │ ├── icon_effect_left.png │ ├── icon_effect_right.png │ ├── icon_film_left.png │ ├── icon_film_right.png │ └── icon_record_label.png ├── menu │ └── app_main.xml ├── values-v11 │ └── styles.xml ├── values-v14 │ └── styles.xml ├── values-w820dp │ └── dimens.xml └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml └── src ├── android └── xml │ └── plist │ ├── BaseXMLParser.java │ ├── PListXMLBase64.java │ ├── PListXMLConstants.java │ ├── PListXMLHandler.java │ ├── PListXMLParser.java │ ├── PListXMLStringer.java │ └── domain │ ├── Array.java │ ├── Data.java │ ├── Date.java │ ├── Dict.java │ ├── False.java │ ├── IPListSimpleObject.java │ ├── Integer.java │ ├── PList.java │ ├── PListObject.java │ ├── PListObjectType.java │ ├── Real.java │ ├── String.java │ └── True.java └── com └── android ├── nxhttp ├── NXHttpFormRequest.java ├── NXHttpQueue.java ├── NXHttpQueueListener.java ├── NXHttpRequest.java └── NXHttpRequestListener.java ├── nxsdk └── NXWorker.java ├── nxui ├── NXPageRoot.java ├── NXPageStack.java └── NXPageView.java └── video ├── AppMainActivity.java ├── camera └── EFCameraView.java ├── https ├── EFDownloadManager.java ├── EFEffectsManager.java └── EFRequestsManager.java ├── page ├── EFEditorPageView.java ├── EFEffectPageView.java ├── EFRecordPageView.java ├── effects │ └── EFEffectDataStructs.java └── widget │ ├── EFEffectFilmView.java │ ├── EFEffectItemView.java │ ├── EFEffectListView.java │ └── EFEffectOnlineView.java ├── tools ├── E4FunTool.java ├── EFBitmapManager.java ├── EFJsonBuilder.java ├── EFJsonParser.java └── EFPlistParser.java ├── views ├── EFBlinkView.java ├── EFImageButton.java ├── EFImageView.java ├── EFListView.java ├── EFPageView.java ├── EFPopTextView.java ├── EFProgressView.java ├── EFSliderView.java ├── EFSurfaceView.java └── EFTextButton.java └── worker ├── EFEditorWorker.java └── EFRecordWorker.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | #Mon Dec 28 13:15:55 GMT+08:00 2015 2 | eclipse.preferences.version=1 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.compliance=1.6 5 | org.eclipse.jdt.core.compiler.source=1.6 6 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/e4fun/caches/006038C2D1DAEBFA26FC59102F4EF220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/caches/006038C2D1DAEBFA26FC59102F4EF220.png -------------------------------------------------------------------------------- /assets/e4fun/caches/E0C521D353952559DAC35FE172B389AD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/caches/E0C521D353952559DAC35FE172B389AD.png -------------------------------------------------------------------------------- /assets/e4fun/caches/F6FDE122FA24E6A4DF5A10F9A41DF4AC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/caches/F6FDE122FA24E6A4DF5A10F9A41DF4AC.png -------------------------------------------------------------------------------- /assets/e4fun/effects/457A69B2AC53F0FE7E19965B74169232/baozha.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/effects/457A69B2AC53F0FE7E19965B74169232/baozha.mp3 -------------------------------------------------------------------------------- /assets/e4fun/effects/457A69B2AC53F0FE7E19965B74169232/baozha.pvr.ccz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/effects/457A69B2AC53F0FE7E19965B74169232/baozha.pvr.ccz -------------------------------------------------------------------------------- /assets/e4fun/effects/457A69B2AC53F0FE7E19965B74169232/effect.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | version 6 | 1 7 | type 8 | 1 9 | width 10 | 0.3 11 | height 12 | 0.3 13 | duration 14 | 2.6 15 | plists 16 | 17 | baozha.plist 18 | 19 | texture 20 | baozha.pvr.ccz 21 | texname 22 | baozha_%03d.png 23 | fpsrate 24 | 15 25 | sound 26 | 27 | file 28 | baozha.mp3 29 | time 30 | 2.6 31 | start 32 | 0 33 | repeat 34 | 1 35 | 36 | ending 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /assets/e4fun/effects/E16CF7CE249C579A1336731026708CF3/bingdong.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/effects/E16CF7CE249C579A1336731026708CF3/bingdong.mp3 -------------------------------------------------------------------------------- /assets/e4fun/effects/E16CF7CE249C579A1336731026708CF3/bingdong.pvr.ccz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/effects/E16CF7CE249C579A1336731026708CF3/bingdong.pvr.ccz -------------------------------------------------------------------------------- /assets/e4fun/effects/E16CF7CE249C579A1336731026708CF3/effect.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | version 6 | 1 7 | type 8 | 1 9 | width 10 | 0.25 11 | height 12 | 0.25 13 | duration 14 | 3.2 15 | plists 16 | 17 | bingdong.plist 18 | 19 | texture 20 | bingdong.pvr.ccz 21 | texname 22 | bingdong_%03d.png 23 | fpsrate 24 | 15 25 | sound 26 | 27 | file 28 | bingdong.mp3 29 | time 30 | 2.0 31 | start 32 | 1.2 33 | repeat 34 | 1 35 | 36 | ending 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /assets/e4fun/effects/F37A49E9451271022B69684C672F1676/effect.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | version 6 | 1 7 | type 8 | 2 9 | width 10 | 0.2 11 | height 12 | 0.2 13 | duration 14 | 0 15 | plists 16 | 17 | start1.plist 18 | start2.plist 19 | start3.plist 20 | start4.plist 21 | 22 | texture 23 | 24 | texname 25 | 26 | ending 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /assets/e4fun/filters/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/1.png -------------------------------------------------------------------------------- /assets/e4fun/filters/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/2.png -------------------------------------------------------------------------------- /assets/e4fun/filters/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/3.png -------------------------------------------------------------------------------- /assets/e4fun/filters/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/4.png -------------------------------------------------------------------------------- /assets/e4fun/filters/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/6.png -------------------------------------------------------------------------------- /assets/e4fun/filters/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/7.png -------------------------------------------------------------------------------- /assets/e4fun/filters/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/8.png -------------------------------------------------------------------------------- /assets/e4fun/filters/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/filters/9.png -------------------------------------------------------------------------------- /assets/e4fun/https/http_content.txt: -------------------------------------------------------------------------------- 1 | [{"effect_name": "\u7206\u70b8", "effect_icon": "http://e4fun.idealsee.com/media01/dca905ae9fe4ddf63ee0360657c4ec25_png-full.png", "rank": 300, "version": 4, "effect_id": "5695c741d42c0100051c8999", "config": "http://e4fun.idealsee.com/media01/c02df246e05f83ecb55375cfc4577c1c_zip-full.zip"}, {"effect_name": "\u51b0\u51bb", "effect_icon": "http://e4fun.idealsee.com/media01/dc22e0bc0aac54e8faa69e770526b3ca_png-full.png", "rank": 200, "version": 4, "effect_id": "5695c722d42c0100051c8998", "config": "http://e4fun.idealsee.com/media01/7a0623c52bea3e22c9ef115a05d00617_zip-full.zip"}, {"effect_name": "\u661f\u661f", "effect_icon": "http://e4fun.idealsee.com/media01/98e7793295140341b552cdf62b86eea0_png-full.png", "rank": 100, "version": 4, "effect_id": "5695c6fdd42c0100051c8997", "config": "http://e4fun.idealsee.com/media01/f2fb1e9ad67283f046de27d4f00b8d8d_zip-full.zip"}] -------------------------------------------------------------------------------- /assets/e4fun/icons/icon_effect_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/icons/icon_effect_delete.png -------------------------------------------------------------------------------- /assets/e4fun/icons/icon_effect_rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/icons/icon_effect_rotate.png -------------------------------------------------------------------------------- /assets/e4fun/icons/icon_effect_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/assets/e4fun/icons/icon_effect_scale.png -------------------------------------------------------------------------------- /bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /bin/classes/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android-support-v4.jar -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/BaseXMLParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/BaseXMLParser.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLBase64.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLBase64.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLConstants.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLConstants.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLHandler$PListParserListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLHandler$PListParserListener.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLHandler$ParseMode.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLHandler$ParseMode.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLHandler.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLParser.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/PListXMLStringer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/PListXMLStringer.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Array.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Array.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Data.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Data.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Date.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Date.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Dict.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Dict.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/False.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/False.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/IPListSimpleObject.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/IPListSimpleObject.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Integer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Integer.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/PList.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/PList.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/PListObject.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/PListObject.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/PListObjectType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/PListObjectType.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/Real.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/Real.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/String.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/String.class -------------------------------------------------------------------------------- /bin/classes/android/xml/plist/domain/True.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/android/xml/plist/domain/True.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpFormRequest$NXHttpFormField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpFormRequest$NXHttpFormField.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpFormRequest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpFormRequest.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpQueue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpQueue.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpQueueListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpQueueListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpRequest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpRequest.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxhttp/NXHttpRequestListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxhttp/NXHttpRequestListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxsdk/NXWorker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxsdk/NXWorker.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxui/NXPageRoot.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxui/NXPageRoot.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxui/NXPageStack.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxui/NXPageStack.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxui/NXPageView$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxui/NXPageView$1.class -------------------------------------------------------------------------------- /bin/classes/com/android/nxui/NXPageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/nxui/NXPageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/AppMainActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/AppMainActivity.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/BuildConfig.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$attr.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$dimen.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$dimen.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$drawable.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$id.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$menu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$menu.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$string.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R$style.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/R.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/camera/EFCameraView$EFCameraViewListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/camera/EFCameraView$EFCameraViewListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/camera/EFCameraView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/camera/EFCameraView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFDownloadManager$EFDownloadListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFDownloadManager$EFDownloadListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFDownloadManager$EFDownloadMission.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFDownloadManager$EFDownloadMission.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFDownloadManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFDownloadManager.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFEffectsManager$EFEffectDownMission.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFEffectsManager$EFEffectDownMission.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFEffectsManager$EFEffectsListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFEffectsManager$EFEffectsListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFEffectsManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFEffectsManager.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFRequestsManager$EFRequest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFRequestsManager$EFRequest.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFRequestsManager$EFRequestsListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFRequestsManager$EFRequestsListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/https/EFRequestsManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/https/EFRequestsManager.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/EFEditorPageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/EFEditorPageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/EFEffectPageView$EFEffectPageListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/EFEffectPageView$EFEffectPageListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/EFEffectPageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/EFEffectPageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/EFRecordPageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/EFRecordPageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/effects/EFEffectDataStructs$EFEffectDataItem.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/effects/EFEffectDataStructs$EFEffectDataItem.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/effects/EFEffectDataStructs.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/effects/EFEffectDataStructs.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/widget/EFEffectFilmView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/widget/EFEffectFilmView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/widget/EFEffectItemView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/widget/EFEffectItemView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/widget/EFEffectListView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/widget/EFEffectListView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/widget/EFEffectOnlineView$EffectItemListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/widget/EFEffectOnlineView$EffectItemListener.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/page/widget/EFEffectOnlineView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/page/widget/EFEffectOnlineView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/E4FunTool$1CpuFilter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/E4FunTool$1CpuFilter.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/E4FunTool.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/E4FunTool.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/EFBitmapManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/EFBitmapManager.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/EFJsonBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/EFJsonBuilder.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/EFJsonParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/EFJsonParser.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/tools/EFPlistParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/tools/EFPlistParser.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFBlinkView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFBlinkView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFImageButton$EFButtonStatus.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFImageButton$EFButtonStatus.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFImageButton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFImageButton.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFImageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFImageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFListView$EFListDataSource.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFListView$EFListDataSource.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFListView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFListView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFPageView$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFPageView$1.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFPageView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFPageView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFPopTextView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFPopTextView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFProgressView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFProgressView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFSliderView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFSliderView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFSurfaceView.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFSurfaceView.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/views/EFTextButton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/views/EFTextButton.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFEditorWorker$EFEditorWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFEditorWorker$EFEditorWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFEditorWorker$EFExtractWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFEditorWorker$EFExtractWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFEditorWorker$EFPlayerWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFEditorWorker$EFPlayerWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFEditorWorker$EFRenderWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFEditorWorker$EFRenderWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFEditorWorker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFEditorWorker.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFRecordWorker$EFBuildrWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFRecordWorker$EFBuildrWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFRecordWorker$EFRecordWorkerProgress.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFRecordWorker$EFRecordWorkerProgress.class -------------------------------------------------------------------------------- /bin/classes/com/android/video/worker/EFRecordWorker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/com/android/video/worker/EFRecordWorker.class -------------------------------------------------------------------------------- /bin/classes/commons-httpclient-3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/bin/classes/commons-httpclient-3.1.jar -------------------------------------------------------------------------------- /doc/特效组合结构JSON.txt: -------------------------------------------------------------------------------- 1 | WHY? 2 | 因为Android平台的特殊性,java层负责UI,可以完成特效编辑界面的开发,而视频播放,特效预览,OpenGL动画这些都是在C++层,并不能放在java层。 3 | 所以就需要从频繁从java层告诉C++层,我添加了某个特效,我删除了某个特效,移动了某个特效的位置等等繁琐的通知,如果每一个都创建一个JNI API,那代码会变得相当复杂。 4 | 所以就采取同步机制来同步当前用户操作后特效的组织结构,并且考虑到操作的通用性和扩展性,采取json来存储特效的组织关系,然后同步到底层。 5 | 6 | HOW? 7 | 格式范例1:最外层是个map 8 | { 9 | effects:[E,E,E]; <== effects 保存一个数组,每一个数组表示引入的一个特效。E参见范例2 10 | //其他字段用于扩展。 11 | } 12 | 13 | 格式范例2 14 | E = 15 | { 16 | effect_id: ? //id 17 | effect_key: ? //key, 标志唯一的特效,就算同一个特效添加两次,也会产生不同的key。 18 | effect_name: ? //name 19 | effect_path: ? //folder 20 | effect_width: ? //width 21 | effect_height: ? //height 22 | effect_start: ? //start time, seconds, 23 | effect_duration: ? //duration time, seconds, if = 0, means long as max. 24 | 25 | //用于扩展。 26 | } -------------------------------------------------------------------------------- /gen/com/android/video/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.android.video; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/ic_launcher-web.png -------------------------------------------------------------------------------- /jars/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jars/android-support-v4.jar -------------------------------------------------------------------------------- /jars/commons-httpclient-3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jars/commons-httpclient-3.1.jar -------------------------------------------------------------------------------- /jni/ALGTHM/ALGTHM.mk: -------------------------------------------------------------------------------- 1 | include $(CLEAR_VARS) 2 | LOCAL_CFLAGS += $(COMPILE_CFLAGS) 3 | 4 | #Module Name 5 | LOCAL_MODULE := ALGTHM 6 | 7 | 8 | #Include Paths 9 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/ALGTHM \ 10 | $(LOCAL_PATH)/ALGTHM/include \ 11 | 12 | 13 | #Export Paths 14 | LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/ALGTHM \ 15 | 16 | 17 | #Local Library 18 | LOCAL_STATIC_LIBRARIES := NXSDK 19 | 20 | 21 | #Local Library 22 | LOCAL_SHARED_LIBRARIES := 23 | 24 | 25 | #cpp flags 26 | LOCAL_CPPFLAGS += -frtti -fexceptions 27 | 28 | 29 | #Module Files 30 | LOCAL_SRC_FILES := ALGTHM/EFALGTracker.cpp \ 31 | ALGTHM/EFALGSaliency.cpp \ 32 | 33 | 34 | #System Library 35 | LOCAL_LDLIBS := -landroid -llog 36 | 37 | 38 | #algthm Library 39 | USER_LIB_FILES += 40 | 41 | 42 | include $(BUILD_STATIC_LIBRARY) 43 | -------------------------------------------------------------------------------- /jni/ALGTHM/EFALGSaliency.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * EFALGSaliency.cpp 3 | * 4 | * Created on: 2016年1月12日 5 | * Author: yangyk 6 | */ 7 | 8 | #include "EFALGSaliency.h" 9 | 10 | 11 | EFALGSaliency::EFALGSaliency() 12 | { 13 | 14 | } 15 | 16 | EFALGSaliency::~EFALGSaliency() 17 | { 18 | 19 | } 20 | 21 | /* 22 | * 涉及到企业核心算法,出于保密目的不能公布! 所以此类所有实现代码均删除。 23 | */ 24 | 25 | bool EFALGSaliency::open(NXPtr& source, uint32_t width, uint32_t height) 26 | { 27 | return true ; 28 | } 29 | bool EFALGSaliency::saliency(NXPtr& target, int precision, NXRect& rect, std::vector& result) 30 | { 31 | return true ; 32 | } 33 | bool EFALGSaliency::close() 34 | { 35 | return true ; 36 | } 37 | 38 | bool EFALGSaliency::static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, NXRect& rect, std::vector& result) 39 | { 40 | rect = NXRectMake(0.3f,0.3f,0.3f,0.3f) ; 41 | return true ; 42 | } 43 | 44 | bool EFALGSaliency::static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, NXRect& rect) 45 | { 46 | rect = NXRectMake(0.3f,0.3f,0.3f,0.3f) ; 47 | return true ; 48 | } 49 | 50 | bool EFALGSaliency::static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, std::vector& result) 51 | { 52 | return true ; 53 | } 54 | -------------------------------------------------------------------------------- /jni/ALGTHM/EFALGSaliency.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EFALGSaliency.h 3 | * 4 | * Created on: 2016年1月12日 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class EFALGSaliency 13 | { 14 | private: 15 | public: 16 | EFALGSaliency(); 17 | virtual ~EFALGSaliency(); 18 | public: 19 | bool open(NXPtr& source, uint32_t width, uint32_t height) ; 20 | bool saliency(NXPtr& target, int precision, NXRect& rect, std::vector& result) ; 21 | bool close(); 22 | public: 23 | static bool static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, NXRect& rect, std::vector& result) ; 24 | static bool static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, NXRect& rect) ; 25 | static bool static_saliency(NXPtr& source, uint32_t width, uint32_t height, int precision, std::vector& result) ; 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /jni/ALGTHM/EFALGTracker.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * EFALGTracker.cpp 3 | * 4 | * Created on: 2016年1月12日 5 | * Author: yangyk 6 | */ 7 | 8 | #include "EFALGTracker.h" 9 | 10 | EFALGTracker::EFALGTracker() 11 | { 12 | _trackFirst = -1 ; 13 | } 14 | 15 | EFALGTracker::~EFALGTracker() 16 | { 17 | 18 | } 19 | 20 | /* 21 | * 涉及到企业核心算法,出于保密目的不能公布! 所以此类所有实现代码均删除。 22 | */ 23 | 24 | bool EFALGTracker::scaleGray(NXPtr& source) 25 | { 26 | return true ; 27 | } 28 | 29 | bool EFALGTracker::open(NXPtr& source, uint32_t width, uint32_t height, NXRect& rect) 30 | { 31 | _testRect = rect ; 32 | return true ; 33 | } 34 | 35 | bool EFALGTracker::track(NXPtr& target, NXRect& result) 36 | { 37 | result = _testRect ; 38 | return true ; 39 | } 40 | 41 | bool EFALGTracker::close() 42 | { 43 | return true ; 44 | } 45 | -------------------------------------------------------------------------------- /jni/ALGTHM/EFALGTracker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EFALGTracker.h 3 | * 4 | * Created on: 2016年1月12日 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class EFALGTracker 13 | { 14 | private: 15 | NXRect _testRect ; 16 | public: 17 | int32_t _trackFirst ; 18 | public: 19 | EFALGTracker(); 20 | virtual ~EFALGTracker(); 21 | private: 22 | bool scaleGray(NXPtr& source); 23 | public: 24 | bool open(NXPtr& source, uint32_t width, uint32_t height, NXIN NXRect& rect) ; 25 | bool track(NXPtr& target, NXOUT NXRect& result) ; 26 | bool close() ; 27 | }; 28 | 29 | -------------------------------------------------------------------------------- /jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_STL := stlport_static 2 | #APP_ABI := armeabi armeabi-v7a mips x86 3 | APP_ABI := armeabi-v7a -------------------------------------------------------------------------------- /jni/COCOS2DX/actions/CCActionTiledGrid.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/COCOS2DX/actions/CCActionTiledGrid.cpp -------------------------------------------------------------------------------- /jni/COCOS2DX/cocoa/CCInteger.h: -------------------------------------------------------------------------------- 1 | #ifndef __CCINTEGER_H__ 2 | #define __CCINTEGER_H__ 3 | 4 | #include "CCNumber.h" 5 | 6 | NS_CC_BEGIN 7 | 8 | /** 9 | * @addtogroup data_structures 10 | * @{ 11 | * @js NA 12 | */ 13 | 14 | class CC_DLL CCInteger : public CCNumber 15 | { 16 | public: 17 | CCInteger(int v) { m_dValue = v ;} 18 | int getValue() const {return m_dValue;} 19 | 20 | static CCInteger* create(int v) 21 | { 22 | CCInteger* pRet = new CCInteger(v); 23 | pRet->autorelease(); 24 | return pRet; 25 | } 26 | 27 | /* override functions 28 | * @lua NA 29 | */ 30 | virtual void acceptVisitor(CCDataVisitor &visitor) { visitor.visit(this); } 31 | }; 32 | 33 | // end of data_structure group 34 | /// @} 35 | 36 | NS_CC_END 37 | 38 | #endif /* __CCINTEGER_H__ */ 39 | -------------------------------------------------------------------------------- /jni/COCOS2DX/cocoa/CCZone.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010 cocos2d-x.org 3 | 4 | http://www.cocos2d-x.org 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | ****************************************************************************/ 24 | #include "CCZone.h" 25 | #include "CCObject.h" 26 | 27 | NS_CC_BEGIN 28 | 29 | CCZone::CCZone(CCObject *pObject) 30 | { 31 | m_pCopyObject = pObject; 32 | } 33 | 34 | NS_CC_END 35 | -------------------------------------------------------------------------------- /jni/COCOS2DX/cocoa/CCZone.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010 cocos2d-x.org 3 | 4 | http://www.cocos2d-x.org 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | ****************************************************************************/ 24 | 25 | #ifndef __CC_ZONE_H__ 26 | #define __CC_ZONE_H__ 27 | 28 | #include "platform/CCPlatformMacros.h" 29 | #include 30 | 31 | NS_CC_BEGIN 32 | 33 | /** 34 | * @addtogroup data_structures 35 | * @{ 36 | */ 37 | 38 | class CCObject; 39 | /** 40 | * @js NA 41 | * @lua NA 42 | */ 43 | class CC_DLL CCZone 44 | { 45 | public: 46 | CCZone(CCObject *pObject = NULL); 47 | 48 | public: 49 | CCObject *m_pCopyObject; 50 | }; 51 | 52 | // end of data_structure group 53 | /// @} 54 | 55 | NS_CC_END 56 | 57 | #endif // __CC_ZONE_H__ 58 | 59 | -------------------------------------------------------------------------------- /jni/COCOS2DX/cocos2d.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010-2012 cocos2d-x.org 3 | Copyright (c) 2008-2010 Ricardo Quesada 4 | Copyright (c) 2011 Zynga Inc. 5 | 6 | http://www.cocos2d-x.org 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | ****************************************************************************/ 26 | 27 | #include "cocos2d.h" 28 | 29 | NS_CC_BEGIN 30 | 31 | const char* cocos2dVersion() 32 | { 33 | return "cocos2d-x 2.2.6"; 34 | } 35 | 36 | NS_CC_END 37 | 38 | -------------------------------------------------------------------------------- /jni/COCOS2DX/include/CCEventType.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __CCEVENT_TYPE_H__ 3 | #define __CCEVENT_TYPE_H__ 4 | 5 | /** 6 | * This header is used for defining event types using in CCNotificationCenter 7 | */ 8 | 9 | // The application will come to foreground. 10 | // This message is used for reloading resources before come to foreground on Android. 11 | // This message is posted in main.cpp. 12 | #define EVENT_COME_TO_FOREGROUND "event_come_to_foreground" 13 | 14 | // The application will come to background. 15 | // This message is used for doing something before coming to background, such as save CCRenderTexture. 16 | // This message is posted in cocos2dx/platform/android/jni/MessageJni.cpp. 17 | #define EVENT_COME_TO_BACKGROUND "event_come_to_background" 18 | 19 | #endif // __CCEVENT_TYPE_H__ 20 | -------------------------------------------------------------------------------- /jni/COCOS2DX/kazmath/include/kazmath/kazmath.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2008, Luke Benstead. 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 21 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | #ifndef KAZMATH_H_INCLUDED 27 | #define KAZMATH_H_INCLUDED 28 | 29 | #include "vec2.h" 30 | #include "vec3.h" 31 | #include "mat3.h" 32 | #include "mat4.h" 33 | #include "utility.h" 34 | #include "quaternion.h" 35 | #include "plane.h" 36 | #include "aabb.h" 37 | #include "ray2.h" 38 | 39 | #endif // KAZMATH_H_INCLUDED 40 | -------------------------------------------------------------------------------- /jni/COCOS2DX/kazmath/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | #ADD_LIBRARY(Kazmath STATIC ${KAZMATH_SRCS}) 3 | #INSTALL(TARGETS Kazmath ARCHIVE DESTINATION lib) 4 | 5 | INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include ) 6 | 7 | ADD_LIBRARY(kazmath STATIC ${KAZMATH_SOURCES}) 8 | INSTALL(TARGETS kazmath ARCHIVE DESTINATION lib) 9 | 10 | #ADD_LIBRARY(KazmathGL STATIC ${GL_UTILS_SRCS}) 11 | #INSTALL(TARGETS KazmathGL ARCHIVE DESTINATION lib) 12 | 13 | INSTALL(FILES ${KAZMATH_HEADERS} DESTINATION include/kazmath) 14 | INSTALL(FILES ${GL_UTILS_HEADERS} DESTINATION include/kazmath/GL) 15 | -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/CCDevice.h: -------------------------------------------------------------------------------- 1 | #ifndef __CCDEVICE_H__ 2 | #define __CCDEVICE_H__ 3 | 4 | #include "CCPlatformMacros.h" 5 | 6 | NS_CC_BEGIN 7 | /** 8 | @js NA 9 | @lua NA 10 | */ 11 | class CC_DLL CCDevice 12 | { 13 | private: 14 | CCDevice(); 15 | public: 16 | /** 17 | * Gets the DPI of device 18 | * @return The DPI of device. 19 | */ 20 | static int getDPI(); 21 | }; 22 | 23 | 24 | NS_CC_END 25 | 26 | #endif /* __CCDEVICE_H__ */ 27 | -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/CCThread.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010 cocos2d-x.org 3 | 4 | http://www.cocos2d-x.org 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | ****************************************************************************/ 24 | 25 | #include "CCThread.h" 26 | 27 | // iOS and Mac already has a CCThread.mm 28 | #if (CC_TARGET_PLATFORM != CC_PLATFORM_IOS && CC_TARGET_PLATFORM != CC_PLATFORM_MAC) 29 | 30 | NS_CC_BEGIN 31 | 32 | CCThread::~CCThread() 33 | { 34 | 35 | } 36 | 37 | void CCThread::createAutoreleasePool() 38 | { 39 | 40 | } 41 | 42 | NS_CC_END 43 | 44 | #endif -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/android/CCApplication.h: -------------------------------------------------------------------------------- 1 | #ifndef __CC_APPLICATION_ANDROID_H__ 2 | #define __CC_APPLICATION_ANDROID_H__ 3 | 4 | #include "platform/CCCommon.h" 5 | #include "platform/CCApplicationProtocol.h" 6 | 7 | NS_CC_BEGIN 8 | 9 | class CCRect; 10 | 11 | class CC_DLL CCApplication : public CCApplicationProtocol 12 | { 13 | public: 14 | CCApplication(); 15 | virtual ~CCApplication(); 16 | 17 | /** 18 | @brief Callback by CCDirector to limit FPS. 19 | @interval The time, expressed in seconds, between current frame and next. 20 | */ 21 | void setAnimationInterval(double interval); 22 | 23 | /** 24 | @brief Run the message loop. 25 | */ 26 | int run(); 27 | 28 | /** 29 | @brief Get current application instance. 30 | @return Current application instance pointer. 31 | */ 32 | static CCApplication* sharedApplication(); 33 | 34 | /** 35 | @brief Get current language config 36 | @return Current language config 37 | */ 38 | virtual ccLanguageType getCurrentLanguage(); 39 | 40 | /** 41 | @brief Get target platform 42 | */ 43 | virtual TargetPlatform getTargetPlatform(); 44 | 45 | protected: 46 | static CCApplication * sm_pSharedApplication; 47 | }; 48 | 49 | NS_CC_END 50 | 51 | #endif // __CC_APPLICATION_ANDROID_H__ 52 | -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/android/CCDevice.cpp: -------------------------------------------------------------------------------- 1 | #include "platform/CCDevice.h" 2 | 3 | NS_CC_BEGIN 4 | 5 | int CCDevice::getDPI() 6 | { 7 | static int dpi = 1; 8 | if (dpi == -1) 9 | { 10 | //dpi = (int)getDPIJNI(); 11 | } 12 | return dpi; 13 | } 14 | 15 | NS_CC_END 16 | -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/android/CCPlatformDefine.h: -------------------------------------------------------------------------------- 1 | #ifndef __CCPLATFORMDEFINE_H__ 2 | #define __CCPLATFORMDEFINE_H__ 3 | 4 | #include "android/log.h" 5 | 6 | #define CC_DLL 7 | 8 | #define CC_NO_MESSAGE_PSEUDOASSERT(cond) \ 9 | if (!(cond)) { \ 10 | __android_log_print(ANDROID_LOG_ERROR, \ 11 | "cocos2d-x assert", \ 12 | "%s function:%s line:%d", \ 13 | __FILE__, __FUNCTION__, __LINE__); \ 14 | } 15 | 16 | #define CC_MESSAGE_PSEUDOASSERT(cond, msg) \ 17 | if (!(cond)) { \ 18 | __android_log_print(ANDROID_LOG_ERROR, \ 19 | "cocos2d-x assert", \ 20 | "file:%s function:%s line:%d, %s", \ 21 | __FILE__, __FUNCTION__, __LINE__, msg); \ 22 | } 23 | 24 | #define CC_ASSERT(cond) CC_NO_MESSAGE_PSEUDOASSERT(cond) 25 | 26 | #define CC_UNUSED_PARAM(unusedparam) (void)unusedparam 27 | 28 | /* Define NULL pointer value */ 29 | #ifndef NULL 30 | #ifdef __cplusplus 31 | #define NULL 0 32 | #else 33 | #define NULL ((void *)0) 34 | #endif 35 | #endif 36 | 37 | #endif /* __CCPLATFORMDEFINE_H__*/ 38 | -------------------------------------------------------------------------------- /jni/COCOS2DX/platform/android/CCStdC.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010 cocos2d-x.org 3 | 4 | http://www.cocos2d-x.org 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | ****************************************************************************/ 24 | 25 | #ifndef __CC_STD_C_H__ 26 | #define __CC_STD_C_H__ 27 | 28 | #include "platform/CCPlatformMacros.h" 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | 39 | #ifndef MIN 40 | #define MIN(x,y) (((x) > (y)) ? (y) : (x)) 41 | #endif // MIN 42 | 43 | #ifndef MAX 44 | #define MAX(x,y) (((x) < (y)) ? (y) : (x)) 45 | #endif // MAX 46 | 47 | #endif // __CC_STD_C_H__ 48 | -------------------------------------------------------------------------------- /jni/COCOS2DX/scene_node/CCScene.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010-2012 cocos2d-x.org 3 | Copyright (c) 2008-2010 Ricardo Quesada 4 | Copyright (c) 2011 Zynga Inc. 5 | 6 | http://www.cocos2d-x.org 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | ****************************************************************************/ 26 | 27 | #include "CCScene.h" 28 | #include "support/CCPointExtension.h" 29 | #include "CCDirector.h" 30 | #include "CCScheduler.h" 31 | 32 | NS_CC_BEGIN 33 | 34 | CCScene::CCScene() 35 | { 36 | m_bIgnoreAnchorPointForPosition = true ; 37 | setAnchorPoint(ccp(0.5f, 0.5f)); 38 | } 39 | 40 | CCScene::~CCScene() 41 | { 42 | } 43 | 44 | void CCScene::updateTime(float time) 45 | { 46 | this->m_pScheduler->update(time) ; 47 | } 48 | 49 | NS_CC_END 50 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShaderEx_SwitchMask_frag.h: -------------------------------------------------------------------------------- 1 | " \n\ 2 | #ifdef GL_ES \n\ 3 | precision lowp float; \n\ 4 | #endif \n\ 5 | \n\ 6 | varying vec4 v_fragmentColor; \n\ 7 | varying vec2 v_texCoord; \n\ 8 | uniform sampler2D u_texture; \n\ 9 | uniform sampler2D u_mask; \n\ 10 | \n\ 11 | void main() \n\ 12 | { \n\ 13 | vec4 texColor = texture2D(u_texture, v_texCoord); \n\ 14 | vec4 maskColor = texture2D(u_mask, v_texCoord); \n\ 15 | vec4 finalColor = vec4(texColor.r, texColor.g, texColor.b, maskColor.a * texColor.a); \n\ 16 | gl_FragColor = v_fragmentColor * finalColor; \n\ 17 | } \n\ 18 | "; 19 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionColor_frag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | #ifdef GL_ES \n\ 28 | precision lowp float; \n\ 29 | #endif \n\ 30 | \n\ 31 | varying vec4 v_fragmentColor; \n\ 32 | \n\ 33 | void main() \n\ 34 | { \n\ 35 | gl_FragColor = v_fragmentColor; \n\ 36 | } \n\ 37 | "; 38 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionColor_vert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | attribute vec4 a_position; \n\ 28 | attribute vec4 a_color; \n\ 29 | #ifdef GL_ES \n\ 30 | varying lowp vec4 v_fragmentColor; \n\ 31 | #else \n\ 32 | varying vec4 v_fragmentColor; \n\ 33 | #endif \n\ 34 | \n\ 35 | void main() \n\ 36 | { \n\ 37 | gl_Position = CC_MVPMatrix * a_position; \n\ 38 | v_fragmentColor = a_color; \n\ 39 | } \n\ 40 | "; 41 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionTextureColor_frag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | #ifdef GL_ES \n\ 28 | precision lowp float; \n\ 29 | #endif \n\ 30 | \n\ 31 | varying vec4 v_fragmentColor; \n\ 32 | varying vec2 v_texCoord; \n\ 33 | uniform sampler2D CC_Texture0; \n\ 34 | \n\ 35 | void main() \n\ 36 | { \n\ 37 | gl_FragColor = v_fragmentColor * texture2D(CC_Texture0, v_texCoord); \n\ 38 | } \n\ 39 | "; 40 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionTexture_frag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | #ifdef GL_ES \n\ 28 | precision lowp float; \n\ 29 | #endif \n\ 30 | \n\ 31 | varying vec2 v_texCoord; \n\ 32 | uniform sampler2D CC_Texture0; \n\ 33 | \n\ 34 | void main() \n\ 35 | { \n\ 36 | gl_FragColor = texture2D(CC_Texture0, v_texCoord); \n\ 37 | } \n\ 38 | "; 39 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionTexture_uColor_frag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | #ifdef GL_ES \n\ 28 | precision lowp float; \n\ 29 | #endif \n\ 30 | \n\ 31 | uniform vec4 u_color; \n\ 32 | \n\ 33 | varying vec2 v_texCoord; \n\ 34 | \n\ 35 | uniform sampler2D CC_Texture0; \n\ 36 | \n\ 37 | void main() \n\ 38 | { \n\ 39 | gl_FragColor = texture2D(CC_Texture0, v_texCoord) * u_color; \n\ 40 | } \n\ 41 | "; 42 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionTexture_uColor_vert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | attribute vec4 a_position; \n\ 28 | attribute vec2 a_texCoord; \n\ 29 | \n\ 30 | #ifdef GL_ES \n\ 31 | varying mediump vec2 v_texCoord; \n\ 32 | #else \n\ 33 | varying vec2 v_texCoord; \n\ 34 | #endif \n\ 35 | \n\ 36 | void main() \n\ 37 | { \n\ 38 | gl_Position = CC_MVPMatrix * a_position; \n\ 39 | v_texCoord = a_texCoord; \n\ 40 | } \n\ 41 | "; 42 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_PositionTexture_vert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | attribute vec4 a_position; \n\ 28 | attribute vec2 a_texCoord; \n\ 29 | \n\ 30 | #ifdef GL_ES \n\ 31 | varying mediump vec2 v_texCoord; \n\ 32 | #else \n\ 33 | varying vec2 v_texCoord; \n\ 34 | #endif \n\ 35 | \n\ 36 | void main() \n\ 37 | { \n\ 38 | gl_Position = CC_MVPMatrix * a_position; \n\ 39 | v_texCoord = a_texCoord; \n\ 40 | } \n\ 41 | "; 42 | -------------------------------------------------------------------------------- /jni/COCOS2DX/shaders/ccShader_Position_uColor_frag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cocos2d for iPhone: http://www.cocos2d-iphone.org 3 | * 4 | * Copyright (c) 2011 Ricardo Quesada 5 | * Copyright (c) 2012 Zynga Inc. 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | * 14 | * The above copyright notice and this permission notice shall be included in 15 | * all copies or substantial portions of the Software. 16 | * 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | * THE SOFTWARE. 24 | */ 25 | 26 | " \n\ 27 | #ifdef GL_ES \n\ 28 | precision lowp float; \n\ 29 | #endif \n\ 30 | \n\ 31 | varying vec4 v_fragmentColor; \n\ 32 | \n\ 33 | void main() \n\ 34 | { \n\ 35 | gl_FragColor = v_fragmentColor; \n\ 36 | } \n\ 37 | "; 38 | -------------------------------------------------------------------------------- /jni/COCOS2DX/support/TransformUtils.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010-2012 cocos2d-x.org 3 | Copyright (c) 2009 Valentin Milea 4 | 5 | http://www.cocos2d-x.org 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | ****************************************************************************/ 25 | 26 | #ifndef __SUPPORT_TRANSFORM_UTILS_H__ 27 | #define __SUPPORT_TRANSFORM_UTILS_H__ 28 | 29 | // todo: 30 | // when in MAC or windows, it includes 31 | #include "CCGL.h" 32 | 33 | namespace cocos2d { 34 | 35 | struct CCAffineTransform; 36 | 37 | void CGAffineToGL(const CCAffineTransform *t, GLfloat *m); 38 | void GLToCGAffine(const GLfloat *m, CCAffineTransform *t); 39 | }//namespace cocos2d 40 | 41 | #endif // __SUPPORT_TRANSFORM_UTILS_H__ 42 | -------------------------------------------------------------------------------- /jni/COCOS2DX/support/ccUtils.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | Copyright (c) 2010 cocos2d-x.org 3 | 4 | http://www.cocos2d-x.org 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | ****************************************************************************/ 24 | #include "ccUtils.h" 25 | 26 | namespace cocos2d { 27 | 28 | unsigned long ccNextPOT(unsigned long x) 29 | { 30 | x = x - 1; 31 | x = x | (x >> 1); 32 | x = x | (x >> 2); 33 | x = x | (x >> 4); 34 | x = x | (x >> 8); 35 | x = x | (x >>16); 36 | return x + 1; 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /jni/LEAKER/LEAKER.mk: -------------------------------------------------------------------------------- 1 | include $(CLEAR_VARS) 2 | LOCAL_CFLAGS += $(COMPILE_CFLAGS) 3 | 4 | 5 | #Module Name 6 | LOCAL_MODULE := LEAKER 7 | 8 | 9 | #Include Paths 10 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/LEAKER \ 11 | LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/LEAKER \ 12 | 13 | 14 | #Local Library 15 | LOCAL_STATIC_LIBRARIES := 16 | 17 | 18 | #Local Library 19 | LOCAL_SHARED_LIBRARIES := 20 | 21 | 22 | #Source Files 23 | LOCAL_SRC_FILES := LEAKER/leaker.cpp \ 24 | 25 | 26 | #System Library 27 | LOCAL_LDLIBS := -landroid -llog 28 | 29 | #ffmpeg Library 30 | LOCAL_LDLIBS += 31 | 32 | 33 | 34 | include $(BUILD_STATIC_LIBRARY) -------------------------------------------------------------------------------- /jni/LEAKER/leaker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * leaker.h 3 | * 4 | * Created on: 2015-11-24 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | 12 | namespace leaker { 13 | 14 | void* nx_malloc(size_t size); 15 | void nx_free(void* ptr); 16 | 17 | void* nx_memcpy(void* target, const void* source, size_t size); 18 | void* nx_memset(void* target, int value, size_t size); 19 | 20 | void* nx_memccpy(void *, const void *, int, size_t); 21 | 22 | } 23 | 24 | #define malloc(x) leaker::nx_malloc(x) 25 | #define free(x) leaker::nx_free(x) 26 | #define memcpy(x,y,z) leaker::nx_memcpy(x,y,z) 27 | #define memset(x,y,z) leaker::nx_memset(x,y,z) 28 | #define memccpy(x,y,z) leaker::nx_memccpy(x,y,z) 29 | 30 | -------------------------------------------------------------------------------- /jni/LIBJSON/LIBJSON.mk: -------------------------------------------------------------------------------- 1 | include $(CLEAR_VARS) 2 | LOCAL_CFLAGS += $(COMPILE_CFLAGS) 3 | 4 | 5 | #Module Name 6 | LOCAL_MODULE := LIBJSON 7 | 8 | 9 | #Include Paths 10 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/LIBJSON/include \ 11 | 12 | 13 | #Export Paths 14 | LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/LIBJSON/include \ 15 | 16 | 17 | #Local Library 18 | LOCAL_STATIC_LIBRARIES := 19 | 20 | 21 | #Local Library 22 | LOCAL_SHARED_LIBRARIES := 23 | 24 | 25 | #Module Files 26 | LOCAL_SRC_FILES := LIBJSON/src/json_reader.cpp \ 27 | LIBJSON/src/json_value.cpp \ 28 | LIBJSON/src/json_writer.cpp \ 29 | 30 | 31 | #System Library 32 | LOCAL_LDLIBS := -landroid -llog 33 | 34 | 35 | #ffmpeg Library 36 | LOCAL_LDLIB += 37 | 38 | 39 | include $(BUILD_STATIC_LIBRARY) -------------------------------------------------------------------------------- /jni/LIBJSON/include/json/autolink.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007-2010 Baptiste Lepilleur 2 | // Distributed under MIT license, or public domain if desired and 3 | // recognized in your jurisdiction. 4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | #ifndef JSON_AUTOLINK_H_INCLUDED 7 | #define JSON_AUTOLINK_H_INCLUDED 8 | 9 | #include "config.h" 10 | 11 | #ifdef JSON_IN_CPPTL 12 | #include 13 | #endif 14 | 15 | #if !defined(JSON_NO_AUTOLINK) && !defined(JSON_DLL_BUILD) && \ 16 | !defined(JSON_IN_CPPTL) 17 | #define CPPTL_AUTOLINK_NAME "json" 18 | #undef CPPTL_AUTOLINK_DLL 19 | #ifdef JSON_DLL 20 | #define CPPTL_AUTOLINK_DLL 21 | #endif 22 | #include "autolink.h" 23 | #endif 24 | 25 | #endif // JSON_AUTOLINK_H_INCLUDED 26 | -------------------------------------------------------------------------------- /jni/LIBJSON/include/json/forwards.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007-2010 Baptiste Lepilleur 2 | // Distributed under MIT license, or public domain if desired and 3 | // recognized in your jurisdiction. 4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | #ifndef JSON_FORWARDS_H_INCLUDED 7 | #define JSON_FORWARDS_H_INCLUDED 8 | 9 | #if !defined(JSON_IS_AMALGAMATION) 10 | #include "config.h" 11 | #endif // if !defined(JSON_IS_AMALGAMATION) 12 | 13 | namespace json { 14 | 15 | // writer.h 16 | class FastWriter; 17 | class StyledWriter; 18 | 19 | // reader.h 20 | class Reader; 21 | 22 | // features.h 23 | class Features; 24 | 25 | // value.h 26 | typedef unsigned int ArrayIndex; 27 | class StaticString; 28 | class Path; 29 | class PathArgument; 30 | class Value; 31 | class ValueIteratorBase; 32 | class ValueIterator; 33 | class ValueConstIterator; 34 | 35 | } // namespace json 36 | 37 | #endif // JSON_FORWARDS_H_INCLUDED 38 | -------------------------------------------------------------------------------- /jni/LIBJSON/include/json/json.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007-2010 Baptiste Lepilleur 2 | // Distributed under MIT license, or public domain if desired and 3 | // recognized in your jurisdiction. 4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | #ifndef JSON_JSON_H_INCLUDED 7 | #define JSON_JSON_H_INCLUDED 8 | 9 | #include "autolink.h" 10 | #include "value.h" 11 | #include "reader.h" 12 | #include "writer.h" 13 | #include "features.h" 14 | 15 | #endif // JSON_JSON_H_INCLUDED 16 | -------------------------------------------------------------------------------- /jni/LIBJSON/include/json/version.h: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT. This file (and "version") is generated by CMake. 2 | // Run CMake configure step to update it. 3 | #ifndef JSON_VERSION_H_INCLUDED 4 | # define JSON_VERSION_H_INCLUDED 5 | 6 | # define JSONCPP_VERSION_STRING "1.6.5" 7 | # define JSONCPP_VERSION_MAJOR 1 8 | # define JSONCPP_VERSION_MINOR 6 9 | # define JSONCPP_VERSION_PATCH 5 10 | # define JSONCPP_VERSION_QUALIFIER 11 | # define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) 12 | 13 | #endif // JSON_VERSION_H_INCLUDED 14 | -------------------------------------------------------------------------------- /jni/LIBRARY/curl/include/curl/stdcheaders.h: -------------------------------------------------------------------------------- 1 | #ifndef __STDC_HEADERS_H 2 | #define __STDC_HEADERS_H 3 | /*************************************************************************** 4 | * _ _ ____ _ 5 | * Project ___| | | | _ \| | 6 | * / __| | | | |_) | | 7 | * | (__| |_| | _ <| |___ 8 | * \___|\___/|_| \_\_____| 9 | * 10 | * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. 11 | * 12 | * This software is licensed as described in the file COPYING, which 13 | * you should have received as part of this distribution. The terms 14 | * are also available at http://curl.haxx.se/docs/copyright.html. 15 | * 16 | * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17 | * copies of the Software, and permit persons to whom the Software is 18 | * furnished to do so, under the terms of the COPYING file. 19 | * 20 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21 | * KIND, either express or implied. 22 | * 23 | ***************************************************************************/ 24 | 25 | #include 26 | 27 | size_t fread (void *, size_t, size_t, FILE *); 28 | size_t fwrite (const void *, size_t, size_t, FILE *); 29 | 30 | int strcasecmp(const char *, const char *); 31 | int strncasecmp(const char *, const char *, size_t); 32 | 33 | #endif /* __STDC_HEADERS_H */ 34 | -------------------------------------------------------------------------------- /jni/LIBRARY/curl/include/curl/types.h: -------------------------------------------------------------------------------- 1 | /* not used */ 2 | -------------------------------------------------------------------------------- /jni/LIBRARY/curl/lib/armeabi-v7a/libcurl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/curl/lib/armeabi-v7a/libcurl.a -------------------------------------------------------------------------------- /jni/LIBRARY/curl/lib/armeabi/libcurl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/curl/lib/armeabi/libcurl.a -------------------------------------------------------------------------------- /jni/LIBRARY/curl/lib/x86/libcurl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/curl/lib/x86/libcurl.a -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/include/fdk-aac/FDK_audio.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/include/fdk-aac/FDK_audio.h -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/include/fdk-aac/aacdecoder_lib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/include/fdk-aac/aacdecoder_lib.h -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/include/fdk-aac/aacenc_lib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/include/fdk-aac/aacenc_lib.h -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/include/fdk-aac/genericStds.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/include/fdk-aac/genericStds.h -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/include/fdk-aac/machine_type.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/include/fdk-aac/machine_type.h -------------------------------------------------------------------------------- /jni/LIBRARY/fdkaac/lib/arm/libfdk-aac.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/fdkaac/lib/arm/libfdk-aac.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavcodec/qsv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Intel MediaSDK QSV public API 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVCODEC_QSV_H 22 | #define AVCODEC_QSV_H 23 | 24 | #include 25 | 26 | typedef struct AVQSVContext { 27 | mfxSession session; 28 | int iopattern; 29 | 30 | mfxExtBuffer **ext_buffers; 31 | int nb_ext_buffers; 32 | } AVQSVContext; 33 | 34 | /** 35 | * Allocate a new context. 36 | * 37 | * It must be freed by the caller with av_free(). 38 | */ 39 | AVQSVContext *av_qsv_alloc_context(void); 40 | 41 | #endif /* AVCODEC_QSV_H */ 42 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavfilter/avfiltergraph.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Filter graphs 3 | * copyright (c) 2007 Bobby Bingham 4 | * 5 | * This file is part of FFmpeg. 6 | * 7 | * FFmpeg is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * FFmpeg is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with FFmpeg; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef AVFILTER_AVFILTERGRAPH_H 23 | #define AVFILTER_AVFILTERGRAPH_H 24 | 25 | #include "avfilter.h" 26 | #include "libavutil/log.h" 27 | 28 | #endif /* AVFILTER_AVFILTERGRAPH_H */ 29 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/adler32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * copyright (c) 2006 Mans Rullgard 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_ADLER32_H 22 | #define AVUTIL_ADLER32_H 23 | 24 | #include 25 | #include "attributes.h" 26 | 27 | /** 28 | * @file 29 | * Public header for libavutil Adler32 hasher 30 | * 31 | * @defgroup lavu_adler32 Adler32 32 | * @ingroup lavu_crypto 33 | * @{ 34 | */ 35 | 36 | /** 37 | * Calculate the Adler32 checksum of a buffer. 38 | * 39 | * Passing the return value to a subsequent av_adler32_update() call 40 | * allows the checksum of multiple buffers to be calculated as though 41 | * they were concatenated. 42 | * 43 | * @param adler initial checksum value 44 | * @param buf pointer to input buffer 45 | * @param len size of input buffer 46 | * @return updated checksum 47 | */ 48 | unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, 49 | unsigned int len) av_pure; 50 | 51 | /** 52 | * @} 53 | */ 54 | 55 | #endif /* AVUTIL_ADLER32_H */ 56 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/audioconvert.h: -------------------------------------------------------------------------------- 1 | 2 | #include "version.h" 3 | 4 | #if FF_API_AUDIOCONVERT 5 | #include "channel_layout.h" 6 | #endif 7 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffconf */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 7 | #endif /* AVUTIL_AVCONFIG_H */ 8 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | #ifndef AVUTIL_FFVERSION_H 2 | #define AVUTIL_FFVERSION_H 3 | #define FFMPEG_VERSION "2.7.7" 4 | #endif /* AVUTIL_FFVERSION_H */ 5 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | /** 20 | * @file 21 | * @ingroup lavu 22 | * Utility Preprocessor macros 23 | */ 24 | 25 | #ifndef AVUTIL_MACROS_H 26 | #define AVUTIL_MACROS_H 27 | 28 | /** 29 | * @addtogroup preproc_misc Preprocessor String Macros 30 | * 31 | * String manipulation macros 32 | * 33 | * @{ 34 | */ 35 | 36 | #define AV_STRINGIFY(s) AV_TOSTRING(s) 37 | #define AV_TOSTRING(s) #s 38 | 39 | #define AV_GLUE(a, b) a ## b 40 | #define AV_JOIN(a, b) AV_GLUE(a, b) 41 | 42 | /** 43 | * @} 44 | */ 45 | 46 | #define AV_PRAGMA(s) _Pragma(#s) 47 | 48 | #endif /* AVUTIL_MACROS_H */ 49 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/motion_vector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of FFmpeg. 3 | * 4 | * FFmpeg is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * FFmpeg is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with FFmpeg; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef AVUTIL_MOTION_VECTOR_H 20 | #define AVUTIL_MOTION_VECTOR_H 21 | 22 | #include 23 | 24 | typedef struct AVMotionVector { 25 | /** 26 | * Where the current macroblock comes from; negative value when it comes 27 | * from the past, positive value when it comes from the future. 28 | * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". 29 | */ 30 | int32_t source; 31 | /** 32 | * Width and height of the block. 33 | */ 34 | uint8_t w, h; 35 | /** 36 | * Absolute source position. Can be outside the frame area. 37 | */ 38 | int16_t src_x, src_y; 39 | /** 40 | * Absolute destination position. Can be outside the frame area. 41 | */ 42 | int16_t dst_x, dst_y; 43 | /** 44 | * Extra flag information. 45 | * Currently unused. 46 | */ 47 | uint64_t flags; 48 | } AVMotionVector; 49 | 50 | #endif /* AVUTIL_MOTION_VECTOR_H */ 51 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/murmur3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Reimar Döffinger 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_MURMUR3_H 22 | #define AVUTIL_MURMUR3_H 23 | 24 | #include 25 | 26 | struct AVMurMur3 *av_murmur3_alloc(void); 27 | void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed); 28 | void av_murmur3_init(struct AVMurMur3 *c); 29 | void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, int len); 30 | void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]); 31 | 32 | #endif /* AVUTIL_MURMUR3_H */ 33 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/random_seed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009 Baptiste Coudurier 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef AVUTIL_RANDOM_SEED_H 22 | #define AVUTIL_RANDOM_SEED_H 23 | 24 | #include 25 | /** 26 | * @addtogroup lavu_crypto 27 | * @{ 28 | */ 29 | 30 | /** 31 | * Get a seed to use in conjunction with random functions. 32 | * This function tries to provide a good seed at a best effort bases. 33 | * Its possible to call this function multiple times if more bits are needed. 34 | * It can be quite slow, which is why it should only be used as seed for a faster 35 | * PRNG. The quality of the seed depends on the platform. 36 | */ 37 | uint32_t av_get_random_seed(void); 38 | 39 | /** 40 | * @} 41 | */ 42 | 43 | #endif /* AVUTIL_RANDOM_SEED_H */ 44 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libavutil/replaygain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * This file is part of FFmpeg. 4 | * 5 | * FFmpeg is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * FFmpeg is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with FFmpeg; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef AVUTIL_REPLAYGAIN_H 21 | #define AVUTIL_REPLAYGAIN_H 22 | 23 | #include 24 | 25 | /** 26 | * ReplayGain information (see 27 | * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). 28 | * The size of this struct is a part of the public ABI. 29 | */ 30 | typedef struct AVReplayGain { 31 | /** 32 | * Track replay gain in microbels (divide by 100000 to get the value in dB). 33 | * Should be set to INT32_MIN when unknown. 34 | */ 35 | int32_t track_gain; 36 | /** 37 | * Peak track amplitude, with 100000 representing full scale (but values 38 | * may overflow). 0 when unknown. 39 | */ 40 | uint32_t track_peak; 41 | /** 42 | * Same as track_gain, but for the whole album. 43 | */ 44 | int32_t album_gain; 45 | /** 46 | * Same as track_peak, but for the whole album, 47 | */ 48 | uint32_t album_peak; 49 | } AVReplayGain; 50 | 51 | #endif /* AVUTIL_REPLAYGAIN_H */ 52 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libpostproc/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of FFmpeg. 5 | * 6 | * FFmpeg is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * FFmpeg is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with FFmpeg; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef POSTPROC_POSTPROCESS_VERSION_H 22 | #define POSTPROC_POSTPROCESS_VERSION_H 23 | 24 | /** 25 | * @file 26 | * Libpostproc version macros 27 | */ 28 | 29 | #include "libavutil/avutil.h" 30 | 31 | #define LIBPOSTPROC_VERSION_MAJOR 53 32 | #define LIBPOSTPROC_VERSION_MINOR 3 33 | #define LIBPOSTPROC_VERSION_MICRO 100 34 | 35 | #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ 36 | LIBPOSTPROC_VERSION_MINOR, \ 37 | LIBPOSTPROC_VERSION_MICRO) 38 | #define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \ 39 | LIBPOSTPROC_VERSION_MINOR, \ 40 | LIBPOSTPROC_VERSION_MICRO) 41 | #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT 42 | 43 | #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) 44 | 45 | #endif /* POSTPROC_POSTPROCESS_VERSION_H */ 46 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/include/libswresample/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Version macros. 3 | * 4 | * This file is part of libswresample 5 | * 6 | * libswresample is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * libswresample is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with libswresample; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef SWR_VERSION_H 22 | #define SWR_VERSION_H 23 | 24 | /** 25 | * @file 26 | * Libswresample version macros 27 | */ 28 | 29 | #include "libavutil/avutil.h" 30 | 31 | #define LIBSWRESAMPLE_VERSION_MAJOR 1 32 | #define LIBSWRESAMPLE_VERSION_MINOR 2 33 | #define LIBSWRESAMPLE_VERSION_MICRO 100 34 | 35 | #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ 36 | LIBSWRESAMPLE_VERSION_MINOR, \ 37 | LIBSWRESAMPLE_VERSION_MICRO) 38 | #define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \ 39 | LIBSWRESAMPLE_VERSION_MINOR, \ 40 | LIBSWRESAMPLE_VERSION_MICRO) 41 | #define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT 42 | 43 | #define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION) 44 | 45 | #endif /* SWR_VERSION_H */ 46 | -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavcodec.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavcodec.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavdevice.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavdevice.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavfilter.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavfilter.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavformat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavformat.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavresample.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavresample.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libavutil.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libavutil.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libpostproc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libpostproc.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libswresample.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libswresample.a -------------------------------------------------------------------------------- /jni/LIBRARY/ffmpeg/lib/arm/libswscale.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/ffmpeg/lib/arm/libswscale.a -------------------------------------------------------------------------------- /jni/LIBRARY/jpeg/lib/arm/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/jpeg/lib/arm/libjpeg.a -------------------------------------------------------------------------------- /jni/LIBRARY/jpeg/lib/armeabi/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/jpeg/lib/armeabi/libjpeg.a -------------------------------------------------------------------------------- /jni/LIBRARY/jpeg/lib/x86/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/jpeg/lib/x86/libjpeg.a -------------------------------------------------------------------------------- /jni/LIBRARY/png/include/pngusr.h: -------------------------------------------------------------------------------- 1 | #define PNG_USER_PRIVATEBUILD "Skia build; no MNG features" 2 | #define PNG_USER_DLLFNAME_POSTFIX "Sk" 3 | #define PNG_NO_MNG_FEATURES 4 | #define PNG_NO_READ_GAMMA 5 | -------------------------------------------------------------------------------- /jni/LIBRARY/png/lib/arm/libpng.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/png/lib/arm/libpng.a -------------------------------------------------------------------------------- /jni/LIBRARY/png/lib/armeabi/libpng.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/png/lib/armeabi/libpng.a -------------------------------------------------------------------------------- /jni/LIBRARY/png/lib/x86/libpng.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/png/lib/x86/libpng.a -------------------------------------------------------------------------------- /jni/LIBRARY/tiff/include/tiffvers.h: -------------------------------------------------------------------------------- 1 | #define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.9.2\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." 2 | /* 3 | * This define can be used in code that requires 4 | * compilation-related definitions specific to a 5 | * version or versions of the library. Runtime 6 | * version checking should be done based on the 7 | * string returned by TIFFGetVersion. 8 | */ 9 | #define TIFFLIB_VERSION 20091104 10 | -------------------------------------------------------------------------------- /jni/LIBRARY/tiff/lib/arm/libtiff.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/tiff/lib/arm/libtiff.a -------------------------------------------------------------------------------- /jni/LIBRARY/tiff/lib/armeabi/libtiff.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/tiff/lib/armeabi/libtiff.a -------------------------------------------------------------------------------- /jni/LIBRARY/tiff/lib/x86/libtiff.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/tiff/lib/x86/libtiff.a -------------------------------------------------------------------------------- /jni/LIBRARY/x264/include/x264_config.h: -------------------------------------------------------------------------------- 1 | #define X264_BIT_DEPTH 8 2 | #define X264_GPL 1 3 | #define X264_INTERLACED 1 4 | #define X264_CHROMA_FORMAT 0 5 | #define X264_VERSION "" 6 | #define X264_POINTVER "0.148.x" 7 | -------------------------------------------------------------------------------- /jni/LIBRARY/x264/lib/arm/libx264.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/jni/LIBRARY/x264/lib/arm/libx264.a -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCContext.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCContext.cpp 3 | * 4 | * Created on: 2015-11-18 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXCCContext.h" 9 | 10 | NXCCContext::NXCCContext() 11 | { 12 | _openglContext = new NXGLContext(true) ; 13 | _openglSurface = NULL ; 14 | } 15 | 16 | NXCCContext::~NXCCContext() 17 | { 18 | _openglContext = NULL ; 19 | _openglSurface = NULL ; 20 | } 21 | 22 | NXPtr& NXCCContext::getDrawContext() 23 | { 24 | return _openglContext ; 25 | } 26 | 27 | void NXCCContext::setDrawSurface(NXPtr& suface) 28 | { 29 | _openglSurface = suface ; 30 | _openglContext->setSurface(_openglSurface) ; 31 | } 32 | 33 | bool NXCCContext::hasDrawSurface() 34 | { 35 | return _openglSurface != NULL ; 36 | } 37 | 38 | void NXCCContext::setCCCurrentContext() 39 | { 40 | _openglContext->makeCurrent() ; 41 | } 42 | 43 | void NXCCContext::setCCViewport(int x, int y, int w, int h) 44 | { 45 | glViewport(x, y, w, h) ; 46 | } 47 | 48 | void NXCCContext::swapCCBuffers() 49 | { 50 | if(_openglSurface) 51 | _openglContext->swapBuffers() ; 52 | } 53 | 54 | cocos2d::CCPoint NXCCContext::getCCWindowOrigin() 55 | { 56 | return ccp(0, 0) ; 57 | } 58 | 59 | cocos2d::CCSize NXCCContext::getCCWindowSize() 60 | { 61 | if(_openglSurface == NULL) 62 | return cocos2d::CCSize(0, 0) ; 63 | int32_t width = _openglSurface->getSurfaceWidth() ; 64 | int32_t height = _openglSurface->getSurfaceHeight() ; 65 | return cocos2d::CCSize(width, height) ; 66 | } 67 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCContext.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCContext.h 3 | * 4 | * Created on: 2015-11-18 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "cocos2d.h" 11 | 12 | #include "../NXGL/NXGLContext.h" 13 | #include "../NXGL/NXGLSurface.h" 14 | 15 | class NXCCContext: public cocos2d::CCContext 16 | { 17 | private: 18 | NXPtr _openglContext ; 19 | NXPtr _openglSurface ; 20 | public: 21 | NXCCContext(); 22 | virtual ~NXCCContext(); 23 | public: 24 | NXPtr& getDrawContext(); 25 | void setDrawSurface(NXPtr& suface) ; 26 | bool hasDrawSurface() ; 27 | public: 28 | virtual void setCCCurrentContext() ; 29 | virtual void setCCViewport(int x, int y, int w, int h) ; 30 | virtual void swapCCBuffers() ; 31 | virtual cocos2d::CCPoint getCCWindowOrigin() ; 32 | virtual cocos2d::CCSize getCCWindowSize() ; 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCDirector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * CCAndroidNativeDirector.h 3 | * 4 | * Created on: 2015-10-28 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "cocos2d.h" 11 | 12 | #include "NXCCContext.h" 13 | 14 | #include "../NXKT/NXPtr.hpp" 15 | #include "../NXKT/NXTimer.h" 16 | #include "../NXWB/NXWorkbeach.h" 17 | 18 | 19 | class NXCCDirector : public cocos2d::CCDirector 20 | , public NXObject 21 | , public NXTimerRunner 22 | { 23 | private: 24 | bool _animationRunning ; 25 | NXPtr _animationTimer ; 26 | NXCCContext* _animationContext ; 27 | 28 | #ifdef PRINT_COCOS2DX_ANIM_TIME 29 | uint32_t _animationLastTick ; 30 | #endif 31 | public: 32 | NXCCDirector(); 33 | virtual ~NXCCDirector(); 34 | public: 35 | const NXCCContext* getAnimationContext(); 36 | void setAnimationSurface(NXPtr& surface); 37 | void delAnimationSurface(); 38 | EGLConfig getAnimationConfig(); 39 | void setCurrentContext() ; 40 | public: 41 | virtual void setAnimationInterval(double dValue) ; 42 | virtual void stopAnimation(void) ; 43 | virtual void startAnimation(void) ; 44 | virtual void pauseAnimation(bool pause) ; 45 | virtual bool isAnimationRuning() ; 46 | virtual void mainLoop(void) ; 47 | public: 48 | static NXCCDirector& getSharedDirector() ; 49 | public: 50 | virtual void on_timer_start(NXTimer* timer) ; 51 | virtual void on_timer_running(NXTimer* timer) ; 52 | virtual void on_timer_stop(NXTimer* timer) ; 53 | public: 54 | void on_animation_runloop(NXPtr& param1, NXPtr& param2, void* param3, uint32_t param4, uint64_t param5, double param6) ; 55 | }; 56 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCNode.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCNode.cpp 3 | * 4 | * Created on: 2015-11-19 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXCCNode.h" 9 | 10 | NXCCNode::NXCCNode() 11 | { 12 | setAnchorPoint(ccp(0.5f, 0.5f)); 13 | } 14 | 15 | NXCCNode::~NXCCNode() 16 | { 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCNode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCNode.h 3 | * 4 | * Created on: 2015-11-19 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "cocos2d.h" 11 | 12 | using namespace cocos2d ; 13 | 14 | class NXCCNode : public CCNode 15 | { 16 | public: 17 | NXCCNode(); 18 | virtual ~NXCCNode(); 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCShareNode.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCShareNode.cpp 3 | * 4 | * Created on: 2015-11-19 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXCCShareNode.h" 9 | 10 | NXCCShareNode::NXCCShareNode() 11 | { 12 | setAnchorPoint(ccp(0.5, 0.5)) ; 13 | } 14 | 15 | NXCCShareNode::~NXCCShareNode() 16 | { 17 | 18 | } 19 | 20 | void NXCCShareNode::addChild(CCNode* child) 21 | { 22 | this->addChild(child, 1, 0) ; 23 | } 24 | 25 | void NXCCShareNode::addChild(CCNode* child, int zOrder) 26 | { 27 | this->addChild(child, zOrder, 0) ; 28 | } 29 | 30 | void NXCCShareNode::addChild(CCNode* child, int zOrder, int tag) 31 | { 32 | //CCAssert( child != NULL, "Argument must be non-nil"); 33 | //CCAssert( child->m_pParent == NULL, "child already added. It can't be added again"); 34 | 35 | if( ! m_pChildren ) 36 | { 37 | this->childrenAlloc(); 38 | } 39 | 40 | this->insertChild(child, zOrder); 41 | 42 | child->setTag(tag) ; 43 | 44 | //child->setParent(this); 45 | child->setOrderOfArrival(CCNodeGlobalOrderOfArrival()); 46 | 47 | if( m_bRunning ) 48 | { 49 | child->onEnter(); 50 | child->onEnterTransitionDidFinish(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCShareNode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCShareNode.h 3 | * 4 | * Created on: 2015-11-19 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "cocos2d.h" 11 | 12 | using namespace cocos2d ; 13 | 14 | class NXCCShareNode: public cocos2d::CCNode 15 | { 16 | public: 17 | NXCCShareNode(); 18 | virtual ~NXCCShareNode(); 19 | public: 20 | virtual void addChild(CCNode* child); 21 | virtual void addChild(CCNode* child, int zOrder); 22 | virtual void addChild(CCNode* child, int zOrder, int tag); 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCSprite.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCSprite.h 3 | * 4 | * Created on: 2015-10-28 5 | * Author: yangyk 6 | */ 7 | 8 | #ifndef NXCCSPRITE_H_ 9 | #define NXCCSPRITE_H_ 10 | 11 | #include "cocos2d.h" 12 | 13 | using namespace cocos2d ; 14 | 15 | class NXCCSprite: public cocos2d::CCSprite 16 | { 17 | protected: 18 | CC_SYNTHESIZE(bool, m_bDrawBounds, DrawBounds) ; 19 | CC_SYNTHESIZE(bool, m_bDrawCorner, DrawCorner) ; 20 | CC_SYNTHESIZE(uint32_t, m_bCornerLength, CornerLength) ; 21 | CC_SYNTHESIZE(uint32_t, m_bCornerWeight, CornerWeight) ; 22 | 23 | CC_SYNTHESIZE(uint32_t, m_context1, Context1) ; 24 | CC_SYNTHESIZE(uint64_t, m_context2, Context2) ; 25 | CC_SYNTHESIZE(float, m_context3, Context3) ; 26 | CC_SYNTHESIZE(double, m_context4, Context4) ; 27 | CC_SYNTHESIZE(void*, m_context5, Context5) ; 28 | CC_SYNTHESIZE(void*, m_context6, Context6) ; 29 | CC_SYNTHESIZE(void*, m_context7, Context7) ; 30 | CC_SYNTHESIZE(void*, m_context8, Context8) ; 31 | CC_SYNTHESIZE(void*, m_context9, Context9) ; 32 | public: 33 | NXCCSprite() ; 34 | virtual ~NXCCSprite() ; 35 | public: 36 | virtual void draw(void) ; 37 | virtual void setTextureRect(const CCRect& rect) ; 38 | }; 39 | 40 | #endif /* NXCCSPRITE_H_ */ 41 | -------------------------------------------------------------------------------- /jni/NXSDK/NXCC/NXCCSpriteNV12.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCSpriteNV12.h 3 | * 4 | * Created on: 2015-11-3 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "cocos2d.h" 11 | 12 | #include "NXCCSprite.h" 13 | 14 | #include "../NXKT/NXPtr.hpp" 15 | #include "../NXKT/NXBuffer.h" 16 | 17 | 18 | class NXCCSpriteNV12 : public NXCCSprite 19 | { 20 | private: 21 | CCSize _cc2dContent ; 22 | CCSize _cc2dTexture ; 23 | CCTexture2D* _cc2dTextureY ; 24 | CCTexture2D* _cc2dTextureUV ; 25 | public: 26 | NXCCSpriteNV12(); 27 | virtual ~NXCCSpriteNV12(); 28 | public: 29 | virtual bool init(bool isNv12, const CCSize& contentSize, const CCSize& textureSize, const CCRect& cuttedRect = CCRectMake(0,0,1,1)) ; 30 | virtual void draw(void) ; 31 | public: 32 | void updateImateData(NXPtr& buffer) ; 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /jni/NXSDK/NXFF/NXFFADef.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTPDef.h 3 | * 4 | * Created on: 2015-12-1 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | typedef struct tag_FFBufferItem { 11 | NXPtr buffer ; 12 | NXSDKTrackType track ; 13 | } FFBufferItem ; 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /jni/NXSDK/NXFF/NXFFSReader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXFFSReader.h 3 | * 4 | * Created on: 2015年9月17日 5 | * Author: lixiang2015 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include 13 | 14 | extern "C" 15 | { 16 | #include "libavcodec/avcodec.h" 17 | #include "libavformat/avformat.h" 18 | #include "libswscale/swscale.h" 19 | #include "libswresample/swresample.h" 20 | } 21 | 22 | class NXFFSReader : public NXSDKReader 23 | { 24 | std::string _videofile ; 25 | bool _seekable ; 26 | bool _reachend ; 27 | NXSDKMediaFormat _mediaFmt ; 28 | AVPixelFormat _pixelout ; 29 | 30 | AVFormatContext* _avcontext ; 31 | 32 | AVCodec* _avcodecV ; 33 | AVCodec* _avcodecA ; 34 | AVStream* _avstreamV ; 35 | AVStream* _avstreamA ; 36 | 37 | AVFrame* _avframe ; 38 | AVPacket _avpacket ; 39 | 40 | SwsContext* _avscaleV ; 41 | SwrContext* _avscaleA ; 42 | public: 43 | NXFFSReader(); 44 | virtual ~NXFFSReader(); 45 | public: 46 | virtual bool open(const char* filepath, NXSDKPixelFormat pixfmt, bool seekable) ; 47 | virtual bool get_media_format(NXOUT NXSDKMediaFormat& mediaFormat) ; 48 | virtual bool start() ; 49 | virtual bool stop() ; 50 | virtual bool seek(float time) ; 51 | virtual bool stoped() ; 52 | virtual bool close() ; 53 | virtual bool get_next_buffer(NXOUT NXPtr& buffer, NXOUT NXSDKTrackType* trackType) ; 54 | virtual bool reachend() ; 55 | }; 56 | 57 | -------------------------------------------------------------------------------- /jni/NXSDK/NXFF/NXFFSWriter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXFFSWriter.h 3 | * 4 | * Created on: 2015-9-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include 13 | 14 | extern "C" 15 | { 16 | #include "libavformat/avformat.h" 17 | #include "libavcodec/avcodec.h" 18 | #include "libswscale/swscale.h" 19 | #include "libswresample/swresample.h" 20 | #include "libavutil/audio_fifo.h" 21 | } 22 | 23 | class NXFFSWriter : public NXSDKWriter 24 | { 25 | private: 26 | std::string _filepath ; 27 | NXSDKMediaFormat _nxformat ; 28 | AVPixelFormat _pxFormat ; 29 | NXPtr _yuvBuffer ; 30 | 31 | AVOutputFormat* _outformat ; 32 | AVFormatContext* _avcontext ; 33 | AVCodec* _avcodecV ; 34 | AVCodec* _avcodecA ; 35 | AVStream* _avstreamV ; 36 | AVStream* _avstreamA ; 37 | AVFrame* _avframeV ; 38 | AVFrame* _avframeA ; 39 | SwsContext* _avscaleV ; 40 | AVAudioFifo* _audififo ; 41 | AVPacket _vpacket ; 42 | AVPacket _apacket ; 43 | int64_t _vpktcount ; 44 | int64_t _apktcount ; 45 | public: 46 | NXFFSWriter(); 47 | virtual ~NXFFSWriter(); 48 | public: 49 | virtual bool open(const char* filepath, const char* suffix, NXIN NXSDKMediaFormat& mediaFormat) ; 50 | virtual bool start() ; 51 | virtual bool append_buffer(NXPtr& buffer,NXIN NXSDKTrackType trackType) ; 52 | virtual bool stop() ; 53 | virtual bool stoped() ; 54 | virtual bool close() ; 55 | private: 56 | bool audio_trailer(); 57 | bool flush_buffer(NXSDKTrackType track) ; 58 | 59 | }; 60 | 61 | -------------------------------------------------------------------------------- /jni/NXSDK/NXGL/NXGL.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXGL.cpp 3 | * 4 | * Created on: 2015-9-8 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXGL.h" 9 | 10 | #include 11 | #include 12 | 13 | int NXGL::NXGL_MAJORVERSION = 0 ; 14 | int NXGL::NXGL_MINORVERSION = 0 ; 15 | EGLDisplay NXGL::NXGL_DISPLAY = 0 ; 16 | 17 | bool NXGL::NXGL_EGLInitialize() 18 | { 19 | if(NXGL::NXGL_DISPLAY) 20 | return true ; 21 | 22 | NXGL::NXGL_DISPLAY = eglGetDisplay(EGL_DEFAULT_DISPLAY); 23 | if(!NXGL::NXGL_DISPLAY) 24 | return false ; 25 | 26 | EGLBoolean result = eglInitialize(NXGL::NXGL_DISPLAY, &NXGL::NXGL_MAJORVERSION, &NXGL::NXGL_MINORVERSION) ; 27 | if(!result) 28 | return false ; 29 | 30 | #ifdef DEBUG 31 | __android_log_print(ANDROID_LOG_DEBUG, "NXGL", "EGLInitialize Major=%d, Minor=%d.", NXGL::NXGL_MAJORVERSION, NXGL::NXGL_MINORVERSION) ; 32 | #endif 33 | 34 | return true ; 35 | } 36 | bool NXGL::NXGL_EGLUninitialize() 37 | { 38 | eglTerminate(NXGL::NXGL_DISPLAY); 39 | NXGL::NXGL_MAJORVERSION = 0 ; 40 | NXGL::NXGL_MINORVERSION = 0 ; 41 | NXGL::NXGL_DISPLAY = 0 ; 42 | return true ; 43 | } 44 | int NXGL::NXGL_EGLMajorVersion() 45 | { 46 | return NXGL::NXGL_MAJORVERSION ; 47 | } 48 | int NXGL::NXGL_EGLMinorVersion() 49 | { 50 | return NXGL::NXGL_MINORVERSION ; 51 | } 52 | EGLDisplay NXGL::NXGL_EGLGetDisplay() 53 | { 54 | return NXGL::NXGL_DISPLAY ; 55 | } 56 | -------------------------------------------------------------------------------- /jni/NXSDK/NXGL/NXGL.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXGL.h 3 | * 4 | * Created on: 2015-9-8 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | #include 16 | 17 | #include 18 | #include 19 | 20 | class NXGL { 21 | private: 22 | static EGLDisplay NXGL_DISPLAY ; 23 | static int NXGL_MAJORVERSION ; 24 | static int NXGL_MINORVERSION ; 25 | public: 26 | static bool NXGL_EGLInitialize() ; 27 | static bool NXGL_EGLUninitialize() ; 28 | static int NXGL_EGLMajorVersion() ; 29 | static int NXGL_EGLMinorVersion() ; 30 | static EGLDisplay NXGL_EGLGetDisplay(); 31 | }; 32 | 33 | 34 | 35 | #define NXGL_VERSION_OPENGLES1 1 36 | #define NXGL_VERSION_OPENGLES2 2 37 | #define NXGL_VERSION_OPENGLES3 3 38 | -------------------------------------------------------------------------------- /jni/NXSDK/NXGL/NXGLCanvas.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCCCanvas.h 3 | * 4 | * Created on: 2015-11-4 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class NXGLCanvas : public NXSDKCanvas 13 | { 14 | private: 15 | NXSize _targetSize ; 16 | GLuint _frameBuffer ; 17 | GLuint _rendrBuffer ; 18 | GLuint _rendrTextur ; 19 | GLuint _oldRndBuffer ; 20 | GLuint _oldFrmBuffer ; 21 | public: 22 | NXGLCanvas(); 23 | virtual ~NXGLCanvas(); 24 | public: 25 | virtual bool open(const NXSize& viewport) ; 26 | virtual bool begin(); 27 | virtual NXPtr end(); 28 | virtual bool close(); 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /jni/NXSDK/NXGL/NXGLContext.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXGLContext.h 3 | * 4 | * Created on: 2015-9-1 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXGL.h" 11 | #include "NXGLSurface.h" 12 | 13 | #include "../NXKT/NXPtr.hpp" 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | class NXGLContext : public NXObject 21 | { 22 | private: 23 | EGLConfig _curentConfig ; 24 | EGLContext _eglesContext ; 25 | NXPtr _eglesSurface ; 26 | public: 27 | //create context 28 | NXGLContext(bool onscreen, EGLint version = 2); 29 | //destory context 30 | virtual ~NXGLContext(); 31 | public: 32 | EGLConfig getCurrentConfig() ; 33 | public: 34 | bool isValid(); 35 | bool setSurface(NXPtr& surface) ; 36 | bool makeCurrent(); 37 | bool releaseThread(); 38 | bool swapBuffers(); 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /jni/NXSDK/NXGL/NXGLSurface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXGLSurface.h 3 | * 4 | * Created on: 2015-11-18 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXGL.h" 11 | 12 | #include "../NXKT/NXDef.h" 13 | 14 | 15 | class NXGLSurface: public NXObject 16 | { 17 | private: 18 | ANativeWindow* _nativeWindow ; 19 | EGLint _surfaceWidth ; 20 | EGLint _surfaceHeight ; 21 | EGLSurface _surfaceOpengl ; 22 | public: 23 | //create surface off-screen 24 | NXGLSurface(EGLint width, EGLint height, EGLConfig config, EGLint version = 2); 25 | //create surface on-surface with ui surface. 26 | NXGLSurface(ANativeWindow* surface, EGLConfig config, EGLint version = 2) ; 27 | //init 28 | void initSurface(EGLConfig config, EGLint version); 29 | //delete opengl surface 30 | virtual ~NXGLSurface(); 31 | public: 32 | bool isValid(); 33 | ANativeWindow* getNativeWindow() ; 34 | EGLint getSurfaceWidth() ; 35 | EGLint getSurfaceHeight() ; 36 | EGLSurface getOpenGLSurface() ; 37 | }; 38 | 39 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXBuffer.h 3 | * 4 | * Created on: 2015-9-16 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | #include "NXFmt.h" 12 | 13 | typedef enum tag_NXBufferType { 14 | NXBufferError = 0, //invalid type 15 | NXBufferData = 1, //binary type 16 | NXBufferAudio = 2, //audio buffer 17 | NXBufferVideo = 3, //video buffer 18 | NXBufferCanvas = 4, //render target buffer 19 | } NXBufferType; 20 | 21 | 22 | class NXBuffer : public NXObject 23 | { 24 | private: 25 | NXBufferType _bufferType ; 26 | NXSDKPixelFormat _bufferPixel ; 27 | uint32_t _bufferCont ; 28 | uint8_t* _bufferArry[4] ; 29 | uint32_t _bufferLeng[4] ; 30 | 31 | private: 32 | NXBuffer(); 33 | 34 | public: 35 | //NXBufferData 36 | NXBuffer(uint32_t bytes); 37 | 38 | //NXBufferAudio 39 | NXBuffer(uint32_t sampleCount, uint32_t sampleBits, uint8_t channels); 40 | 41 | //NXBufferVideo 42 | NXBuffer(uint32_t width, uint32_t height, NXSDKPixelFormat pixfmt); 43 | 44 | //NXBufferCanvas 45 | NXBuffer(uint32_t width, uint32_t height); 46 | 47 | //Destructor 48 | virtual ~NXBuffer(); 49 | 50 | public: 51 | //copy 52 | NXBuffer* copy() ; 53 | 54 | //buffer type 55 | NXBufferType getBufferType() ; 56 | 57 | //pixel format 58 | NXSDKPixelFormat getPixelFormat(); 59 | 60 | //lock this buffer 61 | bool lockBuffer(); 62 | 63 | //unlock this buffer 64 | void unlockBuffer(); 65 | 66 | //plane count 67 | uint32_t getPlaneCount() ; 68 | 69 | //plane length 70 | uint32_t getPlaneLength(uint32_t index) ; 71 | 72 | //plane pointer 73 | uint8_t* getPlanePtr(uint32_t index) ; 74 | }; 75 | 76 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXEvent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXEvent.cpp 3 | * 4 | * Created on: 2015-10-15 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXEvent.h" 9 | #include 10 | 11 | NXEvent::NXEvent(int initCount) 12 | { 13 | sem_init(&_semaphore, 0, initCount); 14 | } 15 | 16 | NXEvent::~NXEvent() 17 | { 18 | sem_destroy(&_semaphore); 19 | } 20 | 21 | void NXEvent::fire(uint32_t* count) 22 | { 23 | sem_post(&_semaphore); 24 | if(count) 25 | *count = event_count() ; 26 | } 27 | 28 | void NXEvent::wait(uint32_t* count) 29 | { 30 | sem_wait(&_semaphore); 31 | if(count) 32 | *count = event_count() ; 33 | } 34 | 35 | int NXEvent::event_count() 36 | { 37 | int signals = 0 ; 38 | sem_getvalue(&_semaphore, &signals); 39 | return signals ; 40 | } 41 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXEvent.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXEvent.h 3 | * 4 | * Created on: 2015-10-15 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | #include 12 | 13 | class NXEvent : public NXObject 14 | { 15 | private: 16 | sem_t _semaphore ; 17 | public: 18 | NXEvent(int initCount); 19 | virtual ~NXEvent(); 20 | public: 21 | void fire(uint32_t* count = NULL); 22 | void wait(uint32_t* count = NULL); 23 | int event_count(); 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXFile.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXFile.h 3 | * 4 | * Created on: 2015-9-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | 12 | #include 13 | #include 14 | 15 | 16 | /* 17 | r 打开只读文件,该文件必须存在。 18 | 19 |   r+ 打开可读写的文件,该文件必须存在。 20 | 21 | rb 读打开一个二进制文件,只允许读数据。 22 | 23 |   rb+ 读写打开一个二进制文件,只允许读写数据。 24 | 25 |   rt+ 读写打开一个文本文件,允许读和写。 26 | 27 |   w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 28 | 29 |   w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 30 | 31 |   a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留) 32 | 33 |   a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留) 34 | 35 |   wb 只写打开或新建一个二进制文件;只允许写数据。 36 | 37 |   wb+ 读写打开或建立一个二进制文件,允许读和写。 38 | 39 |   wt+ 读写打开或着建立一个文本文件;允许读写。 40 | 41 |   at+ 读写打开一个文本文件,允许读或在文本末追加数据。 42 | 43 |   ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。 44 | */ 45 | 46 | class NXFile : public NXObject 47 | { 48 | protected: 49 | std::string _filepath ; 50 | FILE* _fileobj ; 51 | public: 52 | NXFile(const char* path); 53 | virtual ~NXFile(); 54 | public: 55 | static bool exist(const char* path) ; 56 | static bool delfile(const char* path) ; 57 | static int32_t length(const char* path) ; 58 | static bool mkdir(const char* path) ; 59 | public: 60 | bool open(const char* mode) ; 61 | bool exist() ; 62 | bool remove() ; 63 | bool ended() ; 64 | bool flush(); 65 | bool close() ; 66 | int32_t length() ; 67 | int32_t pos(); 68 | int32_t read(uint8_t* buffer, int32_t buflen) ; 69 | int32_t write(const uint8_t* buffer, int32_t buflen) ; 70 | bool seek(int32_t offset, bool fromStart) ; 71 | }; 72 | 73 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXKit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXKit.h 3 | * 4 | * Created on: 2015-9-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | #include 12 | 13 | 14 | class NXKit { 15 | public: 16 | NXKit(); 17 | virtual ~NXKit(); 18 | public: 19 | //time 20 | static uint32_t get_time_tick32() ; 21 | static uint64_t get_time_tick64() ; 22 | 23 | static std::string get_timenow_string() ; 24 | static void replace_string(std::string& str, char ochar, char nchar) ; 25 | 26 | //pixel 27 | static int pixel_format_convert_ff(int format); 28 | static int pixel_format_convert_nx(int format); 29 | 30 | //string 31 | static std::string convert_unicode_to_utf8(const std::wstring& unicode) ; 32 | static std::string convert_unicode_to_utf8(const wchar_t* unicode) ; 33 | 34 | static std::wstring convert_utf8_to_unicode(const std::string& utf8) ; 35 | static std::wstring convert_utf8_to_unicode(const char* utf8) ; 36 | 37 | static std::string& format_string(std::string& result, const char* format, ...) ; 38 | }; 39 | 40 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXLock.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXLock.cpp 3 | * 4 | * Created on: 2015-9-16 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXLock.h" 9 | 10 | #include 11 | 12 | NXLock::NXLock() 13 | { 14 | sem_init(&_semaphore, 0, 1); 15 | } 16 | 17 | NXLock::~NXLock() 18 | { 19 | sem_destroy(&_semaphore); 20 | } 21 | 22 | void NXLock::lock() 23 | { 24 | sem_wait(&_semaphore); 25 | } 26 | 27 | void NXLock::unlock() 28 | { 29 | sem_post(&_semaphore); 30 | } 31 | 32 | bool NXLock::trylock() 33 | { 34 | return 0 == sem_trywait(&_semaphore); 35 | } 36 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXLock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXLock.h 3 | * 4 | * Created on: 2015-9-16 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | #include 12 | 13 | class NXLock : public NXObject 14 | { 15 | private: 16 | sem_t _semaphore ; 17 | public: 18 | NXLock(); 19 | virtual ~NXLock(); 20 | public: 21 | void lock() ; 22 | void unlock(); 23 | bool trylock(); 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXThread.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXThread.cpp 3 | * 4 | * Created on: 2015-10-22 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXThread.h" 9 | #include 10 | 11 | NXThread::NXThread(NXThreadRunner* callRunner, NXPtr* param) : _eventr(0) 12 | { 13 | if(param) 14 | _paramr = *param ; 15 | else 16 | _paramr = NULL ; 17 | 18 | _runner = callRunner ; 19 | _thrdid = 0 ; 20 | _timert = 0 ; 21 | } 22 | 23 | NXThread::~NXThread() 24 | { 25 | _runner = NULL ; 26 | _paramr = NULL ; 27 | _thrdid = 0 ; 28 | _timert = 0 ; 29 | } 30 | 31 | void* NXThread::thread_proc(void* context) 32 | { 33 | NXThread* pThis = (NXThread*)context ; 34 | pThis->thread_run(); 35 | pthread_exit(NULL); 36 | return NULL ; 37 | } 38 | 39 | void NXThread::thread_run() 40 | { 41 | if(_runner) 42 | _runner->on_thread_runing(this, _paramr) ; 43 | _eventr.fire(); 44 | } 45 | 46 | bool NXThread::start() 47 | { 48 | if(_thrdid == 0) 49 | { 50 | pthread_create(&_thrdid, NULL, thread_proc, this) ; 51 | return true ; 52 | } 53 | return false ; 54 | } 55 | 56 | void NXThread::stoped() 57 | { 58 | _eventr.wait() ; 59 | _thrdid = 0 ; 60 | } 61 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXThread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXThread.h 3 | * 4 | * Created on: 2015-10-22 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | #include "NXEvent.h" 12 | #include "NXPtr.hpp" 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | class NXThread ; 19 | interface NXThreadRunner : public NXCallback 20 | { 21 | virtual void on_thread_runing(const NXThread* thread, NXPtr& param) = 0 ; 22 | } ; 23 | 24 | class NXThread : public NXObject 25 | { 26 | private: 27 | NXThreadRunner* _runner ; 28 | NXPtr _paramr ; 29 | NXEvent _eventr ; 30 | pthread_t _thrdid ; 31 | timer_t _timert ; 32 | public: 33 | NXThread(NXThreadRunner* callRunner, NXPtr* param = NULL) ; 34 | virtual ~NXThread() ; 35 | private: 36 | static void* thread_proc(void* context) ; 37 | void thread_run(); 38 | public: 39 | bool start(); 40 | void stoped(); 41 | }; 42 | 43 | 44 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXThrottle.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCameraThrottle.cpp 3 | * 4 | * Created on: 2015-10-21 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXSDK.h" 9 | #include "NXThrottle.h" 10 | 11 | #include 12 | 13 | NXThrottle::NXThrottle() 14 | { 15 | _buffer = NULL ; 16 | } 17 | 18 | NXThrottle::~NXThrottle() 19 | { 20 | _locker.lock() ; 21 | _buffer = NULL ; 22 | _locker.unlock() ; 23 | } 24 | 25 | void NXThrottle::push(NXPtr& data) 26 | { 27 | assert(data != NULL); 28 | _locker.lock(); 29 | _buffer = data ; 30 | _locker.unlock(); 31 | } 32 | 33 | void NXThrottle::pop(NXPtr& data) 34 | { 35 | assert(data == NULL); 36 | _locker.lock(); 37 | data = _buffer ; 38 | _locker.unlock(); 39 | } 40 | -------------------------------------------------------------------------------- /jni/NXSDK/NXKT/NXThrottle.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXCameraThrottle.h 3 | * 4 | * Created on: 2015-10-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXDef.h" 11 | #include "NXLock.h" 12 | #include "NXPtr.hpp" 13 | #include "NXBuffer.h" 14 | 15 | /* 16 | * 上层CameraView得到的视频帧率并不一定稳定,并且帧率不可控。 17 | * 传入底层的时候,先经过此类中转,达到重新采样的效果,改变帧率。 18 | * 而此类的功能非常简单:两个线程的数据共享区,一个负责写,一个负责读,读写的速度不要求一样。 19 | */ 20 | 21 | class NXThrottle : public NXObject 22 | { 23 | private: 24 | NXPtr _buffer ; 25 | NXLock _locker ; 26 | public: 27 | NXThrottle(); 28 | virtual ~NXThrottle(); 29 | public: 30 | void push(NXPtr& data) ; //input 31 | void pop(NXPtr& data) ; //output 32 | }; 33 | 34 | 35 | -------------------------------------------------------------------------------- /jni/NXSDK/NXPL/NXWBPlayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXWBPlayer.h 3 | * 4 | * Created on: 2015-11-23 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class NXWBPlayer : public NXSDKPlayer 13 | , public NXTimerRunner 14 | { 15 | private: 16 | uint32_t _wbMessage ; 17 | std::string _videoFile ; 18 | ANativeWindow* _natvWndow ; 19 | NXSDKPlayerListener* _plistener ; 20 | NXSDKPixelFormat _pixelFmat ; 21 | NXSDKMediaFormat _mediaFmat ; 22 | NXSDKPlayerStatus _playState ; 23 | NXTime _curntTime ; 24 | 25 | NXPtr _sdkTimer ; 26 | NXPtr _sdkReader ; 27 | NXPtr _sdkSpeakr ; 28 | NXPtr _sdkDrawer ; 29 | 30 | bool _autoRepeat ; 31 | 32 | public: 33 | NXWBPlayer(); 34 | virtual ~NXWBPlayer(); 35 | public: 36 | virtual bool open(const char* filepath, ANativeWindow* surface, NXSDKPlayerListener* listener, NXSDKPixelFormat pixfmt) ; 37 | virtual bool close() ; 38 | virtual bool set_auto_repeat(bool autorepeat) ; 39 | virtual bool get_media_format(NXOUT NXSDKMediaFormat& mediaFormat) ; 40 | virtual bool volume(float volume) ; //0.0-1.0 41 | virtual bool load(NXPtr* firstImage = NULL) ; 42 | virtual bool unload() ; 43 | virtual bool play() ; 44 | virtual bool pause() ; 45 | virtual bool stop() ; 46 | virtual bool refresh(); 47 | virtual bool seek(float time) ; 48 | virtual float time() ; 49 | virtual NXSDKPlayerStatus status() ; 50 | public: 51 | virtual void on_timer_start(NXTimer* timer) ; 52 | virtual void on_timer_running(NXTimer* timer) ; 53 | virtual void on_timer_stop(NXTimer* timer) ; 54 | public: 55 | void on_timer_calling(NXPtr& param1, NXPtr& param2, void* param3, uint32_t param4, uint64_t param5, double param6) ; 56 | void play_next_frame() ; 57 | void refresh_now_frame(NXPtr* ptrNowImage = NULL); 58 | }; 59 | 60 | -------------------------------------------------------------------------------- /jni/NXSDK/NXSL/NXSLRecorder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXSLRecorder.h 3 | * 4 | * Created on: 2015-9-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | class NXSLRecorder: public NXSDKRecorder 18 | { 19 | private: 20 | SLObjectItf _engineObject ; 21 | SLEngineItf _engineEngine ; 22 | SLObjectItf _recordObject ; 23 | SLRecordItf _recordRecord ; 24 | SLAndroidSimpleBufferQueueItf _recordBufferQueue ; 25 | private: 26 | NXSDKAudioFormat _audioFormat ; 27 | uint32_t _smpsPerFrame ; 28 | uint32_t _cacheCounts ; 29 | 30 | uint32_t _frameLenth ; 31 | std::vector _cacheArray ; 32 | std::deque _fullCaches ; 33 | std::deque _recdCaches ; 34 | NXLock _fullLocks ; 35 | NXLock _recdLocks ; 36 | private: 37 | static void NXSLRecorderCallback(SLAndroidSimpleBufferQueueItf bufferQueue, void* context) ; 38 | void recorder_callback(SLAndroidSimpleBufferQueueItf bufferQueue); 39 | public: 40 | NXSLRecorder(); 41 | virtual ~NXSLRecorder(); 42 | public: 43 | virtual bool open(NXINOUT NXSDKAudioFormat& audioFormat, uint32_t samplesPerPacket, uint32_t cachePackets) ; 44 | virtual bool start() ; 45 | virtual bool pause(bool pause) ; 46 | virtual bool record_packet(NXOUT NXPtr& abuffer) ; 47 | virtual bool stop() ; 48 | virtual bool close() ; 49 | }; 50 | 51 | -------------------------------------------------------------------------------- /jni/NXSDK/NXSL/NXSLSpeaker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXSLSpeaker.h 3 | * 4 | * Created on: 2015-9-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include 13 | #include 14 | 15 | #include 16 | #include 17 | 18 | class NXSLSpeaker: public NXSDKSpeaker 19 | { 20 | private: 21 | SLObjectItf _engineObject ; 22 | SLEngineItf _engineEngine ; 23 | SLObjectItf _playerObject ; 24 | SLPlayItf _playerPlayer ; 25 | SLObjectItf _outputMixObj ; 26 | SLVolumeItf _outputVolume ; 27 | SLBufferQueueItf _playerBQueue ; 28 | 29 | private: 30 | std::vector< NXPtr > _cacheArray ; 31 | uint32_t _cacheLegth ; 32 | std::deque _playrQueue ; 33 | NXLock _playrLockr ; 34 | std::deque _emptyQueue ; 35 | NXLock _emptyLockr ; 36 | std::deque< NXPtr > _inputQueue ; 37 | 38 | private: 39 | static void NXSLPlayerCallback(SLBufferQueueItf bufferQueue, void* context) ; 40 | void player_callback(SLBufferQueueItf bufferQueue) ; 41 | public: 42 | NXSLSpeaker(); 43 | virtual ~NXSLSpeaker(); 44 | public: 45 | virtual bool open(const NXSDKAudioFormat& audioFormat, uint32_t samplesPerCache, uint32_t cacheCount) ; 46 | virtual bool volume(float volume) ; 47 | virtual bool start() ; 48 | virtual bool pause(bool pause) ; 49 | virtual bool speak(NXPtr& buffer) ; 50 | virtual bool stop() ; 51 | virtual bool close() ; 52 | }; 53 | 54 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMADef.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTPDef.h 3 | * 4 | * Created on: 2015-12-1 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | 11 | //YWM = yowo media, yuv420p => lz4 compress to save file, s16 audio => lz4 compress to save file 12 | 13 | typedef struct tag_MPTFileHeader { 14 | char headr_codec[4] ;//'M','P','T',' ' 15 | float media_time ; 16 | uint32_t track_masks ; 17 | 18 | uint32_t video_width ; 19 | uint32_t video_height ; 20 | uint32_t video_pixfmt ; 21 | uint32_t video_frames ; 22 | uint32_t frame_rate ; 23 | 24 | uint32_t audio_channels ; // 25 | uint32_t audio_smprate ; // 26 | uint32_t audio_smpbits ; // 27 | } MPTFileHeader ; 28 | 29 | 30 | typedef struct tag_MPTPacketHeader { 31 | uint32_t packet_track ; 32 | uint32_t packet_flags ; 33 | uint32_t packet_length ; 34 | } MPTPacketHeader; 35 | 36 | #define MPT_FILE_PACKET_H264KEYFRAME 0x1 37 | 38 | 39 | typedef struct tag_TMBufferItem { 40 | NXPtr buffer ; 41 | NXSDKTrackType track ; 42 | } TMBufferItem ; 43 | 44 | typedef struct tag_TMWriteItem { 45 | NXPtr bufer ; //待写入的缓存, 如果为NULL,表示该帧的视频还没有压缩完,那么就会阻塞这一个缓存以及后面所有缓存的写入。 46 | NXSDKTrackType track ; //所属轨道 47 | uint32_t flags ; 48 | uint32_t legth ; 49 | } TMWriteItem ; 50 | 51 | typedef std::deque TMWBufferQueue ; 52 | 53 | typedef std::map TMFramePosMap ; 54 | 55 | 56 | typedef struct tag_TMVideoFrame { 57 | int32_t pos ; 58 | int32_t key ; 59 | } TMVideoFrame ; 60 | 61 | typedef std::map TMFrameKeyMap ; 62 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMAReader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTMAReader.h 3 | * 4 | * Created on: 2016年1月20日 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include "NXTMADef.h" 13 | 14 | #include 15 | 16 | extern "C" 17 | { 18 | #include "libavcodec/avcodec.h" 19 | #include "libswscale/swscale.h" 20 | } 21 | 22 | typedef std::deque TMRAsyncDeque ; 23 | 24 | class NXTMAReader : public NXSDKReader 25 | , public NXThreadRunner 26 | { 27 | private: 28 | NXFile* _fileObj ; 29 | bool _seekable ; 30 | NXLock _seekLock ; 31 | 32 | MPTFileHeader _fileHeader ; 33 | NXSDKPixelFormat _outpixfmt ; 34 | TMFramePosMap _framesMap ; 35 | 36 | AVCodec* _avdecoder ; 37 | AVCodecContext* _avcontext ; 38 | SwsContext* _scaleCtxt ; 39 | 40 | AVFrame* _avdcframe ; 41 | AVPacket _avdcpacket ; 42 | 43 | uint8_t* _readBufer ; 44 | bool _reachend ; 45 | private: 46 | NXPtr _asyncThread ; 47 | NXThreadStatus _asyncStatus ; 48 | TMRAsyncDeque _asyncQueuer ; 49 | NXLock _asyncLocker ; 50 | NXEvent _asyncCounts ; 51 | public: 52 | NXTMAReader(); 53 | virtual ~NXTMAReader(); 54 | public: 55 | virtual bool open(const char* filepath, NXSDKPixelFormat pixfmt, bool seekable) ; 56 | virtual bool get_media_format(NXOUT NXSDKMediaFormat& mediaFormat) ; 57 | virtual bool start() ; 58 | virtual bool stop() ; 59 | virtual bool seek(float time) ; 60 | virtual bool stoped() ; 61 | virtual bool close() ; 62 | virtual bool get_next_buffer(NXOUT NXPtr& buffer, NXOUT NXSDKTrackType* track) ; 63 | virtual bool reachend() ; 64 | public: 65 | virtual void on_thread_runing(const NXThread* thread, NXPtr& param) ; 66 | private: 67 | bool read_buffer(NXOUT NXPtr& buffer, NXOUT NXSDKTrackType* trackType) ; 68 | }; 69 | 70 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMAWriter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTMAWriter.h 3 | * 4 | * Created on: 2015-12-2 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include "NXTMADef.h" 13 | 14 | extern "C" 15 | { 16 | #include "libavformat/avformat.h" 17 | #include "libavcodec/avcodec.h" 18 | #include "libswscale/swscale.h" 19 | #include "libswresample/swresample.h" 20 | #include "x264.h" 21 | } 22 | 23 | typedef std::deque TMWAsyncDeque ; 24 | 25 | class NXTMAWriter : public NXSDKWriter 26 | , public NXThreadRunner 27 | { 28 | private: 29 | std::string _filepath ; 30 | NXFile* _fileObjt ; 31 | MPTFileHeader _fileHead ; 32 | NXSDKMediaFormat _nxformat ; 33 | AVPixelFormat _pxFormat ; 34 | 35 | NXPtr _wrtThread ; 36 | NXThreadStatus _stsThread ; 37 | 38 | TMWAsyncDeque _wrtDequer ; 39 | NXLock _wrtLocker ; 40 | 41 | TMWBufferQueue _aswtQueue ; 42 | 43 | x264_param_t _x264Param ; 44 | x264_t* _x264Encoder ; 45 | x264_picture_t* _x264ImageI ; 46 | x264_picture_t* _x264ImageO ; 47 | 48 | SwsContext* _avscaler ; 49 | int64_t _frmcount ; 50 | public: 51 | NXTMAWriter(); 52 | virtual ~NXTMAWriter(); 53 | public: 54 | virtual bool open(const char* filepath, const char* suffix, NXIN NXSDKMediaFormat& mediaFormat) ; 55 | virtual bool start() ; 56 | virtual bool append_buffer(NXPtr& buffer,NXIN NXSDKTrackType track) ; 57 | virtual bool stop() ; 58 | virtual bool stoped() ; 59 | virtual bool close() ; 60 | public: 61 | virtual void on_thread_runing(const NXThread* thread, NXPtr& param) ; 62 | private: 63 | bool encode_buffer(NXPtr& buffer,NXIN NXSDKTrackType track) ; 64 | bool flush_buffers(); 65 | }; 66 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMSReader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTMSReader.h 3 | * 4 | * Created on: 2015-12-3 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include "NXTMADef.h" 13 | 14 | #include 15 | 16 | extern "C" 17 | { 18 | #include "libavcodec/avcodec.h" 19 | #include "libswscale/swscale.h" 20 | } 21 | 22 | class NXTMSReader : public NXSDKReader 23 | { 24 | private: 25 | NXFile* _fileObj ; 26 | bool _seekable ; 27 | MPTFileHeader _fileHeader ; 28 | NXSDKPixelFormat _outpixfmt ; 29 | TMFramePosMap _framesMap ; 30 | 31 | AVCodec* _avdecoder ; 32 | AVCodecContext* _avcontext ; 33 | SwsContext* _scaleCtxt ; 34 | 35 | AVFrame* _avdcframe ; 36 | AVPacket _avdcpacket ; 37 | 38 | uint8_t* _readBufer ; 39 | bool _reachend ; 40 | public: 41 | NXTMSReader(); 42 | virtual ~NXTMSReader(); 43 | public: 44 | virtual bool open(const char* filepath, NXSDKPixelFormat pixfmt, bool seekable) ; 45 | virtual bool get_media_format(NXOUT NXSDKMediaFormat& mediaFormat) ; 46 | virtual bool start() ; 47 | virtual bool stop() ; 48 | virtual bool seek(float time) ; 49 | virtual bool stoped() ; 50 | virtual bool close() ; 51 | virtual bool get_next_buffer(NXOUT NXPtr& buffer, NXOUT NXSDKTrackType* track) ; 52 | virtual bool reachend() ; 53 | private: 54 | bool read_buffer(NXOUT NXPtr& buffer, NXOUT NXSDKTrackType* trackType) ; 55 | }; 56 | 57 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMSShoter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTMSShoter.h 3 | * 4 | * Created on: 2016-1-4 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | #include "NXTMADef.h" 12 | 13 | extern "C" 14 | { 15 | #include "libavcodec/avcodec.h" 16 | #include "libswscale/swscale.h" 17 | } 18 | 19 | class NXTMSShoter : public NXSDKShoter 20 | { 21 | private: 22 | NXFile* _fileObject ; 23 | MPTFileHeader _fileHeader ; 24 | NXSDKPixelFormat _outpixfmt ; 25 | TMFrameKeyMap _framesMap ; 26 | 27 | AVCodec* _avdecoder ; 28 | AVCodecContext* _avcontext ; 29 | SwsContext* _scaleCtxt ; 30 | 31 | AVFrame* _avdcframe ; 32 | AVPacket _avdcpacket ; 33 | uint8_t* _readBufer ; 34 | public: 35 | NXTMSShoter(); 36 | virtual ~NXTMSShoter(); 37 | public: 38 | virtual bool open(const char* filepath, NXSDKPixelFormat outfmt) ; 39 | virtual bool get_media_format(NXOUT NXSDKMediaFormat& mediaFormat) ; 40 | virtual bool shot(float time, bool exact, NXPtr& buffer) ; 41 | virtual bool close() ; 42 | protected: 43 | bool shot_iterator(TMFrameKeyMap::iterator& it, NXPtr& buffer, bool fillbuffer) ; 44 | }; 45 | 46 | -------------------------------------------------------------------------------- /jni/NXSDK/NXTM/NXTMSWriter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXTMSWriter.h 3 | * 4 | * Created on: 2015-12-2 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include "NXTMADef.h" 13 | 14 | extern "C" 15 | { 16 | #include "libavformat/avformat.h" 17 | #include "libavcodec/avcodec.h" 18 | #include "libswscale/swscale.h" 19 | #include "libswresample/swresample.h" 20 | #include "x264.h" 21 | } 22 | 23 | class NXTMSWriter : public NXSDKWriter 24 | { 25 | private: 26 | std::string _filepath ; 27 | NXFile* _fileObjt ; 28 | MPTFileHeader _fileHead ; 29 | NXSDKMediaFormat _nxformat ; 30 | AVPixelFormat _pxFormat ; 31 | 32 | TMWBufferQueue _aswtQueue ; 33 | 34 | x264_param_t _x264Param ; 35 | x264_t* _x264Encoder ; 36 | x264_picture_t* _x264ImageI ; 37 | x264_picture_t* _x264ImageO ; 38 | 39 | SwsContext* _avscaler ; 40 | int64_t _frmcount ; 41 | public: 42 | NXTMSWriter(); 43 | virtual ~NXTMSWriter(); 44 | public: 45 | virtual bool open(const char* filepath, const char* suffix, NXIN NXSDKMediaFormat& mediaFormat) ; 46 | virtual bool start() ; 47 | virtual bool append_buffer(NXPtr& buffer,NXIN NXSDKTrackType track) ; 48 | virtual bool stop() ; 49 | virtual bool stoped() ; 50 | virtual bool close() ; 51 | private: 52 | bool encode_buffer(NXPtr& buffer,NXIN NXSDKTrackType track) ; 53 | bool flush_buffers(); 54 | }; 55 | -------------------------------------------------------------------------------- /jni/NXSDK/NXXL/NXXLCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXMXLCapturer.h 3 | * 4 | * Created on: 2015-10-20 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | class NXXLCapturer: public NXSDKCapturer 17 | { 18 | private: 19 | XAObjectItf _capEngineObj ; 20 | XAEngineItf _capEnginePtr ; 21 | XAObjectItf _capCameraObj ; 22 | XACameraItf _capCameraPtr ; 23 | XACameraCapabilitiesItf _capCameraCaps ; 24 | public: 25 | NXXLCapturer(); 26 | virtual ~NXXLCapturer(); 27 | public: 28 | virtual bool open() ; 29 | virtual NXSize size() ; 30 | virtual bool start() ; 31 | virtual bool focus(NXPoint pt) ; 32 | virtual bool pause(bool pause); 33 | virtual bool stop() ; 34 | virtual bool close() ; 35 | virtual NXSDKPixelFormat format() ; 36 | virtual NXPtr capture() ; 37 | }; 38 | 39 | 40 | -------------------------------------------------------------------------------- /jni/WORKER/EFBuilderMission.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EFBuilderMission.h 3 | * 4 | * Created on: 2015-12-21 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | 13 | class EFBuildProgress ; 14 | class EFBuilderMission : public NXWorkitem 15 | { 16 | private: 17 | NXPtr _buildProgrs ; 18 | NXSDKMediaFormat _mediaFormat ; 19 | NXSDKMediaFormat _recrdFormat ; 20 | NXCCSpriteNV12* _canvasLayer ; 21 | std::vector _recordSgmts ; 22 | uint32_t _recordCount ; 23 | std::string _recordFolder ; 24 | std::string _buildrVideo ; 25 | 26 | NXPtr _buildWriter ; 27 | NXPtr _buildCanvas ; 28 | 29 | NXPtr _buildReader ; 30 | NXSDKMediaFormat _segmtFormat ; 31 | int _buildIndex ; 32 | int _buildFrames ; 33 | 34 | public: 35 | EFBuilderMission(NXPtr& buildProgrs, std::string& recordFolder, NXSDKMediaFormat& mediaFormat, NXSDKMediaFormat& recordFormat, std::vector& recordSgmts, NXCCSpriteNV12* canvasLayer); 36 | virtual ~EFBuilderMission(); 37 | public: 38 | virtual bool on_workitem_start() ; //return false means will stop ; 39 | virtual bool on_workitem_step() ; //return false means will stop ; 40 | virtual void on_workitem_stop() ; 41 | }; 42 | 43 | -------------------------------------------------------------------------------- /jni/WORKER/EFExtractMission.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EFExtractMission.h 3 | * 4 | * Created on: 2016-1-4 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class EFExtractProgress ; 13 | class EFExtractMission : public NXWorkitem 14 | { 15 | private: 16 | int _targetWidth ; 17 | int _targetHeight ; 18 | int _targetCount ; 19 | int _targetIndex ; 20 | std::string _videoFile ; 21 | NXSDKMediaFormat _videoFmat ; 22 | float _timepiece ; 23 | NXPtr _extShoter ; 24 | NXPtr _extTrimer ; 25 | NXPtr _extProgress ; 26 | public: 27 | EFExtractMission(const char* videoFile, int width, int height, int count, NXPtr& progress); 28 | virtual ~EFExtractMission(); 29 | public: 30 | virtual bool on_workitem_start() ; //return false means will stop ; 31 | virtual bool on_workitem_step() ; //return false means will stop ; 32 | virtual void on_workitem_stop() ; 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /jni/WORKER/EFRenderMission.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EFRenderMission.h 3 | * 4 | * Created on: 2015-11-25 5 | * Author: yangyk 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "NXSDK.h" 11 | 12 | class EFRenderProgress ; 13 | class EFEffectsLayer ; 14 | class EFRenderMission : public NXWorkitem 15 | { 16 | private: 17 | NXSDKMediaFormat _renderFormat ; 18 | 19 | NXCCSpriteNV12* _renderLayer ; 20 | EFEffectsLayer* _renderEffect ; 21 | NXPtr _renderProgrs ; 22 | std::string _renderSource ; 23 | std::string _renderTarget ; 24 | 25 | NXPtr _renderReader ; 26 | NXPtr _renderWriter ; 27 | NXPtr _renderCanvas ; 28 | 29 | bool _renderNext ; 30 | uint32_t _renderCount ; 31 | 32 | public: 33 | EFRenderMission(const NXSDKMediaFormat& settingFormat, NXPtr& progress, NXCCSpriteNV12* drawLayer, EFEffectsLayer* effectLayer, const char* sourceFile, const char* targetFile); 34 | virtual ~EFRenderMission(); 35 | public: 36 | void render_begin(); //绘制开始 37 | bool render_next(); //是否还需要调用step 38 | void render_step(); //由消息队列调用 39 | void render_finish(); //最终结束。 40 | public: 41 | virtual bool on_workitem_start() ; //return false means will stop ; 42 | virtual bool on_workitem_step() ; //return false means will stop ; 43 | virtual void on_workitem_stop() ; 44 | }; 45 | 46 | -------------------------------------------------------------------------------- /jni/WORKER/NXWorker.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * NXWorker.cpp 3 | * 4 | * Created on: 2015-9-1 5 | * Author: yangyk 6 | */ 7 | 8 | #include "NXWorker.h" 9 | #include 10 | 11 | std::map globalObjMap ; 12 | JavaVM* globalJavaVM = NULL ; 13 | JNIEnv* globalWchEnv = NULL ; 14 | 15 | void* getJavaNativeObject(JNIEnv* env, jobject obj) 16 | { 17 | jclass workerClazz = env->GetObjectClass(obj) ; 18 | jmethodID methodObject = env->GetMethodID(workerClazz, "getWorkerID", "()J"); 19 | jlong workerID = env->CallLongMethod(obj, methodObject); 20 | std::map::iterator it = globalObjMap.find(workerID) ; 21 | if(it == globalObjMap.end()) 22 | return NULL ; 23 | return it->second ; 24 | } 25 | 26 | void setJavaNativeObject(JNIEnv* env, jobject obj, void* value) 27 | { 28 | jclass workerClazz = env->GetObjectClass(obj) ; 29 | jmethodID methodObject = env->GetMethodID(workerClazz, "getWorkerID", "()J"); 30 | jlong workerID = env->CallLongMethod(obj, methodObject); 31 | globalObjMap[workerID] = value ; 32 | } 33 | 34 | void delJavaNativeObject(JNIEnv* env, jobject obj) 35 | { 36 | jclass workerClazz = env->GetObjectClass(obj) ; 37 | jmethodID methodObject = env->GetMethodID(workerClazz, "getWorkerID", "()J"); 38 | jlong workerID = env->CallLongMethod(obj, methodObject); 39 | std::map::iterator it = globalObjMap.find(workerID) ; 40 | if(it != globalObjMap.end()) 41 | globalObjMap.erase(it); 42 | } 43 | 44 | JavaVM* getGlobalJavaVM() 45 | { 46 | return globalJavaVM ; 47 | } 48 | 49 | JNIEnv* getGlobalWchEnv() 50 | { 51 | if(globalWchEnv == NULL) 52 | globalJavaVM->AttachCurrentThread(&globalWchEnv, NULL) ; 53 | return globalWchEnv ; 54 | } 55 | 56 | JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) 57 | { 58 | globalJavaVM = vm ; 59 | return JNI_VERSION_1_4 ; 60 | } 61 | -------------------------------------------------------------------------------- /jni/WORKER/NXWorker.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NXWorker.h 3 | * 4 | * Created on: 2015-9-1 5 | * Author: yangyk 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | void* getJavaNativeObject(JNIEnv* env, jobject obj); 13 | 14 | void setJavaNativeObject(JNIEnv* env, jobject obj, void* value) ; 15 | 16 | void delJavaNativeObject(JNIEnv* env, jobject obj); 17 | 18 | JavaVM* getGlobalJavaVM() ; 19 | 20 | JNIEnv* getGlobalWchEnv() ; 21 | -------------------------------------------------------------------------------- /jni/WORKER/WORKER.mk: -------------------------------------------------------------------------------- 1 | include $(CLEAR_VARS) 2 | LOCAL_CFLAGS += $(COMPILE_CFLAGS) 3 | 4 | 5 | #Module Name 6 | LOCAL_MODULE := WORKER 7 | 8 | 9 | #Include Paths 10 | LOCAL_C_INCLUDES := 11 | LOCAL_EXPORT_C_INCLUDES += 12 | 13 | 14 | #Local Library 15 | LOCAL_STATIC_LIBRARIES := NXSDK LEAKER LIBJSON ALGTHM 16 | 17 | 18 | #Local Library 19 | LOCAL_SHARED_LIBRARIES := 20 | 21 | 22 | #Source Files 23 | LOCAL_SRC_FILES := WORKER/NXWorker.cpp \ 24 | WORKER/EFRecordWorker.cpp \ 25 | WORKER/EFBuilderMission.cpp \ 26 | WORKER/EFEffectsModel.cpp \ 27 | WORKER/EFEffectsLayer.cpp \ 28 | WORKER/EFEditorWorker.cpp \ 29 | WORKER/EFRenderMission.cpp \ 30 | WORKER/EFExtractMission.cpp \ 31 | 32 | #cpp flags 33 | LOCAL_CPPFLAGS += -frtti -fexceptions 34 | 35 | 36 | #LD flags 37 | LOCAL_LDFLAGS += 38 | 39 | 40 | #System Library 41 | LOCAL_LDLIBS := -lz -landroid -lEGL -llog -lGLESv2 -lOpenSLES -lOpenMAXAL 42 | 43 | 44 | #ffmpeg Library 45 | LOCAL_LDLIBS += $(USER_LIB_FILES) 46 | 47 | 48 | #android support 49 | LOCAL_WHOLE_STATIC_LIBRARIES += android_support 50 | 51 | 52 | include $(BUILD_SHARED_LIBRARY) -------------------------------------------------------------------------------- /libs/armeabi-v7a/libWORKER.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/libs/armeabi-v7a/libWORKER.so -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-15 15 | -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable/btn_addeff_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_addeff_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_addeff_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_addeff_select.png -------------------------------------------------------------------------------- /res/drawable/btn_backer_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_backer_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_backer_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_backer_select.png -------------------------------------------------------------------------------- /res/drawable/btn_confrm_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_confrm_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_confrm_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_confrm_select.png -------------------------------------------------------------------------------- /res/drawable/btn_delete_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_delete_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_delete_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_delete_select.png -------------------------------------------------------------------------------- /res/drawable/btn_filter_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_filter_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_filter_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_filter_select.png -------------------------------------------------------------------------------- /res/drawable/btn_import_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_import_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_import_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_import_select.png -------------------------------------------------------------------------------- /res/drawable/btn_player_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_player_paused.png -------------------------------------------------------------------------------- /res/drawable/btn_player_playing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_player_playing.png -------------------------------------------------------------------------------- /res/drawable/btn_record_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_record_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_record_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_record_select.png -------------------------------------------------------------------------------- /res/drawable/btn_render_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_render_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_render_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_render_select.png -------------------------------------------------------------------------------- /res/drawable/btn_reverse_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_reverse_normal.png -------------------------------------------------------------------------------- /res/drawable/btn_reverse_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_reverse_select.png -------------------------------------------------------------------------------- /res/drawable/btn_voice_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_voice_close.png -------------------------------------------------------------------------------- /res/drawable/btn_voice_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/btn_voice_open.png -------------------------------------------------------------------------------- /res/drawable/icon_draw_surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_draw_surface.png -------------------------------------------------------------------------------- /res/drawable/icon_effect_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_effect_left.png -------------------------------------------------------------------------------- /res/drawable/icon_effect_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_effect_right.png -------------------------------------------------------------------------------- /res/drawable/icon_film_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_film_left.png -------------------------------------------------------------------------------- /res/drawable/icon_film_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_film_right.png -------------------------------------------------------------------------------- /res/drawable/icon_record_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangyk125/AndroidVideo/da56c6aa21a61a1e541f427027136a32bc39880f/res/drawable/icon_record_label.png -------------------------------------------------------------------------------- /res/menu/app_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 64dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AndroidVideo 5 | Hello world! 6 | Settings 7 | 8 | 9 | -------------------------------------------------------------------------------- /res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/android/xml/plist/PListXMLConstants.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | 14 | package android.xml.plist; 15 | 16 | /** 17 | * @author fbeachler 18 | * 19 | */ 20 | public class PListXMLConstants { 21 | 22 | public static final java.lang.String PIPE = "|"; 23 | 24 | public static final java.lang.String TAG_PLIST = "plist"; 25 | public static final java.lang.String TAG_DICT = "dict"; 26 | public static final java.lang.String TAG_PLIST_ARRAY = "array"; 27 | public static final java.lang.String TAG_KEY = "key"; 28 | public static final java.lang.String TAG_INTEGER = "integer"; 29 | public static final java.lang.String TAG_STRING = "string"; 30 | public static final java.lang.String TAG_REAL = "real"; 31 | public static final java.lang.String TAG_DATE = "date"; 32 | public static final java.lang.String TAG_BOOL_TRUE = "true"; 33 | public static final java.lang.String TAG_BOOL_FALSE = "false"; 34 | public static final java.lang.String TAG_DATA = "data"; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/android/xml/plist/domain/False.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | /** 16 | * Represents a simple plist false element. 17 | */ 18 | public class False extends PListObject implements IPListSimpleObject { 19 | 20 | /** 21 | * 22 | */ 23 | private static final long serialVersionUID = -8533886020773567552L; 24 | 25 | public False() { 26 | setType(PListObjectType.FALSE); 27 | } 28 | 29 | /* 30 | * (non-Javadoc) 31 | * 32 | * @see 33 | * android.xml.plist.domain.IPListSimpleObject#getValue() 34 | */ 35 | @Override 36 | public Boolean getValue() { 37 | return new Boolean(false); 38 | } 39 | 40 | /* 41 | * (non-Javadoc) 42 | * 43 | * @see 44 | * android.xml.plist.domain.IPListSimpleObject#setValue 45 | * (java.lang.Object) 46 | */ 47 | @Override 48 | public void setValue(Boolean val) { 49 | // noop 50 | } 51 | 52 | /* 53 | * (non-Javadoc) 54 | * 55 | * @see 56 | * android.xml.plist.domain.IPListSimpleObject#setValue 57 | * (java.lang.String) 58 | */ 59 | @Override 60 | public void setValue(java.lang.String val) { 61 | // noop 62 | } 63 | 64 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/IPListSimpleObject.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | /** 16 | * Interface that simple PList objects implement. This includes all objects 17 | * besides from {@link Array}s and {@link Dict}s. 18 | */ 19 | public interface IPListSimpleObject { 20 | 21 | /** 22 | * Get the value of the plist object. 23 | * 24 | * @return 25 | */ 26 | public E getValue(); 27 | 28 | /** 29 | * Set the value of the PList object. 30 | * 31 | * @param val 32 | */ 33 | public void setValue(E val); 34 | 35 | /** 36 | * Set the value of the PList object from a string. 37 | * 38 | * @param val 39 | */ 40 | public void setValue(java.lang.String val); 41 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/Integer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | /** 16 | * Represents a simple plist int element. 17 | */ 18 | public class Integer extends PListObject implements 19 | IPListSimpleObject { 20 | 21 | protected java.lang.Integer intgr; 22 | 23 | /** 24 | * 25 | */ 26 | private static final long serialVersionUID = -5952071046933925529L; 27 | 28 | public Integer() { 29 | setType(PListObjectType.INTEGER); 30 | } 31 | 32 | /* 33 | * (non-Javadoc) 34 | * 35 | * @see 36 | * android.xml.plist.domain.IPListSimpleObject#getValue() 37 | */ 38 | @Override 39 | public java.lang.Integer getValue() { 40 | return intgr; 41 | } 42 | 43 | /* 44 | * (non-Javadoc) 45 | * 46 | * @see 47 | * android.xml.plist.domain.IPListSimpleObject#setValue 48 | * (java.lang.Object) 49 | */ 50 | @Override 51 | public void setValue(java.lang.Integer val) { 52 | this.intgr = val; 53 | } 54 | 55 | /* 56 | * (non-Javadoc) 57 | * 58 | * @see 59 | * android.xml.plist.domain.IPListSimpleObject#setValue 60 | * (java.lang.String) 61 | */ 62 | @Override 63 | public void setValue(java.lang.String val) { 64 | this.intgr = new java.lang.Integer(java.lang.Integer.parseInt(val 65 | .trim())); 66 | } 67 | 68 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/PListObject.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | import java.io.Serializable; 16 | 17 | /** 18 | * A PListObject is an object which has a valid {@link PListObjectType}. 19 | */ 20 | public class PListObject extends Object implements Cloneable, 21 | Serializable { 22 | 23 | /** 24 | * 25 | */ 26 | private static final long serialVersionUID = -5258056855425643835L; 27 | 28 | private PListObjectType type; 29 | 30 | /** 31 | * @return the type 32 | */ 33 | public PListObjectType getType() { 34 | return type; 35 | } 36 | 37 | /** 38 | * @param type 39 | * the type to set 40 | */ 41 | public void setType(PListObjectType type) { 42 | this.type = type; 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/PListObjectType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | /** 16 | * Defines valid PList object types. These correspond to the 17 | * elements defined in the PList XML DTD at {@link http 18 | * ://www.apple.com/DTDs/PropertyList-1.0.dtd}. 19 | * 20 | * @author fbeachler 21 | * 22 | */ 23 | public enum PListObjectType { 24 | ARRAY(0), DATA(1), DATE(2), DICT(3), REAL(4), INTEGER(5), STRING( 25 | 6), TRUE(7), FALSE(8); 26 | 27 | private int type; 28 | 29 | private PListObjectType(int type) { 30 | this.type = type; 31 | } 32 | 33 | public int getType() { 34 | return this.type; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/Real.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed under Creative Commons Attribution 3.0 Unported license. 3 | * http://creativecommons.org/licenses/by/3.0/ 4 | * You are free to copy, distribute and transmit the work, and 5 | * to adapt the work. You must attribute android-plist-parser 6 | * to Free Beachler (http://www.freebeachler.com). 7 | * 8 | * The Android PList parser (android-plist-parser) is distributed in 9 | * the hope that it will be useful, but WITHOUT ANY WARRANTY; without 10 | * even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11 | * PARTICULAR PURPOSE. 12 | */ 13 | package android.xml.plist.domain; 14 | 15 | /** 16 | * Represents a simple plist real element. 17 | */ 18 | public class Real extends PListObject implements IPListSimpleObject { 19 | 20 | // TODO: Double? 21 | protected Float real; 22 | 23 | /** 24 | * 25 | */ 26 | private static final long serialVersionUID = -4204214862534504729L; 27 | 28 | public Real() { 29 | setType(PListObjectType.REAL); 30 | } 31 | 32 | /* 33 | * (non-Javadoc) 34 | * 35 | * @see 36 | * android.xml.plist.domain.IPListSimpleObject#getValue() 37 | */ 38 | @Override 39 | public Float getValue() { 40 | return real; 41 | } 42 | 43 | /* 44 | * (non-Javadoc) 45 | * 46 | * @see 47 | * android.xml.plist.domain.IPListSimpleObject#setValue 48 | * (java.lang.Object) 49 | */ 50 | @Override 51 | public void setValue(Float val) { 52 | this.real = val; 53 | } 54 | 55 | /* 56 | * (non-Javadoc) 57 | * 58 | * @see 59 | * android.xml.plist.domain.IPListSimpleObject#setValue 60 | * (java.lang.String) 61 | */ 62 | @Override 63 | public void setValue(java.lang.String val) { 64 | this.real = new Float(Float.parseFloat(val.trim())); 65 | } 66 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/String.java: -------------------------------------------------------------------------------- 1 | package android.xml.plist.domain; 2 | 3 | import android.xml.plist.PListXMLStringer; 4 | 5 | /** 6 | * Represents a simple plist string element. Not to be confused with 7 | * {@link java.lang.String}. 8 | */ 9 | public class String extends PListObject implements 10 | IPListSimpleObject { 11 | 12 | protected PListXMLStringer str; 13 | 14 | /** 15 | * 16 | */ 17 | private static final long serialVersionUID = -8134261357175236382L; 18 | 19 | public String() { 20 | setType(PListObjectType.STRING); 21 | str = new PListXMLStringer(); 22 | } 23 | 24 | /* 25 | * (non-Javadoc) 26 | * 27 | * @see 28 | * android.xml.plist.domain.IPListSimpleObject#getValue() 29 | */ 30 | @Override 31 | public java.lang.String getValue() { 32 | return this.str.getBuilder().toString(); 33 | } 34 | 35 | /* 36 | * (non-Javadoc) 37 | * 38 | * @see 39 | * android.xml.plist.domain.IPListSimpleObject#setValue 40 | * (java.lang.Object) 41 | */ 42 | @Override 43 | public void setValue(java.lang.String val) { 44 | str.newBuilder().append(val); 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /src/android/xml/plist/domain/True.java: -------------------------------------------------------------------------------- 1 | package android.xml.plist.domain; 2 | 3 | /** 4 | * Represents a simple plist true element. 5 | */ 6 | public class True extends PListObject implements IPListSimpleObject { 7 | 8 | /** 9 | * 10 | */ 11 | private static final long serialVersionUID = -3560354198720649001L; 12 | 13 | public True() { 14 | setType(PListObjectType.TRUE); 15 | } 16 | 17 | /* 18 | * (non-Javadoc) 19 | * 20 | * @see 21 | * com.longevitysoft.android.xml.plist.domain.IPListSimpleObject#getValue() 22 | */ 23 | @Override 24 | public Boolean getValue() { 25 | return new Boolean(true); 26 | } 27 | 28 | /* 29 | * (non-Javadoc) 30 | * 31 | * @see 32 | * com.longevitysoft.android.xml.plist.domain.IPListSimpleObject#setValue 33 | * (java.lang.Object) 34 | */ 35 | @Override 36 | public void setValue(Boolean val) { 37 | // noop 38 | } 39 | 40 | /* 41 | * (non-Javadoc) 42 | * 43 | * @see 44 | * com.longevitysoft.android.xml.plist.domain.IPListSimpleObject#setValue 45 | * (java.lang.String) 46 | */ 47 | @Override 48 | public void setValue(java.lang.String val) { 49 | // noop 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /src/com/android/nxhttp/NXHttpFormRequest.java: -------------------------------------------------------------------------------- 1 | package com.android.nxhttp; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class NXHttpFormRequest extends NXHttpRequest { 7 | 8 | protected static class NXHttpFormField { 9 | 10 | private String content ; 11 | private boolean isfile ; 12 | 13 | public NXHttpFormField(String content, boolean isfile) { 14 | this.content = content; 15 | this.isfile = isfile; 16 | } 17 | public String getContent() { 18 | return content; 19 | } 20 | public void setContent(String content) { 21 | this.content = content; 22 | } 23 | public boolean isIsfile() { 24 | return isfile; 25 | } 26 | public void setIsfile(boolean isfile) { 27 | this.isfile = isfile; 28 | } 29 | } 30 | 31 | private Map formFields = new HashMap() ; 32 | 33 | public void addFormFieldFile(String key, String path) { 34 | formFields.put(key, new NXHttpFormField(path, true)) ; 35 | } 36 | 37 | public void addFormFieldString(String key, String value) { 38 | formFields.put(key, new NXHttpFormField(value, false)) ; 39 | } 40 | 41 | public void delFormField(String key) { 42 | formFields.remove(key) ; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/com/android/nxhttp/NXHttpQueue.java: -------------------------------------------------------------------------------- 1 | package com.android.nxhttp; 2 | 3 | import java.util.LinkedList; 4 | import java.util.List; 5 | 6 | //import org.apache.http.client.HttpClient; 7 | //import org.apache.http.impl.client.DefaultHttpClient; 8 | 9 | public class NXHttpQueue implements Runnable { 10 | 11 | private NXHttpQueueListener listener = null ; 12 | 13 | private List requests = java.util.Collections.synchronizedList(new LinkedList()) ; 14 | 15 | public void run() { 16 | 17 | } 18 | 19 | public int addRequest(NXHttpRequest request) { 20 | requests.add(request) ; 21 | return requests.size() ; 22 | } 23 | 24 | public boolean cancelRequest(NXHttpRequest request) { 25 | return false ; 26 | } 27 | 28 | public NXHttpQueueListener getListener() { 29 | return listener; 30 | } 31 | 32 | public void setListener(NXHttpQueueListener listener) { 33 | this.listener = listener; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/com/android/nxhttp/NXHttpQueueListener.java: -------------------------------------------------------------------------------- 1 | package com.android.nxhttp; 2 | 3 | public interface NXHttpQueueListener { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/com/android/nxhttp/NXHttpRequestListener.java: -------------------------------------------------------------------------------- 1 | package com.android.nxhttp; 2 | 3 | public interface NXHttpRequestListener { 4 | /* 5 | * http request work begin 6 | */ 7 | public void OnNXHttpRequestStart(NXHttpRequest request) ; 8 | 9 | /* 10 | * http request begin send data 11 | */ 12 | public void OnNXHttpRequestSendBegin(NXHttpRequest request) ; 13 | 14 | /* 15 | * http request sending progress 16 | */ 17 | public void OnNXHttpRequestSendProgress(NXHttpRequest request, float progress) ; //0.0-1.0 18 | 19 | /* 20 | * http request sending complete 21 | */ 22 | public void OnNXHttpRequestSendComplete(NXHttpRequest request) ; 23 | 24 | /* 25 | * http request recv begin 26 | */ 27 | public void OnNXHttpRequestRecvBegin(NXHttpRequest request) ; 28 | 29 | /* 30 | * http request recv progress 31 | */ 32 | public void OnNXHttpRequestRecvProgress(NXHttpRequest request, float progress) ;//0.0-1.0F 33 | 34 | /* 35 | * http request recv complete 36 | */ 37 | public void OnNXHttpRequestRecvComplete(NXHttpRequest request) ; 38 | 39 | /* 40 | * http request work success 41 | */ 42 | public void OnNXHttpRequestSuccess(NXHttpRequest request) ; 43 | 44 | /* 45 | * http request work failure 46 | */ 47 | public void OnNXHttpRequestFailure(NXHttpRequest request) ; 48 | } 49 | -------------------------------------------------------------------------------- /src/com/android/nxsdk/NXWorker.java: -------------------------------------------------------------------------------- 1 | package com.android.nxsdk; 2 | 3 | public class NXWorker { 4 | 5 | static { 6 | System.loadLibrary("WORKER"); 7 | } 8 | 9 | private static long workerRefs = 1000 ; 10 | private long workerRef = 0 ; 11 | 12 | public NXWorker(){ 13 | workerRef = ++workerRefs ; 14 | } 15 | 16 | public long getWorkerID() { 17 | return workerRef ; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/android/video/tools/EFBitmapManager.java: -------------------------------------------------------------------------------- 1 | package com.android.video.tools; 2 | 3 | import java.util.ArrayList; 4 | import java.util.HashMap; 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | import android.graphics.Bitmap; 9 | import android.graphics.BitmapFactory; 10 | 11 | public class EFBitmapManager { 12 | 13 | private static Map cacheBitmapMap = new HashMap(); 14 | private static List cacheBitmapPath = new ArrayList() ; 15 | 16 | public static Bitmap loadBitmapFromFile(String file) { 17 | 18 | Bitmap bitmap = cacheBitmapMap.get(file) ; 19 | if(bitmap == null) { 20 | bitmap = BitmapFactory.decodeFile(file) ; 21 | cacheBitmapMap.put(file, bitmap) ; 22 | cacheBitmapPath.add(file) ; 23 | } 24 | 25 | if(cacheBitmapPath.size() > 40) { 26 | for(int idx=0; idx<20; idx++) { 27 | String path = cacheBitmapPath.remove(0) ; 28 | cacheBitmapMap.remove(path) ; 29 | } 30 | } 31 | 32 | return bitmap ; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/com/android/video/tools/EFPlistParser.java: -------------------------------------------------------------------------------- 1 | package com.android.video.tools; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.InputStream; 6 | 7 | import org.xml.sax.helpers.DefaultHandler; 8 | 9 | import android.xml.plist.PListXMLHandler; 10 | import android.xml.plist.PListXMLParser; 11 | 12 | public class EFPlistParser extends DefaultHandler{ 13 | 14 | public static Object parsePlistWithFile(File plistFile) { 15 | try { 16 | InputStream instream = new FileInputStream(plistFile) ; 17 | Object result = parsePlistWithStream(instream) ; 18 | instream.close(); 19 | return result ; 20 | } 21 | catch(Exception e) { 22 | e.printStackTrace(); 23 | } 24 | return null ; 25 | } 26 | 27 | public static Object parsePlistWithStream(InputStream instream) { 28 | try { 29 | PListXMLParser parser = new PListXMLParser(); 30 | PListXMLHandler handler = new PListXMLHandler(); 31 | parser.setHandler(handler); 32 | parser.parse(instream) ; 33 | return handler.getPlist().getRootElement() ; 34 | } 35 | catch(Exception e) { 36 | e.printStackTrace(); 37 | } 38 | return null ; 39 | } 40 | 41 | public static Object parsePlistWithString(String plistData) { 42 | try { 43 | PListXMLParser parser = new PListXMLParser(); 44 | PListXMLHandler handler = new PListXMLHandler(); 45 | parser.setHandler(handler); 46 | parser.parse(plistData) ; 47 | return handler.getPlist().getRootElement() ; 48 | } 49 | catch(Exception e) { 50 | e.printStackTrace(); 51 | } 52 | return null ; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/com/android/video/views/EFBlinkView.java: -------------------------------------------------------------------------------- 1 | package com.android.video.views; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.animation.AlphaAnimation; 6 | import android.view.animation.Animation; 7 | import android.widget.ImageView; 8 | 9 | public class EFBlinkView extends ImageView { 10 | 11 | private AlphaAnimation blinkAnimation = null ; 12 | 13 | public EFBlinkView(Context context, AttributeSet attrs, int defStyle) { 14 | super(context, attrs, defStyle); 15 | initBlinkView() ; 16 | } 17 | 18 | public EFBlinkView(Context context, AttributeSet attrs) { 19 | super(context, attrs); 20 | initBlinkView() ; 21 | } 22 | 23 | public EFBlinkView(Context context) { 24 | super(context); 25 | initBlinkView() ; 26 | } 27 | 28 | private void initBlinkView() { 29 | this.blinkAnimation = new AlphaAnimation(1, 0); 30 | this.blinkAnimation.setRepeatCount(Animation.INFINITE) ; 31 | this.blinkAnimation.setRepeatMode(Animation.REVERSE) ; 32 | } 33 | 34 | public void setBlinkFreq(float frequency) { 35 | this.blinkAnimation.setDuration((long)(500/frequency)) ; 36 | } 37 | 38 | public void startBlink() { 39 | this.startAnimation(this.blinkAnimation) ; 40 | } 41 | 42 | public void stopBlink() { 43 | this.blinkAnimation.cancel() ; 44 | this.blinkAnimation.reset() ; 45 | this.clearAnimation() ; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/com/android/video/views/EFImageButton.java: -------------------------------------------------------------------------------- 1 | package com.android.video.views; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import android.content.Context; 7 | import android.util.AttributeSet; 8 | import android.widget.ImageView; 9 | 10 | public class EFImageButton extends ImageView { 11 | 12 | public static enum EFButtonStatus { 13 | BUTTON_STATUS_NORMAL , 14 | BUTTON_STATUS_ACTIVE , 15 | BUTTON_STATUS_SELECT , 16 | BUTTON_STATUS_BUSING , 17 | BUTTON_STATUS_DISABLE 18 | } 19 | 20 | private EFButtonStatus buttonStatus = EFButtonStatus.BUTTON_STATUS_NORMAL ; 21 | private Map statusImages = new HashMap(); 22 | 23 | 24 | public EFImageButton(Context context, AttributeSet attrs, int defStyle) { 25 | super(context, attrs, defStyle); 26 | } 27 | 28 | public EFImageButton(Context context, AttributeSet attrs) { 29 | super(context, attrs); 30 | } 31 | 32 | public EFImageButton(Context context) { 33 | super(context); 34 | } 35 | 36 | public void setImageResource(EFButtonStatus status, int resid) { 37 | statusImages.put(status, Integer.valueOf(resid)) ; 38 | if(status == this.buttonStatus) 39 | super.setImageResource(resid) ; 40 | } 41 | 42 | public int getImageResource(EFButtonStatus status) { 43 | Integer idObj = statusImages.get(status); 44 | if(status != null) 45 | return idObj.intValue() ; 46 | return 0 ; 47 | } 48 | 49 | public EFButtonStatus getButtonStatus() { 50 | return this.buttonStatus; 51 | } 52 | 53 | public void setButtonStatus(EFButtonStatus buttonStatus) { 54 | if(this.buttonStatus != buttonStatus) { 55 | int resid = getImageResource(buttonStatus) ; 56 | if(resid > 0) 57 | super.setImageResource(resid) ; 58 | } 59 | this.buttonStatus = buttonStatus; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/com/android/video/views/EFImageView.java: -------------------------------------------------------------------------------- 1 | package com.android.video.views; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.util.AttributeSet; 6 | import android.widget.ImageView; 7 | 8 | import com.android.video.https.EFDownloadManager.EFDownloadListener; 9 | import com.android.video.tools.EFBitmapManager; 10 | 11 | public class EFImageView extends ImageView implements EFDownloadListener { 12 | 13 | 14 | public EFImageView(Context context, AttributeSet attrs, int defStyle) { 15 | super(context, attrs, defStyle); 16 | } 17 | 18 | public EFImageView(Context context, AttributeSet attrs) { 19 | super(context, attrs); 20 | } 21 | 22 | public EFImageView(Context context) { 23 | super(context); 24 | } 25 | 26 | public void onFileDownloadStart(String fileUrl) { 27 | 28 | } 29 | 30 | public void onFileDownloadProgress(String fileUrl, float progress) { 31 | 32 | } 33 | 34 | public void onFileDownloadFailure(String fileUrl) { 35 | this.setBackgroundColor(0xFFFF0000) ; 36 | } 37 | 38 | public void onFileDownloadComplete(String fileUrl, String cachePath) { 39 | Bitmap bitmap = EFBitmapManager.loadBitmapFromFile(cachePath) ; 40 | if(bitmap != null) 41 | this.setImageBitmap(bitmap) ; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/com/android/video/views/EFProgressView.java: -------------------------------------------------------------------------------- 1 | package com.android.video.views; 2 | 3 | import android.content.Context; 4 | import android.graphics.Canvas; 5 | import android.graphics.Paint; 6 | import android.graphics.Paint.Align; 7 | import android.util.AttributeSet; 8 | import android.view.View; 9 | 10 | public class EFProgressView extends View { 11 | 12 | private Paint textPaint = new Paint(); 13 | private float progress = 0.0f ; 14 | 15 | private EFProgressView(Context context, AttributeSet attrs, int defStyle) { 16 | super(context, attrs, defStyle); 17 | } 18 | 19 | private EFProgressView(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | } 22 | 23 | private EFProgressView(Context context) { 24 | super(context); 25 | } 26 | 27 | public EFProgressView(Context context, float textSize) { 28 | super(context) ; 29 | 30 | this.setBackgroundColor(0xAB000000) ; 31 | this.textPaint.setTextAlign(Align.CENTER) ; 32 | this.textPaint.setColor(0xFFEEEEEE) ; 33 | this.textPaint.setTextSize(textSize) ; 34 | this.textPaint.setAntiAlias(true) ; // 抗锯齿 35 | } 36 | 37 | public void draw(Canvas canvas) { 38 | super.draw(canvas); 39 | canvas.drawText(String.format("%d%%", (int)(progress*100)), this.getWidth()/2, this.getHeight()/2, this.textPaint) ; 40 | } 41 | 42 | public float getProgress() { 43 | return progress; 44 | } 45 | 46 | public void setProgress(float progress) { 47 | this.progress = progress; 48 | this.invalidate() ; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/com/android/video/views/EFSurfaceView.java: -------------------------------------------------------------------------------- 1 | package com.android.video.views; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.SurfaceView; 6 | 7 | public class EFSurfaceView extends SurfaceView { 8 | 9 | public EFSurfaceView(Context context, AttributeSet attrs, int defStyle) { 10 | super(context, attrs, defStyle); 11 | initSurfaceView(); 12 | } 13 | 14 | public EFSurfaceView(Context context, AttributeSet attrs) { 15 | super(context, attrs); 16 | initSurfaceView(); 17 | } 18 | 19 | public EFSurfaceView(Context context) { 20 | super(context); 21 | initSurfaceView(); 22 | } 23 | 24 | private void initSurfaceView(){ 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/android/video/worker/EFRecordWorker.java: -------------------------------------------------------------------------------- 1 | package com.android.video.worker; 2 | 3 | import com.android.nxsdk.NXWorker; 4 | 5 | public class EFRecordWorker extends NXWorker { 6 | 7 | public interface EFRecordWorkerProgress { 8 | public void onRecordSegmentsDuration(float duration) ; 9 | public void onDeleteLastSegment(float duration) ; 10 | public void onDeleteAllTheSegments() ; 11 | } 12 | 13 | public interface EFBuildrWorkerProgress { 14 | public void onBuildProgressBegin(); 15 | public void onBuildProgressProgress(float progress); //0.0-1.0 16 | public void onBuildProgressFailure(); 17 | public void onBuildProgressComplete(String buildFile); 18 | } 19 | 20 | public final native boolean createRecordWorker(Object surface, int cameraWidth, int cameraHeight, String rootFolder); 21 | public final native boolean updateCameraImage(int width, int height, byte[] data); 22 | public final native boolean destoryRecordWorker(); 23 | 24 | public final native boolean pausedRecordWorker(); 25 | public final native boolean resumeRecordWorker(); 26 | 27 | public final native boolean setRecordProgress(EFRecordWorkerProgress progress) ; 28 | 29 | public final native boolean pauseLoopAnimation() ; 30 | public final native boolean resumeLoopAnimation() ; 31 | 32 | //record mode api 33 | public final native boolean startRecordVideo(); 34 | public final native boolean stopRecordVideo(); 35 | public final native boolean deleteRecordVideo(); 36 | 37 | public final native boolean showFilterPanel(); 38 | public final native boolean hideFilterPanel(int index); 39 | 40 | public final native boolean buildRecordVideos(EFBuildrWorkerProgress progress); 41 | public final native boolean buildFinishVideos(); 42 | } 43 | --------------------------------------------------------------------------------